網頁
▼
Tuesday, December 25, 2012
[東門] 永康牛肉麵
聖誕節的傍晚,與Brian相約要來吃兩岸經貿總是很累的老師推薦的「永康牛肉麵」,我到的比較早,所以在金華國小旁的長椅上享受了一陣子的悠閒,看著路人、遊客來來去去,沒多久之後Brian也到了,還好這時候還沒開始排隊,趕快進去坐下點餐。
店內有各式小菜,只有兩種價位40或60,看內容大概就知道多少錢了,我點了小黃瓜(40)跟炒牛筋(60),小黃瓜清脆爽口入味,牛筋滑嫩有嚼勁又不膩,都很好吃。到的時候很多小菜都現做出來不久,還熱騰騰的。
點的麵是小碗的紅燒牛肉麵(180),店員說湯頭有微辣,我喝起來是無感,但是Brian說有感覺到辣,所以應該還是有XD 麵是細麵,看來是沒得選,煮的ok,不會過軟或硬,湯是傳統的豆瓣醬紅燒湯頭,還不錯,不過不會讓我想全部喝完,牛肉份量不少,鬆軟入味,應該有人比較愛這味,可惜我比較愛吃來有點勁的;整體而言,這個紅燒牛肉麵是可以說好吃的,但是配合上價位就沒辦法讓人想常常去吃,180算有點高了,我認為以這個品質,價格設訂在150~160會比較吸引人,不過以永康牛肉麵的招牌,他原本的價錢就大排長龍了,倒是我想太多XD
Saturday, December 22, 2012
[東區] もしもし串炸
Monday, December 17, 2012
CELOX止血粉 - EDC內的急救用品
日前從Amazon買了一些裝備,CELOX止血粉也在其中,我買的是這個CELOX First Aid Temporary Traumatic Wound Treatment 2g, 10-Pack,簡單來說,就是2公克小包裝的十包止血粉組合,拿到之後很久沒空去理它,直到前陣子抽空買了紗布與固定用的透氣膠帶,我才把CELOX放進EDC包包內,天天隨身攜帶。
CELOX是MedTrade這家英國公司的產品之一,它是個簡易使用,能停止可能致命之出血的產品,與血液混合後,可以在30秒內形成膠狀凝塊阻止出血,使用上不會產生熱量、造成灼傷,經過米國FDA認證與class 3 CE Mark standards,同時也被美軍與英軍採用(不過他們是用大包的)....簡單介紹一下,懶得打很多,若要看更多資訊可以看官方的產品介紹還有常見問題。
再簡單列一下CELOX的適用範圍好了
- 大範圍出血傷口
- 動脈與靜脈出血
- 表層與深層傷口
- 撕裂傷、擦傷與輕微割傷
於是乎,我將十包裝的CELOX粉末拿出五包,空出來的空間放入小片紗布與透氣膠帶(自黏繃帶比較大,所以選膠帶),這樣就很輕便攜帶了。
有空再來介紹我EDC包包內的東西....希望世界末日前來的及。
Friday, December 14, 2012
[台北] 太原路瓶胚購買
好幾年前買Surefire 6P Led的時候,順便買了一盒SF123A(Surefire的CR123A),賣家給我的時候有附了一個瓶胚裝電池給我,那時候還不曉得那是什麼東西,後來看了青石社長的這篇文章"寶特瓶胚的妙用"後,才知道這東西叫做瓶胚,而且這東西輕便便宜,防水、抗壓、耐摔,所以前陣子隨著Surefire Fury順便買了兩盒電池,要放到避難背包,想來想去,看起來寶特瓶胚會是個很棒的電池容器,於是有天下班就跑去買了。
我是先跑去西門町後面的環河南路找,問了很多店,結果店家連寶特瓶胚是啥都沒聽過,後來就跑去後火車站太原路那邊找,同樣也是繞很多店都沒有,最後在一家很亂的店終於問到,而且價錢蠻便宜的,於是買了五支回家。
在店裡跟老闆聊天,才知道其實有不少人結婚時是拿寶特瓶胚去裝巧克力、糖果的,真是出乎我意料的用途,然後老闆也說不少登山社會買去裝電池,跟我的用途差不多。
結果後來到家把SF123A(CR123A)裝進去時,發現這家店的瓶胚內部管徑小了一點,SF123A可以硬塞進去,但是大概就拿不出來了,所以只好再找時間去太原路挖寶,找來找去,後來又找到一家賣瓶罐的店有賣,這次我記取教訓,身上有帶著EDC,所以直接拿出電池比對,發現可以剛好放的下,於是又買了五支回家。
我問老闆能不能拍型號,他一開始蠻忌諱價錢外流這件事,但是知道我會上網分享後,就同意遮住價錢讓我拍照(但是老闆忘記了每隻瓶胚上都有貼售價XD),如果各位怕買錯瓶胚不能用可以參考一下,但是每家店的型號很可能不一樣,這隻叫28牙瓶胚,找到同一家店再來買會比較穩一點。
最後順便幫老板廣告一下,店名龍洋膠業有限公司,在太原路139號,電話是25523133。
Thursday, December 6, 2012
Wednesday, December 5, 2012
Tuesday, December 4, 2012
[jQuery] Get elements count in element
取得某個元素中的某物件數量
今天有人問我一個問題,他要取得一個span裡,某個span後所出現的img數量,感覺上不是個太複雜的問題,於是研究了一下就弄了範例出來,也順便貼上blog當作備忘。
先來看範例一,這邊按下去會跳出裡面有幾張圖(抱歉去背失敗XD)。
這邊只有一張圖
Monday, November 26, 2012
Wednesday, November 21, 2012
[C#] Dynamic Calling Method by String 用字串動態呼叫方法
有同學問了我一個問題,他有一個 Class 裡有一堆 Method ,因為每個 Method 都對應不同情況去使用,目前是用 Switch Case 去判斷使用哪個方法,但是如果數量增加到上百上千的時候,還在用 Switch Case 感覺有點笨,於是想問問看能不能有方法去改得更聰明。
查了一下MSDN,發現有個叫做 Type.InvokeMember 的方法可以做到這點,我寫了個簡單的範例在下面,這根據所需還有很多變化方式可以做,就不一一列出了,有需要可以參考MSDN上的說明。
查了一下MSDN,發現有個叫做 Type.InvokeMember 的方法可以做到這點,我寫了個簡單的範例在下面,這根據所需還有很多變化方式可以做,就不一一列出了,有需要可以參考MSDN上的說明。
/// Dynamic Calling Method by String /// </summary> /// <param name="methodName">Method Name </param> /// <param name="stringParam">Parameter</param> public static void InvokeStringMethod(string methodName, string stringParam) { Type calledType = typeof(Program);//Program是我那個class的名字 calledType.InvokeMember( methodName, BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static, null, null, new Object[] { stringParam }); }
Friday, November 16, 2012
馬英九的歷史定位 : Ma the bumbler
馬英九在連任勝選之後,對外表示由於未來沒有選舉壓力,第二任期內將積極追求歷史定位而不是個人名利。近來又表示「台灣要增加國際能見度,一定要在各個領域都有傑出表現,都要積極地參與。」,可見馬英九多麼積極的想在歷史上,世界上留名,而就在今天,他的願望實現了。
今天國際知名雜誌《經濟學人》(The economist)刊出了一篇文章,名為「Ma the bumbler」,根據google大神表示,bumbler的意思是這樣:
文章內容可以看一下蘋果日報的這篇「《經濟學人》:笨蛋馬英九」,裡面有大致上的翻譯,反正簡單來說就是提了一些台灣近況還有事件,然後是這句"The country appears to agree on one thing: Mr Ma is an ineffectual bumbler.",這可是個國際認證的歷史定位啊.....,馬先生終於達成他的願望了。
經過國際認證後,在google搜尋bumbler ma,已經可以直接看到馬先生的照片了,這個定位應該是跑不掉的。
今天國際知名雜誌《經濟學人》(The economist)刊出了一篇文章,名為「Ma the bumbler」,根據google大神表示,bumbler的意思是這樣:
文章內容可以看一下蘋果日報的這篇「《經濟學人》:笨蛋馬英九」,裡面有大致上的翻譯,反正簡單來說就是提了一些台灣近況還有事件,然後是這句"The country appears to agree on one thing: Mr Ma is an ineffectual bumbler.",這可是個國際認證的歷史定位啊.....,馬先生終於達成他的願望了。
經過國際認證後,在google搜尋bumbler ma,已經可以直接看到馬先生的照片了,這個定位應該是跑不掉的。
Wednesday, November 7, 2012
[C#] Custom Class in StateServer / SQLServer
這是最近遇到的一個問題,解決之後覺得有價值記錄一下,於是就來寫這篇了。
ASP.NET的 session state 有幾種模式可以設定
一般常用到的模式會是InProc、StateServer、SQLServer這三種(Custom先跳過不理),InProc預設值通常是不會遇到問題的,但是如果你在開發時有用一些Custom Class(或是某些特定類別),那在Session State改成StateServer/SQLServer(以下稱為Session Server)時,就會遇到下面這個錯誤。
英文版
ASP.NET的 session state 有幾種模式可以設定
- InProc : 將session state存在那台web server的記憶體中。(預設值)
- StateServer : 將session stste存在特定的有開啟ASP.NET state service的機器上,這個模式在多台web server共用一台stste server的狀況下,可以在做web server重開、切換這些動作時,同時保持session存在,避免需要session的工作產生錯誤。
- SQLServer : 將session stste存到指定的SQL server中,效果同StateServer只是儲存媒體不同。
- Custom : 將session state存到自訂的儲存媒介內。
- Off : 不使用session
一般常用到的模式會是InProc、StateServer、SQLServer這三種(Custom先跳過不理),InProc預設值通常是不會遇到問題的,但是如果你在開發時有用一些Custom Class(或是某些特定類別),那在Session State改成StateServer/SQLServer(以下稱為Session Server)時,就會遇到下面這個錯誤。
英文版
Server Error in '/' Application.
Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode.
[SerializationException: Type 'MyCustomObj' in Assembly 'MyObj, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.]
'/' 應用程式中發生伺服器錯誤。
無法序列化工作階段狀態。在 'StateServer' 和 'SQLServer' 模式中,ASP.NET 將序列化工作階段狀態物件,因此不允許無法序列化的物件或 MarshalByRef 物件。在 'Custom' 模式中,自訂工作階段狀態存放區執行類似的序列化作業時,也會有同樣的限制。
[SerializationException: 未將型別 'MyCustomObj' (於組件 'MyObj, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' 中) 標記為可序列化。]
Wednesday, October 31, 2012
[好康] Dell Outlet Coupon (不定期更新)
由於之前買了Alienware M14X R2,後來Dell就開始寄Coupon給我,一開始還被Gmail放到垃圾信裡,還好我剛好翻到,分享到Facebook後也有人拿去用,Alienware再加一生力軍,之後陸續又收了幾次Coupon,想想Facebook不是個發佈這類資訊的好地方,所以弄了篇文章來固定發佈這些東西。
我拿到的Coupon通常都是屬於Home Desktop & Laptops 這兩類,有些人可能不知道怎麼找,所以我放連結在下面。
Dell Outlet Laptops & Netbooks
Dell Outlet Desktops & All-in-One
沒意外這兩個連結內的東西都可以用這個Coupon。
下面是Coupon分享,有人有Coupon想丟給我分享的也可以email過來。
類別 : Save 25% on any Dell Outlet Home PC priced $1,000 and up!
Coupon : WW$VTPVDH631DX
期限 : Offers expire 11/26 @ 11:59 p.m. CT.
類別 : Save 20% on any Dell Outlet Home PC priced $500 to $999!
Coupon : DMBH1FCV79FHBT
期限 : Offers expire 11/26 @ 11:59 p.m. CT.
類別 : Save 15% on any Dell Outlet Home PC priced up to $499!
Coupon : PHN09XCGSJ30FC
期限 : Offers expire 11/26 @ 11:59 p.m. CT.
類別 : Save 30% on any 19” Dell Outlet refurbished monitor!
Coupon : NMZWB8$DXHLBCS
期限 : Offers expire 11/26 @ 11:59 p.m. CT.
以下過期。
2012/11/15 update: 以下為Dell Outlet Home 48 Hour Sale,沒寫期限,我猜大概可以用到周末
類別 : Dell Outlet Home Desktop or All-in-One
Coupon : PBZD9CC7KZ$RSW
期限 : Dell Outlet Home 48 Hour Sale
類別 : Dell Outlet Alienware Laptop
Coupon : M?F8D9PBL0LGMF
期限 : Dell Outlet Home 48 Hour Sale
類別 : Dell Outlet Inspiron R Series
Coupon : P9SMT0Q$KKZ7BJ
期限 : Dell Outlet Home 48 Hour Sale
類別 : Dell Outlet Home Desktop & Laptops
Coupon : SC1NP?80L4H6CG
期限 : 2012/11/2 8:59am CT
類別 : Dell Outlet XPS Laptop
Coupon : WS677ZWZKTSD1S
期限 : 2012/10/13 9am CT
類別 : Dell Outlet XPS Desktop
Coupon : $Q2ZFZR9X7T3CZ
期限 : 2012/10/13 9am CT
類別 : Dell Outlet Alienware Laptop & Desktop
Coupon : 8$PS140SD99ST1
期限 : 2012/10/13 9am CT
類別 : Dell Outlet Inspiron Laptop
Coupon : GVGB3FRCC2NV9M
期限 : 2012/10/13 9am CT
Monday, October 15, 2012
LOL Season 2 World Champion : Taipei Assassins
雖然昨天很晚睡,早上也沒設鬧鐘,不過還是自覺地醒來看了比賽,第一場前面優勢不小,後來被逆轉後,我開始想到底要不要繼續看下去(因為之前沒看,TPA都贏),還好接下來三場TPA不負眾望,取得了勝利,身為一個LOL從美版Beta就開始推廣的玩家,在TPA走上領獎台的那刻,眼中充滿著淚水....
我想大家都看過比賽影片,頒獎影片了,所以我附上的影片是在總決賽時所撥的,這段五分鐘的影片,可說是League of Legends Season 2 的總結,一路從全世界的各區預賽選出12隊,到最後LA的各項賽程,全部濃縮在這個影片內,若有關心之前的各區比賽,可以讓你回想起很多片段,若最近才開始關心,這影片還是一樣的精彩。
希望在Riot的努力推廣下,電競市場能越做越大,也希望TPA在Season 3能繼續有如此好成績!!
Tuesday, October 9, 2012
[MSSQL] Adding a table/column description
今天同事接到一個需求,客戶強烈要求在DB裡的所有欄位都有說明,雖然我們有提供Schema說明文件,不過既然是客戶要求,那就只好照做了。
找了一下,發現有個系統提供的sp可以做到這點 sp_addextendedproperty (Transact-SQL) 說明看起來有點複雜,但是看懂後就還好,原本的語法是這樣的
實際上使用的話,如果要在某個欄位上加上說明,只要像下面這樣寫就可以了
如果只要在Table上加Description,level2那邊參數別給就好。
其實這個sp_addextendedproperty指令是用來新增擴展屬性的,所以要增加的屬性名稱可以自己修改,如果該表格/欄位已經有了同名的屬性,那就需要用sp_updateextendedproperty這個指令來做修改。
收工。
找了一下,發現有個系統提供的sp可以做到這點 sp_addextendedproperty (Transact-SQL) 說明看起來有點複雜,但是看懂後就還好,原本的語法是這樣的
sp_addextendedproperty [ @name = ] { 'property_name' } [ , [ @value = ] { 'value' } [ , [ @level0type = ] { 'level0_object_type' } , [ @level0name = ] { 'level0_object_name' } [ , [ @level1type = ] { 'level1_object_type' } , [ @level1name = ] { 'level1_object_name' } [ , [ @level2type = ] { 'level2_object_type' } , [ @level2name = ] { 'level2_object_name' } ] ] ] ] [;]
實際上使用的話,如果要在某個欄位上加上說明,只要像下面這樣寫就可以了
use YOUR_DBNAME; GO EXEC sp_addextendedproperty @name = N'Description', @value = N'你的說明', @level0type = N'Schema', @level0name = dbo, @level1type = N'Table', @level1name = TABLE_NAME, @level2type = N'Column', @level2name = COLUMN_NAME; GOYOUR_DBNAME, TABLE_NAME, COLUMN_NAME 請自行修改
如果只要在Table上加Description,level2那邊參數別給就好。
其實這個sp_addextendedproperty指令是用來新增擴展屬性的,所以要增加的屬性名稱可以自己修改,如果該表格/欄位已經有了同名的屬性,那就需要用sp_updateextendedproperty這個指令來做修改。
收工。
Sunday, October 7, 2012
Wednesday, October 3, 2012
[敗家] Surefire P2X Fury Dual-Output LED
圖片來自Surefire官網
這次要從美國寄電腦回台灣,順便就買了些不能直接從Amazon寄回台灣的東西,這個Surefire Fury手電筒就是其中之一,手邊原本有一隻Surefire 6P LED,但是想把這隻放進避難背包中,於是平常就沒得用了,所以只好再買一隻(為了敗家找藉口),看來看去這個Fury要亮度有亮度,要持久有持久,根本就是首選,原本一直卡在Amazon不給寄,看了很久這次終於可以順便下手了。
開箱、近照、燈杯...等等我就跳過了,這些應該很多人有貼過,我最近比較忙就只貼剛剛的測試結果。
下面兩張照片都是 ISO400 , F4.0 , 1/20sec拍攝
左邊是Fury低亮度,右邊是6P LED。
Fury低亮度的20流明確實是比6P LED的80流明暗了些(雖然6P電池用了好陣子)
左邊是Fury高亮度,右邊是6P LED。
一換到高亮度就不得了,立刻整個亮到過曝!!!! 還好6P照的地方離得夠遠,還看的到。
個人是覺得很滿意Fury,所以他會變成我EDC的裝備之一了。
最後附上Surefire官方拍的Fury介紹影片。
Tuesday, October 2, 2012
[敗家] Alienware M14X R2
不少電玩愛好者,心中總會有個小小願望:「如果有台Alienware的電腦那該多好」....我大概從七年前就有這個夢想,到了今天終於實現了這個小小的夢。
因為是購自美國Dell Outlet,沒得自選配備只能挑現成的,所以看起來不是很威猛,但是價格也就便宜了很多
_____Alienware M14X R2_____
Intel Core 3rd Generation i7-3610QM
NVIDIA GeForceGT 650M 2 GB DDR5
Killer Wireless-N 1202 a/g/n 2x2 MIMO for Gaming and Video and Bluetooth 4.0
750 GB SATA Hard Drive (7200RPM)
32GB mSATA caching SSD
8 GB Dual Channel DDR3 SDRAM at 1600MHz (2X4G)
14.0 Inch High Def+ (900p/1600x900) with WLED backlight
大致上的規格如上,拿來打電動夠用了,而電量也可以撐到四小時,對於我上三小時的課來說也夠用。
最後來貼分數,因為還是用硬碟所以分數只到5.9分,而且我開不開mSATA加速都一樣XD,看來要再上去就要用SSD了。
Saturday, September 29, 2012
Set Cassandra as Windows Service
[將Cassandra設成Windows服務]
1.假設你已經抓了Cassandra,然後放在D:\apache-cassandra-1.1.5,如果沒有的話,請至官網下載。
2.開啟command line模式(建議使用administrator權限開啟),到 D:\apache-cassandra-1.1.5\bin 下,執行 cassandra.bat install ,然後你應該會看到下面這個錯誤。
3.會有這個錯誤是因為缺了必須的檔案,在這邊先在 D:\apache-cassandra-1.1.5\bin 下建立一個叫做 daemon 的目錄。
4.去下載 Apache 的 Commons Daemon ,解壓縮後,將符合你系統版本的 prunsrv.exe 放到 D:\apache-cassandra-1.1.5\bin\daemon 下。
5.到 D:\apache-cassandra-1.1.5\bin 下,再次執行 cassandra.bat install,理論上你應該會看到 cassandra 這個服務已經註冊進去了。
6.到電腦管理內的[服務],將剛剛註冊的 cassandra 調成自動啟動(預設是手動),接著將其啟動,然後就大功告成了。
reference : Configure Cassandra as a Windows Service
主要是翻成中文並稍做調整,增加Cassandra中文資源
Thursday, September 27, 2012
[JS] HighChart with AJAX JSON
[NOSQL] Couchbase 初試
最近想弄個新東西,正在想DB要用啥,原本打算用之前用過的 Cassandra ,後來找到這個 Couchbase 感覺不錯,於是就來試試看了。
Couchbase 的前身是 CouchDB 跟 Membase ,2011年 CouchOne Inc.與 Membase Inc.合併後,推出了Couchbase 這個結合兩者優點的產品。 CouchDB 我沒查,但是 Membase 有著 Zynga 與 OMGPOP (代表作為draw something)等公司的背書,讓人就覺得這東西可以玩玩XD
寫這篇文章的時候,Couchbase Server最新版本為1.81,Devloper版為2.0.0-dev-preview-4,比了一下好像有點差別,所以我就抓了dev版。
安裝完成後,會自動開網頁連到 http://localhost:8091/index.html 讓你做 Couchbase Server 的設定,Setup基本上很簡單,這邊就不多說了。
設定完成後,就可以看到漂亮的 Couchbase Console ,功能也蠻完整的,光這個東西就可以打翻一堆NOSQL了。
接下來要怎麼用Couchbase....就等有空再寫吧,因為我也還沒研究好(遮臉)
Couchbase 的前身是 CouchDB 跟 Membase ,2011年 CouchOne Inc.與 Membase Inc.合併後,推出了Couchbase 這個結合兩者優點的產品。 CouchDB 我沒查,但是 Membase 有著 Zynga 與 OMGPOP (代表作為draw something)等公司的背書,讓人就覺得這東西可以玩玩XD
寫這篇文章的時候,Couchbase Server最新版本為1.81,Devloper版為2.0.0-dev-preview-4,比了一下好像有點差別,所以我就抓了dev版。
安裝完成後,會自動開網頁連到 http://localhost:8091/index.html 讓你做 Couchbase Server 的設定,Setup基本上很簡單,這邊就不多說了。
設定完成後,就可以看到漂亮的 Couchbase Console ,功能也蠻完整的,光這個東西就可以打翻一堆NOSQL了。
接下來要怎麼用Couchbase....就等有空再寫吧,因為我也還沒研究好(遮臉)
Sunday, September 23, 2012
超時空烹飪法
Tuesday, September 11, 2012
高下立判
上周都在忙,今天才發現有篇上周的新聞相當有趣,"身為國民黨員 馬英九:要挺我們的黨",裡面這樣說道:
然後我想到之前在PTT上看到網友mirandaliu分享的一段話
馬英九以黨為優先、人民最次,相較於他人,只能說高下立判。
馬英九強調,中常委選舉是想聽基層聲音,歡迎中常委知無不言、言無不盡,「沒有要求挺誰或不挺誰,身為國民黨黨員,要挺的就是我們的黨、我們的國家、我們的憲法、我們的人民」。
然後我想到之前在PTT上看到網友mirandaliu分享的一段話
I am a freeman, an American, a United States Senator, and a Democrat, in that order.
我是個自由人,美國人,美國參議員,及一個民主黨員,並以此為先後順序。
-- 第36屆美國總統 Lyndon B. Johnson
馬英九以黨為優先、人民最次,相較於他人,只能說高下立判。
Tuesday, September 4, 2012
眾人皆差,我還好 ?
眾人皆差,我還好 ? - 實質平均薪資與國民黨股利之比較
這兩天看到比利潘的文章"【震驚】阿扁執政8年,年年實質薪資大勝馬政府!",果真數字會說話,圖表更容易懂,於是我將比利潘的實質平均薪資資料,結合了近幾年國民黨的股利(資料來源),也製作成圖表來顯示,可惜的是沒有更早之前的國民黨股利資料,若有人能知道哪邊有得查,麻煩請告知,感謝。
話說這個圖表一做出來,果真是可以讓人看出一些端倪,我的悟性一般般,不過看了之後,我突然了解了為何吳敦義說的出「眾人皆差我還好」,不曉得各位可以看出些什麼 ?
下有可互動之精美圖表。
Friday, August 31, 2012
[nosql] Cassandra Thrift insert Super Column
This post will show how to insert Super Column to Cassandra by using Thrift API.
At first, we create a Keyspace named "Sample" and Column Family named "SCTest" via Cassandra-cli.
As default , column type was "Standard" , so we need to assign column type to "Super".
then , we using Thrift to insert Super Column to DB , here is the sample code. Following code almost same as Thrift Examples, I only change some place to insert super column.
At first, we create a Keyspace named "Sample" and Column Family named "SCTest" via Cassandra-cli.
As default , column type was "Standard" , so we need to assign column type to "Super".
then , we using Thrift to insert Super Column to DB , here is the sample code. Following code almost same as Thrift Examples, I only change some place to insert super column.
Monday, August 27, 2012
[C#] How to write a Windows Service with Timer and EventLog
Wednesday, August 22, 2012
[ASP.NET] 如何 Precompile 網站
.NET Framework出到2.0之後,多了一個Precompile的功能,可以讓你在將程式發布至正式環境前,先把網站的程式編譯過,詳細介紹可以看這篇"ASP.NET Precompilation Overview",先做Precompile除了可以避免頁面第一次使用時的編譯時間,也可提前看到編譯時的錯誤,還有可以避免把source code上傳到正式環境上,除此之外還有一些安全上的優點,而這篇主要是說如何去做precompile,所以我就不多做其他的介紹了。
其實如何去做 Procompile ,MSDN上的這篇"How to: Precompile ASP.NET Web Sites for Deployment"也有介紹,不過直接照著上面做有很大的機會不會成功,我也是試了好幾次才試出方法,所以就順便記下來當備忘錄了。
首先,在IIS中找個地方開個虛擬目錄,設成應用程式,像是上圖那樣,設定大致上設一設就好,測試設定失敗也沒差,反正接下來的方法用不太到,只要記得設成應用程式就好。
然後開出command line,建議用administrator權限比較穩,然後到你放.NET Framework的目錄下,一般來說會在
3 : 這是在IIS中,你建立應用程式在IIS metabase中在第幾個站台下,像我是第三個,就要寫"3"。
TestSite1 : 應用程式的名稱,看你設什麼就照打。
d:\diedproj\testsite1\testsite1 : 網站程式source code的目錄。
d:\temp : Precompile 後要放置到的目錄。
基本上這樣就完成了,如果有問題可以查查是不是目錄有指錯還是沒有建之類的。
其實只要把設成應用程式的虛擬目錄設定好,應該就可以只用 -v 這個參數就完成 Precompile 的工作,但是我在Win7的環境下試了很久都沒用,研究之後才發現 aspnet_compiler.exe 沒那麼聰明去找到我設定的應用程式,只好直接指定,在這之前我試了很多寫法都不會過XD
以上做個紀錄,收工。
其實如何去做 Procompile ,MSDN上的這篇"How to: Precompile ASP.NET Web Sites for Deployment"也有介紹,不過直接照著上面做有很大的機會不會成功,我也是試了好幾次才試出方法,所以就順便記下來當備忘錄了。
首先,在IIS中找個地方開個虛擬目錄,設成應用程式,像是上圖那樣,設定大致上設一設就好,測試設定失敗也沒差,反正接下來的方法用不太到,只要記得設成應用程式就好。
然後開出command line,建議用administrator權限比較穩,然後到你放.NET Framework的目錄下,一般來說會在
裡面(版本請依照你網站程式對應的Framework版本),然後下這行指令%windir%\Microsoft.NET\Framework\[version]
這邊要稍微解釋一下上色的部分aspnet_compiler -v /LM/W3SVC/3/Root/TestSite1 -p d:\diedproj\testsite1\testsite1 d:\temp
3 : 這是在IIS中,你建立應用程式在IIS metabase中在第幾個站台下,像我是第三個,就要寫"3"。
TestSite1 : 應用程式的名稱,看你設什麼就照打。
d:\diedproj\testsite1\testsite1 : 網站程式source code的目錄。
d:\temp : Precompile 後要放置到的目錄。
基本上這樣就完成了,如果有問題可以查查是不是目錄有指錯還是沒有建之類的。
其實只要把設成應用程式的虛擬目錄設定好,應該就可以只用 -v 這個參數就完成 Precompile 的工作,但是我在Win7的環境下試了很久都沒用,研究之後才發現 aspnet_compiler.exe 沒那麼聰明去找到我設定的應用程式,只好直接指定,在這之前我試了很多寫法都不會過XD
以上做個紀錄,收工。
劍潭山初訪
Thursday, August 16, 2012
[TroubleShooting] IIS run out of memory
最近在測試效能時,遇到了IIS把系統記憶體吃光,結果回傳Out Of Memory Exception,害我壓力測試就中斷了,開出Performance來看,就看到開始測試後,CPU還好,但是記憶體用量直線上升,很快的w3wp.exe就要把系統記憶體吃光光。
等到記憶體被吃光後,IIS就開始吃不太下request,然後不是沒有回應,就是回你錯誤,運氣好的話這時候就可以看到Out of Memory錯誤了XD
Wednesday, August 15, 2012
中油胡亂漲價,還我錢來
中油在13號的時候,又大漲了將近一塊的油價,我一直有在關心油價,也會不定期去update中油油價與國際油價的比較,這次中油大漲時,我看到了這篇新聞「台灣中油調高下周汽柴油價格各0.8元及0.9元 92無鉛每公升33.9元」,剛好可以拿來做計算油價用,於是就生出了這篇。
從新聞中我們可以得到幾點資訊
- 本周調價指標7D3B周均價為每桶108.23美元。
- 101年四月二號95無鉛零售價為35.5元,中油尚吸收2.2元,所以實際應為37.7元。
- 8月13日95無鉛零售價將調為35.4元。
Bloomberg Arabian Gulf Dubai Fateh Crude Oil Spot Price 杜拜
Brent Crude Oil Spot Price 布蘭特
台灣銀行美金歷史匯率
得出的資料如下
- 101/04/02 調價指標為 122.764 (3/26~3/30 Dubai avg=122.05 , Brent avg=124.43 , 7D3B=122.764)
- 101/04/02 周均匯率為 29.509 (3/26~3/30 avg) 然後因為新聞沒有寫本周匯率均價,所以我就算了8/12可用的周均匯率(8/6~8/10)
- 101/08/12 周均匯率為 29.891
(0812調價指標x匯率) / (0402調價指標x匯率) = (0812九五油價) / (0412九五油價+補貼)
所以
0812九五油價 = (0412九五油價+補貼) * (0812調價指標x匯率) / (0402調價指標x匯率)
帶入數字
0812九五油價 = (35.5+2.2) * (108.23*29.891) / (122.764*29.509) = 33.6669621145952
是的,你沒看錯,按照國際油價,現在的油價應該是33.67元才對,怎麼會是中油所說的35.4元呢 ? 這中間的每公升快兩元都被誰賺去了 ?
所以本文最前面的新聞中,有說到媒體質疑中油亂漲價,我想是很合理的,因為這些數據都是可以查的到的,但是中油油價與國際油價差距如此之多,每次都大漲小跌,不是胡亂漲價,就只剩油價黑洞能解釋了。
中油胡亂漲價,還我錢來 !!!
Saturday, August 11, 2012
[選前選後兩樣情] ECFA與石斑魚業
雖然馬英九早表示過選舉只是說說而已,但是還是很多人會被騙,接下來就來看個例子吧。
這是去年選前的新聞,馬座談 石斑魚業:擔心馬沒連任,魚不銷大陸一定「死」。
節錄一段話
這是去年選前的新聞,馬座談 石斑魚業:擔心馬沒連任,魚不銷大陸一定「死」。
節錄一段話
戴昆財說,感謝馬總統推動兩岸簽ECFA,不但提升石斑魚價格,也讓石斑魚產業可以永續。現在石斑業者很擔心馬總統無法連任,大陸會拒絕石斑魚輸入,養殖龍膽石斑的成本1公頃要新台幣1000萬元,青斑600萬元,不銷大陸一定「死」。
Thursday, August 9, 2012
[台北] Solo Pasta - 古典波隆那肉醬與特寬雞蛋麵
其實我很久沒有特地找家店去吃了,會來吃Solo Pasta是因為剛好在趨勢看雜誌打發時間,然後翻到這邊的介紹,看起來有張照片打到我的點,google一下地址在安和路,也不遠,所以事情結束就跑來吃了。
Solo Pasta
地址:台北市大安區安和路一段29-1號
電話:(02)2775-3645
營業時間有點複雜,可以參考Solo Pasta Facebook Info,基本上一到四只開中午,五六日才有開到晚上。
Tuesday, August 7, 2012
Sikuli demo - 取得網頁資料
Sikuli這東西剛出現時,引起網路上一陣喧然大波,至少那時候我看的不少網站都有介紹到這個算是革命性的軟體,簡單來說,Sikuli就是個可以辨識圖片的automate工具,能辨識圖片就表示看的懂螢幕,所以你跟畫面上的互動Sikuli都能做得到,詳細介紹可以去看Sikuli官網,我這就不多說了。
之前用到Sikuli script我都是玩玩,直到最近才有用在工作上,累積了不少心得與經驗,但是這東西又有點難分享,實際上我是寫了一個模組化的GUI測試功能,會每天定時的去測試各個瀏覽器對於我們Project的相容性、是否正常,然後整合結果到一封信裡寄出來。但是這些東西因為牽扯到工作,所以沒辦法直接拿來分享,所以就亂做一個取巴哈熱門版面資料的Sikuli script,寫起來不長,就下面的20行。
陳昇 : 既然核廢料沒有害處,就放到總統府就好啦
今天看到昇哥的這段影片,他說他寫了一首新歌"應該是柴油的",在唱歌之前的一大段話,實在是妙語如珠,令人不得不轉。
花點時間看看吧,說的很有趣,很棒XD
Friday, August 3, 2012
[C#] Effective : For vs Foreach
Alought Effective C# Item #11 said : Prefer foreach Loops , but I still saw many test said using For are faster , so , let's test it.
My test code.
We give an Integer Array (Size :1000,2000,4000) , For/Foreach loop it do nothing for 100,000 times , get the result and average it. You can check the result on following sheet.
OK, you can see using Foreach Loop are slower than using For Loop over 10% , no big difference , but we are talking about effective , so For Loop win.
My test code.
public static int[] ArInt = new int[1000]; //2000,4000 static void Main(string[] args) { var proc = Process.GetCurrentProcess(); var sTime=proc.TotalProcessorTime; for (int i = 0; i < 100000; i++) //100,000 { DoForEach(); } Console.WriteLine(proc.TotalProcessorTime-sTime); Console.WriteLine(); Console.ReadLine(); } static void DoFor() { for (int i = 0; i < ArInt.Length; i++) { DoNothing(); } } static void DoForEach() { foreach (int t in ArInt) { DoNothing(); } } static void DoNothing() { }
We give an Integer Array (Size :1000,2000,4000) , For/Foreach loop it do nothing for 100,000 times , get the result and average it. You can check the result on following sheet.
OK, you can see using Foreach Loop are slower than using For Loop over 10% , no big difference , but we are talking about effective , so For Loop win.
Thursday, August 2, 2012
[C#] Using SmtpClient sent email with response via Gmail
最近用Sikuli做了個UI Test,要把結果用email的方式丟出來,找了一下,原本打算做模組化一點,各個不同的測試從Sikuli回傳給Python然後再去處理寄信的問題,後來討論了一下,多花力氣去維護一個語言不太划算(雖然我想玩Python啊),所以決定自己寫個頁面去做寄信的事。
找了一下,.NET有這個SmtpClient 類別可以來寄信,而且sample code也蠻詳細的,所以就來試一下了。
我是直接用需要帳號密碼登入才能用的gmail來寄,一開始的code是長這樣
找了一下,.NET有這個SmtpClient 類別可以來寄信,而且sample code也蠻詳細的,所以就來試一下了。
我是直接用需要帳號密碼登入才能用的gmail來寄,一開始的code是長這樣
private const string Username = "username"; //update your gmail acc/pw here private const string Passowrd = "passowrd"; private string MailBody { get { return string.IsNullOrEmpty(Request.QueryString["result"]) ? string.Empty : Request.QueryString["result"]; } } protected void Page_Load(object sender, EventArgs e) { if (MailBody == string.Empty) return; using(var smtpServer = new SmtpClient("smtp.gmail.com", 587) { EnableSsl = true, Timeout = 10000, DeliveryMethod = SmtpDeliveryMethod.Network, Credentials = new NetworkCredential(Username, Passowrd) }) { smtpServer.Send(new MailMessage("[email protected]", "[email protected]", "test", MailBody) { BodyEncoding = Encoding.UTF8, DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure }); } }
Wednesday, August 1, 2012
[C#] Using FileStream StreamWriter avoid IOException
今天在用JMeter對公司的程式作壓力測試,但是我發現錯誤率一直在0.5~1%,這是相當高的錯誤率,所以就來查啦。
從JMeter紀錄來看,錯誤訊息是這樣
原本的code長的這樣
從JMeter紀錄來看,錯誤訊息是這樣
System.IO.IOException: 由於另一個處理序正在使用檔案 'filename',所以無法存取該檔案。原因是在程式中會去對實體檔案寫log,平時看不出錯誤,但是壓力測試下就會因為檔案lock住產生 IOException 。
System.IO.IOException: The process cannot access the file 'filename' because it is being used by another process.
原本的code長的這樣
public static void WriteLog() { StreamWriter log; if (!File.Exists("FilePath")) { log = new StreamWriter("FilePath"); } else { log = File.AppendText("FilePath"); } log.WriteLine("Write Something"); log.Close(); }
科普教育不能等 - 地表下一千兩百多公里處
我是很樂見台灣媒體多報導一些國際、科學的新聞,今天看到這篇"全球首見 台教授研究 水壓誘發地震",就覺得是篇不錯的內容,但是看了一下,感覺怪怪的。
節錄第二段
一般地震皆因斷層帶滑動導致,為解開地震之謎,馬國鳳率領的研究團隊六年前起,在台中大坑車籠埔斷層鑽井,於地表下一千兩百多公里處,放置全球唯一設在活動斷層帶下方的地震觀測儀,之後常接收到前所未見、僅有P波(縱波)卻無S波(橫波)地震訊號,她將這種上下震動地震命名為均向地震。
ok,就我所知,人類目前到達的地下最深處應該不超過20公里吧,我找到最深的油井也不到十公里,地表下一千兩百多公里處,都已經到地函去了,google一下"wiki earth"就可以知道這數字一定有問題,記者在寫這篇的時候不會覺得奇怪嗎 ?
所以說,台灣的科普教育真的不能等啊!!
Update :
旅日強者benjemin立刻寫信給馬教授,然後得到了回應!!
Tuesday, July 31, 2012
[ benjemin ]從小的好朋友
潛水已久的客座今天厚顏地來發新文了,
先說這是一篇抒情文!!!
年過25之後相信大家都會漸漸發現,
有些我們從小相識以為不會變的東西,
變化之大讓我們再也認不得了。
...
...
...
...
...
...
原諒我文筆不好,還是用畫的比較快!
( 很閒的準備了可著色的版本 歡迎取用 )
先說這是一篇抒情文!!!
年過25之後相信大家都會漸漸發現,
有些我們從小相識以為不會變的東西,
變化之大讓我們再也認不得了。
...
...
...
...
...
...
原諒我文筆不好,還是用畫的比較快!
( 很閒的準備了可著色的版本 歡迎取用 )
[TroubleShooting] JMeter on IIS Response code: 500
今天在試壓力測試,使用的軟體是Apache JMeter,同事在demo這套軟體時,是對php去作壓力測試,看起來都ok,但是我自己對在IIS上一個有掛元件的aspx測試,怎麼測Response code都是給我500 Internal Server Error,但是網頁直接開起來卻是正常的,想來想去找不出頭緒來,後來請教同事,才發現是少給了東西才導致錯誤。
IIS給出的錯誤敘述大概是這樣
IIS給出的錯誤敘述大概是這樣
在此內容中無法使用要求
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。
例外詳細資訊: System.Web.HttpException: 在此內容中無法使用要求
原始程式錯誤:
在執行目前 Web 要求期間,產生未處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。
Sunday, July 29, 2012
[轉] View from the ISS at Night
View from the ISS at Night from Knate Myers on Vimeo.
Every frame in this video is a photograph taken from the International Space Station. All credit goes to the crews on board the ISS.
I removed noise and edited some shots in photoshop. Compiled and arranged in Sony Vegas.
Music by John Murphy - Sunshine (Adagio In D Minor)
http://itunes.apple.com/us/album/sunshine-music-from-motion/id297702863
Image Courtesy of the Image Science & Analysis Laboratory,
NASA Johnson Space Center, The Gateway to Astronaut Photography of Earth
http://eol.jsc.nasa.gov
其實我很少在轉貼東西的,但是這個在IIS上拍的縮時攝影實在太棒了,所以就貼上來了,以後才找的到,也跟大家分享一下美麗的東西。
Friday, July 27, 2012
[C#] Randomize Sort String Array
Wednesday, July 25, 2012
[C#] Specify a culture in string conversion explicitly
再來寫一個reSharper的建議,在某些轉型的狀況下,像是 Int 與 String 間的互轉,reSharper會跳出類似這樣 Specify a culture in string conversion explicitly 的建議,基本上就是提醒你這個轉型方式在某些語系設定下,可能會產生問題,當然如果你確定你的程式不會遇到語系問題,就可以忽略掉它,不過我個人還是會去確保程式的正確性,不然到時候出問題就難搞了。
關於ASP.NET的語系問題,你大概都可以在文化特性 CultureInfo 類別 這邊找到答案,不同的語系設定,會影響到的東西大致有四塊,分別是書寫系統大小寫(TextInfo 類別)、日期格式(DateTimeFormatInfo 類別)、數字格式(NumberFormatInfo 類別)與字串比較(CompareInfo 類別)。可以想像一下,你寫的一套系統,在不同國家的語系設定下,同一個時間點去轉出的日期字串居然長得不一樣....光想就覺得可怕,所以在轉型時必須去確保這點才行。
關於ASP.NET的語系問題,你大概都可以在文化特性 CultureInfo 類別 這邊找到答案,不同的語系設定,會影響到的東西大致有四塊,分別是書寫系統大小寫(TextInfo 類別)、日期格式(DateTimeFormatInfo 類別)、數字格式(NumberFormatInfo 類別)與字串比較(CompareInfo 類別)。可以想像一下,你寫的一套系統,在不同國家的語系設定下,同一個時間點去轉出的日期字串居然長得不一樣....光想就覺得可怕,所以在轉型時必須去確保這點才行。
[C#] Redundant Object.ToString() call
如果你有用ReSharper,有時候你在看code會發現到ReSharper跟你喊這個
真的在速度上差不了多少嗎 ? 來試試吧,我寫了個小程式。
然後把 sTarget = str; 改成 sTarget = str.ToString(); 一樣跑五次,平均時間是0.42432272 sec
有差嗎 ? 有的,加了多餘的.ToString(),同樣的動作時間多了58.14%,所以小細節多少還是有差的。
Redundant Object.ToString() call其實就是個很簡單的多了一次多餘的ToString(),有些人會覺得,應該差不了多少吧,所以也不會care....其實不少人看見warning都不管的 -_-
真的在速度上差不了多少嗎 ? 來試試吧,我寫了個小程式。
Process proc = Process.GetCurrentProcess(); string str = "1"; string sTarget; TimeSpan sTime=proc.TotalProcessorTime; for (int i = 0; i < 100000000; i++) //100,000,000 { sTarget = str; //change here } Console.WriteLine(proc.TotalProcessorTime-sTime); Console.ReadLine();這樣跑了五次做,平均時間是0.26832172 sec
然後把 sTarget = str; 改成 sTarget = str.ToString(); 一樣跑五次,平均時間是0.42432272 sec
有差嗎 ? 有的,加了多餘的.ToString(),同樣的動作時間多了58.14%,所以小細節多少還是有差的。
Tuesday, July 17, 2012
有沒有廣告買比較多,錢花比較少的八卦 ?
監察院在7/16時公布了「2012總統大選藍綠政黨競選經費申報」,其中蔡英文陣營因小額捐款奏效,個人捐款達6.5億元占總經費收入87%,為未來的競選帶來一個很好的觀念,讓選舉可以不必靠黨產和財團,也就可以讓候選人不被這些出錢的人綁架。
但是這些經費申報也讓人感到相當的有趣,沒想到國民黨所收及所支出居然只有民進黨的六成而已,這實在與總統大選時的感受有所不同,難道國民黨那麼經營有道,可以做更多的事,花更少的錢嗎 ? 關於這點,也很多新聞在質疑,例如"「三隻小豬」獻金 蔡7.5億勝馬宋"中,就有提到「為何馬英九申報數額遠低於蔡英文,蔡辦指選舉期間馬營文宣充斥媒體,馬營申報數額顯然和真實狀況有落差。」;或是"綠質疑選舉獻金 藍:依法申報"提到的「馬吳配政治獻金收入竟比前法務部長陳定南競選台灣省長時還少,連小孩都不信。」
身為一個小老百姓,自然是沒有辦法去一張一張單據查出為何馬英九選總統那麼省,況且這些結算表都有律師事務所查核簽證的,隨便說有問題搞不好會被告到脫褲,所以只好從別處去想辦法了。
我先從監察院-政治獻金公告事項下載了藍、綠兩陣營的「第13任總統、副總統擬參選人政治獻金專戶」檔案,然後再到競業信息-調研分析報告下載了「2012年總統大選廣告量播出分析報告」,比對之後,感覺就有點東西可以看了。
但是這些經費申報也讓人感到相當的有趣,沒想到國民黨所收及所支出居然只有民進黨的六成而已,這實在與總統大選時的感受有所不同,難道國民黨那麼經營有道,可以做更多的事,花更少的錢嗎 ? 關於這點,也很多新聞在質疑,例如"「三隻小豬」獻金 蔡7.5億勝馬宋"中,就有提到「為何馬英九申報數額遠低於蔡英文,蔡辦指選舉期間馬營文宣充斥媒體,馬營申報數額顯然和真實狀況有落差。」;或是"綠質疑選舉獻金 藍:依法申報"提到的「馬吳配政治獻金收入竟比前法務部長陳定南競選台灣省長時還少,連小孩都不信。」
身為一個小老百姓,自然是沒有辦法去一張一張單據查出為何馬英九選總統那麼省,況且這些結算表都有律師事務所查核簽證的,隨便說有問題搞不好會被告到脫褲,所以只好從別處去想辦法了。
我先從監察院-政治獻金公告事項下載了藍、綠兩陣營的「第13任總統、副總統擬參選人政治獻金專戶」檔案,然後再到競業信息-調研分析報告下載了「2012年總統大選廣告量播出分析報告」,比對之後,感覺就有點東西可以看了。