August 31, 2004

Visual BASIC 也有類似 .Net 的 Arraylist 喲!

這可能對很多人來說不是秘密了,在 Microsoft Scrpting Runtime 裡面除了好用的 FileSystemObject 之外,另外就是 Dictionary 了。

先在 VB 內把 Microsoft Scrpting Runtime 給引用進來。

20040831_01.gif

之後就可以這樣用了:

Dim d As New Dictionary
d.Add "test", "測試"
d.Add 1, "我是數字"

另外也可以這樣給值:

d("test") = "測試"
d(1) = "我是數字"

要叫出來只要:

msgbox d("test")
msgbox d(1)

很方便用吧! ^_^

Posted by Neo at 06:36 AM | Comments (1)

August 29, 2004

配眼鏡經驗談 (上光眼鏡真令人害怕)

因為上星期五凌晨睡覺的時候 101 大樓不知道發什麼瘋一直打閃光燈,亮的不能睡。只好跑去睡地板,沒想到起來之後發現眼鏡不見了.....原來就是壓扁在地板上,鏡架有一邊扭曲過度斷掉了。

(忘了拍斷掉照片>.<)

昨天晚上跑去通化街附近的上光眼鏡配,因為鏡架不用錢,只要付鏡片的錢就好,結果鏡片跟鏡架都選好了,驗光卻驗了一個小時都還是覺的他配出來的眼鏡實在太亮。

後來另一個朋友說他本來是快二百度的近視,為什麼驗光只驗出 100 度,後來那個負責接待的先生還是去再驗一次才發現真的是驗錯了。

雖然他極力的解釋,但是我實在不放心,所以就跟他說明天再驗看看好了。

今天上網一看,上光驗錯光好像是家常便飯,再加上他們的進口鏡片「塔洛」的竟然跟「蔡司」的鏡片價錢差不多,實在是不敢再過去了。

後來跑去年青人看看,態度也還不錯,鏡架雖然要錢,但是的確比上光的好看很多。如果要便宜,還有 699 辦到好的便宜方案。另外問了蔡司鏡片的報價則是目錄價再打七折。

在年青人挑到最後剩二支,一支金框的跟紫色無下框的眼鏡。金框那支屬於一看就感覺超專業的,加上旁邊有造型,實在非常好看。只是這支眼鏡實在不好配衣服,看起來只能穿西裝打領帶來配。另一支紫色的屬於比較流行好搭衣服的,但是我還想多看一些,就跑回我原先在公館配的博士眼鏡。

這次接待的老闆是長的蠻像黃友輔的,蔡司鏡片是六折價,眼鏡的款式也非常多,不乏 GUCCI 一些名牌,不過他拿出了店裡的頂級款手工眼鏡,比 GUCCI 的還要貴上三成,但是帶起來真的超舒服的,完全沒有帶眼鏡的感覺,而且樣式也屬於 Fashion 跟穩重並存,感覺就像是為我量身訂作的,後來二話不說就訂了這個,老闆也因為是舊客戶,所以打了折,斷掉的眼鏡也幫我拿去送焊,眼鏡的事告一段落也總算鬆了一口氣。

相關網址:

上光眼鏡受害者討論區
http://www.bonbon.to/tjc/opin.asp

http://app.netbuilder.biz/board/b5/view.php3?domain=tnyncom_memo

蔡司鏡片的討論
http://forum.palmislife.com/viewthread.php?tid=25500

蔡司鏡片官方網站:
http://www.zeiss.com.tw/

上光眼鏡官方網站:
http://smmandyy.24cc.cc/

(說實在話,上光網站做這樣還不如不要做好了)

Posted by Neo at 05:05 PM | Comments (182)

August 28, 2004

PHP 多重選項的設計技巧

20040828_01.gif

大家一定看過這種多重選項的方塊吧? ^_^

原始 HTML 碼如下:

<select name="test" multiple="multiple">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option></select>

但是第一個問題出現了,如果你選了 1、2 項,在 PHP 用 $_POST["test"] 結果竟然只有一個「1」的值。

