2012年12月25日 星期二

[東門] 永康牛肉麵


聖誕節的傍晚,與Brian相約要來吃兩岸經貿總是很累的老師推薦的「永康牛肉麵」,我到的比較早,所以在金華國小旁的長椅上享受了一陣子的悠閒,看著路人、遊客來來去去,沒多久之後Brian也到了,還好這時候還沒開始排隊,趕快進去坐下點餐。



店內有各式小菜,只有兩種價位40或60,看內容大概就知道多少錢了,我點了小黃瓜(40)跟炒牛筋(60),小黃瓜清脆爽口入味,牛筋滑嫩有嚼勁又不膩,都很好吃。到的時候很多小菜都現做出來不久,還熱騰騰的。



點的麵是小碗的紅燒牛肉麵(180),店員說湯頭有微辣,我喝起來是無感,但是Brian說有感覺到辣,所以應該還是有XD 麵是細麵,看來是沒得選,煮的ok,不會過軟或硬,湯是傳統的豆瓣醬紅燒湯頭,還不錯,不過不會讓我想全部喝完,牛肉份量不少,鬆軟入味,應該有人比較愛這味,可惜我比較愛吃來有點勁的;整體而言,這個紅燒牛肉麵是可以說好吃的,但是配合上價位就沒辦法讓人想常常去吃,180算有點高了,我認為以這個品質,價格設訂在150~160會比較吸引人,不過以永康牛肉麵的招牌,他原本的價錢就大排長龍了,倒是我想太多XD

2012年12月22日 星期六

[東區] もしもし串炸

もしもし串炸

十二月的一個周五晚上,與友人相約來吃串燒,因為是在網路上看食記而來的,所以我們都沒吃過這間もしもし串炸,就來嘗試看看了。

もしもし(moshi moshi)
地址:台北市大安區復興南路一段107巷五弄9號
電話:(02)2711-6018
營業時間:1800~0100

[商城] 台北小吳 - 凍檸茶

IMG_9271

前陣子PTT版上看到有人介紹在商城-也就是石牌夜市內開了一間新的飲料店,叫做台北小吳,文章中提到凍檸茶好喝,於是一次經過時就買了嘗鮮,沒想到還蠻不錯喝的,於是這次經過時就順手拍了下來。

2012年12月17日 星期一

CELOX止血粉 - EDC內的急救用品

2012-12-14 16.48.35

日前從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是否都很合用就是,因為他有出不同產品有不同適用範圍的,例如說類似針筒可以打到深層傷口止血,或是繃帶狀的celox....但是我想不管長怎樣,都能止血吧。


2012-12-14 16.49.50
於是乎,我將十包裝的CELOX粉末拿出五包,空出來的空間放入小片紗布與透氣膠帶(自黏繃帶比較大,所以選膠帶),這樣就很輕便攜帶了。

有空再來介紹我EDC包包內的東西....希望世界末日前來的及。

2012年12月14日 星期五

[台北] 太原路瓶胚購買

2012-12-14 16.48.11
好幾年前買Surefire 6P Led的時候,順便買了一盒SF123A(Surefire的CR123A),賣家給我的時候有附了一個瓶胚裝電池給我,那時候還不曉得那是什麼東西,後來看了青石社長的這篇文章"寶特瓶胚的妙用"後,才知道這東西叫做瓶胚,而且這東西輕便便宜,防水、抗壓、耐摔,所以前陣子隨著Surefire Fury順便買了兩盒電池,要放到避難背包,想來想去,看起來寶特瓶胚會是個很棒的電池容器,於是有天下班就跑去買了。

我是先跑去西門町後面的環河南路找,問了很多店,結果店家連寶特瓶胚是啥都沒聽過,後來就跑去後火車站太原路那邊找,同樣也是繞很多店都沒有,最後在一家很亂的店終於問到,而且價錢蠻便宜的,於是買了五支回家。

在店裡跟老闆聊天,才知道其實有不少人結婚時是拿寶特瓶胚去裝巧克力、糖果的,真是出乎我意料的用途,然後老闆也說不少登山社會買去裝電池,跟我的用途差不多。

結果後來到家把SF123A(CR123A)裝進去時,發現這家店的瓶胚內部管徑小了一點,SF123A可以硬塞進去,但是大概就拿不出來了,所以只好再找時間去太原路挖寶,找來找去,後來又找到一家賣瓶罐的店有賣,這次我記取教訓,身上有帶著EDC,所以直接拿出電池比對,發現可以剛好放的下,於是又買了五支回家。


