2009年2月26日 星期四

Hibernate的延迟加载,一个锋利的两面刀

老紫竹的文章

延迟加载是罪魁祸首,所谓“成也萧何,败也萧何”。

我有时发现查询速度很慢,检查才发现是我没有启用延迟加载,造成递归的数据都被加载进来了。

我如果加上了延迟加载,那么许多页面将无法使用,必须在程序里进行代码级别的递归的延迟加载数据的读取。

这里面涉及到的策略太麻烦了。

对于关联少,层次低的,用着没问题,一旦层次太多了,我宁可放弃面向对象,改用单纯的一个表,一个对象的策略,都保存字段就行了。

需要别的关联的数据,我宁可再次读取,毕竟有缓冲,速度影响不是很大的。而且单表的缓冲,性能绝对好。

还有对于 opensessioninview 这个东西,感觉上可以解决这个问题,但实际上,为了这是为了解决延迟加载而做出的一个愚蠢的决策。

对于使用量很小的,没啥可讨论的,怎么做都没关系,对于使用量大的

1 对于小数据量,我宁可让其非延迟加载,这样可以尽快的释放数据库资源,特别是一些锁。

2 对于大数据量,我想我们需要一个专门的类来保存操作结果,让其只返回我们需要的东西,而不是用什么延迟加载。比如我们一个订单查询,只用到了客户的名字,我们完全没有必要延迟加载客户的其它信息。

不同的需求,不同的技术,hibernate之类的ORM带给我们很多的方便,但我们千万不要认为其是”万金油“,在影响性能的关键地方,别忘了我们最基本的数据库操作。


Late load (延迟加载) 本身就是要看需求而決定的方式,沒有一種方式是走遍天下,這需要靠經驗才能做出好的設計,若是一招吃遍天下,軟體設計就沒有好玩的地方了。





工研院成為全球WiMAX Forum董事會成員

工研院成為全球WiMAX Forum董事會成員

ZDNet新聞專區 2009/02/25 19:21:01 工研院於2月初成為全球WiMAX Forum新的董事會成員,未來將實際參與制訂WiMAX Forum的全球發展方針與決策,推廣台灣寬頻無線產業與全球WiMAX的佈建應用

WiMAX Forum在2001年由英特爾、諾基亞與Alvarion等創建。全球目前共有530家會員,會員層級分為一般(Regular)會員、主要 (Principal)會員及董事會(Board)成員三種。台灣目前有39家會員廠商,包含1個董事會員以及15個主要會員。

WiMAX Forum目前有17個董事會成員,包括英特爾(Intel)、摩托羅拉(Motorola)、三星(Samsung)、諾基亞(Nokia)、富士通 (Fujitsu)等大廠,都是對推動WiMAX產業有貢獻的廠商,負責制定全球WiMAX產業推廣策略與產品認證規範。

近 年來台灣在推動WiMAX產業的發展不遺餘力,也受到全球WiMAX產業的高度肯定。2月初工研院資通所謝慶堂博士赴美國奧蘭多參加WiMAX Forum全球會員大會,並在董事會中進行簡報,正式申請工研院成為董事會成員,經過現任董事討論之後,工研院順利獲得通過成為新的董事會成員,未來將由 工研院資通所林寶樹所長代表工研院擔任董事,為台灣資通訊廠商建立一個與世界對話以及掌握技術先機的平台。

自從2005年政府開始進行「行動台灣」(M-Taiwan)及WiMAX 加速計畫以來,台灣已形成完整的WiMAX產業生態鏈。2008年,台灣在全球WiMAX CPE市場已有90%的市佔率,以及高達2億美金的產值,未來兩年預估將有三倍的年成長率

台灣與WiMAX Forum合作密切,除了在台成立兩個認證實驗室,WiMAX Forum於2007宣布成立台灣辦公室,任命工研院資通所工程組長謝慶堂為WiMAX Forum台灣辦公室主任。同年,全球首座WiMAX Forum應用實驗室 MTWAL (M-Taiwan WiMAX Applications Lab) 在工研院新竹院區設立,提供業者來此應用場域測試其最新發展的WiMAX應用與服務。


2008 年 WiMAX CPE 市場已有 90% 的市佔率? 是指的生產手機還是使用率, 2008 應該一家都還沒有開台吧...

2009年2月25日 星期三

好用的 jconsole

最近上線的系統加記憶體到 16G
為讓 JDK 的 Heap memory size 選項選項可以擴充到 8GB
專案所使用的 weblogic 的參數需要設定 -d64 選項告知 JVM 將採用 64 bit 定址
Heap memory 才可以超過 4GB 的限制
當然實體記憶體也要有才行
(對了, 專案採用的 OS 為 64bit Solaris 10)

