World Class Service

在網路上的創業家,多到數不清,最近中國大型的 B2B 網站,阿里巴巴在香港發行募集資金,又一次讓人見識到網路的洪流,見識到一個沒有邊界的機會。

網路服務的機會在於,你有好想法的時候,可以很快的把他轉成服務,可以沒有工廠,沒有通路,沒有客服,就把你的產品推向全世界,只要你的服務夠好,可以改變生活,可以讓世界變得更好,人們很快接受的同時,也帶來了相對的報酬,我想這才是他迷人的地方,並不是他的技術(當然技術也是不可或缺的,不然哪來好的服務),背後的想法與創新才更有價值

好好思考,什麼是會受歡迎的世界級服務吧,沒有太多的明天,好好加油吧

Taiwan Stock

同學聚在一起,難免都會談談理財之道,其中一個同學有透過寶來的管道,開香港的戶頭,投資大陸,同學個個手上都有不少的單位,同學說:“早知道就不花腦筋在台股上,一年穩穩賺一倍”,沒錯他每一段時間就問我要不要開戶,我都回答我要愛台灣,哈哈,自己真像傻子,我也看他們一直更新的基金淨值由 40 美元 到 100 多美元,看來傻人有傻福一直是假的。

真有傻福的人,是大智若愚,你笑他傻的時候,只是你還沒有智慧了解他的聰明


First State Investments (Hong Kong)

台灣股市,市場總值是越來越大,可是個別的公司的總值可未必是增長的,還記得,第一次上萬點的時候,國泰人壽,可是一兩千元的公司,現在百元不到,辛酸壓,股本是增加了,股價,可是越來越便宜,要是所有的公司也像大陸股市一樣都漲到歷史最高價,國壽上千,聯電破百,那應該台股可以到 3 萬點以上吧!

哈哈,恭喜,三年來投資大陸香港有賺到的同學時,也不忘提醒自己,大陸與香港的風險,還有在台灣,除了資金出走到海外投資,台股還有沒有比較值得投資的公司

Taiwan economy

每到總統大選,政治人物的口水就越多,所以現在每天聽到如何拼經濟的言論,說得都是同一套,大陸政策更開放,無言的台灣人,到底什麼時候,才能真正擺脫和中國比較的命運

為您找家找房子 Find You Home

在網路上,要看房子越來越方便了,但是,各家房仲公司的網頁介面不同,有些有地圖,有些沒有,不太方便,一個整合地圖網站,可以方便找房子的站,用 Debian, DjangoLighttpd,和一些 Google 提供的 API 就可以達到一致化的好處,還做了地址的正規化,提供看屋的平台,最重要的是,做了所有地區和路段的 RSS 訂閱,這應該是有使用 RSS 的一大福音,不過話說回來,大概在台灣還是只有學生族群,還有網路重度使用者會用 RSS,一般的上網人口可能只會用作業系統預裝的IE6,還不會下載 FireFox ,是我低估了台灣人嗎? :-)

http://home.digez.com/

A Memo for wxPython

這是作給自己看的筆記,怕以後自己都忘了,主要說明一個 windos 庫存軟體的開發我所用的工具

要注意的事,都是安裝 win32 的套件包

基本套件


Python2.5
http://www.python.org/

wxPython http://wxpython.org/

wxGlade http://wxglade.sourceforge.net/ 可以快速拖拉的方式產生視窗程式碼
PIL
http://www.pythonware.com/products/pil/

Django http://www.djangoproject.com/ ,拜託不要K我,我在 windows 裡也是用他的 ORM,除了,幾乎所有的 SQL 都可以作,如果嫌套件太大,可以把 locales 的目錄去掉,就很小了

IPython
http://ipython.scipy.org/moin/ ,必須加裝 pyreadline http://ipython.scipy.org/dist/ 這種 shell 方式的測試開發,算是特別的福利喔,好好珍惜,很好用的
pywin32 http://sourceforge.net/projects/pywin32/ ,可以用 COM 的方式來控制元件

ReportLab
http://www.reportlab.org/ ,可以用PDF來處理列印

reportlab 在 windows 下有一個很久沒有修的 bug,maillist 上也有人說,就是沒修正,記得 /reportlab/pdfbase/_cidfontdata.py line 137

‘MSung-Light’: (‘cht’, ‘UniGB-UCS2-H’)
改成
‘MSung-Light’: (‘cht’, ‘UniCNS-UCS2-H’)

生成安裝包

py2exe
http://www.py2exe.org/ 生成執行程式,0.6.6版有一點怪怪的 bug,也許是 windows 系統的問題,記得發行套件加入 MSVCP71.dll http://www.dll-files.com/dllindex/dll-files.shtml?msvcp71

NSIS
http://nsis.sourceforge.net/ ,可以用來作安裝包,好用



Move to Blogger from WordPress

WordPress 功能非常的強大,不過 bug 很多,修正非常的多,如果沒有把安全顧好的話,機器很容易被破臺,家裏的 ADSL 穩定性也不佳,所以還是耐不住,由原本 WordPress 的平台搬到 Blogger 上來,不需自己再維護自己的部落格,至於自己開發,維護,是另一個工程,,所以打消念頭,最重要的一點,節省了自己的頻寬,無奈,在台灣,什麼時候,才有正常的上傳下載的頻寬