20040828_02.gif

如果要完整的出現使用者所選的值,HTML 就必須改為:

<select name="test[]" multiple="multiple">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
</select>

如此到後端就可以變成 array 來存取了~

用 print_r($_POST["test"]); 就可以看到:

[test] => Array ( [0] => 1 [1] => 2 )

Posted by Neo at 01:42 PM | Comments (2)

August 27, 2004

[購書] JSP 2.0 技術手冊

20040827_01.jpg

由於八月到九月開始的專案,使用的技術有PHP、ASP.Net、JSP,也因此連續二週的星期五都去天瓏敗了不同領域的書回來。

上週五買了章立民的「用實例學ASP.Net 2003」,今天買的是林上傑的「JSP 2.0 技術手冊」,可以說是 JSP 2.0 中唯一的中文書,林上傑由於有出過 JSP 1.0 的書,這本書延續之前寫作的優點,除了流暢簡潔的文筆,對於每個技術及觀念都寫的相當清楚,而且都有附上簡單詳盡的範例參考。

我個人覺的 JSP 2.0 最方便的就是將 JSTL 1.0 納為 Expression Language。如果是玩 PHP 的人,就乾脆把 EL 當成更強大的 Smarty 或 FastTemplate 引擎吧,對於要抽離程式碼跟畫面是不可多得的強力助手。

EL 從 JSTL 1.0 變身成為 JSP 的標準,再搭配最新版的 JSTL 1.1 ,這本書都寫的非常清楚,其它諸如JDBC 2.0、JavaMail、XML的搭配、MVC 架構的介紹等,內容絕對足夠開發大型的網站及 Web-based Application,而且對 MySQL 的說明也非常詳細,實在值得花錢買回家參考。

以下是同作者的 JSP 1.x 版的書,感謝 Lydia 提供:

20040827_02.jpg

Posted by Neo at 11:59 PM | Comments (0)

August 26, 2004

HTMLArea 工具列分隔線跑掉的解決方法!

檢查一下表格外部是不是有用 height 指定寬度, 不當寬度會造成工具例的分隔線往下移的情況發生。

(圖型後補)

Posted by Neo at 09:07 AM | Comments (0)

August 25, 2004

HTMLArea 編輯區自動變寬的解決方法!

HTMLArea 是一個非常好用的 Web-base WYSWYG HTML 編輯器,但是出現下面這個狀況怎麼辦? 明明有指定 textarea 的寬度,但是裡面資料一多竟然整個畫面被拉寬了。

20040825_01.gif

其實很簡單,在表格 TD 的地方加個寬度即可。(如果沒有表格的話,請使用無框線的表格設定)

20040825_02.gif

再重新整理過後就正常了。

20040825_03.gif

Posted by Neo at 01:34 PM | Comments (4)

August 23, 2004

科技愈進步,人類溝通方式愈冷漠

從 ICQ 的出現到現在 MSN 的流行,很多人把上網跟即時通訊、Email當成主要的聯繫的工具。

過去大家恥笑現代人的住家的信箱只剩下廣告用途,除了廣告信,沒人願意動手寫一封信。(當兵的無聊男子例外)

現在這種現象也開始出現在 Email 上面,或許在不久的將來,連家用電話跟手機也會變成廣告用途專用。

科技愈進步,人跟人之間愈來愈冷漠,時時就看的到朋友在線上,感覺朋友就在身旁,在聯絡無距離的情況下,反而更吝嗇打一通電話給對方。

我在接案時有家公司的 Linux 工程師,他說下班回家絕不用電腦,連絡朋友一律用電話,假日一定約朋友出去玩。

然而自喻為網路世代的人們呢? 就算在無線網路的世界,也一樣被網路的枷鎖給定在電腦前,一定要用網路來完成身邊的所有事。

今天一個案子的業務一大早 MSN 傳訊過來說,問我昨天的信收到沒有,他三小時後要跟客戶報告進度,問我能不能快點交給他。

