今天同事拿了他女兒的彌月蛋糕給我,
回到家趕緊打開來看
看起來和一般的蜂蜜蛋糕一樣,
來個特寫阿默
裡頭還有一張名片和說明紙,
利用變焦鏡玩點花樣,
趕快切一個來吃吃看,
下刀的感覺好軟,
咬到嘴裡好綿...
很香的起司味,還有香甜的奶油味,
入口即化....
第一次吃到(AMO阿默)的蛋糕,
真是好吃!
真的很好吃,值得大力推薦,
可惜的是只有台北台中有,
高雄沒有......
2008年6月30日 星期一
2008年6月24日 星期二
將字串型態的運算式,轉成真正的數學運算式
有時程式會用到外部傳入的運算式,
可是傳入的卻是字串型態,
這時可以用.NET 的 COM 元件來計算
Private Function CalculateEquation(ByVal strEquation As String) As Double
'要先引用 [Microsoft Script Control 1.0] 的 COM 元件
Dim MsScrCtl As New MSScriptControl.ScriptControl
MsScrCtl.Language = "VBSCript"
'傳回結果
Return sc.Eval(strNewEquation)
End Function
不過通常結果沒那麼簡單,大多數都是運算式中有很多值要替換,
因此可以將字串和值放入陣列中,
Public Class Form1
Private Structure typCalculateValue
Dim Name As String
Dim Value As Double
End Structure
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strValue(2) As typCalculateValue
strValue(0).Name = "TestA"
strValue(0).Value = 0.0894216
strValue(1).Name = "TestB"
strValue(1).Value = 0.0436392
strValue(1).Name = "TestC"
strValue(1).Value = 0.42
Dim strEquation As String
strEquation = "((TestA/2+(TestB*TestC)-123.456)/77)*(1e2)"
MsgBox(CalculateEquation(strValue, strEquation))
End Sub
Private Function CalculateEquation(ByVal aryTmpValue() As typCalculateValue, ByVal strEquation As String) As Double
'要先引用 [Microsoft Script Control 1.0] 的 COM 元件
Dim MsScrCtl As New MSScriptControl.ScriptControl
MsScrCtl.Language = "VBSCript"
Dim i As Integer
Dim strNewEquation As String
strNewEquation = strEquation
For i = 0 To UBound(aryTmpValue)
strNewEquation = Replace(strNewEquation, aryTmpValue(i).Name, aryTmpValue(i).Value)
Next
Return MsScrCtl.Eval(strNewEquation)
End Function
End Class
可是傳入的卻是字串型態,
這時可以用.NET 的 COM 元件來計算
Private Function CalculateEquation(ByVal strEquation As String) As Double
'要先引用 [Microsoft Script Control 1.0] 的 COM 元件
Dim MsScrCtl As New MSScriptControl.ScriptControl
MsScrCtl.Language = "VBSCript"
'傳回結果
Return sc.Eval(strNewEquation)
End Function
不過通常結果沒那麼簡單,大多數都是運算式中有很多值要替換,
因此可以將字串和值放入陣列中,
Public Class Form1
Private Structure typCalculateValue
Dim Name As String
Dim Value As Double
End Structure
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strValue(2) As typCalculateValue
strValue(0).Name = "TestA"
strValue(0).Value = 0.0894216
strValue(1).Name = "TestB"
strValue(1).Value = 0.0436392
strValue(1).Name = "TestC"
strValue(1).Value = 0.42
Dim strEquation As String
strEquation = "((TestA/2+(TestB*TestC)-123.456)/77)*(1e2)"
MsgBox(CalculateEquation(strValue, strEquation))
End Sub
Private Function CalculateEquation(ByVal aryTmpValue() As typCalculateValue, ByVal strEquation As String) As Double
'要先引用 [Microsoft Script Control 1.0] 的 COM 元件
Dim MsScrCtl As New MSScriptControl.ScriptControl
MsScrCtl.Language = "VBSCript"
Dim i As Integer
Dim strNewEquation As String
strNewEquation = strEquation
For i = 0 To UBound(aryTmpValue)
strNewEquation = Replace(strNewEquation, aryTmpValue(i).Name, aryTmpValue(i).Value)
Next
Return MsScrCtl.Eval(strNewEquation)
End Function
End Class
2008年6月22日 星期日
風力發電機
火狐(Firefox) 3好用套件_輕鬆升級
前幾天網路上的盛事Firefox 出 3.0版了,
同時挑戰「單日最多人下載軟體」的金氏世界紀錄
對於新軟體總是抱著不要衝第一的心態,
畢竟總是會有很多的問題,我也沒時間去幫忙測試,
還是交給專業的玩家去測吧,
不過今天心血來潮把我的Firefox 2.0.0.1.4一次升級到 3.0
可以想像我幾乎沒在升級軟體的。
升上去後首先面臨的是以前的套件幾乎不能用,
我常用的是
Tab Mix Plus
新同文堂
FlashGot
IE Tab
Super Drag and Go
Web Developer
.....等等的套件
最不能忍受的當然是Tab Mix Plus和Super Drag and Go
所以找到一個非官網的版本
安裝 Tab Mix Plus Dev-Build 0.3.6.1.080416
替代 Super Drag and Go 的 QuickDrag 1.0.5
官網說明
官網下載
其它的套件
可在Firefox上使用IE的瀏覽器IE Tab 1.5.20080310
新同文堂3.9.1(這個版本沒有自動更新功能)
其它如 FlashGot , Web Developer 都可以自動更新到新版本
其它可參考
火狐套件官網
以前版本常用套件Top 15
http://quitt.net/mozilla/extensions/
不過新的火狐部份功能有Bug,但是整理上來說還是很好用。
相關消息可以參閱官網論壇
同時挑戰「單日最多人下載軟體」的金氏世界紀錄
對於新軟體總是抱著不要衝第一的心態,
畢竟總是會有很多的問題,我也沒時間去幫忙測試,
還是交給專業的玩家去測吧,
不過今天心血來潮把我的Firefox 2.0.0.1.4一次升級到 3.0
可以想像我幾乎沒在升級軟體的。
升上去後首先面臨的是以前的套件幾乎不能用,
我常用的是
Tab Mix Plus
新同文堂
FlashGot
IE Tab
Super Drag and Go
Web Developer
.....等等的套件
最不能忍受的當然是Tab Mix Plus和Super Drag and Go
所以找到一個非官網的版本
安裝 Tab Mix Plus Dev-Build 0.3.6.1.080416
替代 Super Drag and Go 的 QuickDrag 1.0.5
官網說明
官網下載
其它的套件
可在Firefox上使用IE的瀏覽器IE Tab 1.5.20080310
新同文堂3.9.1(這個版本沒有自動更新功能)
其它如 FlashGot , Web Developer 都可以自動更新到新版本
其它可參考
火狐套件官網
以前版本常用套件Top 15
http://quitt.net/mozilla/extensions/
不過新的火狐部份功能有Bug,但是整理上來說還是很好用。
相關消息可以參閱官網論壇
2008年6月17日 星期二
桂花茶
2008年6月15日 星期日
提親
這星期下了幾天的大雨,
回到高雄還在擔心會不會下到淹水,
到時要提親可就很不方便了,
幸好今天早上的雨沒有下太大,
十點出門,去載阿姨(便媒人),
一車四個人就往女友家出發。
本來打算中秋節再過去提,可是Way的妹妹要趕在今年結,
就怕明年29不宜嫁娶,所以我的計劃也只能提前了。
出發前我才開始緊張,不知道如何開口,
之前我都不曾緊張過,真是奇怪,
幸好大至上有和伯母先討論過大概的情形,
所以今天算是談得順利,
再來就是看時間安排在什麼時候,
到時再跟親朋好友公佈好日子囉~
回到高雄還在擔心會不會下到淹水,
到時要提親可就很不方便了,
幸好今天早上的雨沒有下太大,
十點出門,去載阿姨(便媒人),
一車四個人就往女友家出發。
本來打算中秋節再過去提,可是Way的妹妹要趕在今年結,
就怕明年29不宜嫁娶,所以我的計劃也只能提前了。
出發前我才開始緊張,不知道如何開口,
之前我都不曾緊張過,真是奇怪,
幸好大至上有和伯母先討論過大概的情形,
所以今天算是談得順利,
再來就是看時間安排在什麼時候,
到時再跟親朋好友公佈好日子囉~
又被鎖在門外了
每次回到家裡總會忘了帶家裡的鑰匙就出門,
這次也是一樣,
話說今天早上去剪頭髮,想說很快,
於是拿著錢和雨傘就走路出門啦,連手機都沒帶....
而爸媽以為我人在樓上,出門時順便把門給鎖上,
等我回到家才發現又被鎖在門外了,
這不是第一次,每次被鎖才會想到自己的粗心,
既然被鎖在門外,不如就欣賞著天空和過路人,
好久沒有這麼仔細的看看家裡周圍的環境,
今天的天氣不太好,天空特別的黑,雲層特別的厚,
大雨下下停停的,其實在涼亭裡看著外面的大雨,還別有一番滋味,
以前被鎖在門外總會很不高興,現在換個角度想,很難得被鎖在門外,
不如放鬆心情好好欣賞風景,一下子就過了一個半小時,
也終於等到爸媽回家了。
這次也是一樣,
話說今天早上去剪頭髮,想說很快,
於是拿著錢和雨傘就走路出門啦,連手機都沒帶....
而爸媽以為我人在樓上,出門時順便把門給鎖上,
等我回到家才發現又被鎖在門外了,
這不是第一次,每次被鎖才會想到自己的粗心,
既然被鎖在門外,不如就欣賞著天空和過路人,
好久沒有這麼仔細的看看家裡周圍的環境,
今天的天氣不太好,天空特別的黑,雲層特別的厚,
大雨下下停停的,其實在涼亭裡看著外面的大雨,還別有一番滋味,
以前被鎖在門外總會很不高興,現在換個角度想,很難得被鎖在門外,
不如放鬆心情好好欣賞風景,一下子就過了一個半小時,
也終於等到爸媽回家了。
2008年6月11日 星期三
旅社再度開張
昨天,以前的台積同事來我這裡借住一晚,
因為他上來新竹面試,第二天還要上台北,
所以就先暫住一宿。
昨天晚上找了另外兩個同事一起去吃鐵板燒,
位在食品路上的肥仔龍鐵板燒,學生餐一客99元,
就是兩樣菜,外加魚排和 牛.豬.羊 三選一,
飲料和湯無限量供應,不過白飯一碗就要十元,
整體來說是還ok啦,
不過現場的排煙設備設計不太好,所以在風尾的人只能猛吸油煙。
吃完後再去附近的 7-11 坐著聊天,
可以說是方便又省錢了,缺點是上廁所要跟四週的店家借。
晚上聊到九點就各自回家,
回到家,同事再教我.NET程式設計觀念,
一下子講太多還真有點消化不良咧。
因為他上來新竹面試,第二天還要上台北,
所以就先暫住一宿。
昨天晚上找了另外兩個同事一起去吃鐵板燒,
位在食品路上的肥仔龍鐵板燒,學生餐一客99元,
就是兩樣菜,外加魚排和 牛.豬.羊 三選一,
飲料和湯無限量供應,不過白飯一碗就要十元,
整體來說是還ok啦,
不過現場的排煙設備設計不太好,所以在風尾的人只能猛吸油煙。
吃完後再去附近的 7-11 坐著聊天,
可以說是方便又省錢了,缺點是上廁所要跟四週的店家借。
晚上聊到九點就各自回家,
回到家,同事再教我.NET程式設計觀念,
一下子講太多還真有點消化不良咧。
2008年6月8日 星期日
今年的第一口玉荷包
2008年6月7日 星期六
真不巧,下雨了,無法照相
本來今天要去苗栗,結果阿坤生病,
想說那就去照相,順便爬山,
結果才出門就下雨,只好回來照我的小花圃了。
先看看好久沒拍照的小精靈(Tillandsia ionantha),
長大了不少,可以比較先前照的照片
再來是我的 Tillandsia tricolor 開完花後也長了一株側芽
無意間還發現我的 Tillandsia tricolor (三色花)還有結夾果,
還以為它那球拍狀的花序會爛掉,結果沒有,還結果咧!
只不過我的 Tillandsia juncifolia 還是沒有開花,一點動靜都沒有
到是去年無意間丟到土裡的紅龍果種子發芽了,
等了好久才長成這般大小,本來還不想讓它活的,不太去照顧它,
結果是還長大了。
再加上隨意丟棄的小蕃茄,也長了好多出來,
快變成小森林了,可以看到小黃花,那可是茼蒿的花哦,
不知道它的種子長什麼樣子
一個無法拍照的星期六,只好拍拍小花圃,
結果意外發現我的植物變了不少,算是意外收穫吧!!
參考 Tillandsia tricolor開花了
微觀新世界
想說那就去照相,順便爬山,
結果才出門就下雨,只好回來照我的小花圃了。
先看看好久沒拍照的小精靈(Tillandsia ionantha),
長大了不少,可以比較先前照的照片
再來是我的 Tillandsia tricolor 開完花後也長了一株側芽
無意間還發現我的 Tillandsia tricolor (三色花)還有結夾果,
還以為它那球拍狀的花序會爛掉,結果沒有,還結果咧!
只不過我的 Tillandsia juncifolia 還是沒有開花,一點動靜都沒有
到是去年無意間丟到土裡的紅龍果種子發芽了,
等了好久才長成這般大小,本來還不想讓它活的,不太去照顧它,
結果是還長大了。
再加上隨意丟棄的小蕃茄,也長了好多出來,
快變成小森林了,可以看到小黃花,那可是茼蒿的花哦,
不知道它的種子長什麼樣子
一個無法拍照的星期六,只好拍拍小花圃,
結果意外發現我的植物變了不少,算是意外收穫吧!!
參考 Tillandsia tricolor開花了
微觀新世界
2008年6月6日 星期五
阿坤保重了
本來計劃明天要去苗栗找阿坤,
因為太久沒去找他了,
結果這兩天聽說病得不輕,
一直跑醫院,今天大嫂不得以打電話給我,
說不好意思,只能取消行程了,
唉呀~真是口年的阿坤,
好好休息吧,等你康復後我再找時間去煩你,
這回就放過你,讓你好好休息。
所以明天的行程就另外安排囉~
因為太久沒去找他了,
結果這兩天聽說病得不輕,
一直跑醫院,今天大嫂不得以打電話給我,
說不好意思,只能取消行程了,
唉呀~真是口年的阿坤,
好好休息吧,等你康復後我再找時間去煩你,
這回就放過你,讓你好好休息。
所以明天的行程就另外安排囉~
歌手 蘇明淵(蘇兒真) 的部落格
前幾天無意間看到的一則新聞,
裡面可以試聽到蘇兒真的歌,個人感覺是滿輕柔的,
蘇明淵的部落格名為「律師歌手蘇兒真的部落格」,
網址為http://www.wretch.cc/blog/ninthchords
裡面可以試聽到蘇兒真的歌,個人感覺是滿輕柔的,
蘇明淵的部落格名為「律師歌手蘇兒真的部落格」,
網址為http://www.wretch.cc/blog/ninthchords
輕盈的資料庫 SQLite
在某些情況下,會用到資料庫,但又不想要安裝一個龐大的系統在電腦中,
這時可以選擇輕如羽毛的資料庫 SQLite ,
它是免費軟體,重點是他的輕量化讓人感覺不到他的存在,
而且功能具備,實在是一個好用的資料庫。
除了 PHP 會用到,還支援很多語言,可以上官方網站查詢,
我也寫了一篇 TCL 和 SQLite 的應用,這是參考官網的 Documentation 範例所改編,
非常的簡單易學,今天第一次接觸,就發現它的輕便之處,
Command-Line程式也才幾百K,下載回來的DLL也一樣的小,
單一的檔案,直接使用,不用安裝,簡單明瞭,驚嚇到嘴巴合不攏。
有需要的可以下載回來玩玩看。
這時可以選擇輕如羽毛的資料庫 SQLite ,
它是免費軟體,重點是他的輕量化讓人感覺不到他的存在,
而且功能具備,實在是一個好用的資料庫。
除了 PHP 會用到,還支援很多語言,可以上官方網站查詢,
我也寫了一篇 TCL 和 SQLite 的應用,這是參考官網的 Documentation 範例所改編,
非常的簡單易學,今天第一次接觸,就發現它的輕便之處,
Command-Line程式也才幾百K,下載回來的DLL也一樣的小,
單一的檔案,直接使用,不用安裝,簡單明瞭,驚嚇到嘴巴合不攏。
有需要的可以下載回來玩玩看。
TCL 和 SQLite 的應用
###=== 載入 下載回來的tclsqlite.DLL
load "C:/Tcl/lib/tclsqlite3.dll" sqlite
###=== 建立新的資料庫
sqlite db1 F:/Andre_kao/testdb.db
db1 eval {CREATE TABLE t1(a int, b text)}
###=== 寫入資料
db1 eval {INSERT INTO t1 VALUES(1,'hello')}
db1 eval {INSERT INTO t1 VALUES(2,'goodbye')}
db1 eval {INSERT INTO t1 VALUES(3,'howdy!')}
set x [db1 eval
{SELECT * FROM t1 ORDER BY a}]
###--- 傳回 1 hello 2 goodbye 3 howdy!
###=== 將資料庫中的資料排序後印出來
db1 eval {SELECT * FROM t1 ORDER BY a} values {
parray values
puts ""
}
###=== 輸出結果
###=== values(*) = a b
###=== values(a) = 1
###=== values(b) = hello
###=== values(*) = a b
###=== values(a) = 2
###=== values(b) = goodbye
###=== values(*) = a b
###=== values(a) = 3
###=== values(b) = howdy!
###=== 請參考 http://www.sqlite.org/tclsqlite.html
load "C:/Tcl/lib/tclsqlite3.dll" sqlite
###=== 建立新的資料庫
sqlite db1 F:/Andre_kao/testdb.db
db1 eval {CREATE TABLE t1(a int, b text)}
###=== 寫入資料
db1 eval {INSERT INTO t1 VALUES(1,'hello')}
db1 eval {INSERT INTO t1 VALUES(2,'goodbye')}
db1 eval {INSERT INTO t1 VALUES(3,'howdy!')}
set x [db1 eval
{SELECT * FROM t1 ORDER BY a}]
###--- 傳回 1 hello 2 goodbye 3 howdy!
###=== 將資料庫中的資料排序後印出來
db1 eval {SELECT * FROM t1 ORDER BY a} values {
parray values
puts ""
}
###=== 輸出結果
###=== values(*) = a b
###=== values(a) = 1
###=== values(b) = hello
###=== values(*) = a b
###=== values(a) = 2
###=== values(b) = goodbye
###=== values(*) = a b
###=== values(a) = 3
###=== values(b) = howdy!
###=== 請參考 http://www.sqlite.org/tclsqlite.html
Metlab DLL 和 TCL 的應用
###### Metlab Code ######
###=== 建立一個 matlab 的檔案,命名為test2
###=== 程式碼如下
function [result] =test3(a,b,c,d)
result = a+b*c-d;
save('D:\MATLAB6p5\work');
return
###=== 在 Matlab 主程式中,選擇..
###=== Start --> Matlab --> Matlab COM Builder --> Matlab COM Builder
###=== 建立 New Project 取名為 test1
###=== Component Name 設為 testAAA
###=== 將 Build debug version 的選項打勾
###=== 執行Build產生 DLL 檔案
###=== 將DLL檔COPY到 C:\Windows\System32 裡面
################################
########### tcl 載入 DLL ###############
package require tcom
::tcom::import test1_1_0.dll
set comUtil [::test1::testAAA]
### 這裡的[::test1::testAAA]
### test1是Matlab 的COM Builder檔名
### testAAA是Matlab 的Component Name,也就是 Class Name
###===--- 執行 DLL
### a 矩陣內容為
### { 1.0 2.0 }
### { 3.0 4.0 }
set a [list [list [expr double(1)] [expr double(2)]] [list [expr double(3)] [expr double(4)]] ]
### b 矩陣內容為
### { 3.0 2.0 }
### { 4.0 5.0 }
set b [list [list [expr double(3)] [expr double(2)]] [list [expr double(4)] [expr double(5)]] ]
### c 矩陣內容為
### { 1.0 2.0 }
### { 3.0 4.0 }
set c [list [list [expr double(1)] [expr double(2)]] [list [expr double(3)] [expr double(4)]] ]
### d 矩陣內容為
### { 4.0 5.0 }
### { 6.0 7.0 }
set d [list [list [expr double(4)] [expr double(5)]] [list [expr double(6)] [expr double(7)]] ]
set retx $comUtil test2 1 retx $a $b $c $d
### 這裡的 $comUtil test2 ....
### test2 是Matlab的M File Name,也就是存放程式碼的檔名
puts $retx
### 上面的$comUtil test2 1 retx.. "1" 表示傳回一個值 由 retx 變數接
### 傳回 {6.0 11.0} {16.0 25.0}
###=== 建立一個 matlab 的檔案,命名為test2
###=== 程式碼如下
function [result] =test3(a,b,c,d)
result = a+b*c-d;
save('D:\MATLAB6p5\work');
return
###=== 在 Matlab 主程式中,選擇..
###=== Start --> Matlab --> Matlab COM Builder --> Matlab COM Builder
###=== 建立 New Project 取名為 test1
###=== Component Name 設為 testAAA
###=== 將 Build debug version 的選項打勾
###=== 執行Build產生 DLL 檔案
###=== 將DLL檔COPY到 C:\Windows\System32 裡面
################################
########### tcl 載入 DLL ###############
package require tcom
::tcom::import test1_1_0.dll
set comUtil [::test1::testAAA]
### 這裡的[::test1::testAAA]
### test1是Matlab 的COM Builder檔名
### testAAA是Matlab 的Component Name,也就是 Class Name
###===--- 執行 DLL
### a 矩陣內容為
### { 1.0 2.0 }
### { 3.0 4.0 }
set a [list [list [expr double(1)] [expr double(2)]] [list [expr double(3)] [expr double(4)]] ]
### b 矩陣內容為
### { 3.0 2.0 }
### { 4.0 5.0 }
set b [list [list [expr double(3)] [expr double(2)]] [list [expr double(4)] [expr double(5)]] ]
### c 矩陣內容為
### { 1.0 2.0 }
### { 3.0 4.0 }
set c [list [list [expr double(1)] [expr double(2)]] [list [expr double(3)] [expr double(4)]] ]
### d 矩陣內容為
### { 4.0 5.0 }
### { 6.0 7.0 }
set d [list [list [expr double(4)] [expr double(5)]] [list [expr double(6)] [expr double(7)]] ]
set retx $comUtil test2 1 retx $a $b $c $d
### 這裡的 $comUtil test2 ....
### test2 是Matlab的M File Name,也就是存放程式碼的檔名
puts $retx
### 上面的$comUtil test2 1 retx.. "1" 表示傳回一個值 由 retx 變數接
### 傳回 {6.0 11.0} {16.0 25.0}
2008年6月5日 星期四
工程師節的禮物
想不到6/6日的工程師節,在台積還會送禮物,
真是太高興了,這次是送有多國專利的水壺,
行動拍擋 PC-701-740cc
在網路上看的價格還有點貴咧,
嚇死人,應該是專利的關係吧,
聽說大陸早就開始出現仿冒仿冒品了。
整組就長這樣
把上下蓋子都打開就是這樣
水壺的"腸子"還在肚子裡時
把腸子拉出來特寫,旁邊是水壺的上蓋,裡面還有洩壓閥的裝置
金鋼合體......這才是能帶出門的樣子!
感覺上泡茶很方便,也可以泡咖啡和果茶,
不過若是茶葉泡在裡面太久要拿出來也是挺麻煩的,
應該比較適合冷泡茶吧!因為冰水泡茶可以泡久一點。
真是太高興了,這次是送有多國專利的水壺,
行動拍擋 PC-701-740cc
在網路上看的價格還有點貴咧,
嚇死人,應該是專利的關係吧,
聽說大陸早就開始出現仿冒仿冒品了。
整組就長這樣
把上下蓋子都打開就是這樣
水壺的"腸子"還在肚子裡時
把腸子拉出來特寫,旁邊是水壺的上蓋,裡面還有洩壓閥的裝置
金鋼合體......這才是能帶出門的樣子!
感覺上泡茶很方便,也可以泡咖啡和果茶,
不過若是茶葉泡在裡面太久要拿出來也是挺麻煩的,
應該比較適合冷泡茶吧!因為冰水泡茶可以泡久一點。
Yahoo! 奇摩輸入法
想不到 Yahoo 竟然也出了輸入法,
其實這造福了不少打注音的朋友們,
感覺上我的倉頡輸入好像用不太到,
畢竟打了這麼久的倉頡,一時間要換也不太容易,
不過還是拿來比較一下好了,
一般倉頡
Yahoo! 奇摩輸入法
兩者比較起來,一般倉頡可以選的字較少,
不過聯想詞提示來說,Yahoo! 奇摩輸入法比較能夠選到對的字,
只不過我習慣用舊的提示字,所以常會不自覺的按錯,
應該只是習慣與否的問題而已,到是建議使用注音的朋友可以考慮看看 Yahoo! 奇摩輸入法
觀看 Yahoo! 奇摩輸入法 動畫教學
其實這造福了不少打注音的朋友們,
感覺上我的倉頡輸入好像用不太到,
畢竟打了這麼久的倉頡,一時間要換也不太容易,
不過還是拿來比較一下好了,
一般倉頡
Yahoo! 奇摩輸入法
兩者比較起來,一般倉頡可以選的字較少,
不過聯想詞提示來說,Yahoo! 奇摩輸入法比較能夠選到對的字,
只不過我習慣用舊的提示字,所以常會不自覺的按錯,
應該只是習慣與否的問題而已,到是建議使用注音的朋友可以考慮看看 Yahoo! 奇摩輸入法
觀看 Yahoo! 奇摩輸入法 動畫教學
教你如何用 Backy 收 Yahoo 的 pop3 信箱
今天在網路上無意間看到一篇利用Gmail的過濾機制收Yahoo的Mail,
請參考如何用Gmail收發Yahoo!奇摩信箱的Email郵件?(用Gmail過濾Yahoo垃圾信)
在那裡面就有講到如何破解Yahoo信箱要付費才能收POP3的限制,
原來登入在國外的Yahoo是不用收費,可是到了台灣就變成要錢了,
照著他的方法做一次,果然沒錯,可以收POP3的MAIL,
於是將我的 Backy Mail 也設定一下好了,
這樣我也可以在自己的電腦收Yahoo的信啦,真是好用。
首先新增一個帳戶
然後在內容的設定改為
在同一個視窗,不同分頁中,[雜項]裡有關SSL的設定如下
簡單設定就ok了
不過Yahoo的 Mail過濾功能真的太差了,
看得很頭痛,經過實際使用狀況來看,
先經由Gmail過濾完再收會比較好,
因為我原先的Yahoo 信箱有 一千多封信,大多是廣告或病毒信,
經過Gmail過濾完剩下一百多封,省去了我很多時間。
真是強烈建議如此比照辦理的啦!!
請參考如何用Gmail收發Yahoo!奇摩信箱的Email郵件?(用Gmail過濾Yahoo垃圾信)
在那裡面就有講到如何破解Yahoo信箱要付費才能收POP3的限制,
原來登入在國外的Yahoo是不用收費,可是到了台灣就變成要錢了,
照著他的方法做一次,果然沒錯,可以收POP3的MAIL,
於是將我的 Backy Mail 也設定一下好了,
這樣我也可以在自己的電腦收Yahoo的信啦,真是好用。
首先新增一個帳戶
然後在內容的設定改為
在同一個視窗,不同分頁中,[雜項]裡有關SSL的設定如下
簡單設定就ok了
不過Yahoo的 Mail過濾功能真的太差了,
看得很頭痛,經過實際使用狀況來看,
先經由Gmail過濾完再收會比較好,
因為我原先的Yahoo 信箱有 一千多封信,大多是廣告或病毒信,
經過Gmail過濾完剩下一百多封,省去了我很多時間。
真是強烈建議如此比照辦理的啦!!
2008年6月4日 星期三
我口年的蚊帳
使用 TCL 解高斯函數(矩陣 Matrix)
### 設定矩陣大小
### 矩陣內容如下
### MatrixA :
### | 1 1 2 |
### | 10 11 12 |
### MatrixB :
### | 5 |
### | 7 |
set X 3
set Y 2
### 引用 TCL 的數學函式 Library Package
package require
math::linearalgebra
### 建立矩陣
set MatrixA [::math::linearalgebra::mkMatrix $Y $X 0]
set MatrixB [::math::linearalgebra::mkMatrix $Y 1 1]
### 填入矩陣 MatrixA 內容
::math::linearalgebra::setelem MatrixA 0 0 1
::math::linearalgebra::setelem MatrixA 0 1 1
::math::linearalgebra::setelem MatrixA 0 2 2
::math::linearalgebra::setelem MatrixA 1 0 10
::math::linearalgebra::setelem MatrixA 1 1 11
::math::linearalgebra::setelem MatrixA 1 2 12
### 填入矩陣 MatrixB 內容
::math::linearalgebra::setelem MatrixB 0 0 5
::math::linearalgebra::setelem MatrixB 1 0 7
### 使用 TCL 的 Library 計算 解高斯函數
set Z [::math::linearalgebra::solveGauss$MatrixA $MatrixB]
### 傳回答案 48.0 -43.0
### 矩陣內容如下
### MatrixA :
### | 1 1 2 |
### | 10 11 12 |
### MatrixB :
### | 5 |
### | 7 |
set X 3
set Y 2
### 引用 TCL 的數學函式 Library Package
package require
math::linearalgebra
### 建立矩陣
set MatrixA [::math::linearalgebra::mkMatrix $Y $X 0]
set MatrixB [::math::linearalgebra::mkMatrix $Y 1 1]
### 填入矩陣 MatrixA 內容
::math::linearalgebra::setelem MatrixA 0 0 1
::math::linearalgebra::setelem MatrixA 0 1 1
::math::linearalgebra::setelem MatrixA 0 2 2
::math::linearalgebra::setelem MatrixA 1 0 10
::math::linearalgebra::setelem MatrixA 1 1 11
::math::linearalgebra::setelem MatrixA 1 2 12
### 填入矩陣 MatrixB 內容
::math::linearalgebra::setelem MatrixB 0 0 5
::math::linearalgebra::setelem MatrixB 1 0 7
### 使用 TCL 的 Library 計算 解高斯函數
set Z [::math::linearalgebra::solveGauss$MatrixA $MatrixB]
### 傳回答案 48.0 -43.0
TCL中,將陣列(Array) 轉成不含Index 的 List 字串
### 取得陣列大小,如 Array1 的大小為 (3,5)
### 傳入 GetArraySize Array1 取得的值為 { 3 5 } 的 List
### 可由 [lindex [GetArraySize Array1] 0] 的方式取出 Row
### [lindex [GetArraySize Array1] 1] 的方式取出 Col
proc GetArraySize {arryName} {
set listName ""
upvar $arryName arryNameII
set arrRowMax 0
set arrColMax 0
foreach {value} [array get arryNameII] {lappend arrElment $value}
for {set i 1} {$i = [llength $arrElment]} {set i [expr $i+2]} {
set arrIdx [lindex $arrElment [expr $i-1]]
set arrRow [string range $arrIdx 0 [expr [string first "," $arrIdx 0] - 1] ]
set arrCol [string range $arrIdx [expr [string first "," $arrIdx 0] + 1] [string length $arrIdx]
]
if {$arrRow>$arrRowMax} {set arrRowMax $arrRow}
if {$arrCol>$arrColMax} {set arrColMax $arrCol}
}
return "$arrRowMax $arrColMax"
}
### 將陣列轉成List
### 因為用TCL的 array get 會連同 Array Index 同時轉成 List
### 所以另外寫一個 procedure ,將陣列內容轉成不含 Index 的 List
### 這一段才是主要的程轉換 Function
proc Array2List {srcArrName} {
upvar $srcArrName srcArrNameII
### 呼叫副程式取出陣列的 Row 及 Col 大小
set srcArrNameII_r [lindex [GetArraySize srcArrNameII] 0]
set srcArrNameII_c [lindex [GetArraySize srcArrNameII] 1]
set destListName ""
for {set i 1} {$i <= $srcArrNameII_r} {incr i } {
set temp ""
for {set j 1} {$j <= $srcArrNameII_c} {incr j } {
lappend temp 0
}
lappend destListName $temp
}
for {set i 1} {$i <= $srcArrNameII_r} {incr i } {
for {set j 1} {$j <= $srcArrNameII_c} {incr j } {
lset destListName [expr $i-1] [expr $j-1] [expr double ($srcArrNameII($i,$j))]
}
}
return $destListName
}
### 傳入 GetArraySize Array1 取得的值為 { 3 5 } 的 List
### 可由 [lindex [GetArraySize Array1] 0] 的方式取出 Row
### [lindex [GetArraySize Array1] 1] 的方式取出 Col
proc GetArraySize {arryName} {
set listName ""
upvar $arryName arryNameII
set arrRowMax 0
set arrColMax 0
foreach {value} [array get arryNameII] {lappend arrElment $value}
for {set i 1} {$i = [llength $arrElment]} {set i [expr $i+2]} {
set arrIdx [lindex $arrElment [expr $i-1]]
set arrRow [string range $arrIdx 0 [expr [string first "," $arrIdx 0] - 1] ]
set arrCol [string range $arrIdx [expr [string first "," $arrIdx 0] + 1] [string length $arrIdx]
]
if {$arrRow>$arrRowMax} {set arrRowMax $arrRow}
if {$arrCol>$arrColMax} {set arrColMax $arrCol}
}
return "$arrRowMax $arrColMax"
}
### 將陣列轉成List
### 因為用TCL的 array get 會連同 Array Index 同時轉成 List
### 所以另外寫一個 procedure ,將陣列內容轉成不含 Index 的 List
### 這一段才是主要的程轉換 Function
proc Array2List {srcArrName} {
upvar $srcArrName srcArrNameII
### 呼叫副程式取出陣列的 Row 及 Col 大小
set srcArrNameII_r [lindex [GetArraySize srcArrNameII] 0]
set srcArrNameII_c [lindex [GetArraySize srcArrNameII] 1]
set destListName ""
for {set i 1} {$i <= $srcArrNameII_r} {incr i } {
set temp ""
for {set j 1} {$j <= $srcArrNameII_c} {incr j } {
lappend temp 0
}
lappend destListName $temp
}
for {set i 1} {$i <= $srcArrNameII_r} {incr i } {
for {set j 1} {$j <= $srcArrNameII_c} {incr j } {
lset destListName [expr $i-1] [expr $j-1] [expr double ($srcArrNameII($i,$j))]
}
}
return $destListName
}
2008年6月2日 星期一
VB DLL 和 TCL 的應用
'################# VB DLL Class 設定 ###########
'### 開啟 VB 的 DLL 專案,並且命名為 ReCallDLL
'### 新增一個 Class 檔案 ,命名為 clsReCallDLL
'###---------- 加入以下程式碼 -----------------
Public Function testAB(a() As Variant, b()As Variant) As String
'組合第一個陣列內容
testAB = "aryStr = " & a(0) & b(0)
End Function
Public Function mathadd(a As Double, b As Double) As Double
'兩數相加
mathadd = a + b
End Function
Public Function mathadd2(a As Variant) As String
'傳回傳入字串
mathadd2 = "The Value is = " & a
End Function
'###----------------------------------------
################# TCL 的執行 Scrip ###########
### TCL 載入 DLL
package require tcom
::tcom::import ReCallDLL.dll ;#採用動態(未安裝 DLL)載入
### 若是靜態(事先安裝DLL)載入則用下面的方法
#set comUtil [::ReCallDLL::clsReCallDLL]
### 建立連接端
set comUtil [::tcom::ref createobject "ReCallDLL.clsReCallDLL"]
### TCL 執行 DLL
set b "1 2" ;#將 b 設為 List ,因為設成陣列Array 傳遞時會出現錯誤
set c "3 4" ;#將 c 設為 List ,因為設成陣列Array 傳遞時會出現錯誤
set a [$comUtil testAB b c] ;#呼叫 DLL 並執行其中的一個 testAB Function
### 傳回 aryStr = 13
set b 12 ;#將 b 設為單一數字
set c 23 ;#將 c 設為單一數字
set a [$comUtil mathadd bl cl] ;#呼叫 DLL 並執行 mathadd 將兩數相加並傳回
## 傳回 35
'### 開啟 VB 的 DLL 專案,並且命名為 ReCallDLL
'### 新增一個 Class 檔案 ,命名為 clsReCallDLL
'###---------- 加入以下程式碼 -----------------
Public Function testAB(a() As Variant, b()As Variant) As String
'組合第一個陣列內容
testAB = "aryStr = " & a(0) & b(0)
End Function
Public Function mathadd(a As Double, b As Double) As Double
'兩數相加
mathadd = a + b
End Function
Public Function mathadd2(a As Variant) As String
'傳回傳入字串
mathadd2 = "The Value is = " & a
End Function
'###----------------------------------------
################# TCL 的執行 Scrip ###########
### TCL 載入 DLL
package require tcom
::tcom::import ReCallDLL.dll ;#採用動態(未安裝 DLL)載入
### 若是靜態(事先安裝DLL)載入則用下面的方法
#set comUtil [::ReCallDLL::clsReCallDLL]
### 建立連接端
set comUtil [::tcom::ref createobject "ReCallDLL.clsReCallDLL"]
### TCL 執行 DLL
set b "1 2" ;#將 b 設為 List ,因為設成陣列Array 傳遞時會出現錯誤
set c "3 4" ;#將 c 設為 List ,因為設成陣列Array 傳遞時會出現錯誤
set a [$comUtil testAB b c] ;#呼叫 DLL 並執行其中的一個 testAB Function
### 傳回 aryStr = 13
set b 12 ;#將 b 設為單一數字
set c 23 ;#將 c 設為單一數字
set a [$comUtil mathadd bl cl] ;#呼叫 DLL 並執行 mathadd 將兩數相加並傳回
## 傳回 35
2008年6月1日 星期日
nUtella 能多益榛子果仁可可醬
自從上回老弟去義大利帶回來
La buona prima colazione con nUtella
一吃到真是驚為天人,於是到處找看台灣有沒有在賣,
後來在網路上查到好市多和大潤發都有在賣,
所以昨天就去大潤發買了一瓶,
大潤發賣的是200克包裝,一瓶要72元
進口商是:香港商亞洲費列羅有限公司台灣分公司
今天就拿來比較看看,
外觀是有差別,因為義大利的是400克包裝(歐元2.56),台灣是200克包裝(台幣72元),
背面看來也有所不同,
以口感來說,台灣的味道比較淡,而且濃稠度也沒有義大利的濃,
台灣賣的榛果味也沒有義大利的香,
台灣進口的可可醬一開封還帶點淡淡的藥味,必須將蓋子打開幾分鐘才行,
那股藥味不知道是包裝的關係還是內容物的關係?
也因為台灣進口的能多益榛子果仁可可醬濃度比較稀,
在抹麵包或餅干時可以很容易的抹上,只是要抹很厚一層
而義大利的較濃,在抹時要稍微出點力否則不容易抹上去,
不過卻只要薄薄一層就有濃濃的金沙味了。
La buona prima colazione con nUtella
一吃到真是驚為天人,於是到處找看台灣有沒有在賣,
後來在網路上查到好市多和大潤發都有在賣,
所以昨天就去大潤發買了一瓶,
大潤發賣的是200克包裝,一瓶要72元
進口商是:香港商亞洲費列羅有限公司台灣分公司
今天就拿來比較看看,
外觀是有差別,因為義大利的是400克包裝(歐元2.56),台灣是200克包裝(台幣72元),
背面看來也有所不同,
以口感來說,台灣的味道比較淡,而且濃稠度也沒有義大利的濃,
台灣賣的榛果味也沒有義大利的香,
台灣進口的可可醬一開封還帶點淡淡的藥味,必須將蓋子打開幾分鐘才行,
那股藥味不知道是包裝的關係還是內容物的關係?
也因為台灣進口的能多益榛子果仁可可醬濃度比較稀,
在抹麵包或餅干時可以很容易的抹上,只是要抹很厚一層
而義大利的較濃,在抹時要稍微出點力否則不容易抹上去,
不過卻只要薄薄一層就有濃濃的金沙味了。
訂閱:
文章 (Atom)
熱門文章
-
今天一位朋友在問我,他的電腦無法開機, 電源一開都沒畫面....怎麼辦? 通常螢幕沒有畫面的問題很多種, 第一考慮的是螢幕有沒有壞掉? 怎麼判斷呢? 1.檢查螢幕 先開螢幕的總電源,看是不是有亮電源燈? 若有表示電源輸入沒問題,再來就按螢幕的功能鍵, 看會不會跳出螢幕設定視窗...
-
前陣子玩了一些水耕的設備, 因為要天天記錄溫度、EC(電導度)、PH(酸鹼度), 顯得有點麻煩,所以打算自己 DIY 一些設備來玩玩。 首先考慮到程式開發的速度,選擇使用 Arduino 的板子來 DIY 我所購買的板子是 Arduino Leonardo, 另外購買 ...
-
魚菜共生的作法有很多種, 我所採用的是介質床加上 Bell Siphon(鐘虹吸) 產生潮汐現象, 網路上查詢的結果是這樣成功率比較高。 但是先前 DIY 的 Bell Siphon 調整了好久,才能有正常的虹吸現象, 原因就是虹吸的進水口水平難以調整, 後來去上了魚...