隨筆:25 文章:1 評論:66 引用:0
          BlogJava 首頁 發新隨筆
          發新文章 聯系 聚合管理

          2006年6月13日

          Sorry, I have already moved to JavaEye and Fanfou, please update if you have questions.
          posted @ 2009-05-09 22:13 steeven 閱讀(236) | 評論 (0)編輯 收藏
           
          最近讓新來的實習生寫訂餐機器人,羽毛球活動預定機器人,兩個人寫了幾個星期,看得我心急火燎?,F在的研究生啊。。。。

          自己拿來skype4java看了一下,感覺很好用。里面提供了一個application機制,類似socket,又強于socket。為什么說強呢?因為是基于skype, 穿透防火墻啦。
          windows自帶的遠程桌面很好用,在速度上,比以前基于位圖傳送的netmeeting/pcanywhere之類的都要強。
          linux下面的遠程桌面做的比較好的是nx系列。但是這些遠程桌面的致命問題就是網關、防火墻問題。
          就是說你要在家訪問公司電腦,基本上要在防火墻上鑿洞,或者借助于vpn,softether之類的東東。

          skype的application利用skype自身的通訊機制,屏蔽了這些問題,當然,你的應用也必須依賴skype了。

          java做遠程桌面要能截屏、控制鼠標鍵盤,所幸有java.awt.Robot, 原來這個東西是為了做自動化測試,剛好。
          剩下就是穿數據的問題。屏幕圖片,如果是bmp,比較碩大,即使是上網等文本界面,壓縮下來也要幾十k, 如果網絡帶寬不夠的話,比如公司有幾個下載愛好者,會比較慘。所以呢,決定傳差異,緩存前面的屏幕,看看如果差別不大,就只傳變化的部分。這樣數據量就比較小。但是呢,壓縮圖片的時候就不能采用有損壓縮啦,否則屏幕會變得越來越怪異。。。

          比較遺憾的是沒能象windows自帶的rdp那樣攔截繪圖操作,在點陣圖的方案上效率還是比較低的。希望有高手指點!

          skype4java是個日本人寫的,幾個聽了我介紹的朋友都有這疑問:日本人寫的?
          呵呵,如果你能寫出更好的,咱就不用它。那個日本作者還不錯,上班比較忙,還是答應抽空fix幾個bug,感謝中~

          體驗一下吧:skypeRDP
          posted @ 2006-12-06 20:18 steeven 閱讀(2611) | 評論 (6)編輯 收藏
           

          適用版本GWT 1.0.21。
          由于目前google web toolkit還沒有正式release, 所以問題多多。記錄一下碰到的問題:

          1. Shell調試模式和實際編譯結果有差異。
          shell中報告的異常在運行中只是一些凌亂的腳本錯誤,或者干脆沒有響應。
          shell中通過的程序在實際運行時還會有錯誤。
          2. 避免錯誤的方法是捕獲異常,
          在onModuleLoad方法中try catch
          或者GWT.setUnCaughtExceptionHandler()//全局異常捕獲
          3. LOG, 利用GWT.log(). shell模式下會輸出到控制臺。
          4. 遠程調用屬于異步。同步遠程調用可以自己包裝ClientCallback,在一個結束后調用另外一個.
          5. RPC調用中Set傳遞有bug, 暫時用List
          6. Eclipse直接運行Compiler/Shell, 加入gwt-dev-windows.jar。
          main: com.google.gwt.dev.GWTCompiler/GWTShell
          arguments: -out ${project_loc}\WebContent real/Index.html
          classpath->UserEnties->advanced->add folder->選擇項目的src目錄,要在第一位。
          7. Tomcat5問題多多, 用tomcat4.
          8. gwt-user中非法包含javax.servlet, tomcat認為其無效。直接放到tomcat/common/lib中。或者在jar中去掉。
          9. Exception.getStackTrace() 在Shell模式下有效, GWT.isScript()可以判斷
          10. 靜態中文在html中亂碼,要在html header中加入<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

          posted @ 2006-07-14 18:10 steeven 閱讀(2951) | 評論 (6)編輯 收藏
           
          開發設計兩個類:
          雞,構造的時候要帶入蛋.
          蛋,構造的時候要帶入雞.

          編譯沒問題,初始化數據的時候問題出來了.
          new 雞(new 蛋(???)) //蛋是誰下的?
          作為一個正統的進化論學生,解決如下:構造原始雞類,雞開始是不下蛋的,把雞的構造函數改成空的,這時候初始化一條原始雞的數據沒問題.然后進化出來蛋,雞下的,類不用改,把蛋的數據初始化好.這時候雞進化,由蛋孵出來,構造方法要帶蛋進來,初始化一只新雞,刪除原始雞數據.

          OK,問題解決了嗎?這樣程序每次初始化數據的時候要改造雞類,好像不大容易啊....

          那上帝造物學說怎樣解決問題呢?:
          雞1 = new 雞(null);
          蛋1 = new 蛋(null);
          雞1.set蛋(蛋1);
          蛋1.set雞(雞1);
          save(雞1,蛋1);
          雞和蛋同時出來了.上帝造物法勝利

          是不是我的類設計有問題,怎么會碰到雞生蛋蛋孵雞這種郁悶的問題呢?
          posted @ 2006-07-02 20:28 steeven 閱讀(1461) | 評論 (2)編輯 收藏
           

          db4o目前還沒有unique index/primary key機制。(5.4)

          ???? public ? static ? void ?main(String[]?args)? {
          ????????ObjectContainer?db?
          = ?Db4o.openFile( " test.yap " );
          ????????db.set(
          new ?User( " abc " , 234 ));
          ????????db.set(
          new ?User( " abc " , 234 ));
          ????????ObjectSet
          < User > ?list? = ?db.query(User. class );
          ????????System.out.println(list);
          ????????db.close();?
          // halt?without?this?line?in?5.2
          ????}

          上面的例子會存儲兩個同樣的User對象。
          僅有的ID是一個存儲文件中的ID, 經過碎片整理之后會發生變化,顯然不適用。
          要實現一個auto_increament的主鍵恐怕要自行實現?;蛘哂靡延械腢UID實現。

          可能db4o太年輕的關系,目前還沒有支援這些功能。建議用@Annotation來實現。并且控制存儲。
          @ID
          @Unique
          @Index
          在EJB3里面已經有現成的定義可以參考。
          posted @ 2006-06-19 18:15 steeven 閱讀(919) | 評論 (0)編輯 收藏
           
          原來說是xaml只是隨著下一個版本的windows放出,后來改編到winfx里面,最近聽說作為.net3.0出現.這樣的直接后果就是這個b/s+c/s通吃的UI框架不但要寄生在新版windows里面,也要被用來在xp上攻城略地.

          微軟這回蓄勢待發xaml有多強大呢?3d(感覺不夠純粹)/強大的數據綁定/動畫/多媒體支持...
          這里可怕的不僅僅是框架,還有配套的GUI開發工具.有趣的是Interactive Designer據說就是用wpf開發的.
          xaml只是個xml描述文件,里面可以包含代碼,編譯成UI界面.所有的界面內容也可以由程序動態運行.
          這樣未來運行在browser里面的UI不是復雜的ajax,是和后臺一致的托管代碼.

          Java怎樣應對呢?Java+Flash? 開發bs都困難重重.除非Flash能放棄as,直接同java結合,或者兩個公司合作開發一個新框架.這個新框架應該是什么樣子呢?完全的3D視角,時間軸控制...重演c#后來居上的歷史.

          Java在Sun的手里一直半死不活,真希望能趕快被google并購,或者sun主動把java捐贈出來.

          如果沒有"意外",在wpf正式發行以后,桌面應用將逐步過渡到wpf開發.HTML由于其跨平臺,可能會平分秋色.

          面對wpf,如何反抗?java.net是太監,在.net陣營里面連二奶都不算,等于投降.
          利用xaml? xaml被編譯加載,其執行框架還是.net,機會似乎不大.在瀏覽器上可能會有類似lasszlo的組合.

          作為Java愛好者,祈禱奇跡發生吧,還好在Java世界中奇跡是家常便飯 :)
          posted @ 2006-06-18 22:57 steeven 閱讀(2458) | 評論 (3)編輯 收藏
           

          一般Apply按鈕應該在用戶有輸入時有效,輸入沒有變化時無效。
          為了達到這個效果,一般界面上每個輸入控件要監聽,并且和以前的值做比較,實現起來相當麻煩。

          因為我們已有的界面是基于數據綁定,綁定到一個克隆的對象上。這樣判斷有沒有變化就很簡單,updateInput之后,比較兩個對象是否一致即可。

          什么時候去判斷呢?在用戶輸入之后:捕捉鍵盤、鼠標事件。

          攔截鍵盤鼠標事件目前找到兩種方法:
          1. Toolkit.getDefaultToolkit().addAWTEventListener(listener,eventMask);
          這個方法注冊全局的監聽機制,無論哪個窗口。里面注冊為weakHashmap,應該不用考慮垃圾回收問題。因為是全局的,不建議采用。
          2. 攔截每個component自己的事件。
          正常來說,如果在textbox里面打字,事件不會交給window處理。enableInputMethods(true)可以幫忙。
          enable以后調用getInputContext(),取得InputContext處理。
          注意,InputContext的dispatchEvent(AWTEvent)會接到各種消息,感興趣的getID()有以下三個:
          ???MouseEvent.MOUSE_CLICKED
          ???MouseEvent.MOUSE_WHEEL
          ???KeyEvent.KEY_TYPED

          posted @ 2006-06-13 16:52 steeven 閱讀(1633) | 評論 (2)編輯 收藏
          CALENDER
          <2006年6月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿(10)

          隨筆分類

          隨筆檔案

          文章檔案

          相冊

          我的鏈接

          搜索

          •  

          最新評論


          Powered By: 博客園
          模板提供滬江博客

          主站蜘蛛池模板: 汶上县| 方山县| 洞头县| 海盐县| 迭部县| 成安县| 建宁县| 舒城县| 高平市| 辽宁省| 城步| 忻城县| 七台河市| 林甸县| 定结县| 肥西县| 新沂市| 景德镇市| 栾城县| 平阳县| 台中县| 多伦县| 泉州市| 武夷山市| 大关县| 丘北县| 中西区| 如皋市| 南昌市| 莒南县| 博罗县| 东明县| 平远县| 吴川市| 南昌市| 怀柔区| 扶风县| 南康市| 嘉峪关市| 九寨沟县| 绍兴县|