原來Thinking in Java的作者Bruce Eckel大師有出Flex的書:First Steps in Flex (不叫Think in Flex喔~),這不是一本大部頭書,全書只有140頁,與Adobe evangelist for Flex : James Ward 一起合著的。兩位作者希望以最簡潔的方式向初學者介紹Flex,從網頁資料裡面看起來,我覺得這本書更像是為了他們辦的活動所寫的講義。書本的網站上可以取得第一、二章試閱 PDF。

這對大多數Flasher / Flexer而言這應該不是什麼"新"聞了,但小弟我最近才發現這件事覺得很驚喜,所以就來湊個熱鬧。

而且我覺得這本書來的真是好,講再多Flex多強多標準,也比不上跟別人說"Java大師Bruce Eckel大師也有出Flex書"來得有用。

就在大前天收到一個閃很大的神秘禮物,就是Adobe寄來的免費AS3 和 Flex 海報。用裝海報的紙筒寄來的,寄件地址是美國加州,也就是Adobe總部的所在州。

打開紙筒以後從裡面拿出厚厚一疊的海報,包括一張AS3 class diagram (Flash Player 9,詳細版本沒仔細研究),兩張Flex Framework Core API 、一張 Flex Additional Component API、一張Flex Advanced Component API。另外還有一個好料是Lynda.com 的DM,上面有一個月免費線上訓練課程的啟用序號。收到的資料裡面還有一張5元美金的運費收據,但我完全沒印象當時有付任何的運費。

記得是在三月初的時候,本來只是要找之前在Flex.org看到的海報pdf檔,但pdf的連結不見了,取而代之的是官方的網站 ActionScript 3 and Flex API posters ,上面說用正版Flex Builder序號就可以免費取得海報,雖然我的序號是當初用"教育界免費申請 "的方案取得的,但還是厚著臉皮試試看,沒想到這樣竟然也行!

趕快找地方把它貼起來看看,真的是非常的賞心悅目吶~ 但五張都貼起來實在太高調了,只貼了兩張就成為大家好奇許久的焦點了,從其他人的回應看起來,其他的平台好像沒有這種免費服務,更不用說這些海報又是這麼的有設計感啦。

發現Ping.fm支援Blogger有1 Bug + 4 缺點

玩了一陣子從Ping.fm發文到Blogger的功能以後,發現Ping.fm支援Blogger的問題還真不少,有一大Bug + 4大缺點,使得Ping.fm支援Blogger的這個美意變得有一些雞肋。來紀錄一下然後丟給官方看看會不會有什麼反應。

1 Bug ( stops you from posting msgs to Blogger )

Situation: 如果Blogger的"設定(settings)" --> "意見(comments)" --> "上一頁連結(back links)" --> 為"顯示(show)",則Ping.fm輸出到Blogger的訊息就不會出現。隨便搜尋一下發現很少有人反應這個Bug,以為是中文版才有的問題,可是把Blogger版本改成英文版以後,測試結果也是一樣。( It stops you from posting msgs to Blogger if you follow this setting : settings  -->  comments -->  back links -->  show )

Solution: 將"上一頁連結(back links)" --> 設定為剩下的另一個選項 "隱藏"。(Switch "back links" from "show" to "hide" can do the trick.)

4 Drawbacks

(1)  Blogger標題不能輸入中文

在Ping.fm用blog選項輸出訊息的話,填寫處會跑出一個標題欄位,但在這個欄位輸入的中文標題都會變成亂碼。

(2) "設定標題"功能沒作用

撰寫Ping.fm訊息時可以用一個「^」符號區別Blogger文章的標題和內文,ex:「我是標題^而我是內文」,為方便說明,暫稱這個功能為"設定標題"。

缺點發生於想要一次對所有service發文時,發給blogger的"設定標題"功能會失效,而且發給其他不需要標題的service(ex:Twitter、Plurk、FaceBook)時反而保留了那個"設定標題"。也就是說,想要的效果出不來,但不想要的效果卻出現了。這樣子的話,就要選擇發出沒有標題的Blogger文章或者一次發文給全部service。

(3) 不能區別Blogger子站

Ping.fm開啟發文給Blogger功能的時候,會讓使用者選擇要對Blogger帳號底下的哪些blogspot(子站)發文,可是發文的時候沒有功能區別要發文給哪個blogspot,就變成所有blogspot都要post一樣的東西。

(4)  不支援輸入文章tag

發出的Blogger文章不支援輸入tag。

PureMVC學習筆記:初識

紀錄一下目前所認識的PureMVC,最近看到蠻多前輩寫關於PureMVC的學習心得,但我寫的最沒啥重點,我只是把自己有興趣的部分紀錄一下而已,內容絕對很貧乏,開始!...

PureMVC是一套免費且open source的framework,架構於MVC設計模式之上,PureMVC最主要的目標是幫助開發人員在開發應用程式時(尤其具有User Interface的程式),將程式的Model(資料), View(介面) , Controller(控制)三端耦合度降低,耦合度降低以後的好處有:使reuse可能性提高、易於維護、易於協同合作等。PureMVC 一開始以AS3語言實作,後來官方將這個framework陸續移植到多種語言平台上,如:Java, C#, JavaScript, PHP...甚至還有最近很熱門的Objective C和Ruby。PureMVC裡面引入了很多經典、標準的設計模式(Design Pattern),從文件的隻字片語裡看到有被採用的pattern包括:Observer, Facade, Command, Proxy, Factory, Adaptor , Singleton, Mediator, Strategy,這些pattern在四人幫(GoF)知名的設計模式書:Design Patterns: Elementsof Reusable Object-Oriented Software 裡都可以被找到,這應該是它的賣點之一吧。目前整套framework是由作者Cliff Hall先生和他的公司Futurescale在維護。

學習PureMVC必看官方的說明文件範例,寫得非常完整。不過我覺得官方的文件對於MVC這個模式沒有特別說明是比較有陷阱的地方,如果能夠事先對單純的MVC有一個初步的概念,學習起來應該會更容易進入狀況。

記得還沒開始學習PureMVC之前,我想了解PureMVC能不能夠被移植到C++的GUI platform上(ex:Qt),現在我知道PureMVC的核心概念是一套與平台無關的MVC分離和溝通機制,這些機制可以用任何一種OO語言本身去實作,且不需要語言以外的API,再加上PureMVC的概念上,已經將與GUI平台有關的實作方法(例如: AS3的Event, Qt的Slot&Signal)獨立到View端,因此理論上任何採用OO語言的GUI平台都可以實作和採用。

除了官方的範例,網路上也可以找到比較簡短的教學、範例以及前輩的分享,包括:
最近也看到了這兩篇比較MVC framework的文章,蠻有趣的:

推  7Yue 大的文章-- Flex代码格式化插件 裡介紹的屌貨:Flex Formatter ,這是可以在Flex Builder或Eclipse裡面自動排列(格式化)程式碼的外掛。


安裝方式
(1) 下載.jar 檔
(2) 丟到Flex Builder 的plugin資料夾 (or "dropins" dir if you are using Eclipse 3.4 or greater)
(3) 重新啟動Flex Builder (如果沒有出現,就在開啟捷徑的"目標"最後面加上-clean)
(4) 安裝完畢,工具列上就會出現兩個新的formatter按鈕了

「Format Flex Code」可依全部格式(ex: 字的間隔、if格式等等)重新format,「Indent Flex Code」只改變行的位置,而不更動其他的格式。