GSON是一套專司JSON與JAVA物件的轉換的Java library,
關於JSON的簡介:
http://myjavanote.blogspot.com/2010/06/json.html
關於GSON的使用請參考:
http://nadacode.com/2010/06/30/using-json-in-your-google-app-engine-java-app/
http://sites.google.com/site/gson/gson-user-guide
http://code.google.com/p/google-gson/
部落客廣告聯播
2011年2月22日 星期二
2011年2月21日 星期一
2011年2月20日 星期日
台彩最新獎號小工具 發佈 (免費)
終於這幾天將Desire HD入手了,
稍作實機測試後,把之前花了點時間寫的『台彩最新獎號小工具』發布到Android Market上了。
『台彩最新獎號小工具』以小工具(Widget)形式讓您可擺放桌面上,隨時得知最新獎號,另也可查詢顯示上期、上上期之獎號。另按下開獎獎號文字可顯示該期更詳細資訊。
詳細介紹頁面如下:
https://sites.google.com/site/dolphsworkshopdolphgongfang/gong-fang-ruan-ti-ji/android-ruan-ti/tai-cai-zui-xin-jiang-haowidget
或直接前往Market頁面下載︰
https://market.android.com/details?id=idv.dolph.lottoappwidget
稍作實機測試後,把之前花了點時間寫的『台彩最新獎號小工具』發布到Android Market上了。
『台彩最新獎號小工具』以小工具(Widget)形式讓您可擺放桌面上,隨時得知最新獎號,另也可查詢顯示上期、上上期之獎號。另按下開獎獎號文字可顯示該期更詳細資訊。
詳細介紹頁面如下:
https://sites.google.com/site/dolphsworkshopdolphgongfang/gong-fang-ruan-ti-ji/android-ruan-ti/tai-cai-zui-xin-jiang-haowidget
或直接前往Market頁面下載︰
https://market.android.com/details?id=idv.dolph.lottoappwidget
2011年2月15日 星期二
Android PendingIntent中放置Extra值問題
.....(略)
Intent it= new Intent(this , MyActivity.class);
it.putExtra("myFlag", dynamicFlag);
PendingIntent pit= PendingIntent.getActivity(this, 0, it, 0);
remoteViews.setOnClickPendingIntent(R.id.btnMyButton, pit);
....(略)
上列是我在寫AppWidget時的程式片段,這段程式主要是要在App Widget上的按鈕按下時,開啟某Actitity(並傳遞myFlag extra值給該Activity)以顯示所需資訊,但當我在MyActivity取得myFlag值時卻一直都是0,百思不解,後來修改程式,將PendingIntent.getActitity的最後個參數換成:
PendingIntent pit= PendingIntent.getActivity(this, 0, it, PendingIntent.FLAG_UPDATE_CURRENT);後竟然就正常了~
關於該參數該使用那個FLAG請參考:
http://developer.android.com/reference/android/app/PendingIntent.html#getActivity(android.content.Context, int, android.content.Intent, int)
http://stackoverflow.com/questions/4472447/confusing-behavior-when-starting-new-activity-with-pendingintent/5013713#5013713
Intent it= new Intent(this , MyActivity.class);
it.putExtra("myFlag", dynamicFlag);
PendingIntent pit= PendingIntent.getActivity(this, 0, it, 0);
remoteViews.setOnClickPendingIntent(R.id.btnMyButton, pit);
....(略)
上列是我在寫AppWidget時的程式片段,這段程式主要是要在App Widget上的按鈕按下時,開啟某Actitity(並傳遞myFlag extra值給該Activity)以顯示所需資訊,但當我在MyActivity取得myFlag值時卻一直都是0,百思不解,後來修改程式,將PendingIntent.getActitity的最後個參數換成:
PendingIntent pit= PendingIntent.getActivity(this, 0, it, PendingIntent.FLAG_UPDATE_CURRENT);後竟然就正常了~
關於該參數該使用那個FLAG請參考:
http://developer.android.com/reference/android/app/PendingIntent.html#getActivity(android.content.Context, int, android.content.Intent, int)
http://stackoverflow.com/questions/4472447/confusing-behavior-when-starting-new-activity-with-pendingintent/5013713#5013713
2011年2月11日 星期五
Eclipse 3.6.1的儲存動作(Save Actions)功能
所謂的 儲存動作(Save Actions)功能 ,就是在儲存檔案的時候自動的作些附加的處理,
詳見:
http://java.dzone.com/tips/eclipse-save-actions?
utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+javalobby/frontpage+(Javalobby+/+Java+Zone)
2011年2月10日 星期四
關於 動態Android App Widget大小 的討論 與 一個範例
關於 動態Android App Widget大小 的討論:
http://groups.google.com/group/
android-developers/browse_thread/
thread/17d79c52a1e4f83d?pli=1
App Widget範例 Android-SKY天氣預報widget:
http://code.google.com/p/android-sky/
http://jsharkey.org/blog/2009/04/24/forecast-widget-for-android-15-with-source/
2011年1月28日 星期五
Android App Widget偵測螢幕方向變換以作相對應處理
Android App Widget偵測螢幕方向變換
以作相對應處理
程式範例請參閱:
http://stackoverflow.com/questions/
2610536/android-how-to-get-a-
widget-to-recognize-when-the-
phones-orientation-has-change
2011年1月21日 星期五
Android與Google Spreadsheet Data API
今天在Android的專案中使用Google官方下載的Spreadsheet Data API jar檔,
寫了程式要從Google試算表擷取資料,沒寫到在模擬器執行時卻發生了錯誤:
ERROR/AndroidRuntime(3522): *java.lang.VerifyError: com.google.gdata.client.Service*
我寫了一個下午的程式沒想到在執行時才知道,真是浪費我的生命呀~
找了資料似乎一直沒看到有人提到在Android中存取Google Spreadsheet的java library,
在努力不懈找了許久發現了這篇網誌:
Google SpreadSheet Library for Android
網誌作者提到說自己開了個專案,主要就是開發一個能在Android上存取Google Spreadsheet的library,該專案已經hosting在Google code了:
http://code.google.com/p/google-spreadsheet-lib-android/
找時間在試試看了,先感謝這位印度的Prasanta Paul囉~
另外,Google Spreadsheet列數、欄數、儲存格數限制請參考:
http://www.google.com/support/forum/p/Google%20Docs/thread?tid=6248d49306db8a85&hl=en
2011年1月20日 星期四
Proguard.cfg(the file can't find)
今天在Eclipse開新的Android專案時發生了
Proguard.cfg(the file can't find)
錯誤, 解決方法請參照:
http://blog.csdn.net/Baiduluckyboy/archive/2010/12/22/6091677.aspx
2011年1月18日 星期二
GAE/j 上實做分頁
撈取大量資料時,使用分頁的方式避免效能問題是常見的方式...
但在GAE上的data store畢竟不是RDBMS,不是直接使用JPA 或JDO api就可以無痛使用~
目前在網路上找到的相關網頁如下:
- JPA
- http://groups.google.com/group/google-appengine-java/browse_thread/thread/5223215ff24c3b3e/d22297d1d76a9c8b?pli=1
- http://code.google.com/p/datanucleus-appengine/source/browse/trunk/src/org/datanucleus/store/appengine/query/JPACursorHelper.java
- http://blog.vivavivu.com/2010/11/gae-full-text-search-with-jpa.html
- JDO
先記下來,有空再來實做看看是否OK,再和大家分想囉~
2011年1月6日 星期四
GAE/J 的servlet request計時器與cron service
在GAE上寫了程式要透過cron服務排程來撈取網頁資料存進data store,
當寫好servlet直接使用瀏覽器觸發servlet url執行, 由於我撈的資料較多處理時間較常,沒想到就出現了exception了。
原來在GAE上的request是有時間限制的,若request進來處理了30秒還沒完成就會被終止並丟出exception,詳閱: http://code.google.com/intl/zh-TW/appengine/docs/java/runtime.html#The_Request_Timer。
GAE上的排程乃是經由定義cron.xml讓GAE的cron service在設定的時間點或區間觸發我們servlet程式的URL。
然而好消息是最近新的GAE1.4版,把Cron service的30秒限制拿掉了,也就是說經由Cron觸發的servlet的最大處理時限是10分鐘,太棒啦。(詳見:http://googleappengine.blogspot.com/2010/12/happy-holidays-from-app-engine-team-140.html)
另外發現許多的GAE英文文件在中文的文件中是沒有的,比如說像是Task Queue(http://code.google.com/intl/en/appengine/docs/java/taskqueue/),所以看完中文版的官方文件(http://code.google.com/intl/zh-TW/appengine/docs/)後還是要再去逛逛英文版的文件(http://code.google.com/intl/en/appengine/docs/)看看有沒有其他可參考的有用資訊~
另外有個東西讓我搞了很久,就是cron.xml裡面若有中文字可是會Deploy失敗的~
2011年1月1日 星期六
Google Developer Day 2008 Taiwan - GData API
http://sites.google.com/site/developerdaytaiwan/google-developer-day-2008-taiwan/gdata-api
這是一個介紹Google Data API的課程,雖然是2008的課程活動,但相當簡潔清楚,推薦想用GData API的同好可以參考一下~
這是一個介紹Google Data API的課程,雖然是2008的課程活動,但相當簡潔清楚,推薦想用GData API的同好可以參考一下~
2010年12月31日 星期五
GAE上使用JPA的inheritance
GAE/J上的data store並不是關聯式資料庫所以對於JPA不的功能並不是百分百的支援,像是對於JPA對應於物件繼承的支援就只支援InheritanceType.TABLE_PER_CLASS
(關於InheritanceType.TABLE_PER_CLASS詳見:http://caterpillar.onlyfun.net/Gossip/EJB3Gossip/TableperConcreteClass.html),若是指定其他InhreitanceType則在執行時會拋出Exception~
另外JPA Query物件的方法getSingleResult()若撈取到無資料料會丟出NoResultException,若撈取到的資料超過一筆會丟出NonUniqueResultException。而getResultList()若撈取無資料則會傳回一個size為空的List物件(詳見:http://download.oracle.com/javaee/5/api/javax/persistence/Query.html#getSingleResult())
(關於InheritanceType.TABLE_PER_CLASS詳見:http://caterpillar.onlyfun.net/Gossip/EJB3Gossip/TableperConcreteClass.html),若是指定其他InhreitanceType則在執行時會拋出Exception~
另外JPA Query物件的方法getSingleResult()若撈取到無資料料會丟出NoResultException,若撈取到的資料超過一筆會丟出NonUniqueResultException。而getResultList()若撈取無資料則會傳回一個size為空的List物件(詳見:http://download.oracle.com/javaee/5/api/javax/persistence/Query.html#getSingleResult())
2010年12月22日 星期三
jQueryWTP - 讓你在eclipse寫jQuery時也有程式碼提示
寫java程式的工程師是很幸福的,隨便一款IDE都會有程式碼提示功能,那麼在寫jQuery script時呢?
有的。如果你使用Eclipse,使用jQueryWTP就可以達到。jQueryWTP並不是Eclipse的plugin,他只提供一個工具來patch現有的Eclipse WTP plugin 來加入對jQuery的支援~
話不多說,就裝來用用看吧~
話不多說,就裝來用用看吧~
- 首先到http://sourceforge.net/projects/jquerywtp/下載jQueryWTP 工具,我使用的Eclipse是Helios(3.6)的JavaEE英文版,在這我便下載了jqueryWTP0.40foEn.jar
- 執行java -jar jqueryWTP0.40foEn.jar
〔Jar File〕選擇你eclipse\plugin目錄下的org.eclipse.wst.jsdt.core_?????.jar
〔Output Folder〕選擇另一個暫存的資料夾,這裡我先選存到我的桌面
按下Generate會在〔Output Folder〕產生一新的org.eclipse.wst.jsdt.core_?????.jar
- 先備份你eclipse\plugin目錄下的org.eclipse.wst.jsdt.core_?????.jar,在將新產生的org.eclipse.wst.jsdt.core_?????.jar覆蓋掉原本eclipse\plugin目錄下的檔案
- 接著使用-clean參數來執行eclipse (用來清除plugin快取,使新的jar生效)

- 接著開啟你的eclipse,就可以快快樂樂的在Eclipse裡面使用jQuery的程式碼提示功能囉~爽的啦~

另外,如果你使用DreamWeaver也想要有jQuery程式碼提示功能,可以到http://xtnd.us/dreamweaver/jquery下載jQuery Extension for DreamWeaver來使用~
2010年12月13日 星期一
HibernateTransactionManager 與 TransactionDefinition.PROPAGATION_REQUIRES_NEW
關於Spring+Hibernate裡設定HibernateTransactionManager的TransactionDefinition.PROPAGATION_REQUIRES_NEW一直都沒有作用,
關於問題描述可參考此篇: http://forum.springsource.org/archive/index.php/t-50039.html
一直不了解為什麼?
搞了半天原來只有JTATransactionManager支援REQUIRES_NEW,
詳參考: http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/transaction/TransactionDefinition.html#PROPAGATION_REQUIRES_NEW及以下截圖:
![]() |
| 點圖放大 |
蔡董,原來一切都是我們把它想得太完美了...
2010年11月30日 星期二
基於JAVA的開源碼RIA - Apache Pivot
相較於Java FX令人懷疑的前途,Apache Pivot相對穩健。
或許Java FX非常"炫",但體驗過Pivot後相形下執行很順暢。
Pivot能以Java 或其他JVM language(如Groovy、JavaScript等)開法,可以Standalone方式或是Applet方式執行。
Pivot和Swing一樣是Base on Java2D,也使用MVC pattern來分離元件與資料,此外它還有宣告式的UI(WTKX: XML方式宣告UI)、data binding、web service整合、特效等功能。
或許Java FX非常"炫",但體驗過Pivot後相形下執行很順暢。
Pivot能以Java 或其他JVM language(如Groovy、JavaScript等)開法,可以Standalone方式或是Applet方式執行。
Pivot和Swing一樣是Base on Java2D,也使用MVC pattern來分離元件與資料,此外它還有宣告式的UI(WTKX: XML方式宣告UI)、data binding、web service整合、特效等功能。
- 關於基本的介紹可參考:
Pivot a Top Project: Ready to Challenge Flex, Silverlight, and JavaFX - Apache Pivot官方網站:
http://pivot.apache.org/index.html - Apache Pivot Demo:
http://pivot.apache.org/demos/
2010年11月26日 星期五
Amazon 雲端服務免費試用 - AWS Free Usage Tier
Amazon最近終於在2010/11/1為其雲端服務提供了免費方案,以提供新客戶能在有限的額度內體驗、評估Amazon的雲端服務。
Google App Engine在很早前就可以在有限額度的免費使用了。
Amazon如今總算是敞開了試用的大門了。
關於AWS Free Usage Tier請參考:
詳細的中文介紹,可參考 軟體玩家 的文章:
Google App Engine在很早前就可以在有限額度的免費使用了。
Amazon如今總算是敞開了試用的大門了。
關於AWS Free Usage Tier請參考:
詳細的中文介紹,可參考 軟體玩家 的文章:
2010年11月17日 星期三
ChinShelf勤學 學習資源管理系統
如果你也和我一樣有下載蒐集電子書的習慣,或許可以試試看這套軟體「ChinShelf勤學 學習資源管理系統」。
ChinShelf可以用來管理、紀錄您電腦裡的電子書(PDF、CHM、DOC等)、教學網頁書籤、您轉存在電腦硬碟裡的教學光碟等,該系統使用Java開發,只要有安裝Java 6執行環境的電腦都可以安裝、使用該系統。
ChinShelf以GPL v3授權發布,原始碼開放並Hosting在Google code專案代管。
ChinShelf的專案網址:http://code.google.com/p/chinshelf/
ChinShelf的下載頁面:http://code.google.com/p/chinshelf/downloads/list
訂閱:
文章 (Atom)



