2014年5月24日 星期六

廢死?

廢死議題的起源,應該就是把前法務部長王清峰趕下台的的那一刻。
輿論一面倒地痛恨王清峰的不作為。
經過幾天的風向測試以後,政府就把這位不得人心的部長換下來了。

從此以後,犯罪新聞裡的網友留言,不外呼下面幾種:
"如果你的家人是被害人的話,你還會支持廢死嗎?”, 
"看到這個廢物判這麼輕,廢死聯盟開心了嗎?"
各種冷潮熱諷是不會少的。

但是,廢死這件事的意義,不是要維護犯人的人權。
而是為這個社會建立人權的最低限。

這會在每個人心中埋下一粒種子。
種子萌芽以後,
那我們對其他生命的尊重,只會更多,不會更少。

廢死不是不計較,而是要為你我的心中建立更高層次的價值與思維。

我希望有這麼一天,
我們不會認為班上怪怪的同學值得欺負,
我們不會覺得對遊民噴水是天經地義的事情。
我們都知道,生命的價值是要你我費心保護。

2013年6月30日 星期日

南台灣第一次的 Python 聚會


     有幸受邀到 Tainan.py X mosut 當講者。所以就在前一天晚上好好的把 Sphinx 整理了一下,寫下一心的,希望台下的人未來有一天能因為這個 Talk 能受惠。

  除了開心當講者,開心聽演講之外,當天同時出現了這三年 PyCon TW 的講者。其中一位在 2012 時,給完演講以後就因為肚子痛被送走了。

  事隔兩年再碰到他,跟他聊了一下,我才知道他當時因為太緊張而肚子痛。

  他說從此以後他只參加這種小型聚會,再也不要上台了。

  能遇到比我還容易緊張的人真不容易阿!!

  最後講題內容是一個比一個好,這真的很爽阿!! 影片快點放上去吧!!

  最後附上 Tainan.py  的聚會資訊,南台灣的朋友快站出來加入吧!!

http://www.meetup.com/Tainan-py-Python-Tainan-User-Group/

 

2013年2月17日 星期日

virtualbox 讓 host machin 連上 guest machine

不用太困難,只要設定 NAT 裡面的 Port forwarding 就好。


2013年1月26日 星期六

Reverse Migration


South Migration


在 Django 上使用 South 做資料庫的 migration 很方便。
但有的時候你會做出些無法回復的migrate, 你會看到令人害怕的訊息:



    user = models.ForeignKey(User)


    user = models.ForeignKey(User, null=True, default=None)


 ? The field 'SuggestedBrand.user' does not have a default specified, yet is NOT NULL.
 ? Since you are making this field nullable, you MUST specify a default
 ? value to use for existing rows. Would you like to:
 ?  1. Quit now, and add a default to the field in models.py
 ?  2. Specify a one-off value to use for existing columns now
 ?  3. Disable the backwards migration by raising an exception.

這時,你會覺得早就指定好了 default, 但是south 多考慮了 reverse migration, 所以,簡單一點來說,選3 是沒關係的。

Reference



    http://south.aeracode.org/ticket/917

2012年10月1日 星期一

Titanium Mobile i18N 的 Android Bug

Titanium Mobile 在 Build Android 的 application 有一個bug

http://jira.appcelerator.org/browse/TIMOB-3639

http://justfly.idv.tw/2012/02/08/Just_1067.html

讓你沒有辦法順利在  iOS 跟 Android 上做 i18N

現在讓我們來修好她!


請在你的  Titanium Mobile SDK 裡面找到

localecompiler.py

在mac 上是 ~/Library/Application Support/Titanium/mobilesdk/osx/2.1.2.GA/common/localecompiler.py

然後請在 compile_for_android 這個函式裡面,locale 的後面加上下面這兩行

                        if '_' in locale : 
                                locale = locale.replace('_','-')  
如果不是很了解的話,就請看這一段commit 
https://github.com/timtan/titanium_mobile/commit/c96b59186ff5e8e999ad11643faaccc03bc964a1




2011年10月10日 星期一

Dart

Google 發表了 Dart , 剛剛看了裡面的Source Code, 它是用Python 來指引整個  Build Process, 我還以為只有我會這麼土炮,我想像中Java 世界的人都愛用ant .

這也讓我想到很多coding style 的問題,最近我的code 都用了大量的 function, 和這份 Dart 的 compiler build script code 是完完全全地不一樣。 這讓我想到有兩種不同面向的可讀性。

這一份code 的  style 是把每一個步驟都一一做給你看,你可以立刻看到他手工打造的過程。

而我自已最近偏愛的方式,是以Top Down, 先把High Level 的函式或是界面先訂好。然後再把實作補齊。

我覺得,我的方式在了解High Level concept 的時候相當很容易,Business Logic 顯而易見。而另一種方式是你可以立刻改變整個流程。

對一個成長中的程式,你有兩個選擇。一個是把Logic 直接曝露,讓你可以隨時可以搞來搞去,另一個是要隨時擁抱Refactoring. 隨然後者是比較好的方式,但看來實際情況,還是前者較省力啊!

2011年5月18日 星期三

猜數字

看了thinker 的文章 http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/445

就寫了一個猜數字程式。

是電腦猜人的數字喔~~

在PyCharm 的幫助之下,先把Hilevel Logic 建立好,再用Code Gen 補齊實作。

這樣寫Code滿寫意的~~~