移上來後,順便感受一下,Blogger 世界級開發人員提供的服務,反正所有的資料都可以用 Google Data API 來寫入,或是讀出,以後要備份,要搬家,都不是問題,只要 Blogger 繼續是這樣的服務,與胸襟,為什麼不支持他,不過,程式寫入,目前一天只限 50 篇,搬移過程,讀者的留言,沒搬到,也沒有對應原本的連結,對不起了,網友們

做網站真的很簡單嗎

現在做一個網站好像是小學生做的事情一樣,好像一點難度也沒有,聽一聽鄰居大嬸說,我們家小朋友,國小四年級就會做了,真的這麼簡單嗎,為什麼一大堆的網頁不符合標準,一大堆網站用 Firefox 看起來就是怪怪的

技術高深不可測,學歷比天還高的專家,或是某公司會說,耗資多少,做出 WEB X.0 的網站,但是,我要說的是,做網站,很簡單,要做好,又優美的很難,至少以我自己龜毛的個性來看

我想大聲說

可不可以 URL 的連結盡量有意義的,不要超過像是 512 的字,裡面不要有中文字,如果真的要有,能不能先轉好碼,以下有一個血淋淋的範例,各位就知道我在說什麼了,對不起,我知道這樣很傷眼睛,如下

http://xxx.xxx.xxx.tw/object/detail.php?city=台北市&objectid=10111831780&storeid=A0111&pagekind=1&city_2=&code_2=&way=&oneself=&park=&life=&keyword=&line=&station=&station_2=&tablename=&school=&road=&city=台北市&code=&kind=&type=&type_2=&layout=-1&layout_2=no&price=0&price_2=upward&ping=0&ping_2=no&way=&notindex=1&pagekind=1&direction_check=&direction=&control_check=&control=&stall_check=&stall=&mrt_check=&school_check=&park_check=&life_check=&today=&orderby=order%20by%20movie%20desc,%A5Z%B5n%B0%E2%BB%F9%20asc

還有重複的變數,真是夠了,不然就是,URL 裡面還有空白,或是斷行的,看了,差點眼淚掉下來

還有一件事很想說,很多的網站花了很多的技術,效能和時間,在收集,或是保護資料,讓您要一直停在網站上,找不到資料,然後看了一大堆廣告,或是動不動就要您註冊成會員,註冊成會員以後,所有的產出,責任都是會員的,所有的產出收益都是網站的,感覺有點邪惡 ……

.. -- mode: rst --

ORM and SQL

在有 Database 的應用裡,寫多了 SQL(Structure Query Language) 會覺得他是一種累贅,讓你的邏輯不斷的,在程式語言,及 SQL 之間轉換,所以後來,就有了,很流行的 Database ORM (Object Relational Mapper) 來幫助我們開發,一來,可以用相同的邏輯思考方式,用物件的方式,去對應資料庫的元件,一來,可以有資料庫的抽象層,對一個系統的開發有很大的助益,但是,如果,要寫的 code ,比一般的 SQL 還要複雜,還要隴長,你該怎麼作呢?

寫回去 SQL 嗎?還是就去適應這樣的物件對應方式?

這也許沒有一定的答案,不過,我來分享一下,我用 Django ORM 到目前所遇到的問題,和解決的方法,所以,裡面有一些是個人好惡的選擇

* 現在Unicode 的branch 還沒有 merge 到 truck 裡,如果用 wxPython unicode 的版本,自己要處理,string to unicode 及 unicode to string 的問題

* ManytoManyField 的欄位,Q object OR 沒有辦法套用,在 djangosnippets 有解決辦法,連結是 http://www.djangosnippets.org/tags/m2m/ 不過還是希望有官方的

* 目前如果是用 truk 的 Django, 用 groupu_by() 只能在對應該物件的 database table 裡分 group,無法使用別的欄位作 group_by 的條件,在別的 branch 有解決了,可是基於,愛乾淨不要混用,太多 branch 的原則,我是用 extra 的解法,算是走 SQL 的回頭路,不過, “GROUP BY” 在 SQL 也是標準的語法,不至於破壞了資料庫的抽象層,不過,如果有用 GROUP BY 的話,不可以混用 filter 的功能,不然,產生的 SQL 語法不對,我們要決定所有的 where 條件,第一個例子,是有 where 的 group by,第二個,是沒有 whehe 可是要強加 grouop by 在不同欄位,這樣就還可以在 DB 上只用一個 query,在 Django 上還是傳回 QuerySet 的作法,不過,這一個 QuerySet 不可以再用 filter 的方式,因為這樣會讓 group by 及 where 的位置錯了

範例1::

qset = Stock.objects.extra(select={’totalsum’:‘sum(volume)’},where=[“customer_id=’%s’ group by product_id” %(customerid)])


範例2::

qset = Stock.objects.extra(select={’totalsum’:‘sum(volume)’},where=[“1 group by product_id”])

以上,是目前,我遇到的一些限制,及解決辦法,也許對您有參考的價值,在 Desktop 的應用程式上, 如果,還有更複雜的的需求, SQLAlchemy 應該是不錯的選擇

.. -- mode: rst --