2010年11月1日

『民國100年大泡沫』讀後感




民國100年大泡沫
財富即將重分配,央行沒告訴你的真相

作者:王伯達




你是否曾感到困惑或無奈,為何辛勤的工作,所賺得的薪水卻永遠不夠花用,買房子像是個遙不可及的夢想,生兒育女再也不是件簡單的事,這背後是誰推升了物價的飆漲,卻把我們口袋的錢變薄了,在這本『民國100年大泡沫』,或許可以找到些答案。

作者以近幾年來,台灣『外匯存底』的現象,來說明為何民國100年,台灣經濟體將面臨大泡沫,1929年的美國大蕭條、日本失落的十年、亞洲金融風暴、1990年台灣的萬點泡沫,都與外匯存底快速且鉅額累積有一定的關聯,作者將此稱為『外匯存底的詛咒』。

在電視新聞播報,偶爾可聽聞台灣的外匯存底又創新高,就播報的內容與語氣,彷彿是政府的一項功績;央行緊釘匯率修理熱錢,彷彿就是正義使者的化身,打擊邪惡的投資客,藉以伸張正義,但事實是否就如你我所聽所聞,書本封面的「央行沒告訴你的真相」,是否表示了某些真相是我們所未曾知曉的。

作者並非預言家,而是在書中藉由扎實的數據資料與分析,說明台灣這次大泡沫的成因為何,以及泡沫破滅後,隨之而來的蝴蝶效應,美國次貸風暴所演變的全球金融風暴,重創世界經濟,台灣的經濟也正逐步從風暴後復原,但是否能再禁得起大泡沫的考驗,令人擔憂,而藉由作者本書的出版,匯率政策這個以往禁忌的話題,也逐步受到關切與挑戰,近期財金或新聞節目也以台灣是否會面臨泡沫,進行議論。

你還在聽投顧老師口沫橫飛的報名牌嗎,別再緣木求魚了,整體經濟方向的掌握,才是致富的關鍵,現今你我都處在大泡沫之中,該如何參與此次的財富重分配,「你」準備好了嗎。

2010年10月26日

Flash Builder "Burrito" Preview Release

Adobe Labs在10/25發布新一代的Flash Builder ,目前為Preview版,代號為Burrito(捲餅??)。

該版本的特性如下:
  • Developing mobile and multiscreen applications
  • Accelerated coding for Flex and ActionScript projects
  • Improved designer/developer workflow
  • Updated platform support and improved performanc

Developing mobile and multiscreen applications

        透過Burrito內建的Adobe Flex “Hero” SDK,Flash Builder將可同時開發Web、Desktop及Mobile應用程式,Mobile應用程式除有優化的元件可供使用外,在程式發布(launch)及除錯(debug)也有良好的支援。