我當下就跟他說「急事請用電話,別用MSN」,而且前二天因為忙其它事情沒上網,才看到Email沒多久就說要做出來實在太趕了,昨天也沒電話跟我確認,好像 Email 丟出來我就一定要看到似的。

他理所當然的說「工程師都會收Email呀」

這不知道是什麼邏輯,我就算有收Email,你又要如何確定我有看到呢?

在手機盛行的年代,每個人就像被溜的狗,用一條無線的線牽著。

當有人Call你沒接,就必須承受無盡的罪。說穿了手機只是找人的一個管道而已,任何人都沒欠任何人一通電話,用手機找的到人算你好運,找不到只能算運氣不好。

現在這種現像也蔓延網路上,好像 MSN 訊息傳來沒收到、Email 沒收到就是罪大惡極似的。

一件事情在緊急的時候,應該動用自己的智慧去找到對方並且解決事情,當科技進步的時候,人類愈來愈不願意花心思在建立溝通管道上面,手機當 Call 機用,Email 丟了就當作對方一定有收到,這實在不是一個文明人應該有的態度。

也或許是目前網路實在太方便了,已經很少有人親自一通電話跟朋友噓寒問暖,也更吝嗇於去關心身邊的人,真的是科技的悲哀呀。

Posted by Neo at 11:45 PM | Comments (4)

August 20, 2004

[購書] 用實例學 ASP.Net 2003

20040820_01.jpg

這本除了對於 Microsoft Visual Studio 2003 的使用者而言,真的是不可多得的工具書。由於作者是具有 Microsoft 的 MVP 執照,書中每個元件及程式語法都介紹的相當清楚,非常適合入門使用。

跟幾天之前買的董先生的「ASP.Net 程式設計徹底研究」比起來,董的這本比較偏中階以上,並不適合完全沒用過 ASP.Net 的使用者,如果自認很了解 ASP、PHP、JSP 的話,這本書也只能給你 ASP.Net 跟其它 Web Script 不同的觀念及一些中高階的使用技巧,所以這本並不適合迫切需要寫 ASP.Net 的讀者購買。

另外董先生這本書裡面很多搞不清楚狀況的地方,像是作者在書中強調他一直想要的遠端呼叫 COM 元件的元件。其實不用等到 .Net 出現,難道他不知道有 DCOM 這種東西嗎?

總結來說,如果真的第一次要開發 ASP.Net 的程式,建議還是買章立民的「用實例學 ASP.Net 2003」 ,如果想要再進階一點,可以再買董先生的書來看。^^

以下是董先生的「ASP.Net 程式設計徹底研究」:
20040820_02.jpg

Posted by Neo at 11:59 PM | Comments (1)

August 18, 2004

利用剪貼簿複製 Microsoft SQL Server 的資料表內的欄位

Microsoft SQL Server 裡面的剪貼簿用過的都知道,幾乎沒什麼作用,感覺好像是做辛酸的。

其實在 SQL Server 裡面要用複製/貼上(Copy & Paste)的功能,必須要滿足某些條件才會動作。

以設計資料表為例,打開 Table 的設計模式,選好需要的欄位之後按「複製」。

不要以為這樣就進剪貼簿而關掉視窗,雖然用「貼上」記事本都還看的到資料,但是要正確的「貼上」到另一個 Table 去,必須保留原來的視窗,再開另一個視窗來「貼上」剛剛的欄位,就可以順利貼上了。

這樣是不是很 GY 呢?

Posted by Neo at 11:48 AM | Comments (0)

August 14, 2004

[免費電子書下載] ASP.NET經典實務

ASP.Net 重要的觀念都有了,如果本身是有經驗的程式設計師的話,有這些資料也夠用了。^_^

http://www.taconet.com.tw/mis2000_aspnet

覺的寫的好的話,要去書店買回來支持作者喲! ^^

Posted by Neo at 06:23 PM | Comments (2)

August 11, 2004

資料庫表單及欄位命名規則實例

