flex > 裏所有文章列表
*FastRead 是什麼?
FastRead 是一個針對中文內容設計的速讀訓練工具,它可以調整每次顯示的文字長度、切換速度、文字大小,籍此訓練眼睛與大腦習慣批量且迅速的接受文字,同時提升理解程度。
線上試玩
影片展示


*為何要寫 FastRead?
主要是因為平日要看的東西實在太多(專業書籍、閒書、中英文報紙、技術文章、rss、twitter…. you name it !),時間有限但資訊爆大量的情況下,必然得用比較有效率的方式解決這問題,因此最近又開始重溫十幾年前學過的速讀技巧,希望能有所幫助。
由於之前訓練的方式與內容都是針對英文題材,因此如果想同時加強中文的速讀能力,顯然市面上找不到現成的工具,只好自已來了,因此花了幾個小時寫了一支小工具出來,自已用了幾天覺得挺不賴,很快就找回速讀的感覺(呃,手有手感,那眼睛應該有眼感吧 XD)。
由於前後斷斷續續大概只花了五六個小時趕出來,因此程式當然還有許多問題,但想想或許可以幫助其它人做中文速讀訓練,所以就先推出讓大家玩玩,有 bug 再提交回來吧。
*速讀的原理
速讀的原理很簡單,一般就是
-把字當圖像來處理:眼睛一次看一組字(這裏的一組可能為三、四個字, 一行、兩行、四行甚至是古人傳說中的一目十行甚至一頁之類的不等),整批送進大腦裏
-避免「心讀」(subvocalization):一般人閱讀的習慣通常是
眼睛看 -> 心理默讀 -> 耳朵聽到 -> 大腦接收並理解
而速讀理論上是要略過中間兩個 steps,做到所謂『眼腦直映』,也就是睛眼看完文字直接進入大腦裏理解。
這兩個原則聽起來容易,但實作起來卻很困難,主要原因是
1、速讀不只是講求速度快,更重要的是理解度(comprehension) 也要提升,不然讀很快結果船過水無痕也是白搭,也因此大部份速讀術都會搭配記憶訓練之類的配套
2、大部份人從小養成的閱讀習慣就是先把字唸出來,然後才理解,因此一下子要改成不發聲(不論有無真的發音唸出來)而把文字當圖像整批往腦裏送並且要能理解,還要記起來,就顯的非常困難。
而 FastRead 可以幫上兩個忙:
1、訓練眼睛一次看一組字(例如一次四個字、八個字甚至一行)
2、加快每組文字的顯示速度,讓心沒時間音讀,而強迫大腦直接理解文字,進而達到『眼腦直映』的效果
建議一般人剛開始可以嚐試一次看4-7個字,速度大約 150ms,這個速度就差不多是眼睛來的及接受文字訊息,但心裏來不及讀完聲音的程度,有趣的是,如果非常專心,你會發現對文章的理解力其實還挺高,初學者至少也有 60% 的理解,等訓練個幾天後,相同的速度下理解程度就可提升到80% 以上,這時再搭配一些閱讀技巧訓練,整體的閱讀速度、理解程度與記憶就可以達到優秀的程度了。
不過當然速讀是門大學問,從1950年代出現至今,仍然還在不斷研究改進中,而我個人的速讀能力跟眾多專家相比,差不多只比幼稚園小班低一點,因此如果對這個主題有興趣,請參考下列資料
-Speed reading (wikipedia)
-Speed reading (wikibooks)
-Subvocalization
-SQ3R(reading skills)
*待改進之處
FastRead 目前最大的問題當然就是中文斷字的處理,而中文斷句一向是個大學問,絕非一天兩天就能搞定,幸好我正好認識一位自然語言學 大。長。輩,待有空好好請教後再來改版(出門在外就是靠長輩的啊~)
目前中文斷字主要就是依下列規則
-先依標點符號斷一次,例如,、!?之類的
-再依英文字或括號()” 之類的斷句,儘量讓整句的英文連在一起,並且播放時間會停留久一點(畢竟大部份人讀英文的速度沒那麼快)
-最後再將每個句子依 user 指定的字數分割,例如每四個字一組,當然這裏面會自動調整,有時可能會是三個字或五個字一組
-最後,則是有少量的「避頭尾」處理,儘量不讓標點符號單獨出現在一行,而是將它併入前一行裏
如果你有更好的建議,or better yet, 直接寫好一個 parser (而且還是用 as3),那當然歡迎隨時與我聯絡吶
*製作過程
最後聊一下這支小程式的製作過程。
我平常的工作都是寫大部頭的 enterprise application,一個案子可能跑數月到十數個月不等,製作手續也是非常詳細、完整,因此這次雖然一開始就知道只有幾個小時能投入開發,一切要從簡以快為上策。
但從平日的經驗中我瞭解到:快有快的做法,可有些關鍵 steps 不能省,例如UI的設計,因為一開始 UI 沒做好,將來開始 coding 後的修改成本就非常昂貴,並且做出來的東西也不會好用,那整件事就沒意義了。
因此還是乖乖用 Balsamiq Mockups快速畫了兩張介面稿,以方便儘快看出有無操作上的缺失,下面兩張圖大概只花了10分鐘左右,再加上一些來來回回的推敲與修改,總設計時數約30分鐘,但它已足夠確保最終的成品堪用並且沒有明顯的問題(至於其它平常後續會做的處理由於趕時間就直接略過了)。
btw, Mockups 真是一支非常實用的小工具,而 Balsamiq 這家公司與它背後的主人,則更是許多有趣的故事了,但那顯然離題太遠就先按下不表了。