裝完後如何觀察呢?

可利用 jconsole 來監視 Java 程式使用資源
jconsole是jdk 一併出貨的的應用程式(Jconsole應用程式位於$JDK_HOME/bin目錄下)
可以使用 jconsole 監視本地應用程式和遠端應用程式。
注意:在SIT/UAT 階段,使用jconsole監視本地應用程式是很有用的,不建議在 Production 中運行
我建議使用遠端執行jconsole,因為jconsole 也是挺吃資源。

$JDK_HOME/bin/jconsole 就可以直接執行了

登錄時選擇 remote tab,並輸入對應的 IP 與 port
port 的號碼要看 Server 端的設定 (-Dcom.sun.management.jmxremote.port=9005)



有圖有證據


系統執行參數

VM Information
Java Virtual Machine:
Java HotSpot(TM) 64-Bit Server VM version 1.5.0_07-b03
Vendor:
Sun Microsystems Inc.

VM arguments:
-Xms8192m -Xmx8192m -XX:PermSize=256m -XX:NewSize=2048m -XX:MaxNewSize=2048m -da -Dplatform.home=/application/bea/weblogic92 -Dwls.home=/application/bea/weblogic92/server -Dwli.home=/application/bea/weblogic92/integration -Dweblogic.management.discover=true -Dwlw.iterativeDev=false -Dwlw.testConsole=false -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=/application/bea/patch_weblogic923/profiles/default/sysext_manifest_classpath -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9005 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false



2009年2月23日 星期一

政大香香

今天下班坐綠一公車回家
到政大想要去波波恰恰祭一下五臟廟
在政大轉彎時
眼睛喵到政大旁邊的香香自助餐還挺多人的
7:30 pm
心中突然想起之前有政大畢業的同事提過這家
好吧
換換個口味
一進店面,就覺得菜色還滿多的
選了兩菜兩肉
結帳時 (重點來了)
老闆嘴巴不知唸了我聽不懂的話
之後又冒了一句 650
因為我知道他習慣加0 在最後的金額
因此見怪不怪
付了 500 找 445

菜的份量不少,加一碗飯 (小)
在台北哪找的到這麼便宜又份量夠的餐廳?
真羨慕我住在政大附近 :)