Accelerated coding for Flex and ActionScript projects

        程式碼樣板(code templates)的提供與程式碼相關操作的支援(如C#自動產生getter/setter),可加速應用程式的開發與提升生產力,除標準的樣板外,也可透過匯入的方式,使用其他套件樣本,如robotlegs等。

Improved designer/developer workflow Flash

        Catalyst下一版本代號為Panini,也於10/25發布,目前也為Preview版,Panini與Burrito的結合,將增進現有應用程式的設計與開發流程。

Updated platform support and improved performance 

        對支援Flash Builder的平台進行更新,Flash Builder Burrito相對於先前版本的效能也有大幅的提升。

參考資料:

2010年10月22日

如何更換Flash Builder的瀏覽器(Web Browser)設定

Flash Builder在執行Run/Debug時,會以預設的瀏覽器開啟應用程式,若要更換開啟的瀏覽器設定,步驟如下:
Window(功能表) -> Preferences -> General -> Web Browser

2010年10月21日

as3Signals初探

開發Flash或Flex系統時,覺得AS3內建的事件不甚好用嗎,那as3signals或許是一個不錯的解決方案。

AS3內建事件的相關評論,可參考:
as3Signals 是Robert Penner針對AS3內建的事件 (built-in events),所提出的一種新架構,該架構簡化了物件(或元件)間透過事件溝通的程序。

as3Signals概念摘錄
  Signals: Think Outside the Event.
  • Signals are light-weight, strongly-typed AS3 messaging tools.
  • Wire your application with better APIs and less boilerplate than AS3 Events.
  Concept
  • A Signal is essentially a mini-dispatcher specific to one event, with its own array of listeners.
  • A Signal gives an event a concrete membership in a class.
  • Listeners subscribe to real objects, not to string-based channels.
  • Event string constants are no longer needed.
  • Signals are inspired by C# events and signals/slots in Qt.
以一個簡單範例作說明,當Radio的massage屬性被設定訊息後,Radio會dispach事件,並由BroadcastListener進行監聽(listener)與回應。

一般寫法:
RadioEvent類別:必須自訂事件
package
{
    import flash.events.Event;

    public class RadioEvent extends Event 
    {
        public static const BROAD_CAST:String = "broadcast";
        public var message:String;
    
        public function RadioEvent(type:String, message:String, 
            bubbles:Boolean = false, cancelable:Boolean = false) 
        {
            super(type, bubbles, cancelable);
            this.message=message;
        }
    
        override public function clone():Event 
        {
            return new RadioEvent(this.type, this.message ,
                this.bubbles, this.cancelable);
        }
    }
}

Radio類別:dispatch event
package
{
    import flash.events.EventDispatcher;
    
    [Event(name="broadcast",type="RadioEvent")]
    
    public class Radio extends EventDispatcher 
    {
        public var eventObject:RadioEvent;
        private var _message:String;
        
        public function get message():String 
        { 
            return _message; 
        }
        
        public function set message(value:String):void
        {
            _message = value;
            eventObject=new RadioEvent("broadcast", _message);
            this.dispatchEvent(eventObject);
        }
    }    
}

BroadcastListener類別:listener
package
{
    public class BroadcastListener
    {    
        public function onBroadcastHandler(event:RadioEvent):void
        {
            trace('Heard message: ' + event.message);
        }
    }
}

SignalsHelloWorld類別:設定Radio物件的message屬性
package
{
    import flash.display.Sprite;
    
    public class SignalsHelloWorld extends Sprite
    {
        private var radio:Radio;
        private var broadcastListener:BroadcastListener;
    
        public function SignalsHelloWorld()
        {
            this.radio=new Radio();
            this.broadcastListener=new BroadcastListener();
            radio.addEventListener(RadioEvent.BROAD_CAST, 
            this.broadcastListener.onBroadcastHandler);
            radio.message="Hello World, Kolen!";                
        }
    }
}

使用as3signals的寫法:
SignalsRadio類別:透過Signal類別dispatch event
package
{
    import org.osflash.signals.Signal;
    
    public class SignalsRadio 
    {
        private var _message:String;
        public var broadcast:Signal;
        
        public function SignalsRadio()
        {
            broadcast = new Signal(String);
        }
        
        public function get message():String 
        { 
            return _message; 
        }
        
        public function set message(value:String):void
        {
            _message = value;
            broadcast.dispatch(_message);
        }
    }    
}

SignalsBroadcastListener類別:listener
package
{
    public class SignalsBroadcastListener
    {    
        public function onBroadcastHandler(message:String):void
        {
            trace('Heard message: ' + message);
        }
    }
}

SignalsHelloWorld類別:設定Radio物件的message屬性
package
{
    import flash.display.Sprite;
    
    public class SignalsHelloWorld extends Sprite
    {
        private var radio:SignalsRadio;
        private var broadcastListener:SignalsBroadcastListener;
        
        public function SignalsHelloWorld()
        {            
            this.radio=new SignalsRadio();
            this.broadcastListener=new SignalsBroadcastListener();
            radio.broadcast.add(this.broadcastListener.onBroadcastHandler);
            radio.message="Hello World, Kolen!";                
        }
    }
}

物件間的溝通是不是變簡單了呢,而本範例僅用到Signal類別,尚有DeluxeSignal、NativeSignal兩種類別,待後續再作介紹。

as3signals的學習資源

2010年7月7日

『告白』讀後感




告白

作者:湊佳苗
譯者:丁世佳




一位四歲女孩的溺水意外事件,其新聞價值或許可在地方報紙的社會版面占據一小角落,但過不了多久,這則新聞的印象將會被眾人遺忘,失去摯愛的悲慟也僅會殘留給事故者的親人。森口一位單親媽媽的國中教師,獨立撫養著女兒,女兒就像是她的天使,如此的純真可愛,直到某一天,她女兒意外溺死在自己任教學校的游泳池內,就像這世界上任何時刻任何地點可能發生的意外一樣,霎時可能讓人感到一絲憂傷,但本質上卻是平淡無奇。

如果這是一場單純的意外事件,那傷心難過就只有自責不已與悲慟莫名的母親,但這整起事件卻是一個計畫性的謀殺,兇手則是被害者母親的學生,身為被害者母親與學生導師的兩種身分,你會選擇自私的負仇或是無私的原諒。「告白」這書名,恰如其名,每一篇章都是由某人以自身的觀點進行事件與遭遇的告白,老師、殺人兇手、同班同學、溺愛兒子等角色,是非對錯該怎麼界定,怨恨與寬恕又該如何抉擇。

兩百多頁的份量,與單純的事件主軸,卻激起了內心深處的漣漪,不願正視的人性,怨恨、渴望、妒忌、虛榮、從眾、偏見,無時無刻都存在,只是穿上不同的戲服,演出不同的劇本罷了。人性是善或惡,爭論千年卻仍無結果,別人善惡我們不在乎,但多數時間毫無疑問地我們自認為自身的人性是光明的,但事實真是如此嗎,你用以檢驗人性的那把尺,是否律定了呢?

2010年7月5日

『巴斯特的耳朵』讀後感



巴斯特的耳朵
Busters Oron
 
作者:瑪莉亞.恩尼斯坦
譯者:李佳純



在看過網路上對本書的熱烈推薦,以為在閱讀的起初,就能引起興致,但在持續看了五分之一的篇幅後,只感到困惑和煩躁,書的內容到底想傳達些什麼,我無法有任何一絲絲的體會,但仍就斷斷續續的讀著。

漸漸的,某些感觸在心中發了芽,這本書的主軸是”愛”,一種讓人不寒而慄的現實與真實的”愛”,人們總希望透過愛人或被愛,以獲得救贖或重生,得不到渴望的愛,讓人絕望,但愛的太多太滿,又令人窒息。書中的主角伊娃從小就無法得到母親的愛與認同,無論她如何的努力,只有母親尖酸刻薄的挑剔,彷彿她跟她母親只有一人能活著留在這世上,所以伊娃七歲時就決定殺死她母親。

約翰一個擁有把冰山融化能力的人,時常把愛掛在嘴邊,從他口中所說出的話語,是多麼的真切與不可憾動,但打從底子裡約翰是個懦弱的人,他害怕孤獨,所以他選擇了以他為生活全部的女人作為訂婚對象,但約翰又無法忍受只活在她就是一切生活的世界裡,他害怕並選擇退縮。

伊娃從小冰凍自己情感的人,計畫著對母親的復仇,但偶然的愛情慢慢融化了在她體內的冰塊,讓她感覺到她是值得被愛與擁有愛,就算她母親從沒喜歡過她也無所謂,但讓人無法相信,愛情背叛了她,情人的蜜語就像是利刃,無情的凌遲她,她只得再次冰凍自己的傷口和情感,並把過錯都歸咎於她的母親。

蘇珊,伊娃的女兒,伊娃給她無限的愛,無論女兒如何使的壞,她只是告訴她女兒,她愛她,並請求女兒的原諒,直到伊娃與她女兒的一次聚餐中,她女兒赤裸裸的控訴她母親剝奪了她吵架的能力,因為她知道,無論她如何反抗,母親都會以愛之名,請求她的諒解。

愛還真是讓人難以捉摸,現階段我也無法明瞭愛的意義。或許愛人或被愛,是無法獲得救贖或重生的,因為我們始終是我們自己,愛人或被愛,只是不想承擔後果的藉口,因為把任何後果都推給是愛造成的,是合理的、可接受的。因為愛妳,所以我放棄了…,因為你不愛我,所以我要傷害妳折磨妳,愛這字還真是擁有無窮的魅力和威力,到最後,你知道自己為何而愛了嗎??