2012-12-06 18.19.46
我問老闆能不能拍型號,他一開始蠻忌諱價錢外流這件事,但是知道我會上網分享後,就同意遮住價錢讓我拍照(但是老闆忘記了每隻瓶胚上都有貼售價XD),如果各位怕買錯瓶胚不能用可以參考一下,但是每家店的型號很可能不一樣,這隻叫28牙瓶胚,找到同一家店再來買會比較穩一點。


2012-12-14 16.43.39
最後順便幫老板廣告一下,店名龍洋膠業有限公司,在太原路139號,電話是25523133。

2012年12月6日 星期四

擺好看的視障等候椅 ?

2012-12-05 18.53.12

一日下班,從內湖轉捷運去永康街,背著兩台電腦又拎著雨傘跟一堆人擠,到了某站要轉車時,看見月台最邊邊有幾張椅子,於是就打算去休息一下,結果正要坐下時,發現不對,上面貼著一張貼紙....


2012年12月5日 星期三

[轉載]「反媒體壟斷運動」VS「蔡旺旺」懶人包

三分鐘讓你了解潮到出水的「反媒體壟斷運動」VS「蔡旺旺」事件簿!

這簡報超威的,學到一個新東西。

2012年12月4日 星期二

[jQuery] Get elements count in element

取得某個元素中的某物件數量


今天有人問我一個問題,他要取得一個span裡,某個span後所出現的img數量,感覺上不是個太複雜的問題,於是研究了一下就弄了範例出來,也順便貼上blog當作備忘。

先來看範例一,這邊按下去會跳出裡面有幾張圖(抱歉去背失敗XD)。
Google


[轉載]北投纜車要不要

想了解北投纜車案但不知道該如起手?
往下看,5分鐘讓你快速了解它的來龍去脈。

資料來源:青年不北纜

2012年11月26日 星期一

2012 「秋鬥」- 勞工上街頭

IMG_8870
壹電視:勞工上街頭,爭的不是更多薪水或更多福利,而是原本屬於他們的權益,一分都不能少。

2012年11月21日 星期三

[C#] Dynamic Calling Method by String 用字串動態呼叫方法

有同學問了我一個問題,他有一個 Class 裡有一堆 Method ,因為每個 Method 都對應不同情況去使用,目前是用 Switch Case 去判斷使用哪個方法,但是如果數量增加到上百上千的時候,還在用 Switch Case 感覺有點笨,於是想問問看能不能有方法去改得更聰明。

查了一下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 });

        }

2012年11月16日 星期五

馬英九的歷史定位 : Ma the bumbler

馬英九在連任勝選之後,對外表示由於未來沒有選舉壓力,第二任期內將積極追求歷史定位而不是個人名利。近來又表示「台灣要增加國際能見度,一定要在各個領域都有傑出表現,都要積極地參與。」,可見馬英九多麼積極的想在歷史上,世界上留名,而就在今天,他的願望實現了。

今天國際知名雜誌《經濟學人》(The economist)刊出了一篇文章,名為「Ma the bumbler」,根據google大神表示,bumbler的意思是這樣:
bumbler

文章內容可以看一下蘋果日報的這篇「《經濟學人》:笨蛋馬英九」,裡面有大致上的翻譯,反正簡單來說就是提了一些台灣近況還有事件,然後是這句"The country appears to agree on one thing: Mr Ma is an ineffectual bumbler.",這可是個國際認證的歷史定位啊.....,馬先生終於達成他的願望了。

經過國際認證後,在google搜尋bumbler ma,已經可以直接看到馬先生的照片了,這個定位應該是跑不掉的。
bumbler ma

2012年11月7日 星期三

