Mark Wu 發表於 2008/03/18 19:35
·
靜態連結網址
剛剛試了一堆方法,要在不知道對方 Store Procedure 的內部參數名稱下去取用他的執行結果。但是找了半天,網路上找到的資料儘是要你透過 mssql_init() 去指定 Store Procedure,然後透過 mssql_bind() 設定輸入參數與輸出結果,最後透過 mssql_execute() 來執行這個 Store Procedure,實在有夠複雜。
到 PHP 的使用手冊上找了一下,原來最簡單的方法早就在哪!有種『眾裡尋他千百度﹐幕然回首﹐那人卻在燈火闌珊處』的 fu。下次記得要先看手冊。
(閱讀全文)
文章分類:
可以做人幹嘛寫程式
Mark Wu 發表於 2008/03/16 22:15
·
靜態連結網址
最近剛好需要整合不同系統使用者帳號認證,我預備採用的方式是 SOAP,兩邊軟體一邊必須實作 SOAP Server 來提供帳號認證,另一邊需要實作 SOAP Client 來使用帳號認證。
SOAP Client 的部份會送傳下列資料到 Server 端,並且透過 Server 端所實作的 getUserInfo,來取回使用者認證資料,傳送資料如下:
- loginId:使用者帳號
- password:使用者密碼(傳送時先透過 MD5 編碼)
SOAP Server 則會實作一個 User 的 WSDL 提供給 Client 端讀取,並且實作一個 getUserInfo 的方法,用來將認證的資料 userInfo 傳回給 Client 端,userInfo 包含:
- validUser:是否為系統中的使用者
- userName:使用者全名
- eMail :使用者的電子郵件信箱
我試過 PHP 內建的 SOAP、PEAR::SOAP 與 NuSOAP,其中 NuSOAP用起來最方便。在 0.72 以前,因為 Class 命名跟內建的 SOAP 衝突,所以需要修改 Class 名稱,但是在 0.73 後則已經沒有問題。所以建議使用 0.72 的都升級到 0.73。
(閱讀全文)
文章分類:
可以做人幹嘛寫程式
Mark Wu 發表於 2008/03/04 03:27
·
靜態連結網址
其實我還是搞不懂,為什麼 Google Gadget 要搞個雞肋出來,這個雞肋就是 _IG_FetchFeedAsJSON()。為什麼說他是雞肋?因為:
- Cache 功能不足,到現在還是無法定義 Cache Interval。怪的是 _IG_FetchXmlContent() 與 _IG_FetchContent()都可以。
- 沒辦法取用 RSS Feed 中的其他資料屬性。所以如果真的要在 Google Gadget 中,完整利用 RSS Feed 中的各項屬性資料,或是外加 (Extra) 的資料,還是得用 _IG_FetchXmlContent() 來抓。
原本要將 DZone 的推噓數字也加到『愛D爽』(請用台語念),可是用 _IG_FetchFeedAsJSON 就是沒有一個屬性可以拿的到~殘念。
雞肋!雞肋!食之無味,棄之可惜!
文章分類:
可以做人幹嘛寫程式
Mark Wu 發表於 2007/11/11 23:40
·
靜態連結網址
PHP 不僅沒有 iteractive shell,甚至在 xmlrpc 上的支援也是亂七八糟的。亂七八糟,不是說 PHP 對 XMLRPC 支援的亂七八糟,而是在 XMLRPC 的支援上有太多的選擇,有官方的 XMLRPC,有 PEAR 的 XML_RPC,還有 SourceForge 上的 XML-RPC for PHP,實在令人無所適從。甚至,LifeType 本身用的是 IXR XML_RPC,根本還不再上述的程式中。
這裡的例子是用 PEAR 的 XML_RPC,所以必須透過 PEAR 安裝 XML_RPC 的支援。另外,也因為沒有 interactive shell,所以必須把測試檔案放在 web server 中測試,程式碼如下:
<?php
include_once( "XML/RPC.php" );
$client = new XML_RPC_Client( '/1.2/xmlrpc.php', 'lifetype', 80 );
$params = new XML_RPC_Value( array( new XML_RPC_Value( 1, 'int' ),
new XML_RPC_Value( 'admin', 'string' ),
new XML_RPC_Value( 'passwd', 'string' ),
new XML_RPC_Value( 5, 'int' )
), "array" );
$msg = new XML_RPC_Message( 'metaWeblog.getRecentPosts', array( $params ) );
$response = $client->send( $msg );
print_r( $response );
?>
(閱讀全文)
文章分類:
可以做人幹嘛寫程式
Mark Wu 發表於 2007/11/09 20:34
·
靜態連結網址
繼上一篇的 用 Python 來測試 LifeType 的 xmlrpc.php,這一次要用 Ruby 來測試。Ruby 也是有一個好用的 interactive shell,叫做 irb。下面是使用 irb 來測試 LifeType 的步驟:
irb(main):001:0> require 'xmlrpc/client'
irb(main):002:0> server = XMLRPC::Client.new( 'lifetype',
'/1.2/xmlrpc.php',
80)
irb(main):003:0> blog = server.call( 'metaWeblog.getRecentPosts',
1, 'admin', 'passwd', 5)
(閱讀全文)
文章分類:
可以做人幹嘛寫程式
Mark Wu 發表於 2007/11/09 20:14
·
靜態連結網址
Python 真的是好用的 scripting language,比起 Ruby,其實我更愛 Python 一些。
今天剛好有人來寫信問到 LifeType xmlrpc.php 的一些問題,所以需要一個可以馬上上手的測試工具,最好還要有 interactive 的 shell。所以想說用 Python 來測試,下面是測是的 script:
>>> import xmlrpclib
>>> from pprint import pprint
>>> server = xmlrpclib.ServerProxy(http://localhost/lifetype/1.2/xmlrpc.php)
>>> blogs = server.metaWeblog.getRecentPosts(1,'admin','passwd',5)
>>> pprint(blogs)
(閱讀全文)
文章分類:
可以做人幹嘛寫程式
Mark Wu 發表於 2007/11/05 11:47
·
靜態連結網址
Subversion 的 post-commit hook 是個很方便的功能,可以讓你在 commit 程式到 Repository 後,自動去做一些事。其中最有用的就是把 commit log 寄給相關的 developer。
在人人都有 Gmail 且 Gmail 也支援 SMTP 寄信的情況下,透過 Gmail 來寄出 commit log 應該是個好 idea。只不過, 目前的 mailer.py 並不支援 Gmail 的 TLS,所以下面的修改,就是要要將 mailer.py 修改成支援 TLS。
(閱讀全文)
文章分類:
可以做人幹嘛寫程式
Mark Wu 發表於 2006/11/28 13:02
·
靜態連結網址
這是在 Hemidemi 看到的,原文在: Top 20 replies by Programmers to Testers when their programs don't work。翻譯如下:
第 20 名:這很奇怪喔。
第 19 名:以前從來不會這樣啊!
第 18 名:昨天明明會動的啊!
第 17 名:怎麼可能~
第 16 名:這一定是機器的問題。
第 15 名:你到底是打了什麼才讓程式當掉的?
第 14 名:一定是你的資料有問題。
第 13 名:我已經好幾個禮拜沒碰那一段程式了。
第 12 名:你一定是用到舊版了。
第 11 名:一定是巧合!為什麼這種壞運氣只讓你碰上。
(閱讀全文)
文章分類:
可以做人幹嘛寫程式
Mark Wu 發表於 2006/10/27 16:01
·
靜態連結網址
又有一個白癡,以為在網路上可以為所欲為,沒有人知道他是誰。
自從我上次揭穿足跡百羅關係人,利用公司網路在星遊記謾罵之後,馬上有人利用 Tor 在我這邊繼續留言謾罵。事實上 Tor 網路並非無法追蹤,而是這些開發者不願意幫忙,因為他們的想法是:『隱私比自由更重要』。
既然我無法找出是那個白癡在我這邊謾罵,我只好把矛頭指向 Tor 的開發者。
(閱讀全文)
文章分類:
可以做人幹嘛寫程式
Mark Wu 發表於 2006/10/19 19:46
·
靜態連結網址
Tor 是由EFF(電子前哨基金會)所發展出的匿名網路服務。透過 Tor 你就可以在網路上達到完全的匿名。事實上不是查不到,而是 Tor 的開發者不願幫你查。
另外,透過 Tor ,大陸網友也可以直接穿過 GFW 跟世界接軌。
可是水能在舟,也能覆舟。就是有人會濫用這樣的技術,例如用來發 Spam,用來謾罵。Tor 的發開者不願意幫忙,我們也就只能自救了。
怎麼作呢? 把 Tor 網路給 ban 掉吧!
不過,要 ban 掉 Tor 不是那麼容易,因為你得先取得一份 Tor 的服務節點。而這些節點是由願意參與 Tor 計畫的個人所組成,變動是在太大。
(閱讀全文)
文章分類:
可以做人幹嘛寫程式
Mark Wu 發表於 2006/06/30 15:10
·
靜態連結網址
在 PHP 中有兩個非常好用的圖表程式,一個是 JpGraph,另一個是 PHP/SWF Charts。
JpGraph 採用 GD 繪圖引擎,所以可以產生各種格式的圖形,另外在統計圖表的支援上也比 PHP/SWF Charts 來的多樣,甚至包含甘特圖(Gantt Chart)的輸出。唯一可惜的是,因為採用圖形輸出,所以無法做到圖形上的及時互動。
而 PHP/SWF 則是採用 Flash 輸出,互動性自然高於 JpGraph 的輸出。 除了可以做到統計圖表展示時的順序與效果,甚至可以做到圖表的互相關連(Drill Down),不過個功能要付費才有。
我在『嗆出你ㄟ心聲 - 非正式台灣 Blogger 網路公投』的活動中,就用 PHP/SWF Charts 作了一個每日投票人數的統計圖,有興趣的可以看一下。

(閱讀全文)
文章分類:
可以做人幹嘛寫程式
Mark Wu 發表於 2006/06/17 00:46
·
靜態連結網址
超棒的 Smarty 作弊圖解,有用 Smarty 來開發程式的 PHP Developer 應該人手一份。不過『作弊』好像有點難聽,叫做取巧圖解好了。自己保留了一份,免得哪天網站不見了。

文章分類:
可以做人幹嘛寫程式
Mark Wu 發表於 2006/06/14 15:05
·
靜態連結網址
這是我幫 Bad Behavior 2 所作的 LifeType Integration Script。目前只有作程式的整合,還沒有作任何管理介面,所以你要看 Bad Behavior 所檔下的垃圾,得要透過 phpMyAdmin 自己去看了。
Bad Behavior 2 真的很有效,從昨天晚上放到 LifeType中文開發日誌後,在不到 12 小時的時間內已經檔下了快 400 個 Spam Comments 與 Trackbacks。而在 Mark's Place 也檔下了將近 900 個 Spam。
雖然還是有漏網之魚,但是我真的已經很感謝了。有興趣的人請自行下載測試:
(閱讀全文)
文章分類:
可以做人幹嘛寫程式
Mark Wu 發表於 2006/06/14 14:36
·
靜態連結網址
很早就看到 Jeff 的文章了,謝謝他對我處境的體諒。
而沒在事情發生後的第一時間出來回覆,因為真的體會到生命沒必要浪費在這些瑣事上。
第一次發生時,當然覺得很難過。第二次發生,就當作笑話看了。
是我修養變高了嗎?不是,是因為對這些瑣事麻木了。
都麻木了還出來寫這篇文章幹嘛?
人不能太無情,總得謝謝 Jeff 的知遇之恩。
文章分類:
可以做人幹嘛寫程式
Mark Wu 發表於 2006/02/14 18:36
·
靜態連結網址
目前的 Ajax Library 大概都包含四個部分:JS&Dom Improvement、Ajax Connection Management、Visual Effect 與 UI Widget。
下面是我在發展 LifeType 1.1 UI 時所使用過或試驗過的 Ajax Libary 比較:
(閱讀全文)
文章分類:
可以做人幹嘛寫程式