20110526

[良語] 唯勤


何以成事?唯勤而已!

20110524

[見微]抄襲

  ----從CNBLUE(외톨이야)與Ynot(파랑새)論抄襲

抄襲的定義見仁見智?!

  在非黑即白的世界裡,可能有模糊地帶嗎?

  最近覺得CNBLUE這首歌(외톨이야,孤獨啊)很好聽,
  然後更進一步發現有抄襲的爭議;
  接著就把號稱被抄襲的那首歌Ynot樂團(파랑새)找來聽聽看。

  嗯,有抄襲爭議可以說是意料中事。

  這樣說吧,由於關鍵主旋律完全相同,幾個關鍵小節的節奏與旋律根本沒有差異,要說외톨이야是百分百原創,那是不對的。

  但是否是抄襲呢?也不是啊!!

試問:

  如果某甲做了一個大水瓶,但是傾倒的時候水容易從瓶口潑灑出來,
  某乙看到了,做一個完全相同的但在瓶口做了曲角,讓水容易集中傾倒。

  然後某乙的作品大暢銷,這樣可以指控某乙抄襲某甲嗎?

   可以:因為百分之九十以上形似
   不可:因為瓶口的改善在使用便利上是超過百分之九十的關鍵

  聽過兩首歌的聽眾,可以很明顯的聽出來哪首歌的編曲、旋律比較好聽。

  只能說「외톨이야,孤獨啊」的作曲者有很優秀的改良天賦,同時缺乏原創能力,所以才會做出這樣的曲子;那是否要因此否定這位作曲者對人類文化的貢獻呢,要見仁見智嗎?我想,答案很明顯的,改良也是一種傑出的才能,是需要肯定的。

  這個事件裡不存在抄襲,Ynot的作曲者如果有足夠的器量,應該要很高興自己的原創旋律因為這位作曲者김도훈(金道勳)而發揚光大。

20110518

[養生] 十大健康食物

  

隨著現代人的緊張生活節奏,人們越來越想保持健康的生活,
攝取適當的營養可以為現代人的保健(wellness)和持久的健康達到事半功倍的效果。
  堅果、鮭魚等十項食物被認為是現代生活中最佳的營養食品。

1 堅果 nuts

堅果不僅可以提高好的膽固醇,并能降低血液中的三酸甘油脂,是預防心臟病的最佳配方。

2 鮭魚 salmon

經常食用鮭魚可防止血管阻塞,有研究表明,鮭魚含的Omega-3成份可以保護腦部老化,罹患老人癡呆等疾病。

3 花椰菜 cauliflower

花椰菜富含胡蘿卜素及維他命C,長期食用花椰菜可以減少患乳癌、直腸癌及胃癌的機率。

4 藍莓 strawberry

藍莓在所有蔬果中擁有極高的抗氧化劑,除了可以預防心臟病和癌癥,并能增進腦力。

5 蕃茄 tomato

蕃茄內含的西紅柿紅素,能夠大幅減少罹患攝護腺癌等癌癥的機率。蕃茄也是最佳的維他命C來源。

6 菠菜 spinach

菠菜含豐實的鐵及維他命B,能夠有效防治患血管方面疾病,并能預防盲眼癥。

7 燕麥 oats 每天食用燕麥可以減低膽固醇,降低血壓。
8 大蒜 garlic

大蒜有防治心臟疾病的功能,不僅可以降低膽固醇,并有殺菌、清血的功能。

9 綠茶 green tea

經常飲用綠茶可以預防癌癥,每天食用綠茶患胃癌、食道癌及肝癌的機率較低。

10 紅酒 red wine 釀酒用的葡萄皮有豐富的抗氧化劑,能夠增加好的膽固醇,減少血管硬化,但要注意飲紅酒不能過量。

[解法]如何讓Delphi TrayIcon不重複執行程式

[解法]如何讓Delphi TrayIcon不重複執行程式
[author]
Aeon Linn.@20110518

[問題]
解決不重複執行程式的關鍵字是:
CreateSemaphore 或 CreateMutex,
但是程式若使用了 TCoolTrayIcon或類似的元件,
而且已經縮小在Tray,
那麼,『想要在重複執行時,直接叫出已經執行的程式』,
會遇到一個小小的問題:

原本依據常理推論:
SendMessage(...,WM_SYSCOMMAND ,SC_RESTORE,0) 即可完成此需求,
但發現會引起 Minimize to Tray以及部分Form元件功能的遺失,
再次點擊TrayIcon則能解除此狀況;
判斷為TrayIcon的問題。

[解法]
使用SendMessage
在.dpr SendMessage的時候改採自定義Messages.傳送指定參數;
而程式內部也接收此訊息,
在訊息觸發且參數正確時觸發CoolTrayIconClick行為(顯示/隱藏)

[註解]
自訂義MSG請參考 [教學]DELPHI使用Windows Message簡易傳值
#

[教學]DELPHI使用Windows Message簡易傳值

[教學]DELPHI使用Windows Message簡易傳值
[author] A.L.@20110518

[引用]
messages

[發送]
PostMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
1.差異在於 PostMessage送後不理
2.wParam和lParam分別可簡單的送出兩個整數值

[接收]
1.定義 Msg接口:通常在上方定義常數值
2.可簡易接收兩個整數
3.也可以接收物件,那就需要更進一步的包裝了

[範例]
const
    WM_123= WM_USER+123
...
private
    procedure WM123(var Msg:Tmessage); message WM_123;
...
procedure TFormTest.Button1Click(Sender:TObject);
begin
    SendMessage(FindWindow('TFormTest',nil),WM_123,2,1);
end;

procedure TFormTest.WM123(var Msg:Tmessage);
begin
    showmessage(inttostr(Msg.WParam)+','+inttostr(Msg.WParam));
end;

//執行結果是按下按鈕後會彈跳訊息,內容為  2,1
#

20110505

[教學]像雷達的無線基地台偵測程式

windows 7 (64bit) Toshiba ConfigFree Utility

download:
http://goo.gl/ethNd

refer: 安裝與移除教學
http://goo.gl/cEC3W

ps:
x64路徑為HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\TOSHIBA\ConfigFree