[C#] Custom Class in StateServer / SQLServer

這是最近遇到的一個問題,解決之後覺得有價值記錄一下,於是就來寫這篇了。

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' 中) 標記為可序列化。]

2012年10月31日 星期三

[好康] Dell Outlet Coupon (不定期更新)

alienware-wallpaper-800x480

由於之前買了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

2012年10月15日 星期一

LOL Season 2 World Champion : Taipei Assassins

TPA

雖然昨天很晚睡,早上也沒設鬧鐘,不過還是自覺地醒來看了比賽,第一場前面優勢不小,後來被逆轉後,我開始想到底要不要繼續看下去(因為之前沒看,TPA都贏),還好接下來三場TPA不負眾望,取得了勝利,身為一個LOL從美版Beta就開始推廣的玩家,在TPA走上領獎台的那刻,眼中充滿著淚水....



我想大家都看過比賽影片,頒獎影片了,所以我附上的影片是在總決賽時所撥的,這段五分鐘的影片,可說是League of Legends Season 2 的總結,一路從全世界的各區預賽選出12隊,到最後LA的各項賽程,全部濃縮在這個影片內,若有關心之前的各區比賽,可以讓你回想起很多片段,若最近才開始關心,這影片還是一樣的精彩。

希望在Riot的努力推廣下,電競市場能越做越大,也希望TPA在Season 3能繼續有如此好成績!!

2012年10月9日 星期二

[MSSQL] Adding a table/column description

今天同事接到一個需求,客戶強烈要求在DB裡的所有欄位都有說明,雖然我們有提供Schema說明文件,不過既然是客戶要求,那就只好照做了。

找了一下,發現有個系統提供的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;
GO
YOUR_DBNAME, TABLE_NAME, COLUMN_NAME 請自行修改

如果只要在Table上加Description,level2那邊參數別給就好。

其實這個sp_addextendedproperty指令是用來新增擴展屬性的,所以要增加的屬性名稱可以自己修改,如果該表格/欄位已經有了同名的屬性,那就需要用sp_updateextendedproperty這個指令來做修改。

收工。

2012年10月7日 星期日

[台北] 綠野仙蹤 Wonderland Cafe

IMG_8626
第一次看到這間店的時候,大概是五月多,所以那時候正在試賣,後來六月多正式開始,我找了時間去了一下,看起來還不錯,後來也常常去那邊看書、寫程式,多去了幾次後感覺也該寫篇介紹,所以就有了這篇產生。

2012年10月3日 星期三

[敗家] Surefire P2X Fury Dual-Output LED

Fury
圖片來自Surefire官網

這次要從美國寄電腦回台灣,順便就買了些不能直接從Amazon寄回台灣的東西,這個Surefire Fury手電筒就是其中之一,手邊原本有一隻Surefire 6P LED,但是想把這隻放進避難背包中,於是平常就沒得用了,所以只好再買一隻(為了敗家找藉口),看來看去這個Fury要亮度有亮度,要持久有持久,根本就是首選,原本一直卡在Amazon不給寄,看了很久這次終於可以順便下手了。


開箱、近照、燈杯...等等我就跳過了,這些應該很多人有貼過,我最近比較忙就只貼剛剛的測試結果。

下面兩張照片都是 ISO400 , F4.0 , 1/20sec拍攝
IMG_8758
左邊是Fury低亮度,右邊是6P LED。
Fury低亮度的20流明確實是比6P LED的80流明暗了些(雖然6P電池用了好陣子)


IMG_8759
左邊是Fury高亮度,右邊是6P LED。
一換到高亮度就不得了,立刻整個亮到過曝!!!! 還好6P照的地方離得夠遠,還看的到。

個人是覺得很滿意Fury,所以他會變成我EDC的裝備之一了。

最後附上Surefire官方拍的Fury介紹影片。


2012年10月2日 星期二

[敗家] Alienware M14X R2

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

大致上的規格如上,拿來打電動夠用了,而電量也可以撐到四小時,對於我上三小時的課來說也夠用。


score

最後來貼分數,因為還是用硬碟所以分數只到5.9分,而且我開不開mSATA加速都一樣XD,看來要再上去就要用SSD了。

2012年9月29日 星期六

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 ,然後你應該會看到下面這個錯誤。
CassandraServiceFail


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 這個服務已經註冊進去了。
CassandraService


6.到電腦管理內的[服務],將剛剛註冊的 cassandra 調成自動啟動(預設是手動),接著將其啟動,然後就大功告成了。


reference : Configure Cassandra as a Windows Service
主要是翻成中文並稍做調整,增加Cassandra中文資源

2012年9月27日 星期四

[JS] HighChart with AJAX JSON

High Chart Demo

最近有個東西要用到圖表,於是開始尋找好用的,條件是要可以方便的吃進json,吐出多條線來,試用了很多家方案,最後決定使用sobi推薦的HighChart,雖然它曾經被我一度打槍....因為說明太少搞不定AJAX取資料怎麼餵進去 -_-

[NOSQL] Couchbase 初試

最近想弄個新東西,正在想DB要用啥,原本打算用之前用過的 Cassandra ,後來找到這個 Couchbase 感覺不錯,於是就來試試看了。

Couchbase 的前身是 CouchDB 跟 Membase ,2011年 CouchOne Inc.與 Membase Inc.合併後,推出了Couchbase 這個結合兩者優點的產品。 CouchDB 我沒查,但是 Membase 有著 ZyngaOMGPOP (代表作為draw something)等公司的背書,讓人就覺得這東西可以玩玩XD

寫這篇文章的時候,Couchbase Server最新版本為1.81,Devloper版為2.0.0-dev-preview-4,比了一下好像有點差別,所以我就抓了dev版。


Couchbase
安裝完成後,會自動開網頁連到 http://localhost:8091/index.html 讓你做 Couchbase Server 的設定,Setup基本上很簡單,這邊就不多說了。


Couchbase Console (2.0.0)
設定完成後,就可以看到漂亮的 Couchbase Console ,功能也蠻完整的,光這個東西就可以打翻一堆NOSQL了。

接下來要怎麼用Couchbase....就等有空再寫吧,因為我也還沒研究好(遮臉)


2012年9月23日 星期日

超時空烹飪法

IMG_8750

近來生活相當繁忙,連這張半個月前拍的照片都到今天才有空貼上來。

這是某天晚上在永康街附近看到的招牌,店名我忘了,但是這個"超時空烹飪法"實在是讓我好奇到底是什麼,若不是經過時該店已休息,還真的會想去一探究竟XD

2012年9月11日 星期二

高下立判

上周都在忙,今天才發現有篇上周的新聞相當有趣,"身為國民黨員 馬英九:要挺我們的黨",裡面這樣說道:

馬英九強調,中常委選舉是想聽基層聲音,歡迎中常委知無不言、言無不盡,「沒有要求挺誰或不挺誰,身為國民黨黨員,要挺的就是我們的黨、我們的國家、我們的憲法、我們的人民」。

然後我想到之前在PTT上看到網友mirandaliu分享的一段話

I am a freeman, an American, a United States Senator, and a Democrat, in that order.
我是個自由人,美國人,美國參議員,及一個民主黨員,並以此為先後順序。
-- 第36屆美國總統 Lyndon B. Johnson

馬英九以黨為優先、人民最次,相較於他人,只能說高下立判。

2012年9月4日 星期二

眾人皆差,我還好 ?

實質平均薪資與國民黨股利之比較

眾人皆差,我還好 ? - 實質平均薪資與國民黨股利之比較


這兩天看到比利潘的文章"【震驚】阿扁執政8年,年年實質薪資大勝馬政府!",果真數字會說話,圖表更容易懂,於是我將比利潘的實質平均薪資資料,結合了近幾年國民黨的股利(資料來源),也製作成圖表來顯示,可惜的是沒有更早之前的國民黨股利資料,若有人能知道哪邊有得查,麻煩請告知,感謝。

話說這個圖表一做出來,果真是可以讓人看出一些端倪,我的悟性一般般,不過看了之後,我突然了解了為何吳敦義說的出「眾人皆差我還好」,不曉得各位可以看出些什麼 ?

下有可互動之精美圖表。

2012年8月31日 星期五

[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.

Thrift01

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.

2012年8月27日 星期一

[C#] How to write a Windows Service with Timer and EventLog

[C#]如何寫一個有定時器與記錄功能的Windows服務


這次來分享是如何寫Service,在一些場合,常常看到有不少事情是使用console去執行的,但是用Console有個缺點就是若沒有特別去防護,那遇到重複開啟或是不小心關掉的時候,就會很麻煩,以前工作上就一直想把公司用的console程式都改成Service的方式運作,但是一直沒有時間,只好作罷。

離題了,直接來進入主題,要寫一個新的Service,先用Visual Studio新增一個 Windows 服務的專案。
Service01

2012年8月22日 星期三

[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"也有介紹,不過直接照著上面做有很大的機會不會成功,我也是試了好幾次才試出方法,所以就順便記下來當備忘錄了。

Precompile
首先,在IIS中找個地方開個虛擬目錄,設成應用程式,像是上圖那樣,設定大致上設一設就好,測試設定失敗也沒差,反正接下來的方法用不太到,只要記得設成應用程式就好。

然後開出command line,建議用administrator權限比較穩,然後到你放.NET Framework的目錄下,一般來說會在
%windir%\Microsoft.NET\Framework\[version]
裡面(版本請依照你網站程式對應的Framework版本),然後下這行指令
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

Precompile2

以上做個紀錄,收工。

Moon 20120821

Moon_20120821

昨天去劍潭山的時候,順便拍了月亮,不過因為一樣是用24-105拍的,所以跟之前拍的沒啥差別,期待有長鏡頭可以玩啊!!

劍潭山初訪

有人有發現我拍到UFO嗎

最近大概是低壓的關係,天氣都很好,下班途中常常看著好天氣嘆息沒法拍,今天出門上班就乾脆的帶了相機跟腳架,打算下班後可以拍照。

工作進度完成後,時間也差不多了,於是東西拿著就下班去,今天打算去沒去過的劍潭山上拍照,聽說大稻埕煙火在這邊看很不錯,所以報紙上有看到台北市政府推薦此處的觀景台,後來我google了一下發現應該是不錯的地方,於是就過來了。

2012年8月16日 星期四

[TroubleShooting] IIS run out of memory

IISOOM_1

最近在測試效能時,遇到了IIS把系統記憶體吃光,結果回傳Out Of Memory Exception,害我壓力測試就中斷了,開出Performance來看,就看到開始測試後,CPU還好,但是記憶體用量直線上升,很快的w3wp.exe就要把系統記憶體吃光光。

等到記憶體被吃光後,IIS就開始吃不太下request,然後不是沒有回應,就是回你錯誤,運氣好的話這時候就可以看到Out of Memory錯誤了XD

2012年8月15日 星期三

中油胡亂漲價,還我錢來

News20120814

中油在13號的時候,又大漲了將近一塊的油價,我一直有在關心油價,也會不定期去update中油油價與國際油價的比較,這次中油大漲時,我看到了這篇新聞「台灣中油調高下周汽柴油價格各0.8元及0.9元 92無鉛每公升33.9元」,剛好可以拿來做計算油價用,於是就生出了這篇。

從新聞中我們可以得到幾點資訊
  1. 本周調價指標7D3B周均價為每桶108.23美元。
  2. 101年四月二號95無鉛零售價為35.5元,中油尚吸收2.2元,所以實際應為37.7元。
  3. 8月13日95無鉛零售價將調為35.4元。
OK 開始計算,汽柴油浮動油價調整機制的調價指標係以70%杜拜+30%布蘭特的週均價為基準再算上匯率去計算,所以我先從下列三個網站取得101/04/02所需的資料,也就是3/26~3/30當周的油價與匯率。

Bloomberg Arabian Gulf Dubai Fateh Crude Oil Spot Price 杜拜
Brent Crude Oil Spot Price 布蘭特
台灣銀行美金歷史匯率

得出的資料如下
  1. 101/04/02 調價指標為 122.764 (3/26~3/30 Dubai avg=122.05 , Brent avg=124.43 , 7D3B=122.764)
  2. 101/04/02 周均匯率為 29.509 (3/26~3/30 avg)
  3. 然後因為新聞沒有寫本周匯率均價,所以我就算了8/12可用的周均匯率(8/6~8/10)
  4. 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元呢 ? 這中間的每公升快兩元都被誰賺去了 ?

所以本文最前面的新聞中,有說到媒體質疑中油亂漲價,我想是很合理的,因為這些數據都是可以查的到的,但是中油油價與國際油價差距如此之多,每次都大漲小跌,不是胡亂漲價,就只剩油價黑洞能解釋了。

中油胡亂漲價,還我錢來 !!!



2012年8月11日 星期六

[選前選後兩樣情] ECFA與石斑魚業

雖然馬英九早表示過選舉只是說說而已,但是還是很多人會被騙,接下來就來看個例子吧。

這是去年選前的新聞,馬座談 石斑魚業:擔心馬沒連任,魚不銷大陸一定「死」

節錄一段話
戴昆財說,感謝馬總統推動兩岸簽ECFA,不但提升石斑魚價格,也讓石斑魚產業可以永續。現在石斑業者很擔心馬總統無法連任,大陸會拒絕石斑魚輸入,養殖龍膽石斑的成本1公頃要新台幣1000萬元,青斑600萬元,不銷大陸一定「死」。

News20120811_1

2012年8月9日 星期四

[台北] Solo Pasta - 古典波隆那肉醬與特寬雞蛋麵

IMG_8597

其實我很久沒有特地找家店去吃了,會來吃Solo Pasta是因為剛好在趨勢看雜誌打發時間,然後翻到這邊的介紹,看起來有張照片打到我的點,google一下地址在安和路,也不遠,所以事情結束就跑來吃了。

Solo Pasta
地址:台北市大安區安和路一段29-1號
電話:(02)2775-3645
營業時間有點複雜,可以參考Solo Pasta Facebook Info,基本上一到四只開中午,五六日才有開到晚上。

2012年8月7日 星期二

Sikuli demo - 取得網頁資料

sikuli logo

Sikuli這東西剛出現時,引起網路上一陣喧然大波,至少那時候我看的不少網站都有介紹到這個算是革命性的軟體,簡單來說,Sikuli就是個可以辨識圖片的automate工具,能辨識圖片就表示看的懂螢幕,所以你跟畫面上的互動Sikuli都能做得到,詳細介紹可以去看Sikuli官網,我這就不多說了。

之前用到Sikuli script我都是玩玩,直到最近才有用在工作上,累積了不少心得與經驗,但是這東西又有點難分享,實際上我是寫了一個模組化的GUI測試功能,會每天定時的去測試各個瀏覽器對於我們Project的相容性、是否正常,然後整合結果到一封信裡寄出來。但是這些東西因為牽扯到工作,所以沒辦法直接拿來分享,所以就亂做一個取巴哈熱門版面資料的Sikuli script,寫起來不長,就下面的20行。

陳昇 : 既然核廢料沒有害處,就放到總統府就好啦



今天看到昇哥的這段影片,他說他寫了一首新歌"應該是柴油的",在唱歌之前的一大段話,實在是妙語如珠,令人不得不轉。

花點時間看看吧,說的很有趣,很棒XD

2012年8月3日 星期五

[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.
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.



2012年8月2日 星期四

[C#] Using SmtpClient sent email with response via Gmail

最近用Sikuli做了個UI Test,要把結果用email的方式丟出來,找了一下,原本打算做模組化一點,各個不同的測試從Sikuli回傳給Python然後再去處理寄信的問題,後來討論了一下,多花力氣去維護一個語言不太划算(雖然我想玩Python啊),所以決定自己寫個頁面去做寄信的事。

找了一下,.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
                                });
        }
   }

2012年8月1日 星期三

[C#] Using FileStream StreamWriter avoid IOException

今天在用JMeter對公司的程式作壓力測試,但是我發現錯誤率一直在0.5~1%,這是相當高的錯誤率,所以就來查啦。

從JMeter紀錄來看,錯誤訊息是這樣
System.IO.IOException: 由於另一個處理序正在使用檔案 'filename',所以無法存取該檔案。
System.IO.IOException: The process cannot access the file 'filename' because it is being used by another process.
原因是在程式中會去對實體檔案寫log,平時看不出錯誤,但是壓力測試下就會因為檔案lock住產生 IOException 。

原本的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();
      }

科普教育不能等 - 地表下一千兩百多公里處

news120801

我是很樂見台灣媒體多報導一些國際、科學的新聞,今天看到這篇"全球首見 台教授研究 水壓誘發地震",就覺得是篇不錯的內容,但是看了一下,感覺怪怪的。

節錄第二段
一般地震皆因斷層帶滑動導致,為解開地震之謎,馬國鳳率領的研究團隊六年前起,在台中大坑車籠埔斷層鑽井,於地表下一千兩百多公里處,放置全球唯一設在活動斷層帶下方的地震觀測儀,之後常接收到前所未見、僅有P波(縱波)卻無S波(橫波)地震訊號,她將這種上下震動地震命名為均向地震。

ok,就我所知,人類目前到達的地下最深處應該不超過20公里吧,我找到最深的油井也不到十公里,地表下一千兩百多公里處,都已經到地函去了,google一下"wiki earth"就可以知道這數字一定有問題,記者在寫這篇的時候不會覺得奇怪嗎 ?

所以說,台灣的科普教育真的不能等啊!!



Update :



旅日強者benjemin立刻寫信給馬教授,然後得到了回應!!

2012年7月31日 星期二

[ benjemin ]從小的好朋友

潛水已久的客座今天厚顏地來發新文了,


先說這是一篇抒情文!!!


年過25之後相信大家都會漸漸發現,

有些我們從小相識以為不會變的東西,

變化之大讓我們再也認不得了。


...
...


...
...

...
...

原諒我文筆不好,還是用畫的比較快!





( 很閒的準備了可著色的版本 歡迎取用 )

[TroubleShooting] JMeter on IIS Response code: 500

今天在試壓力測試,使用的軟體是Apache JMeter,同事在demo這套軟體時,是對php去作壓力測試,看起來都ok,但是我自己對在IIS上一個有掛元件的aspx測試,怎麼測Response code都是給我500 Internal Server Error,但是網頁直接開起來卻是正常的,想來想去找不出頭緒來,後來請教同事,才發現是少給了東西才導致錯誤。

IIS給出的錯誤敘述大概是這樣

在此內容中無法使用要求

描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。
例外詳細資訊: System.Web.HttpException: 在此內容中無法使用要求
原始程式錯誤:
在執行目前 Web 要求期間,產生未處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。

2012年7月29日 星期日

[轉] 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上拍的縮時攝影實在太棒了,所以就貼上來了,以後才找的到,也跟大家分享一下美麗的東西。

2012年7月27日 星期五

[C#] Randomize Sort String Array

RandomStringArray

今天在看code的時候,發現一段看起來可以改善效能,於是就來試一下。這段程式是要把一個字串陣列作亂數排序,原本是自己去Sort,我改用LINQ幫我做Sort,測試之後速度快了五倍多,可說是飛快,下面是程式部分。

2012年7月25日 星期三

[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 類別)。可以想像一下,你寫的一套系統,在不同國家的語系設定下,同一個時間點去轉出的日期字串居然長得不一樣....光想就覺得可怕,所以在轉型時必須去確保這點才行。

[C#] Redundant Object.ToString() call

如果你有用ReSharper,有時候你在看code會發現到ReSharper跟你喊這個
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%,所以小細節多少還是有差的。

2012年7月17日 星期二

有沒有廣告買比較多,錢花比較少的八卦 ?

監察院在7/16時公布了「2012總統大選藍綠政黨競選經費申報」,其中蔡英文陣營因小額捐款奏效,個人捐款達6.5億元占總經費收入87%,為未來的競選帶來一個很好的觀念,讓選舉可以不必靠黨產和財團,也就可以讓候選人不被這些出錢的人綁架。

但是這些經費申報也讓人感到相當的有趣,沒想到國民黨所收及所支出居然只有民進黨的六成而已,這實在與總統大選時的感受有所不同,難道國民黨那麼經營有道,可以做更多的事,花更少的錢嗎 ? 關於這點,也很多新聞在質疑,例如"「三隻小豬」獻金 蔡7.5億勝馬宋"中,就有提到「為何馬英九申報數額遠低於蔡英文,蔡辦指選舉期間馬營文宣充斥媒體,馬營申報數額顯然和真實狀況有落差。」;或是"綠質疑選舉獻金 藍:依法申報"提到的「馬吳配政治獻金收入竟比前法務部長陳定南競選台灣省長時還少,連小孩都不信。

身為一個小老百姓,自然是沒有辦法去一張一張單據查出為何馬英九選總統那麼省,況且這些結算表都有律師事務所查核簽證的,隨便說有問題搞不好會被告到脫褲,所以只好從別處去想辦法了。

我先從監察院-政治獻金公告事項下載了藍、綠兩陣營的「第13任總統、副總統擬參選人政治獻金專戶」檔案,然後再到競業信息-調研分析報告下載了「2012年總統大選廣告量播出分析報告」,比對之後,感覺就有點東西可以看了。

[One Day In Taipei] Leaving

IMG_8572

Cause I'm leaving on a jet plane
I don't know when I'll be back again
          - Leavin' On A Jet Plane

This photo shoot at the day of leaving a company that I only worked for three weeks .

2012年7月9日 星期一

小暑

IMG_8589

今天是小暑,天氣接下來是越來越熱,前幾天到海邊逛逛,太陽下山後,一絲涼氣都沒有,連想躺在堤防上,結果整個水泥堤防都是熱的XD