今天大概把幾種常見的資料庫命名方式給整理了一下。

1.資料庫表單(Table)名稱:

單複數皆有人使用,如 products、product。

美國人命名比較喜歡依照口語習慣來用複數命名,知名的 OpenSource 軟體像 phpBB、OSCommerce、In-Link、pLog 皆是以複數命名。而 Moveable Type 則是少數使用單數名命的軟體,台灣人也是單數命名居多。

2.資料庫欄位名稱:

使用 MySQL 的 Opensource 軟體比常見整批性的加前綴(Prefix) 在欄位裡面,如 products 表單中的「產品名稱」,可能就會命名為「products_name」而 Microsoft SQL Server 則是以純欄位名稱居多,如產品名稱就直接取叫「name」了。

前綴的命名有「語意導向」跟「實用導向」二種,所謂語意導向以口語的習慣來命名,像 products 是產品的集合(複數),裡面的每個產品是單數,所以用產品名稱為例就是「product_name」。

而實用導向常見的就是以表單名稱做為前綴,如前例在 products 裡的產品名稱欄位就會命名為「products_name」,如此做的好處是程式會非常清楚每個欄位是從哪個表單抓出來的。但是缺點是在程式裡面語意不清,看起來會很不習慣。

然而大部份的欄位前綴字元還是以語意導向為主,若要使用實用導向,最好表單名稱採用單數(如 Moveable Type),否則像 OSCommerce 的全員複數,感覺程式在用名字就很奇怪,如程式明明就是只抓一筆產品名稱出來,看到 products_name 就覺的既不是複數,而且文法上也不通,意義上反而比較像 product's name。

3.大小寫:

Microsoft 的命名方式喜歡單字第一個字母大寫,如 OrderDetail。而 MySQL 比較常見全部小寫,單字中間加底線的命名方式,如 order_detal。這根資料庫的字元大小寫敏感度預設值有關,MS SQL Server 預設是大小寫不分,MySQL 則是大小寫視為不同欄位,所以統一小寫比較不容易出錯。

Posted by Neo at 12:16 AM | Comments (1)

August 10, 2004

老爸的單程車票 The Barbarian Invasions

20040810_01.jpg

這部片如果對美國文化沒有深入了解的話,恐怕完全看不懂這部片想表達的意境及幽默。

一般台灣的觀眾可能從頭看到尾心得大概只有一個:

「那個男主角還真是他媽的有錢呀...」

P.S.這部片的置入性行銷也似乎有點打過頭了,家樂福、IKEA等知名廠牌的名字刻意在電影中的對白出現,逼的國內片商不得不用雙引號括起來。

Posted by Neo at 09:20 PM | Comments (10)

August 09, 2004

女魔頭 Monster

終於看到這部期待已久的片子了。

20040809_01.jpg

這部讓莎麗塞隆登上奧斯卡影后的電影果然名不虛傳,真人真事改編,尤其第二女主角的選角堪稱一絕。感覺就像是在身邊的鄰家小女孩,舉手投足都如同一般平民老百姓,絲毫沒有電影明星的感覺,把整個電影的層次又往上提升了。

這部揹負極度沉重的心理壓力的電影,莎麗塞隆十足的男性化演出,每個場景都是高難度的內心戲演出,場場的演技都令人激賞,能在奧斯卡奪冠也是理所當然的事。

片中女主角為了愛,自認上帝賜給他的新的心理依靠而做出連續殺人的事件,實在令人省思。人性當中並不是只有惡意殺人,一個小女孩的無理取鬧,竟然間接讓一連串無辜的人喪命,事後還能置身事外脫罪,人性真正的陰暗面在這部影片中充份表現無疑,而且觀影完畢的後座力十足,使人聯想及討論的空間也非常的大,的確是部能夠讓人品味人性另一面的好片。

Posted by Neo at 11:12 PM | Comments (1)

August 05, 2004

PHP 的 Web Service Solution

昨天跟夢想家的 Emma 談到 Irose 前台改版成 PHP 的方案。