總之寫這支小程式是很有趣的經驗,宛若平日工作流程的縮小迷你與超級加速版,平日要兩星期的事現在大概一小時做完,以往要來回溝通三次的決定,現在想兩秒就定案,如果以後每個客戶都這麼配合,那人生就太幸福啦 XD
最好希望大家試用 FastRead 後如果有任何意見與想法,請不吝隨時回報給我,感謝
| by admin

(click on the image to see demo video, source won’t be available for that it’s a client project, IP reserved)
As most of you know, undo/redo had long been part of the basic user experience all users would expect for pretty much every apps out there, let alone in a full-fledged RIA these days (hey “rich” ain’t there in RIA for nothing !), but this is not the case for flex/flash apps,
I’ve been wanting this for quite sometime now, to be precise, ever since flex first come out a couple of years ago I’ve been thinking why there’s no undo/redo capability for all the textfield-based component (TextInput, TextArea and RichTextEditor, that is).
and fortunately enough recently a client asked for this feature added to the app I’m working on, so I got a chance to finally have it implemented.
*Basic features include
-built against flash.text.TextField, so all text components in flex framework supported.
-has built-in UndoManager but user could supply custom UndoManager too, as long as it implements IUndoManager. (who doesn’t ?)
-unlimited level of undo and redo
-undo by single character (TextMate any one ?
or a stream of words (a.k.a normal mode)
-correctly handle delete and backspace keys for mac
-support built-in RichTextEditor, hence all text format modifications could be handled too
-handles right-click context menu (”Cut” and “Paste”) in AIR.
-easy to use, var tm:TextManager = new TextManager( tf ); one line of code and it could undo/redo everything.
-support double-byte languages like Chinese, Korean and Japanese (this is not really a feature for that flash player support unicode natively
*Some of the problems I ran into include
1. there’s no easy way to handle cut and paste short cut keys within browser, cmd-X and cmd-V will be “eaten” by containing browser, under Stand Alone player case, the player shell will eat the event, I know this could be dealt with old-school javascript tricks but I would rather refrain from going that direction because then developers will have to remember adding that piece of junk js to the browser and handle ExternalInterface.
After playing with various keyboard events finally I find a way to handle cut and paste with a combination of key events, all native flash player event hence no js, no interface, no nothing, just drop the swf in there and magic happens.
2. right-click menu
Seems to me there’s NO WAY to handle “Cut” and “Paste” menu command in browser version, and worst yet, there’s no way to disable the menu (in flash player 10 there’s ContextMenu.clipboardMenu = false, but, it’s not applicable to textField, ouch !). I could just have my finger crossed and hope user won’t be using that right click menu.
Good news is it could be handled correctly in AIR, and better yet, the project I’m working on, is an AIR app
3. I tried to have it implemented in a strict MVC way, but the traditional textfield in flash player 9 didn’t provide some of the low-level functionalities I need, so a bunch of quick hacks were threw in, but good thing is the new text engine in flash player 10 looks real promising, let alone the Text Layout Framework(TLF), I’m looking forward to work on that sooner than later.
*What’s next ?
Some people asked is it possible to turn this into a full-blown text editor, sure you can, but there’s already Buzzword and Google Docs providing such services, and like a 1000+ editors on the desktop ( TextMate, TextWrangler, Smultron, EmEditor, NotePad++, to name a few), so I don’t really see the value in creating such thing, but I could be wrong, if so, please kindly let me know !
| by admin

一早接到email 通知,FMS 3.5 正式開始販售,想想從它去年 announce 到現在開賣,還真是隔了很久,但正式販售代表的意義是 – 至少有 trial version 可玩了。
新版本功能看來很好很強大,只可惜就是沒有 AS3 支援,也沒有其它 scripting/language support,所以還是要繼續跟 AS1 打交道啊。
下面是 release note 裏看來的 new features (只列出我覺得有趣+值得觀察的項目,詳細清單在這裏)
*Plug-in architecture
Integrate with other servers, back-end services, and workflows with the new plug-in architecture. Three classes of plug-ins for authorization, server access, and file access let you extend Adobe® Flash® Media Interactive Server 3.5 software with custom connectivity, security, and deployment options.
這點很重要是因為以前 FMS app 很容易被人家亂搞,自已寫個 fake client 就連去,結果浪費頻寬等問題一大堆,現在透過自製 plugin 門檻就高一點。
*MPEG-4 video recording
mpeg-4 + HD 的重要性就不用多說了,現在不到 1080P HD 等級大概不用肖想吃 CDN 或 streaming content 這塊了,所以這次從 encoder, DVR 到 dynamic streaming 都支援,算是非常符合時勢
*AMF3 support
有點雞肋,but nice to have.
*Easier implementation
*More secure content delivery
Lock down your high-definition content and communications with enhanced stream protection and server-side security. Encrypted H.264 streaming is now supported — with the encrypted Real Time Messaging Protocol (RTMPE), you get higher performance at 128-bit encryption strength. In edition with RTMPE, protect SWF files from being reused or modified, and help prevent unauthorized connections with improved SWF verification. Use the plug-in architecture to create custom, real-time rights control by validating with external services such as LDAP or SOAP.
新增支援 windows server 2008, red hat 5.2, RTMPE 加密串流到 air runtime
*Multipoint publishing
Use multipoint publishing to remotely inject new live or prerecorded streams into your delivery system to quickly add time-sensitive content. This is most useful when working with a content delivery network (CDN) or distributed servers.
這個聽起來很威,但全世界有能力玩這種等級的 CDN 大概沒幾家吧,例如 MediaTemple, BrightCove 或少數幾個 in-house 的媒體。
*Stream data access
Create dynamic thumbnails or video previews on the client side with the ability to take a snapshot of the streamed video (requires Flash Player 9 or later).
這個不算新鮮事,但在 fp9 裏實作手法可能更有趣,我推測是直接從 binary stream (byte array) 裏做 memory dump 然後生成 preview,這個要等裝起來玩後才能驗証了。
另外從 FMS 3 開始就支援一個 RTMFP 格式,如果你有在 follow MAX 2008,應該已經注意到讓每個人眼睛一亮的 p2p 功能(包含正 beta 中的 Stratus service),RTMFP 就是讓 p2p 成真的 UDP 傳輸格式,只是之前一定要用 FMS 才行,現在也可選擇不俱 Audio/Video 能力的 Stratus (or better yet, can we have standard SIP support ?) 來玩同樣的事,就看口袋深度囉…XD
| by admin

from autotweets
有人能說說好在哪裏嗎?:)
==== 分隔線 ====
感謝這麼多人熱情回答,下面是簡單的說明。
如果要做一個類似這樣的提醒程式

一般必然會有下面這種『設定』畫面

但它也可以這樣做(資訊呈現的畫面,本身也就是操作的介面)

簡單來說,大原則就是 information retrieval & manipulation 儘可能合為一體,讓 path to information 儘量縮短,能做到這樣,大概就成功一半了。
有空可以順便想想這些大原則有否出現在 iphone 上面?如果有,它有哪些異同?如果有差異,why’s that ?
如果對這個主題有興趣,可以看看 magic ink 一文,雖然寫的落落長高達 70+ pages, 但相信我,那會是很值得的七十頁。
ps. 當初我看的不是 autotweet 本身提供的服務,雖然創新是有一點點,但要我把帳號/密碼交給一個 3rd party 網站,這怎麼看都不像是個好主意吶(就像如果有人要你把銀行存摺、印鑑給他好幫你管帳,有人會答應嗎?) XD
| by admin
今天放下手邊本來就趕不完的一堆專案跑去遠企參加了 Adobe 近年來少見的 RIA 大型說明會,主要原因是這次很有誠意的請來了 air/flex 界兩大天王 Mike Chambers 與 Ryan Stewart 連袂來台演出,如果我的記憶沒錯,這應該是 flex 問市以來除了 Max 2006 外最盛大的一場了吧
下面是目前我還記得的一些心得、內幕與八卦速記,錯了絕對不負責,日後沒實現也絕不關我的事 XD
*flash player on iphone – yes, it’s very true.
如果你像我一樣每天早上起來會先看 techmeme, techcrunch, slashdot 的話(呃,其實還有其它幾十個 news feed,反正 google reader 很好很強大就儘量訂了),那你應該也耳聞了昨天在英國舉行的 FTOB 大會上,Adobe 宣佈了 flash player for iphone 已經完成,目前只待 Apple 點頭就可以放進去。
這件事當然是本日行程中的最重點,一進到會場看到 Mike 與 Ryan 兩位苦主已端坐檯前當然老實不客氣直接衝上去先拷問一番,問答如下:
1. 所以,這是真的嗎?flash player 真的要上 iphone 了?(呃,還是反過來?誰是受詞呢?)
Ryan 點點頭,然後準備說 but, 這時 Mike 在旁邊搭話:we’ve been talking about this for three months now, don’t know why it’s news now…
2. 那這是用什麼版本的 flash player 改寫的?
Ryan 答說是 based on flash player 9, with full actionscript 3 support。(聽完這句淚水差點奪眶而出想跳上去抱住 Ryan,可惜中間有桌子阻隔就算了饒他一命 Max 2008 美國見時再補給他,但不論如何回家後可以先把 xcode, interface builder 反安裝,programming for cocoa 也可以直接扔出窗外了)
3. 但 Jobs 不是說有 speed issue 嗎?怎麼突然間沒這問題了?
Ryan 回說,呃,speed is still an issue, so far we only have it ran in simulator, and we are working with apple now.
所以看來在模擬器裏跑是沒問題了,但能不能真的上到 iphone 則是另回事(實際上,這裏面要考量的恐怕不只是 technical issue, 還有 political issue 啊)
4. 那現行的 flash lite 該何去何從呢?(言下之意是它反正功能不強、跑的又慢且不支援 as3,那留這玩意要幹麻?)
沒想到 Ryan 答的更直接,it’s date is numbered.(活不長啦),主要原因是 Adobe 希望自此之後所有的 flash player 都儘量用同一個 code base,而當下最合理的選擇當然是 fp9/as3 的 code base 比較王道啊,所以,flash lite 請一路走好就不送了 XD
5. 呃,還有那個 android,你們有聽過吧?
Ryan 答說在 Open Screen 的大架構下,所有 mobile devices 都是支援的對象,包含 android (跟不怎麼夢幻的 Dream),但這些事大概要等 air 1.5 推出後才會進行。
前後不過十分鐘,所有我想知道的事都有答案了,接下來當然是轉身拿了包包就走…呃…是走回座位乖乖坐下等開講。
*thermo
今天展示的眾多玩意中,thermo 是當然的新焦點,這可是 Adobe 企圖大一統 designer/developer workflow 的處女作。
下面是一些心得
-基本上 thermo 是 based on eclipse,但擁有很 CS3 的 UI,所以用起來,呃,陌生中帶著點熟悉,就像多年前的初….ok, 回正題。
-也由於是 eclipse 為底,因此所有看的到的介面元素,全都是用 Java + SWT 刻出來的,而據不可靠消息來源透露,將來還會有跟 CS4 一樣的 UI widget (這代表著,有個苦主要想辦法用 SWT 照著 CS4 的介面刻一個出來,想必是歡樂無限啊)
-thermo 能夠整合 design 與 code 的關鍵因素,就在於它能用描述式語言,來處理圖型的部份,包含點陣與向量,這個格式就是 FXG (然後拜托不要再問為何不是 svg 了,有些事就像天要下雨娘要改嫁是由不得選的,詳情請看這裏)
-籍由 FXG,photoshop/illustrator/fireworks/flash 產生的圖檔,可以直接在 thermo 中開啟,也可以輕易的轉換成 skin elements,並加上 animation 與 effect,我知道這些事用文字寫起來可能沒什麼感覺,但讓我這樣講吧,如果考量進 Thermo, FXG 與背後其它 Flex 4, flash player 10 等一連串的改變,光是想到要完成這些事的規畫與執行,還有它所牽涉到的規模,我就可以說這件事真是它x的酷弊了,更何況它還真的 works
-根據 Ryan 的說法,Thermo 出現的主要目地是為了讓『設計師』在整個 RIA 專案進行扮演更主導的角色,希望讓設計師可以用熟悉的方式來掌控程式中的視覺部份(包含視覺設計、動畫、效果等)。
這句話乍聽之下挺有道理,但深思之後卻會想反問:讓『設計師』擔任更主導的角色,真的有比較好嗎?設計師們做好這層準備了嗎?或著,我們是在期盼設計師擔負他/她們一輩子也沒想過該承擔的角色與任務?
這個問題可以從幾個層面來思考與回答,但我希望這篇文章能控制在三千字內,所以下略五千字。
總之就是設計師要加油啦,設計包含的層面很廣,如果到現在還不會拼 user experience 與 usability 這兩個字,那就代表準備還不夠囉。
*技術方面
接著是一些關於技術方面的速記,很 rough,因為 90% 我幾個月前就聽過了,這段時間基本上是在喝冷掉的咖啡跟想偷吃桌上的蛋塔…
-今天主要講的內容包含 Thermo, FXG, Gumbo, Flash Player 10, 一點點 CS4 與 air 1.5
光看這個 listing 就覺得很刺激吧?想想看工程師要會這麼多卻只能領三萬出頭還被 A 七億,為啥還沒鬧革命啊 XD
-flash player 10 裏面全新的 text engine 是由 InDesign 的工程師親手打造,基本上這就代表著 Adobe 過去幾十年的造字工藝一夕間全注入了 flash player。
但,也由於功力太深厚,player 底層的 text api 其實很難懂也很不好用,預估這個世界上大概只有 5% 的人會需要親自跟它打交道,其它的善良百姓則可以選擇今年稍後要放出的文字元件 – vellum(呃,其實它已經又改名了,過陣子就會揭露)。
基本上 vellum 是一個包裝的很善良的 text api,提供了一系列像是 left to right 之類的選項,這個元件將來會搭在 Flash CS4 裏(還有一個可愛的面板) 跟 Flex 4,想嚐鮮的人現在就可以去 labs.adobe.com 下載 gumbo 的 sdk,裏面有附完整 source code(hint: 趁還有的時後,快抓)。
-vector 是新出現的 typed array, 搭配 drawPath(), drawTriangles() 威力非常強大,不過這些都是半年前的舊聞了,如果現在還不知道,代表,呃,總之現在知道了。
—– 分隔線 —–
好,以上正事報告完畢,接下來是八卦的部份。
*geeks love mac
首先,Mike 與 Ryan 分別帶了自已的 mac book pro 來,再次驗証了 geeks love mac 的事實(不,用偽麥客的不算 – 對,大能貓,就是在講你)

(左邊是 Mike 的 15″ mbp,最右邊開幕致辭中的是 Adobe HK 的 marketing director)

(右邊是 Ryan 的 15″ mbp, Adobe 該不會一次買了三千台給工程師吧?)
而且,他們的 mac 上還貼了滿滿的 stickers。

我最想要的是這張
(thermo的 logo),它的特別之處在於,Ryan 將它中間挖空,然後貼在 apple 那個會發光的蘋果位置,因此夜晚一開機,陣陣的鬼火就忽隱忽現,實在是非常有 fu 啊,程式寫不好,用 logo 嚇嚇人也挺不賴。
另外,這兩位不約而同也都是 iphone 的愛好著,而且老美不來包膜包套這些玩意,拿出來就是往桌上一扔。
總之,由此我們可以得出一個鐵的結論: geek = mbp + iphone (大誤~)
*mike’s white hair
另一件困擾我很久的事,就是 Mike 頭上左邊儿的那撮空隙,原本想說都是兩個孩子的爸了,應該不會這麼前衛還故意削個角吧?結果今天同乘電梯時詸底終於揭曉,噹噹,那個空隙,是撮染白的頭髮啊~只是因為白人皮膚顏色淡所以遠看還以為少了撮頭髮哩~

(頭髮還在,只是染白了一小撮)
*eboy’s t-shirt and other gifts
今天另一個意外的收穫就是拿到由 eboy 設計的 pixel-style air t-shirt,而且,參加晚場的朋友們還可以多拿一件綠色小號女生版,帶回家果然反應良好不虛此行啊…:P

其它拿到的東西包含幾張 air sticker,跟一本實體印刷版的 actionscript reference,有紙本如廁時卡好用啦~
*adobe office
也由於參加了晚上七點的 user group 聚會,因此有機會去 Adobe Taiwan 位於19樓的新辦公室逛逛,果然是寬敞明亮,美崙美煥啊(看來這下子要多賣幾套 CS4 才能跟上面交待了…XD)
正式開始前 Adobe 貼心的提供了豐盛的食物,包含當前最火的知名品牌 pizza,看著 Mike 與 Ryan 開心的吃著,不禁開始想,呃,真正是能吃就是福啊…不過後來出現的中式餐點也很無敵非常美味就是了,加上喝不完的飲料基本上是無可挑愓了。
吃飽喝足想說沒事去上個廁所順便四處晃晃,只要是沒上鎖且門開著的,就大方給它走進去瞧瞧,結果赫然發現有間 phone room 裏面擺的是一張要價近四萬的 Aaron chair,看來福利挺不錯吶,可惜主要的辦公室門關著,不知道裏面是不是也一人一張如此高檔享受啊…

(上面的圖是 google 隨便找來的同款椅子,不是現場拍的)
*總結
總之今日行程收獲頗豐,當面確認了幾件消息並且把來龍去脈摸個清楚,大樂。
同時,因為整個活動進行的方式很輕鬆休閒,因此有機會抓著兩人問些比較深入的技術問題,這可是飛去美國也不見得有的待遇(因為大家都有一狗票問題想抓著他們問啊)。
另外今天也見著了一票熟面孔,大抵就是北台灣有在接觸 flex/air/ria 的一掛人(所以圈子真正是小到一個新極限了啊),像是 atom, 邦邦, ticore, willy 跟減掉神奇30kg 的 Ben ,我真的不知道玩 wii fit 可得如此神效啊…
當然也很感謝 Adobe Taiwan 費心辦這樣一場活動,安排場地、食宿、行程、報名等想必是累壞了,但做的非常不錯,如果以後能 每。個。月。辦。一。場。就。更。好。了。啊 (逃~)
最後同場加映
XD
| by admin
Previous Posts