2013/03/21

Open Source Economy

Open Source Economy
image from: http://www.dance-tech.net/profiles/blogs/1462368:BlogPost:20665

「免費軟體該怎樣賺錢?」

這算是老掉牙的題目,而且,很多朋友都知道「免費」跟「自由/開放」是不同的。不過,很少人能夠生動入裡地解釋這件事。

推薦這個影片 (via http://www.facebook.com/dongpo.deng/posts/545777462133601) --
The Future of the Open Source Economy by Paul Ramsey at FOSS4G 2009

簡報檔在 http://blog.cleverelephant.ca/2009/10/foss4g-2009-keynote.html

Paul Ramsey 以「商場競爭」和「生態演化」進行比擬,說明軟體演化的過程,競爭的是開發者的注意力,沒人用的軟體,進入滅絕狀態,沒人維護的軟體,則是走向衰危之路。進一步地看,軟體安全性也是軟體品質演化的一部份,越多人測試更新的軟體,就越有機會改善安全性。

剛好,前陣子施振榮先生在「談王道與共創共生」提到 Linux,他認為 Linux 雖然參與者眾,但對消費者的價值無法體現,因為沒有標準,參與者無利可圖,造成創新和持續的力量不足。他認為,在 Google Android 創造價值生態後,這現象有所改善了。

有趣的是,二十年前,Microsoft 對開發者的影響力算是相當大,現在競爭可多了,十年前,將 open source 視為威脅、病毒,抵抗那麼久之後,Microsoft 默默地接受和 open source 和解的事實。那麼,十年後又會是怎樣的光景呢? 且讓我們繼續看下去。

2013/03/17

Python Beginner Resources

今天參加的聚會,討論到初學 Python 的建議和學習資源。

有中文的教學文件嗎? google 會有線索,不過,新的資源通常還是英文內容較多。除了靜態的文件外,推薦參加線上群組或實體聚會,分享交流的效果通常比自己獨自學習來得更好。這些群組都是講中文的:Google+ CommunityFacebook GroupGoogle GroupPyHUGTaipei.py

最傳統的語法文件是 http://docs.python.org/2.7/tutorial/index.html,如果啃來覺得乏味,可以考慮 a byte of pythonDive Into PythonLearn Python The Hard Way

影片式的教學資源,也越來越多。例子包括:ShowMeDohttp://learnerstv.com/Free-Computer-Science-Video-lectures-ltv163-Page1.htmhttp://www.udacity.com/http://codeacademy.com/Coursera.orgGoogle Python Class。也有人在維護文件列表

著重程式概念建立的遊戲式網站有:PythonChallengeCheckIO,利用圖解強化學習效果的 Online Python Tutor

少不了的工具是 cheatsheet 文件:http://overapi.com/python/。等到想要進階時,可以參考 The Hitchhiker's Guide to Python

Android 環境的資源:http://python-for-android.readthedocs.org/http://kivy.org/#home

Windows Azuer 環境的資源:Tutorial for Python Web Sites with Django

2013/03/07

Set UID for Dexterity Type

When using collective.disqus in Plone, Disqus API by default looks for UID to identify the posts (comments). For the case to manually migrate Archetypes items, I need to set UID property for Dexterity items. Here is how it works:

$ bin/plonectl debug

>>> from plone.uuid.interfaces import IUUID
>>> IUUID(app.mysite.myfolder['a-sample-item'])
'870c668b918247ef89645a6e18007a96'
>>> from plone.uuid.interfaces import ATTRIBUTE_NAME
>>> setattr(app.mysite.myfolder['a-sample-item'], ATTRIBUTE_NAME, 'bc8a2fac032e4ae39c700730ac79df8f')
>>> IUUID(app.mysite.myfolder['a-sample-item'])
'bc8a2fac032e4ae39c700730ac79df8f'
>>> import transaction
>>> transaction.commit()

Of course, transmogrifer would be more decent way for such case.

2013/03/05

Why PyCon Taiwan

"First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack." -- George Carrette

在我的眼裡,程式員可以比擬很多種角色,是作家,演說家,是創作者,評論者,是魔術師,雕塑師,是江湖俠客,修練精道的智者。

走在前往程式員的修練之路,要有自知之明,不要妄自菲薄,更重要的是,去找尋那份程式員的快樂秘密

從團隊或產業的角度來看,我們還需要工程方法、框架工具、分工協作,達到現代軟體開發的規模與要求。軟體英雄可以號召起義,但我們知道,團隊協作的時代早已開始。

為了自己,還有下一代,我們真心期待,台灣的軟體產業能轉型,技術能茁壯,這份企盼,我們把它落實為 PyCon Taiwan,也就是說,Python 年會不只是個程式語言的同好會,它就該是轉型的促進器,技術交流的平台。

Python 語法,即使兩天沒學完,兩週的時間也一定足夠,但我們知道,語法的重要性,是不如心法的,獨自學習的收獲,遠不及交流切磋的豐富。我定位 PyCon 是欣賞 (認同?) Python Zen 的同好聚會,基於這樣的出發點,即使是 Java、Perl、Ruby、PHP 的朋友,也都是我們的目標族群,因為,追求編程之道,大家都走在這路上。

今年活動規模以超過 600 人為目標,邀請國外講者的過程,感受外國友人主動貢獻的熱忱。相信,關心軟體發展的朋友那麼多,今年的舞台那麼大,每位朋友的挺身貢獻,肯定能為台灣產業的蛻變,帶來一份力量,而上台分享則是最強有力的支持,現在就行動吧!

2013/02/22

歷史角落 總有餘音迴蕩

1999 年的 Open Source Workshop 是早期的社群專屬聚會,那時候,FreeBSD 有黑皮書,Linux 有 CLE。

2000 年的 dotcom 熱潮,上沖下洗,讓一群人看花了眼,多少也體會社群穩健發展才是長久之計。那麼,現在又如何呢?

「台灣沒有社群,只有鄉民」,即使有人不認同這樣的描述,但,我們身處怎樣的位置? 又迎向何方?

我們的初心呢? 十年後,怎樣看待自己,別人又怎樣看待我們?

2013/02/19

Price Competition

什麼都比低價 國家就完了》的回應摘要。

  • All great companies are great first and foremost because of great products and that's because great technical people with also good appreciation on design and marketing are in the helm. Now, a casual look at the companies led by pure MBA types you get a list of corporate disasters.
  • 保持低價位並不是錯,但是,如果一個國家所有品牌,一家公司所有產品,在市場中的定位都是以低價競爭策略取勝,那這就有很大的問題。
  • 商業的本質就是在競爭中創造利潤。競爭 - 最差方法是削價競爭,最好方法是創造新產品脫離削價競爭的行列。那麼台灣對創新有何實質鼓勵? 台灣寧可每年付出兩千億的外國專利購買成本,也不願承擔創新的風險。這才是走下坡的主因!
  • 業務行銷固然重要,但產品的創新與品質才是科技公司的命脈。技術人員領導不是壞事,重點是技術人員必須要有行銷思惟,才能創造出符合市場所需的產品。
  • 有國際化競爭力的人才,八成以上都不在台灣了,剩下的兩成也早被台灣的環境給耗損掉。很多人會說台灣人才很不錯,都能在國際發光,但那是他們到國外後,靠著國外的產業人才鏈才能發光發熱。抱歉,台灣除了科技代工外,沒有其他的產業人才鏈。
  • 跟亞洲公司開會的經驗:
    香港--最國際化 懂得西方文化 英文好且懂得用英文開玩笑
    中國 日本--每間公司都聘請專業翻譯團 每個細節都會跟你確認沒聽錯
    台灣--態度最好 但大都英文不太好 不知為何不請翻譯 很多細節都必須用email再確認
    台灣連專業的翻譯都不願意請
  • 我是醫療服務業者,在醫院你會發現一件事很奇怪,大家寧願花2萬多元買一台蘋果,卻不願花2萬元動一個手術或買效果較好的藥物,患者還會問:我有繳健保費怎麼這麼貴,接著拿出哀鳳和哀配...也許醫院也應該從寶僑請行銷人員...
  • 這核心價值,根本就是在真實的我們自己,台灣人做了七十幾年代工,產品都是站在別人的角度來想,甚至活的洋腔洋調,但別忘了,再怎麼洋腔洋調,也應不了真的洋槍洋炮。人云:「錢買不到愛情與靈魂」靈魂與愛情是無價的,保有我們自己靈魂的原貌,形塑出來的文化,是不是還有可以給普世的美好,我想這會是相當高價的。
  • 台灣企業缺乏競爭力,原因很多,其中之一是大多數台灣老闆的心態問題,這些老闆幾乎都是將員工當作成本看待,所以想盡辦法壓榨員工(降低成本)。如果台灣老闆能夠將員工視為非固定資產,則願意主動創造好的工作環境,員工有幸福感,潛能被激發,自然有競爭力,最後達到員工與公司一起成長、雙贏的目的。

2013/02/05

Utility to List Plone Instances

When you have multiple Plone instances running on multiple Linux boxes, you will need utilities for instance management. Here is a Python-based tool, rt.zps. It's easy to install:

$ sudo apt-get install python-psutil
$ sudo easy_install rt.zps

As its name indicates, of course you can use it to inspect Zope processes.

$ zps
[user@localhost]$zps
CWD:      /home/user/plone1
User:     user
PID:      1234
Conf:     /home/user/plone1/parts/instance/etc/zope.conf
Address:  8081
Memory:   1.96%

CWD:      /home/user/plone2
User:     user
PID:      12345
Conf:     /home/user/plone2/parts/instance/etc/zope.conf
Address:  8082
Memory:   1.96%

You can check if any instance running for a specific port.

$ zps --port 8080