因為 Irose 採用 Mobocash 的 Web Service 來執行付款機制,但是 PHP 早期並沒有內建 SOAP ,必須透過一些 3rd Party 的程式來呼叫 Web Service。

另外好消息是 PHP5 已經有內建 SOAP extension,官方發佈消息如下:

Some of the key features of PHP 5 include:


  • The Zend Engine II with a new object model and dozens of new features.
  • XML support has been completely redone in PHP 5, all extensions are now focused around the excellent libxml2 library ( http://www.xmlsoft.org/ ).
  • A new SimpleXML extension for easily accessing and manipulating XML as PHP objects. It can also interface with the DOM extension and vice-versa.
  • A brand new built-in SOAP extension for interoperability with Web Services.
  • A new MySQL extension named MySQLi for developers using MySQL 4.1 and later. This new extension includes an object-oriented interface in addition to a traditional interface; as well as support for many of MySQL's new features, such as prepared statements.
  • SQLite has been bundled with PHP. For more information on SQLite, please visit their website .
  • Streams have been greatly improved, including the ability to access low-level socket operations on streams.

(以上資料來源: http://www.php.net/)

如果使用的是 PHP 4.3.0 以上,又不想用3rd Party的函式,可以參考這篇:
http://www.onlamp.com/pub/a/php/2003/10/30/amazon_rest.html

至於 PHP 早期的版本,比較有名的3rd Party 就屬 XML-RPC 跟 NuSOAP 了,XML-RPC 則是從 PHP 3 時代就能使用了,NuSOAP 目前到現在程式還是有在維護。

XML-RPC 官方網站
http://xmlrpc.usefulinc.com/php.html

XML-RPC SourceForge 網站
http://sourceforge.net/project/showfiles.php?group_id=34455

XML-RPC 使用範例:
http://php.weblogs.com/xml-rpc

NuSOAP 官方網站:
http://dietrich.ganx4.com/index.php?category=NuSOAP

NuSOAP 使用範例:
http://www.phpbuilder.com/columns/kramberger20031226.php3

XML-RPC 及 NuSOAP 使用範例:
http://www.xml.com/pub/a/ws/2004/03/24/phpws.html


在美國 Web Service 組織的網站中,可以找到 PHP 相關的資訊:
http://www.webservices.org/index.php/ws/content/search?SearchText=php

Posted by Neo at 11:03 AM | Comments (3)

August 04, 2004

中午真恐怖

中午停在總統府附近的時候,車子才剛塞進騎樓,停好車的時候,發現樓上有人潑水下來,心想好在我是在騎樓內。

仔細一看,最竟然是無預警的傾盆大雨,真的像是樓上的水大桶大桶的潑下來,路上的騎樓內擠滿了避難的行,實在太可怕了。

最可怕的是這場大雨還有至少 37 度 C 的大太陽,感覺水都是溫的。由於正值上班族吃飯時間,路上一堆出來吃飯沒帶傘的人。

本來想去NOVA後面吃飯,後來就在附近看到一家超好吃的自助餐,菜色實在太特別了,真難得自助餐會讓我吃到快一百元 。

吃完飯之後本來想要取消去「寰一」的行程,後來還是穿起雨衣跑了過去了,結果從市民大道到中山北路就沒雨了,原來只有火車站那一塊在下大雨,真是太可怕了。

Posted by Neo at 01:29 AM | Comments (1)

August 03, 2004

本站昨日開始流量爆增原因

經查是大陸色情下載網站引用本站 eMule 文章及圖片,單日佔用約 1G 的流量,剛剛已經設定擋住未經本站授權網站的圖片顯示功能,以提高可用頻寬。

未經授權引用的網站連結:

http://movie.aisex.com/movie/htm_data/7/0407/4510.html

http://movie.aisex.com/movie/read.php?tid=4513

在此警告此網站,未經授權引用文章及盜連圖片,而且也沒註明出處來源,實在不是一個好國民應該有的行為。

Posted by Neo at 06:01 PM | Comments (4)