2013年3月7日星期四

PHP - AssetToolKit

https://github.com/c9s/php-AssetToolkit 



這是一套筆者最近開發的 asset framework。


這是個獨立的 asset 管理工具,不需要安裝或使用 symfony 或 zend 之類的 fullstack web framework 就可以直接使用,可以很容易的嵌入在你自己開發的 application,也可以直接嵌入在你 single page php application 裡。

如果只想要靜態檔案,不需要動態呼叫,也可以利用 command-line 的 compile 命令,先把所有檔案編譯起來。

這有點類似 requirejs, 但 requirejs 沒辦法跟 php 模組整合, 這個工具是可以讓你的 php 模組都可以有自己的 assets,然後可以把不同模組底下的 assets 統合編譯壓縮起來成不同的檔案,來加速 client 端下載靜態檔案的速度。

以往,要在 PHP Application 內組織好 asset files 如 js, coffee-script 實在是件難事,因為每個框架的架構都不相同,要用 requirejs 也會有存取路徑的問題需要處理。

使用 AssetToolkit 的話,你可以將 assets 至於任何地方,只需要透過單一集中式的設定檔,就可以動態將所需要的 asset 載入。

舉例來說,我有一個 web application MyBlog:

apps/MyBlog


底下可以放置一些 assets,分別是:

apps/MyBlog/assets/jquery
apps/MyBlog/assets/jquery-ui

現在我另外寫了 plugin:


plugins/Post/assets/post-assets # 專為 Post 寫的 js 跟 css
plugins/News/assets/news-asset-a
plugins/News/assets/news-asset-b

各位知道,既然設計成 plugin ,那就是可以抽插代換的插件,透過 AssetToolkit 的話,各插件的 asset 載入,可以直接寫在各 plugin 的初始化區塊,所以若今天把 News plugin 或 Product plugin 拿掉,也都不會影響到整個應用程式的 assets 載入。

此外,AssetToolkit 做的不只是載入,還可以幫你透過 CoffeeScript filter, SASS filter, SCSS filter 等等,自動幫你編譯轉換並且壓縮。

2013年2月24日星期日

最近複習 Core Animation 的心得

最近複習 Core Animation 的心得: Cocoa 的視窗架構真的很優秀,程式碼簡潔清晰,功能強文件又完整 :)

不像以前寫 X window manager,X11 整個程式碼就是在大亂鬥,一堆 workaround ,然後因為是 C 語言只能一串串 struct 拋來拋去的,後來的 xcb 也沒好到哪裡去。:& 那些開發 Qt 的人真的很厲害呀...

其實以前寫 .NET,視窗開發也沒這麼威,也缺乏 Apple 公司的美感

雖然 Jobs 性格很糟糕,但 Jobs 統合 A 級怪咖起來做事情的能力倒是很優秀,做出來的東西果然就是很不一樣,相當前衛且創新。

至於微軟公司,做出來的東西則是很數學、很計算機、很制式,別人有什麼 (Java) 就做什麼 (C#)。 (誤)
1988 年的時候,能像 Jobs 大膽在新成立的 NeXT 公司採用 Objective-C 來進行開發的人應該是少之又少,但這個二十幾年前的決定卻奠定 Cocoa 的優良架構...

Tim Cook 雖然能搞工業工程、生產線,但對技術品味以及產品品味簡直是遭透了...每次手機要拿出來撥號就看到"計算機" ...

以前什麼都不懂,只覺得 X11 很酷,現在比較有經驗了一些,才慢慢開始有一些技術架構的品味。 以 X Window 現有的架構跟現況,我猜要追上 Cocoa 的程度恐怕還要幾十年..

2013年2月17日星期日

GoTray1.4.2 for Mac OS X

GoTray 1.4.2 釋出:
  • 新增自動持續測試功能。
  • 可同時監測多專案建置狀況。
  • 可新增 CGO 環境變數。
  • 可修改專案設定。

話不多說,先來看畫面:



如下圖,可搭配你喜愛的編輯器或 IDE 做自動持續測試,只要修改檔案,就會自動進行編譯或測試。


2013年2月10日星期日

GoTray for Mac OS

算是今天除了工作之外,另外做的一個小工具 GoTray for Mac OS 10.7+


本來是打算上傳到 Mac OS 的 App Store,但太久沒關心 Mac OS App 相關開發,沒想到從 2012 年六月就是 App Sandboxing Requirement 的最後通牒 - Apple’s Sandboxing Deadline Has Arrived For Mac App Store Developers,試著 Google 一下,發現還蠻多人哀嚎 XD

所有要在 App Store 上發佈的 App 都得啟用 Entitlement 內的 App Sandboxing 才能過 Validation。

而用 XCode 編譯 Mac OS App 若啟用 Sandboxing 後,該 App 最多就只能存取 User space 底下的檔案了,所以也無法去啟動系統上的 godoc server 。

這基本上代表著所有跟 FileSystem 相關或需要操作系統命令的 Mac OS App 只能把這些需要權限的部份,另外寫成 XPC Service 才有辦法進行進一步的操作。

2013年2月6日星期三

創新根本就是個假議題

創新根本就是個假議題,創新不一定代表你就會賺錢,創不創新不重要,商品最重要的是消費者買不買單。