Recent Updates Page 2 RSS Toggle Comment Threads | Keyboard Shortcuts

  • kiang 21:49:44 on 2009 年 07 月 12 日 Permalink | Reply
    Tags: CakePHP,   

    0711, 0712 工作坊 CakePHP 課程 

    在課程開始前自己有針對課程做了個劇本,原本還擔心這個劇本無法支撐 6 個小時的課程,但經過這兩天實際進行後才發現,我擔心太多了,因為很多劇本以外的狀況,而即使那些狀況都不發生,把那些東西一股腦的塞給來參與的朋友似乎也太多了,因為大部分人對於 CakePHP 都僅是粗淺的認識,也有部份朋友對 PHP 並不是那麼熟悉,所以一直在調整自己的腳步,在第一天就顯得有些渾亂,第二天好一些。

    在這兩天開始時都是針對基礎環境的建置做介紹,目的是希望參與的朋友回到家都能夠重建這些環境進行練習,所以上午的步調都明顯緩慢些;在電腦教室的環境也是有許多狀況,因為使用 xampp 的隨身版本,發現它對於環境的兼容性不是很好,而部份電腦因為已經裝過 xampp 的安裝版本,設定也出現混淆的情況,當然,也有些沒有跟著步調進行而出現的設定錯誤或是意外狀況,所以第一天在上午只有把環境建置完成,並且丟了個 hello world 。第二天因為有了些經驗,雖然也是狀況不斷,但進度比較穩定些,上午課程結束時已經完成了第一個範例的實做。

    第一天下午只把單一資料表的存取、查詢等功能完成,進一步要介紹檔案上傳的處理時,發現時間已經差不多了,所以就直接打斷,進入 Q&A 的時間;第二天則是調整方向,略過檔案上傳的處理,直接切入兩個資料表的關聯處理,進一步的作到關聯資料編輯流程的修正,算是比較像樣些。在第一天的人數與問答比較多一些,第二天就相對沉默,可能也是人少一點吧。

    課程的進行方式就是一步一步推進,我進行一些操作,藉著請參與的朋友在自己電腦進行同樣操作,在後面的實做部份也另外透過 ftp 方式讓所有人可以直接存取我所展示的程式碼,減少因為程式碼繕打所需要的時間。只不過因為程式碼都是現場輸入,所以沒有針對程式碼的細節多做說明,只希望有心的朋友可以拿著疑問去比對官方手冊,畢竟 6 小時要吸收這些東西是有點痛苦。依據過去的經驗,過度著重在概念的陳述時會發現下面朋友持續點頭或兩眼無神的情況,所以這一次大量的進行實務操作,但也相對的在概念的建立上就顯得薄弱,這算是兩難吧。

    比較對不起參與朋友的地方是,我沒能夠有太多的前置時間做準備,上個星期還去高等法院洗了個三溫暖,所以準備的部份確實不足,只能希望這兩天參與的朋友能夠有一個開始的印象,藉此作為繼續深入的起點。 ;)

    環境建置對於這種短暫的教學活動確實會有不小的影響,有朋友建議使用 VM 建置基本環境,讓教學活動可以聚焦在必要的操作之上,也許未來還有機會時可以透過這樣的形式。這兩天最大的遺憾是有不少朋友報名了卻未前來,這也是在台北辦活動的一個難處,台北人太忙了,所以經常沒辦法照著行程走,降低一些活動舉辦的意願。

    這兩天的課程也需要感謝 Openfoundry 提供的機會以及 Freddi 細心的安排與為兩天活動的紀錄開了個頭,有興趣的朋友可以參考:
    http://of.openfoundry.org/kwiki/ossfworkshop/index.cgi?WorkShop-0711
    http://of.openfoundry.org/kwiki/ossfworkshop/index.cgi?WorkShop-071112

    James 也針對第一天上午的環境建置提供了紀錄:
    http://code.google.com/p/zf-tw/wiki/SettingUpCakePHPEnv

    如果時間允許,也許會找時間做些整理吧;總之,這兩天的活動結束了,好好睡覺去 ;)

     
    • eddie 01:03:51 on 2009 年 07 月 13 日 Permalink

      辛苦啦,不好意思沒能幫上太多忙呀 :)

    • kiang 08:06:14 on 2009 年 07 月 13 日 Permalink

      你能來我就覺得沾光了呢 ;)

    • Kasaki 13:07:04 on 2009 年 07 月 20 日 Permalink

      Hi,老師您好。
      我是那一天(第二天)有去聽CakePHP講課的學生。以我的觀點而言,我覺得把上課的大部分時間花在環境建置上是很可惜的。但我也理解每個人的學習方式不同,也許Step by Step的方式比較算是一種大家都能接受的方式(?)吧。我原本預期的方式也許是花個一個上午建置個Contract,也許下午快要到一個段落的時候講解一些細項以及運作方式的解釋….等等。不過,我想這樣上下去應該就要收鐘點費了吧~XD

      相對於上午,我也是那個在下午後半段幾乎無法吸收的人之一,對於這個部分我也覺得很可惜,畢竟這部份的內容比較符合我一開始對於這個課程期待的部分。

      在那天上完課之後,我在家裡也試圖建置CakePHP的環境,不過因為真的不熟,花了整整一個禮拜….Orz
      也許現在留言好像過很久了,不過如果您允許的話,請問能不能把當天的程式碼寄給我呢 ?我想試著再把當天的上課內容試著整個再 run 一次。

      做為回報,也許我整理一下整個學習流程再回覆給您。
      留言打得很亂,還請多多包涵。
      總之,謝謝您的分享,也誠摯的希望還有機會上您的課。

    • kiang 14:06:39 on 2009 年 07 月 20 日 Permalink

      Dear Kasaki,

      抱歉,忙了就忘記了,我把程式整理放在討論區:
      http://twpug.net/modules/newbb/viewtopic.php?topic_id=4238

    • Kasaki 19:08:42 on 2009 年 07 月 20 日 Permalink

      我收到了,非常感恩。

  • kiang 16:06:00 on 2009 年 05 月 25 日 Permalink | Reply
    Tags: 平行處理   

    聊聊平行處理 

    雲端運算這個新名詞掀起了不少熱潮,但是平行處理的概念很早就存在了,只是很少被廣為討論。

    目前比較開放、熱門的就屬 Erlang 與 Hadoop 兩個專案,而許多廠商相繼推出的解決方案雖然使用了相對熟悉的程式語言(GAE 支援 Python 與 Java 、Aptana 支援 PHP ),但是因為各家廠商之間缺乏互通性,轉移不易,急著卡位不知道會不會反而哪天變成被掐著喉嚨 ^^||

    平行處理所帶來的好處對程式設計師而言是非常具有吸引力的,因為執行效能會隨著節點的增加而線性成長,而且基本上不需要改寫程式;目前一般的程式開發都會遇到類似問題,剛開始為了方便而將大部分的服務放在同一台主機,在效能遇到瓶頸時就開始把各種服務分離來提升執行效能,接著就是各種形式的快取,或是各種複雜、交錯的解決方案,令人感到沮喪的是每個轉換過程都意謂著大量的程式改寫,對程式開發單位而言可以算是個夢靨。

    平行處理是否是萬靈丹?好像也沒這麼神奇,畢竟平行處理領域像是個蠻荒地帶,一些在傳統程式語言唾手可得的資源,在平行處理的世界中好像都得自己來,所以很難去比較說到底是一直重構傳統程式快還是直接以平行處理的環境進行開發快。

    平行處理的需求也讓硬體的發展出現變化,以知名的超級電腦為例,台科大靠152 台DL 145 G5 Server 才做出 0.92 teraFLOPS 運算速度 ( http://www.cc.ntust.edu.tw/front/bin/cglist.phtml?Category=88 ),而昇陽 Sun Blade X6275 可以在42U機架上透過 48 台伺服器主體支援總計768個處理器核心,最高效能可達9 teraFLOPS。NVIDIA Tesla S1070 更是基於 GPU 技術的突破,在 1U 主機上就可以提供 4 teraFLOPS ,具有 960 個運算核心,同樣的機架可以提供超過 168 teraFLOPS 運算能力。

    從硬體的發展看來,軟體開發走向平行處理是必然的趨勢,就看自己什麼時候覺醒了 ;)

     
  • kiang 11:53:55 on 2009 年 05 月 03 日 Permalink | Reply  

    當幸福來敲門 – The Pursuit of Happyness 

    當你覺得自己的人生糟透時,可以試著看看這部電影,你會發現自己還算是幸運的。 ;)

    主角是一個經濟不是很寬裕的黑人,將自己畢生的積蓄壓在數十台的醫療機器上,希望能夠改變自己的生活。但現實沒那麼理想,那樣的機器不是很容易賣,因此反而讓他們的生活陷入困境;在這個期間,他跟妻子有了孩子,經濟負擔更加沉重,也讓兩個人經常為了經濟問題發生爭執。

    在他努力販賣機器的過程中,偶然遇到了一個開著時髦跑車的成功人士,向他請教,得知他是基金經紀人,於是留下了深刻的印象;在業務狀況沒有起色時,他試著要去應徵基金經紀人的工作,這時才得知培訓過程是沒有任何薪水的,加上錄用機率不高,因此他猶豫了。

    現實狀況越來越嚴峻,但當他發現以現有的方式即使再怎麼努力也無濟於事,他渴望改變。

    他接受這個培訓過程,但是培訓過程他還是儘量爭取時間去販售機器,另外,他老婆也在這個過程離開了,他爭取將孩子留在身邊,於是他還得在極為緊湊的行程中撥出時間來給孩子。最大的低潮莫過於政府強制從銀行剝奪了他好不容易累積的一點積蓄,他幾乎瀕臨破產,他跟孩子過著像個遊民一樣的生活,即使是這樣的情況,他還是盡自己所能的去維持自己在基金經紀人的培訓成績,那種幾乎看不到明天的生活,他還是抱著積極的態度面對。

    最後他被錄取了,這是人生最大的轉折,影片也接近尾聲。他後來的確成了成功人士,但是如果這段過程他有一絲絲鬆懈,恐怕會讓低潮的情況更加嚴重。

    努力不一定會那麼快看到成果,但是一旦放棄努力,就等於失敗吧。

     
    • milochen 20:38:08 on 2009 年 11 月 17 日 Permalink

      當失敗代價大的時候,
      面對失敗,都能找出許多失敗的原因,
      我覺得幾次失敗後,下次就會成功了。

      不過故事中的這個爸爸
      真的好愛他的小孩喔 呵呵

      (正在聽你的 php 入門的學生留)

    • kiang 09:23:05 on 2009 年 11 月 18 日 Permalink

      不過試著找出失敗原因的同時,是否就跟機會擦身而過?不確定,只是覺得,在挫折發生的當下,也許該試著將焦點放在如何跳脫這個挫折、看清自己下一步的行動,因為將焦點放在失敗的原因有時候反而會讓自己揪結在其中。片中的主角並沒有在挫折的原因上面打轉,而是想辦法看清楚四周有沒有其他機會,因為生命要自己尋找出路。

      (昨天出狀況的講師留)

  • kiang 10:39:28 on 2009 年 05 月 02 日 Permalink | Reply
    Tags: Git, , Mercurial   

    [翻譯]Git 與 Mercurial 的分析 

    本文翻譯自下面網址:
    http://code.google.com/p/support/wiki/DVCSAnalysis

    注意:這個分析在 2008 年夏天進行,起因於 Google Code 評估加入分散式版本管理功能

    摘要

    這份文件總結了 Google Code 在希望加入分散式版本管理功能所做的初步研究,基於普及性,只考慮了兩個分散式版本管理系統: Git 與 Mercurial 。這份文件說明了兩個系統的功能,也提供一個將它整合進 Google Code 所需要進行的工作。

    分散式版本控制

    在傳統的版本控制系統,一般會有一個集中的資料庫控管所有記錄,用戶必須與這個資料庫互動來驗證檔案的記錄、檢視其他分支與提交異動。通常用戶端會複製一份資料進行處理,但是這個版本並不會儲存早期版本與其他分支的資料。

    分散式版本管理系統(以下簡稱 DVCS)使用了不一樣的結構,使用 DVCS 時,每個使用者會有一個本地端的資料庫、完整的專案異動記錄、分支等等,切換到不同的分支、檢驗檔案異動記錄或甚至提交異動都是在本地端進行操作。而個別的資料庫間可以透過推(push)與拉(pull)操作進行資訊的交換,一個推的操作會將本地端的部份資訊傳送到遠端資料庫,而拉的操作則會將遠端的資料複製到本地端資料庫。需要注意的是,沒有任何一個資料庫具有較高的權威性,兩個資料庫也許都會有些本地端的記錄還不會出現在另一端,任何的 DVCS 系統都有一個關鍵性功能,就是讓資料庫可以清楚傳達本地端所擁有的記錄(以及它所需要的記錄),而 Git 與 Mercurial 兩者都是透過 SHA1 雜湊值來檢驗資料(檔案、目錄結構、版本異動等)。

    DVCS 讓開發者在工作流程上有更多的彈性,他們可以用傳統版本控制系統的習慣進行操作,也就是透過一個集中、具有權威的資料庫讓開發者進行同步;而對於比較大的專案,它也可以提供具有階層關係的資料庫,只要每個資料庫的維護者允許來自下層開發者的異動以及將這些異動提交給上層。 DVCS 還允許開發者彼此間分享工作成果,例如兩個開發同樣功能的開發者可以在相同的分支上進行開發,但是兩者之間成果的分享不需要透過一個權威性的伺服器;當他們完成了開發,就可以將成果推到公開的資料庫,讓更多人使用。

    因為沒有集中的資料庫,所以不會有所謂的主從架構,當談論到兩個資料庫時,一般是指本地端與遠端,而不是伺服端與用戶端的關係。不過在 Google Code 實作的概念中,在 Google 的資料庫還是會被當作伺服端,而使用者的資料庫會被稱為用戶端。

    功能比較

    事實上, Git 與 Mercurial 有許多相仿之處,因此在這裡不會提供兩者都有的冗長功能清單,這個部份希望點出兩者間顯著的差異。

    Git 的優點

    * 用戶端儲存管理, Git 與 Mercurial 都允許使用者選擇從其他資料庫拉回分支,這提供了一個前端結構來減少本地端儲存的異動記錄。除此之外, Git 允許捨棄較早拉回的分支, Git 還允許從本地端資料庫將舊有的版本異動刪除(同時仍然會保留這些分支的最新版本資料)。而在 Mercurial ,如果一個分支是儲存在本地端資料庫,所有版本異動(從最初提交的版本)都必須存在,除了建立一個新資料庫選擇性將分支推進資料庫外,沒有辦法刪除分支資料。雖然他們正在開發這個部份,但是還沒正式推出。

    * 父階層的數量, Git 在合併時支援無限數量的父階層版本異動,而 Mercurial 只允許兩層。如果希望在 Mercurial 做到 N 階層合併,使用者必須執行 N-1 次的兩層合併,雖然一般合併 N 個父階層資料時會建議採用 Mercurial 的作法,但使用 Git 時使用者可以一次完成。

    * 分支點變更(Rebasing), Git 提供一個 rebase 指令,可以在一個本地端分支修改分支點到一個較新的版本,例如某個人在開發一個產品的新功能,本地端分支也許已經從 1.0 版開始,而如果開發過程主要的產品線已經更新到 1.1 ,也許需要將 1.0->1.1 的異動拉回本地端功能開發中的版本,並且將分支點從 1.0 改為 1.1 。在其他系統中,會透過合併 1.1 的異動進入分支,合併也是從版本控制系統角度看來正確的事情,如果將焦點放在』過去狀態的重製能力』。不過如果焦點是 『製作一個簡潔的軟體改版記錄』 ,分支點變更有時會比較好。 git-rebase 允許讓一個過去未連續的異動記錄能夠連貫,讓異動記錄可以簡潔些。正確的說,這個功能其實是將 1.0 版的所有異動個別提交到 1.1 版,分支點變更功能是安全的執行這些操作,並且刪除 1.0 版,因此不會讓樹狀結構變得混亂。

    備註: Mercurial 在這份文件完成後已經有加入了分支點變更功能。

    Mercurial 的優點

    * 學習曲線,基於許多的事實, Git 跟 Mercurial 比起來有著比較陡峭的學習曲線。 Git 有比較多的指令與選項,這些功能的說明可能會讓新使用者備感威脅。 Mercurial 的文件對於新手來說相對完整與容易閱讀,Mercurial 的用詞與指令也比較接近 Subversion 與 CVS ,因此對於從那些系統轉移的人們來說會比較親切。

    * 支援 Windows , Git 有著強大的 Linux 包袱,在 Windows 執行它的正式作法是透過 cygwin ,對於一個 Windows 使用者來說不是非常理想。一個使用 MinGw 改寫的 Git 漸漸受到歡迎,但是 Windows 在 Git 世界中仍然是一個次等公民。在有限的測試中, 使用 MinGW 改寫的版本看來提供了完整的功能,但是有點遲鈍。一些在  Linux 或 Mac OS X 幾乎是即使反應的操作,在 Windows 中可能需要十幾秒。 Mercurial 是使用 Python 開發,而且正式版本在 Windows 下執行順暢(在  Linux, Mac OS X 等系統也是)。

    * 維護, Git 需要定期維護資料庫(例如 git-gc),而 Mercurial 不需要。不過需要注意的是, Mercurial 對於用戶端磁碟空間的管理也比較沒那麼複雜(可以參考上面關於用戶端儲存管理的說明)。

    * 記錄是不容侵犯的, Git 非常強大,可以執行任何你想做的事情,不幸的是,這也意謂著 Git 也很容易遺失記錄。舉例來說, git-push –force 會讓遠端資料庫的版本異動消失;Mercurial 的資料庫結構比較像是不可變物件持續成長的集合,雖然在部份情況下 (像是 rebase) ,改寫記錄是有優點的,但這也很危險,可能會導致無法預期的結果。不過需要注意的是, Git 伺服器可以透過設定來避免遺失資料,所以 Mercurial 這個優點並不是那麼明顯。

    其他差異

    * 檔名更改/複製的追蹤, Git 並不會明確的追蹤檔名更改與複製,取而代之的是像 git-log 指令用來比對資料庫記錄中是否有同樣的檔案來推論檔名更改或複製。 Mercurial 以比較熟悉的形式,提供明確的檔名更改與複製指令,並且將這些操作儲存到檔案的記錄中。 兩種方式各有其優缺點,哪個比較好並沒有比較明確且普遍的答案。

    * 架構, Git 原本是以 C 設計的大量 shell scripts 與 unix 指令,隨著時間推演,在指令間共用的函式庫已經開發完成,許多指令已經內建在主要的 git 執行檔。 Mercurial 大部分是用 Python 設計(少部份使用 C),包含一個外掛的應用程式介面,允許透過自行設計的 Python 模組加強 Mercurial 功能。

    * 私有記錄,在 Git ,開發者操作的預設模式是使用自己本地端(與私有)的標籤、分支與版本異動,而且在公開後可以運用許多控制。而 Mercurial 強調另外一種方法,預設的推/拉行為會共享所有資訊,如果只想共享一部份就需要額外的步驟。這沒有列在任一系統的優點,因為兩者都支援另外一種操作。

    * 分支命名空間,在 Git ,每個資料庫有自己的分支命名空間,使用者可以設定本地端分支名稱與遠端對應情形。在 Mercurial ,所有資料庫共用一個分支命名空間。

    實作考量

    資料儲存

    Git 與 Mercurial 內部使用非常相近的資料:檔案版本異動與少量的後設資訊(父層資料、作者等),兩者都有代表整個專案提交的物件,這些物件也都有版本記錄。兩者都有記錄每次提交所有檔案的版本。在 Git 使用的是一個樹狀物件 (一個樹狀結構,包含目錄的樹狀物件與檔案版本參考的樹葉結點)。在 Mercurial ,使用一個物件清單(一個對應路徑名稱到檔案版本物件的清單)。除了物件清單與樹狀結構的差異外,兩者在物件的搜尋與走向都相當接近。

    Git 直接在檔案系統使用一個儲存物件的集合 (透過 SHA1 雜湊索引) 並且將多個物件打包成更大的壓縮檔;而 Mercurial 使用一個改版記錄結構 (基本上是一個連續的改版差異,加上定期的完整版本備份)。在實作時都不會使用原本的儲存方式,物件都會儲存在 Bigtable 中,基於 Git 與 Mercurial 在基礎資料物件的相似情形,無論使用哪個應該花費的時間一致。

    在資料儲存時的唯一主要差異是使用的語言,如果要重複運用大部分 Git/Mercurial 的程式碼, Git 的部份需要使用 C ,而 Mercurial 則是使用 Python (或也許是 C++ 與 SWIG 的結合)。

    Mercurial 整合

    Mercurial 在遠端資料庫的推拉操作提供基於 HTTP 不依賴狀態特性的良好支援,開發者花費了許多精神在減少用戶端與伺服器間往返檢查需要交換的資料,且一旦完成檢查,所有相關資料會集合起來一次大量傳輸,這符合了 Google 的架構,所以在用戶端不需要任何改變。

    Git 整合

    Git 包含了推向 HTTP 的功能 (與推向 WebDAV ),但是程式假設伺服器端對於 Git 沒有任何準備,它的設計是以 Apache 將 Git 資料庫當作靜態檔案的情況下,這個方式需要大量為了同步化的請求往返,不適合用在 Google Code 。

    Git 也提供了一個自訂的、依賴狀態的協定,支援比較快速的資訊交換,但是不符合 Google 的架構,因為 Google 非常需要不依賴狀態的 HTTP 協定,因為已經在這個架構上投入了大量資源讓它穩定且有效率的執行。

    備註: 在這份文件完成後 Git 社群已經開始有些改善 HTTP 支援的討論。

    總結

    基於實作上的差異, Mercurial 有著明顯的優勢,因為它對於 HTTP 傳輸協定的支援。

    不過就功能性而言, Git 確實比較強大,但也相對意謂著使用上更加複雜。

     
  • kiang 22:12:22 on 2009 年 04 月 27 日 Permalink | Reply
    Tags:   

    4/25 Google Taiwan 辦公室半日遊 

    因為老師的關係, 4/25 有幸可以參觀 Google 在 101 大樓上的辦公室,為了要紀念這難得的一刻,我把之前在 YDN Open Party 拿到的 Yahoo 短 T恤跟電腦背包都穿在身上,一整個就是挑釁的味道,可惜現場只有 Google 台灣區的業務總經理,沒有看到其他員工,效果大打折扣。 ;)

    其實老天真是有眼的,知道我的心態有問題,所以賞了一個莫名其妙的濕冷天氣,讓我感受一下寒風中穿著短袖排汗 T 是什麼滋味;原本打的如意算盤是可以停在新光三越 A8 館地下停車場,然後透過大樓間的空橋乾爽的走進 101 大樓,誰知道停車場的管理員在我停好車想要找電梯時告訴我』先生,現在管制中,如果不是員工就得麻煩您離開』,原來,他們在 11 點之前是不給人停車的…

    雖然後來在 101 大樓附近也找到一個地下停車場,但是這個停車場離目的地還有一段距離,我沒帶傘、沒穿外套,那個雨衣沒有雨帽,所以完整的防護必須要連同唯一的安全帽,加上…你知道的,放在車廂裡、偶爾才洗一次的雨衣總是會有那麼些味道,我完全放棄了唯一能夠擋雨、禦寒的方案,帥氣的維持短袖上衣走出停車場,…真的很冷。

    在一樓等待人們到齊的時候,意外發現原來 Ubuntu 背後的 Canonical 公司在這兒也有租用辦公室,不過游總驕傲的說,目前這棟大樓最高的辦公室就是 73 樓的 Google Taiwan ,再上去到觀景樓層間沒有其他辦公室(是價格問題?)。

    剛進去辦公室就看到手足球檯,應該很少有公司會把這東西放在接待空間吧。據說每個員工都可以看到窗外的美景,能夠天天從 73 樓往窗外看的感覺還蠻不賴的,某個窗邊還放著高倍率的望遠鏡,無論想要看淡水河出海口還是某個高級住宅的貴婦生活起居都是輕而易舉,我想它有激勵 RD 部門加班的效果。

    當天的活動主要是展示一些一般人比較少見的 Google 應用,不過對我好像沒那麼陌生,只有在結束時問了個問題,就是接下來會不會在校園間舉辦些 Android 的推廣活動,他表示目前沒有這樣的計劃,人力很難撥出來做這種事情,加上連鴻海都主動找上門時,他們似乎也不需要什麼推廣活動。

    游總也透露, Google 的人事任用需要經過層層關卡,中間最長會需要 1 年半左右(他說他是 1 年的那個),所以收到 Google 的面試訊息時不要急著辭去現在工作,也許要經過相當漫長的關卡。他們將世界所有學校區分為 3 個等級,畢業的學生要想進入 Google , A 級學校平均要有 A 的成績,而 B 級學校要有 A+ 以上的成績,至於 C 級學校目前人事緊縮的情況應該不會考慮。仔細想想,我畢業的那間應該是 C– 吧 -.-||

    總之,去逛過了,沒有機會在最高的辦公室工作,至少也看過裏面長什麼樣子了,接下來就看看自己的努力能夠把距離拉的多近 ;)

     
  • kiang 19:30:21 on 2009 年 04 月 23 日 Permalink | Reply  

    曾經在單車小站消費過的朋友請小心詐騙電話 

    剛剛接到一通自稱是單車小站服務人員的電話,大致內容是說要取消分期刷卡簽單,雖然想也知道是詐騙,我就多跟她互動了一下,發現她對於我的交易內容還蠻清楚的,只是她並不知道我回答的內容有刻意造成的錯誤,因為飯已經送上桌了(我在便當店接到),所以就揭穿她是詐騙的事實,她還回覆說』你確定嘛?你有證據嘛?如果不是你要負責喔!』,看來他們的講稿已經可以包容各種不同的回應,聽口音也不像是大陸人。

    來電顯示是台南的號碼沒錯,只是現在這個號碼是可以變造的,所以打回去的意義不大。

    大致可以猜出資料外流的兩種途徑: 經手的員工或是帳號被入侵 ,因為我是直接透過 Email 完成交易的。

    回到家之後就打電話給單車小站的人員,要他們趕緊修改密碼;也把資訊提供給 165 反詐騙專線。只是基於不希望真的有人受騙,加上單車小站確實沒有做好個人資料保護的工作,所以選擇把資訊公開。我的 Mobile01 帳號好像已經被鎖很久,有帳號的朋友就麻煩將資訊轉到那上面吧。

     
  • kiang 22:03:42 on 2009 年 04 月 18 日 Permalink | Reply  

    YDN Open Party @ Babe ROOM18 

    下午還在弄客戶的東西,到一個段落之後才開始準備晚上要分享的東西,腦子裡原本都是一些流暢的劇本,但是到了現場才發現, 5 分鐘真的好短 ^^||

    我並沒有報名 osdc 白天的活動,因為已經預期這段期間會困在程式碼當中,只是上面一個專案剛有些成果出來,想要找個地方發表一下,所以就報名了 YDN 的活動。提早到了現場,發現找不到入口?只有個很模糊的看板寫著 Babe room 18 ,但是營業時間是晚上 10 點開始,所以就在旁邊繞啊繞的,在找有沒有其他更像是活動會場的入口,只是背著電腦做這種事情感覺不是挺好。

    去附近晃了一下,回來後那個門口才開始有舉辦活動的感覺,一堆看起來就像是工程師的人在簽到中。我也去簽到了,拿到了一個名牌,接著得在外面等,因為活動場地準備當中,還好附近蠻多地方可以逛的,加上前面的廣場就有街頭藝人表演,還不至於太無聊。

    實際進入會場後,感覺有些許的酒臭味,應該很多人在那個樓梯間吐出來過吧,所以即使整理過了,還是很難不留下異味。這是個夜店,因此裏面有很典型的吧台、開放式的小隔間以及許多的沙發,不像是適合辦研討會的地方,但這個活動也沒說是研討會,只是死工程師個性作祟罷了。

    進去之後就是公關公司的暖場活動,雖然一堆人不是很賞臉,但還不至於讓氣氛變得太僵,畢竟派了幾個辣妹在現場了,這是另一個工程師的死個性 ;)

    晚餐吃的是 Pizza ,為了待會兒上場,所以不敢吃多,中間就開始去試機器了,還好筆電沒有出糗,只是開機時一直在偵測網路而卡了一陣子,害我擔心了一下。在我前面先是 Yahoo 的人員介紹新服務,接著是 UrMap 也來宣傳新功能,而在我後面那個好像說是忘了帶要展示的東西…^^||

    原本的準備是 4 個循環來介紹 oa-tools ,不過講了 2 個循環時間就超過了,所以就草草結束,畢竟這不是個適合在技術議題多所著墨的地方,看後面美麗的公關公司小姐們都一臉茫然的樣子就知道,我又再次加強了那種死工程師的調調了。

    過程中兩個貴賓 Rasmus 與 Chris 有透過一些題目考考大家,細節不太記得了,只記得最後一題讓所有人都出局了。整個活動的氣氛還不錯,只是我好像有點沒辦法進入狀況,太久沒有放鬆自己吧 ;)

     
  • kiang 22:28:45 on 2009 年 02 月 09 日 Permalink | Reply
    Tags: AGPL, FrontAccounting, GPL   

    AGPLv3 相容於 GPLv3 ? 

    最近參與了 FrontAccounting 社群關於授權方式的討論:
    http://frontaccounting.net/punbb/viewtopic.php?id=398

    FrontAccounting(FA) 的前身是 OpenAccounting(OA) 與 webERP ,其中 OA 已經很久沒有更新了,而 OA 與 webERP 都是使用 GPLv2 授權,因此 FA 在 2.0 與早期版本都是使用 GPLv2,只是在上面討論發起後,開發者似乎有意將授權轉換為 AGPLv3 。

    雖然 OA 是改寫自 webERP ,據說已經完全沒有使用到 webERP 的程式碼,而 FA 的開發者取得 OA 作者的同意,將程式的授權更新到 GPLv3 。接著, FA 的開發者發現 GPL 授權內容有提到, AGPLv3 相容於 GPLv3 ,因此認為可以直接將 GPLv3 授權轉換為 AGPLv3 ,所以就決定在 FA 2.1 版開始使用 AGPLv3 授權。

    我在 gnu 網站找到了一則關於相容的說明:
    http://www.gnu.org/licenses/gpl-faq.html#WhatIsCompatible

    這才了解到,GPL 所謂的相容是指兩個不同授權的程式可以放在一起,像是核心程式使用 AGPLv3 時,模組可以選擇使用 AGPLv3 或 GPLv3 任一授權方式,並非如同 FA 開發者所指能夠直接轉換。接著針對這點發現提出回應,也將內容發到 gpl-violations 的通訊論壇確認。

    接著 FA 開發者暫時將以 AGPLv3 授權的程式撤下,透過各種方式進行意見的交流,不過他們提到已經取得 OA 作者的完整授權,選擇 GPLv3 或是 AGPLv3 都可以,只是希望聽聽大家的意見。

    我提到,對網頁介面為基礎的程式來說,AGPLv3 就好像是共產主義一樣,任何人只要能夠存取程式就可以要求完整的原始碼,而 GPLv3 就好像是資本主義下的稅負一般,即使總是有人抱怨其他人的逃漏稅,但這不應該是改選擇共產主義的理由。

    我並不喜歡那種抱著投機心態使用 ASP/SAAS 授權模式的商業模式,但是我更不喜歡一堆不相干的人無時無刻吵著要程式碼的態度,這是我排斥使用 AGPL 授權的原因。在討論中還有提到,那些使用 ASP/SAAS 方式迴避 GPL 授權的供應商,他們所修改的程式碼還是有回到社群的機會,因為工作中接觸到那些程式碼的工程師或是合作廠商,只要他們在放棄合作與工作前提出要求,GPL 有著不得加諸限制的條款,他們原則上可以合法取得完整的程式碼以及散佈那些程式碼的權力。如果社群中真需要那樣的功能,而那些公司也沒能夠妥善照顧所有可接觸程式碼的工程師,相信這些程式碼還是有機會回到社群。

    最後, FA 選擇了 GPLv3 ,不過也語帶保留的提到或許未來還是有可能改採 AGPLv3:
    http://frontaccounting.net/punbb/viewtopic.php?id=480

    簡單的說, GPLv3 跟 AGPLv3 兩個授權可以放在一起,但是不能換來換去。 ;)

     
    • micmic 16:26:00 on 2009 年 05 月 15 日 Permalink

      太多 lincense 了,GPL ,LGPL ,MPL ,MIT ,BSD ,APACHE 的叫什麼我忘了….
      ,其實我認為 opensource 的 erp 應該有機會做的起來.

    • kiang 17:45:45 on 2009 年 05 月 15 日 Permalink

      APACHE 的就叫 APACHE 啦 ;)

      ERP 不是件簡單的事情,能夠凝聚眾人的智慧是最好不過了。

  • kiang 12:18:56 on 2009 年 02 月 07 日 Permalink | Reply
    Tags:   

    給 OpenFoundry 的建議 

    昨晚跟 Freddi 與 KC 碰面,聊的是 OpenFoundry 的推廣活動,在討論過程中有提到過去跟 OpenFoundry 的一些互動,不過時間太久所以印象模糊了些,於是剛剛就找了一下。

    是從這篇文章的評論開始的:
    http://kiang.blogspot.com/2004/07/20040711.html

    OpenFoundry 是由 RT, Kwiki, Sympa, SVK 等工具組成,早期透過 Perl 設計一個整合式的 UI ,現在是使用 Ruby 。在當時看到 autrijus 的評論後,我就試著去翻譯 gforge ,翻譯的成果在 OpenFoundry 網站上都還找的到,只是很久沒有更新:
    http://of.openfoundry.org/projects/161/download

    不過 OpenFoundry 並沒有採用,只是一直用自己的方式試著把一些工具組合在一起,因此穩定度、畫面整合等問題似乎到了今天還是沒有根本的解決,所以我還是強烈建議他們改採用 gforge ,或是可以選擇類似 sourceforge.net 最近的作法,提供一些常見的應用給專案開發者,像是 Trac ,他們也有將修改的部份公開來:
    http://sourceforge.net/project/showfiles.php?group_id=238161&package_id=289462

    OpenFoundry 所選擇的應用程式不是不好,而是需要花許多的功夫進行整合,而 GForge 已經整合好了,為什麼不用? GForge 是基於 Sourceforge 早期釋出的版本進行延伸,因此熟悉 Sourceforge 操作的人對於 GForge 並不會感到陌生,它的安裝相信不會比起開發一個整合介面要難。

    就算喜歡使用 Ruby 開發,那為何不選擇使用 Redmine ( http://www.redmine.org/ ),它實作了 Trac 上看的到的功能,還進一步支援多專案等功能,連 Git 都支援了…

    上面是針對平台的建議,再來是針對推廣工作。

    OpenFoundry 在開放原始碼軟體的推廣工作往往受限於年度計劃方向、執行者的目的(論文?)或是排斥商業行為的習慣,引來了不少的抱怨。

    在昨晚的討論中有提到,為什麼不先將焦點放在一些能夠產生良性循環的專案上面?以 CRM 為例,想要使用這方面軟體的公司不少,如果針對這個軟體進行一系列的說明、教學等活動,擴大使用者社群後,自然願意在社群投注資源的企業就會變多,資源多了自然就可以吸引開發者,開發者如果能夠專注於開放原始碼的創作而不需要顧慮經濟問題,相信這個社群會進入所謂的良性循環。

    但是目前看到的一些推廣工作,都是將大部分的焦點放在開發者,試著要培養更多的開發者,但是結果似乎永遠不如預期,為什麼?因為參與活動的人大多將獲得的知識放在自己的工作上面,也大多只對於跟現在或未來工作相關的主題感興趣,最後大概只有那種滿腔熱血的青年會跳出來做些事情,不過這樣的熱情大多燃燒不了多久,因為沒有適當的環境來延續這些熱情。

    但過度商業化也不是一件好事,如果活動裏面介紹的都是些商業軟體,或是被調整過而且無法直接取得的軟體,相信效果也會大打折扣。

    簡單的說,請將焦點集中在使用者社群,這樣的社群才有機會形成產業,產業出現了,就不用擔心開發者不夠的問題;把餅做大,而不是一直在消耗資源讓圈子越來越小。

    好吧,如果真的那麼排斥商業,那不妨就先將焦點放在學校用的到的部份,像是 Moodle 或者國人自行開發的學務系統也好( http://x.tnc.edu.tw/ )。

    已經有人在做?那為何不要一起做?團結不是應該力量大些嘛?

     
  • kiang 09:24:45 on 2009 年 01 月 09 日 Permalink | Reply  

    就這間電腦工作室,農曆年後開張 

    你沒看錯,就這間!

    為什麼取這個名字?因為打廣告容易,怎麼說呢?

    • 要架網站嗎?…就這間可以幫您
    • 要做教育訓練嗎?…就這間可以幫您
    • 要導入開放原始碼軟體嗎?…就這間可以幫您
    • 要xxxxxx嗎?…就這間還是可以幫您

    就因為這樣,所以取名』就這間』…很好記吧 ;)

    不過不要誤會,我不是趕流行趕到被裁員,而是自己想要離職的,因為總覺得在公司裡面沒辦法做些自己想做的事情,在公司的程式開發工作到一個段落後,提出離職的申請。離職後跟原本的公司也許會有額外的合約關係,所以有想要做類似網站的朋友先說聲抱歉了,基於道德與法律的考量,無法承接這種委託。

    工作室會做些什麼?初期大概就是平常在做的那些事情,長期性的規劃會在基本的收支能夠平衡後陸續進行。

    工作室會使用 olc.tw 這個網址,而未來跟工作室有關或商業性的文章就會發表在荒費許久的 osobiz.com ,農曆年期間會陸續進行整理。

    也感謝那些願意給我工作機會的朋友,只是短時間內可能不會考慮再進入到一個公司的體制之下,希望自己闖闖看。

    目前在籌備期間,歡迎有意願合作的朋友透過信箱 kiang @ osobiz . com 連繫,在資料準備好後會主動拜會大家 :)

     
    • johnpupu 13:24:18 on 2009 年 01 月 09 日 Permalink

      恭喜Kiang 大!!!!

    • ㄚ凱 12:25:20 on 2009 年 01 月 10 日 Permalink

      所以..我可以..嘿嘿…你了嗎?…

    • kiang 14:26:11 on 2009 年 01 月 10 日 Permalink

      …這個嘿嘿是…我跟 呂XX 不熟,所以不懂背後的意思呢 ;)

    • Mingway 03:16:53 on 2009 年 02 月 03 日 Permalink

      原來大大已經自己開工作室啦
      就這間電腦工作室~很好記的名字喔

      預祝您事業順利

    • kiang 08:02:37 on 2009 年 02 月 03 日 Permalink

      感謝 ;)

c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
esc
cancel