不過一好沒有兩好
環境稍微差了點
老婆大人肯定不會進來的 :(






2009年2月21日 星期六

程式語言市場回顧 (2009)

09年2月编程语言排行榜:商业编程语言的王者之争


2009年2月Tiobe编程语言排行榜发布,前十位的排名没有太大变化,C语言在取得了08年年度编程语言后增势迅猛,相比去年同期增长了0.98%。 本期前20名的榜单中,两种同样以商业数据处理擅长的编程语言COBOL和RPG的排名变化值得我们关注。COBOL本期跌出前20名,本期排在22位 (上期排名17);RPG语言进入前20名,排在第19位(上期排名21)。

2009年2月榜单



以下是排名21到50的语言



华为在世界通信大会上全球首家展示4G技术

LTE 開始要進入 4G 市場了
看以下的消息


(网易科技讯 2月16日消息)

在巴塞罗那举行的世界移动大会(Mobile World Congress)上,中国电信巨头华为技术有限公司展示了世界上首个为移动运营商所设计的统一化4G系统。这也意味著,华为已经在4G技术上达到了全球先进水平。

华为公司表示,这台名为FDD/TDD-LTE的设备将提高无线电频谱资源的使用效率,另外,移动运营商也能够借助这台设备来提供高品质的移动宽带网络,并且能够大规模的削减其运营成本,从而使得运营商在日益激烈的竞争中获得更多的客户及市场份额。

华为公司无线产品部门的负责人表示:“华为公司希望通过公司自身的努力,能够为全球电信网络的发展铺平道路。我们认为,通过研发那些具有创新性的产品,则 有助于公司完成这一目标。华为此次所推出的4G系统,能够使移动运营商简化并有效整合其网络,从而满足未来移动设备发展的需要。”

实上,华为公司的4G技术在此前已经得到了业界的承认。
今年1月,北欧地区最大的电信运营商TeliaSonera与华为公司签署了全球第一份LTE(4G)商业合约
另外,摩托罗拉公司目前正在英国进行4G网络建设方面的尝试。





License4J v1.5 is released

要保護您的軟體心血嗎?
加道鎖吧 license4j

不過您的軟體還是要有 Value 再作吧.
另外還需要配合客戶管理才算全套的 Solution.

相關消息:
License4J is a pure Java library for creating and validating licenses.

The key concept is
features of a license.

You can easily add any feature to your license file, i.e. name of the product, version, expiry date, number of executable instances, customer's name, company, IP address, etc. The feature's value can be string or any serializable Java object. You can have unsigned features - features that are not used in the signature generation/verification and therefore can change their values leaving the license valid.



2009年2月20日 星期五

理所當然

(2009/02/20據中廣新聞報導)

愛爾蘭警察過去幾年一直有個困擾。有個波蘭去的駕駛人,違規駕駛五十多次。違規地點有五十多個。警方到處查訪卻一直找不到這個人。

最近有個聰明的警察發現了這個天大的秘密。前些年,愛爾蘭經濟好,有二十多萬波蘭人移居愛爾蘭。他們帶著波蘭駕照進入愛爾蘭,直接換愛爾蘭駕照。愛爾蘭監理單位也不問,照著葫蘆畫瓢,把波蘭駕照右上角,也就是愛爾蘭駕照填寫駕駛人姓名的地方的兩個字,當成駕駛姓名抄了上去。實際上,波蘭駕照右上角的兩個字是波蘭文「駕照」的意思,根本不是人名。

愛爾蘭警察到處找一個叫駕照的波蘭人當然找不到。實際上,違規的有五十多人,名字不詳。愛爾蘭警方知道這個秘密以後立刻發布了一份內部文件,告訴大家發現駕照上有那兩個字的駕駛人要立刻問清楚他們的姓名、地址,通報監理單位

不知道大家做事的態度是否像聰明的警察會發現這個問題還是只會說"人家都這樣做,我這樣做也不會出事"






1-800-GOOG-411

在美國的話可以撥 1-800-GOOG-411
這支電話可以作甚麼呢?

1. 免費 (Google 喜歡玩這套,可說是為未來的 business 鋪路)
2. 他會問您在哪裡? (Naples, Florida)
3. 他會問您要哪種服務 (Pizza)
4. Google 就自動幫您接通 Pizza 電話了

台灣不知道何時有這種服務呢?





1-800-GOOG-411: Google's 411 service

2009年2月18日 星期三

金融危機10項注意

網路傳的笑話...
一:不要辭職,不要換工作,不要轉行,不要創業。
二:不主動要求老板漲工資,裁員往往從高薪員工開始。
三:多幫朋友留意工作機會,多聯繫多介紹,輪到自己找工作時朋友才會幫你。
四:存錢,存黃金、存自己的實力!
五:千萬別買車買房,到危機最嚴重時便宜的跟白撿一樣。
六:危機的后期最難過,現在僅僅是開始,別覺得自己很強,很能幹,連花旗通用都抗不住,你算個屁。
七:未婚的別結婚,結婚的別離婚,沒孩子的現在別生,盡可能的降低成本,危機過去再說。
八:就算還沒感覺危機,也應該日子緊著過,用以前70%的錢過現在的日子
九:不要幻想搶銀行,成功率很低,活捉率很高,搞不好就地槍斃。
十:拉屎的時候要留一半,免得餓的太快。(←這個會不會太強人所難了點啊)
第十項也太難了吧~~~

Vlookup

Excel 的 vlookup 利用對應的參數找到對應的值

語法

vlookup(v1, range, column, boolean)

說明

v1: 找的值
range: 找的範圍
column: 找回來的對應欄位
boolean: true 採用最接近的值, false exact match


範例

vlookup(a1, range, 2, false)

a1 表示欄位中的資料
range 找尋的對象(或是 $c$1:$d$10)
2 傳回第二個出現的欄位值
false 比對方式採用完全相同 (若找不到會傳回 N/A)


好用!







2009年2月14日 星期六

抓取 MP3 Info

之前對於"來路不明"的 MP3
可能只有知道其中的檔名...囧ing
不知道原唱為何?
出至哪一張專輯的第幾首歌?
或是哪一年度發行的?

早上老哥跟我提到他發現 WinAMP 的 Auto-Tag 功能很神
我試了一下
果然是不錯
在 Winamp 5.5 之後提供 Auto Tag 功能
他利用音樂檔的檔案名稱或是相關的資訊 如 ID3 等資料
向網路資料庫進行搜尋
最後就會帶回音樂檔案的出版資訊

以下作一個範例
在Winamp 中選擇一個撥放清單中的的歌曲
按下 ALT + 3 就會出現以下畫面



果然是來路不明的檔案,連誰唱的都不知道,很好.
按下上面畫面的右下角 Auto-Tag 功能
系統出現一個對話框,表示他要去某個資料庫去檢索資料



結果找到了,回傳訊息就在以下的資料中
果然厲害,原來是 Enya 的 The Celts 專輯










英文英聽練習



想要測試自己的英聽能力嗎
介紹一個不錯網站

http://www.esl-lab.com/

這個網站主要提供學習英文人員聽力與字彙學習
程度從簡單到很難 (Easy -> Very Difficult)
內容從一般對話到商業對話
而且是不用錢的

有空試試看吧






2009年2月11日 星期三

秦味館

老婆大人生日 (農曆)
由我作東請全家吃飯
席設秦味館
這家陝西風味館口味較重
其中麵食麵條作法就與一般不同

其中點了
燒羊肉湯泡膜
小蔥羊肉拌麵
油潑麵
酸嗆土豆絲
秦味沙津
比翼連理 (一魚三吃)
甜點:核桃酪+奶香烤饅

當天用餐人數不少,進進出出
生意相當不錯
六日用餐一定要先訂位

環境設計以陝西地方為背景
無意間發現
座位邊的小牆還掛著三雙手編的草鞋
熱水瓶還是台灣20 年前膽式熱水瓶
音樂搭配著陝西地方民謠
牆上則充滿了不少名人的簽名

那天平均消費一人近 400 元
嚐鮮的人可以試試看


2009年2月9日 星期一

2009 台北燈會

2009 台北燈會剪影

今年以牛年為主題
到處都可見
牛氣沖天
牛轉乾坤
哞哞聲不斷

市府前人潮不斷
大人小孩頭上都戴上牛角小燈飾
展往今年有一番牛勢作為



2009年2月6日 星期五

打地鼠 (Whack-A-Mole)

手邊的案子就要結案了
客戶的問題也不斷反映進來
有時感覺像打地鼠一樣
一個一個接招
又不斷的反映回去
有人覺得很煩
我到覺得這就是看從那個角度看
是系統的問題
還是需求的問題

問題來的就是要解決
解決問題後面的問題才是學問

想到之前看到的一本好書 (QBQ, Question behind the Question)
這本書一開始就開宗明義的告訴你
「QBQ的精髓是:藉由提出更好的問題,當下做出更好的抉擇。」

什麼是提出更好的問題呢?作者提出三項指導原則:

1. 以「什麼」或「該如何」這兩個詞來發問,而不是:「為什麼」、「什麼時候」或「誰」
2. 包含「我」字在內,而不是「他們」、「我們」、「你」或「你們」
3. 把焦點放在行動上



2009年2月2日 星期一

上班了

放了九天假
大家又要回到工作崗位上
不知大家這九天過的如何?
今天早上大概 4 點
在睡夢中救聽到有人放鞭炮

大概是驚覺過年的鞭炮沒放完?
還是慶祝要上班了?
還是別有用心?

不知道

這九天真的放假放了三天吧
看了兩天書
趕了四天 proposal
寫了20篇 blog
看了7部電影
真是充實






2009年2月1日 星期日

程式設計員的演進

The Evolution of a Programmer
談到程式設計師從學寫程式到管理過程中對程式的感覺(還挺幽默的)
看完後
我好像還沒到 Middle Manager 的程度 :()

回想我學過及用過的程式


(+) Basic/ Basica/ GWBasic/ QuickBasic/ HBasic
(+) C
(+) C++
Logo (8088 的年代, 小烏龜爬行進行曲, 現在搞不清楚當初為何要玩他?)
Fortran (天啊, 快忘光了)
(+) Pascal
(+) 8088 Assembly (拿來破 Game的密碼及變成無敵)
Lisp/ AutoLisp
dBASE/ Clipper ( Dr. Compiler 703, 804 不知道還有人記得這個 Compiler?)/ Foxpro
ML (Meta language,  碩士論文還在用,現在已經忘光了)
(+) Delphi
(+) VBA
(+) TCL
(+) JavaScript
(+) Java
(+) Oracle PL/SQL
(+) C#
Action Script (用了兩個月在專案上,後來就放掉了,切)


有些已經退出市場,有些還在記憶中,有些只能懷念
程式語言永遠都有新的 Idea 或概念
讓程式語言不斷更新與前進
學習真的是條走不完的路啊...







使用 Scribefire

這一陣子在寫自己的 Blog
發現 Blogger 的編輯功能有點簡單
因此再找尋比較 Powerful 的編輯工具
Google 後發現大家都推薦 ScribeFire
因此 download 他的 plug-in 試試看

最棒的事可以離線編輯後,事後再將文件發佈到 BLOG



圖型可以很簡單的上傳




從 Flick 取出的母校 Logo (挺 easy)


Nokia N85 Video Review (從 Youtube 抓下來的 Link)