Search

11/29/2013

Closure Compiler - Advanced Compilation and Externs

Closure Compiler - Advanced Compilation and Externs - demo: http://chunghe.googlecode.com/git/experiment/closure.compiler/

Inconsistent Property Names Closure Compiler compilation never changes string literals in your code, no matter what compilation level you use. This means that compilation with ADVANCED_OPTIMIZATIONS treats properties differently depending on whether your code accesses them with a string. If you mix string references to a property with dot-syntax references, Closure Compiler renames some of the references to that property but not others. As a result, your code will probably not run correctly.
function displayNoteTitle(note) {
  alert(note['myTitle']);
}
var flowerNote = {};
flowerNote.myTitle = 'Flowers';

alert(flowerNote.myTitle);
displayNoteTitle(flowerNote);
compiles to
var a={};a.a="Flowers";alert(a.a);alert(a.myTitle);
Compiling Two Portions of Code Separately If you split your application into different modules of code, you might want to compile the modules separately. However, if two chunks of code interact at all, you may have trouble compiling them separately. Even if you succeed, the output of the two Closure Compiler runs will not be compatible. Solution: Compile All Code for a Page Together To ensure proper compilation, compile all the code for a page together in a single compilation run. The Closure Compiler can accept multiple JavaScript files and JavaScript strings as input, so you can pass library code and other code together in a single compilation request.
LOCAL_LIB=./lib.js
LOCAL_FILE=./script1.js
OUTPUT=output/script1.advanced.local.min.js  
curl -d compilation_level=ADVANCED_OPTIMIZATIONS -d output_format=text -d output_info=compiled_code --data-urlencode "js_code@${LOCAL_LIB}" --data-urlencode "js_code@${LOCAL_FILE}" http://closure-compiler.appspot.com/compile > $OUTPUT
lib.js
function getData() {
  // In an actual project, this data would be retrieved from the server.
  return {title: 'Flower Care', text: 'Flowers need water.'};
}
script1.js:

var displayElement = document.getElementById('display');
function displayData(parent, data) {
  var textElement = document.createTextNode(data.text);
  parent.appendChild(textElement);
}
displayData(displayElement, getData());
compiled to:
document.getElementById("display").appendChild(document.createTextNode("Flowers need water."));

11/27/2013

蔡依橙 I-Chen Tsai, MD: 「醫療崩壞中,我該怎麼辦?」:如何精進專業

蔡依橙 I-Chen Tsai, MD: 「醫療崩壞中,我該怎麼辦?」:如何精進專業

上一篇「醫療崩壞中,我該怎麼辦?」,至今有3200人按讚, 11000人點閱,打擊率 按讚率將近30%。這一個月,明信片如雪片般飛來 許多朋友私訊與電郵,詢問著「如何精進專業不被淘汰?」「如何發展第二專長以備不時之需?」等問題。 我不是什麼大師前輩,也只能用自己有限的人生經驗做點建議。個人經驗,不見得對,參考參考即可。這次先討論「精進專業」。 Q: 我評估了一下,由於家人的關係,暫時我不能換工作,這裡也勉強還行。打算跟他拼了,在業界裡繼續做幾年。那我應該怎麼讓自己過得好一點? A: 任何行業,要活得好,「精進專業」是唯一的路。這個藍色連結請您點進去看,大前研一對於個人發展所做的建議,在環境艱困時尤其值得細讀。「精進專業」,能使你在大環境崩壞時,避免成為首先被壓垮/裁撤/減薪的那群。 「精進專業」之後,要多學習各種第二、第三專長,發揮跨領域的效力,甚至在醫療崩壞後,作為備用的退路。 Q: 學長,你講這風涼話,聽說當初你在台中榮總,都不用作臨床工作,才能「精進」你心臟血管的「專業」。 A: ˊ_>ˋ 淡定……這已經是考古題了,每隔一陣子就有人這麼說,也不知道哪裡傳出來的謠言,在這裡一併回覆吧。 我在台中榮總不管做實習醫師、住院醫師或總醫師,工作都沒比別人少,只有更多。 我也很感謝環境給我這樣的訓練機會,讓我鍛鍊出快速閱片、到全台灣任何地方都能生存的能力。現在的我,正常上班時間,若狀況理想,偶爾一天能打1000片plain film;只打CT的話,一天能打80片Chest CT。 這很多人可以求證的,跟我同辦公室的蔡瑋琳主任、陳佩倫醫師,都親眼看過實際的臨床工作狀況。 必須說,這就像有臨床醫師一個診能看100位患者一樣,不過是效率好一點而已,沒什麼好說嘴的。是為了說明「我曾經在很大工作量的環境訓練很久」,進而說服你「要變強並不一定要脫離既有忙碌環境」,才舉這當例子。 Q: 學長,聽說那也是因為你都只做診斷,沒做介入性治療,才能做研究。 A: ˊ_>ˋ 淡定……這也是考古題,每隔一陣子就有人這麼說。 過去我在國際上,是因為心臟血管論文出名的,所以很多人以為我在台中榮總專做診斷,不做介入性。但事實是,我介入性做得不少、難度也不低。主治醫師期間,TAE、PCN、PTCD等都是照表操課,一個下午四五台在做,而且速度頂快,因為我用上了時間管理的概念:充分的術前評估、完善的器材準備、減少不必要的動作。 這也都有人可以求證的,像我帶過的年輕人:蔡欣宇醫師、蘇德晟醫師等。 這些考古題,就是我舉辦「那些年」研討會的原因之一。人就這樣,很容易覺得「別人的成功,都是一路順遂的。」要不就有背景、運氣好,要不就真天才、環境佳,但實際上如果我們去細看,會發現真正的原因是「他們付出比別人更多的努力、遭遇比別人更嚴重的挫折,卻仍然繼續堅持。」 我一個人說,沒什麼說服力。但黃明和、閻紫宸、曾文盛、鄭慧正、謝賜吉都傳達一樣的概念時,總該有說服力了吧! Q: 我理解了,現況不該是逃避的藉口。那應該如何做,才能「精進專業」,讓自己在大環境不好時,仍保有競爭力呢? A: 要確定自己掌握了「學新東西的技巧」,而不只是「學會新的技術」。 以我來說,「心血管電腦斷層」這個領域,因為開始做的時候沒有老師可以問,是看網路跟期刊就自己做起來的。但我也曾懷疑自己,心血管方面的能力,會不會只是偶然?只是剛好我適合這領域?如果這樣,有朝一日環境改變,「心血管電腦斷層」不再重要,會不會不能謀生? 於是我想,那我來發展介入性治療好了,所以我開始協助鄭紹彬的換肝團隊,解決疑難雜症,例如:bile leak時的困難PTCD 或者 術後膽道阻塞重新打通原路 等。我念期刊、吸取國外經驗,思考其中關鍵,然後配合以前的經驗做突破。 但這些勉強只能說是既有技術的改良,基本功都是黃振義主任、熊小澐主任教的。或許不是我突破,只是老師們的功夫我學得多、用得好而已。我問自己:如果是全新的介入性技術,沒有老師帶,我是否能自行開拓出新的臨床服務? 所以我選擇與張基晟主任團隊合作,開發CT-guided lung biopsy的臨床業務,從引進切片針、打造臨床服務流程、修正細節、與團隊共同成長,顛峰時期,我們團隊能做到0.4公分的病灶、穿過骨頭阻擋,把相關經驗投稿到國際期刊接受檢驗,也獲得刊登與肯定,確定我們的技術具有國際水平。 這幾次的訓練後,我確定的知道,不管是診斷或治療的新技術,只要當成自己的事業經營,拿出熱情,給我時間與舞台,我一定會做到國際水平。 年輕人請記住,真正的重點,是「學習的技巧」,而非學到的「技術」本身。 Q: 那你為什麼離開中榮,到秀傳去呢?這些技藝,不都可以讓你在醫學中心過得很好嗎? A: 因為我想知道,同樣的做事與學習方法,能不能用在行政、管理與領導。 台中榮總發展已經20年,其升遷飽和而緩慢,要做行政、管理與領導,我至少得再等15年,對我來說,15年就像下輩子一樣遙遠。 當時,黃明和總裁與葉永祥院長,誠心邀請我到秀傳醫療體系,解決彰秀、彰濱兩院放射科,長期報告完成率都在60%左右的問題。因為是個難度不小的挑戰,想說還年輕,禁得起失敗,不如就試試看吧。 Q: 後來呢? A: 當時,秀傳長官只希望我盡量幫忙,沒有時間限制,也沒有目標值。本來想,半年適應、半年調整,用一年左右,拉到70%就很好了。 結果,六個月內,同樣只有五位專任醫師人力,完成率從60%爬升到90%以上,科內相處氣氛也更和諧。財務上,因為報告效率變快,帶動自費體檢業績,讓科收入與毛利都明顯增加。 從這個經驗中,我學到了:「精進專業」的方法與態度,應用在行政、管理與領導上,也是可以的。 如果你真的能夠抓到「學習的方法」並看透「事情的本質」,其實專業、技術、行政、管理、領導,都是類似的。 Q: 總結來說,到底應該如何精進自己的專業呢? A: 以下流程: 學會一項技術,專精,成為top 5%。 ↓ 思考學習過程,哪些是學習的關鍵、哪些其實可以快速跳過。 ↓ 用更好的學習技巧,學會第二項技術,專精,成為top 5%。 ↓ 再次反省學習過程,這次有沒有變快了呢? 省略掉的步驟是不是真的能省略?關鍵的步驟是不是真的關鍵? ↓ 用萃取出來的know-how,學會第三項技術,專精,成為top 5%。 ↓ 繼續反省學習過程,是不是又更快了呢? 還是學習方法有誤?反而更慢了? ↓ 繼續學新技術、反省學習方法…… 當你有三項top 5%的技術,不只餓不死,在組織中應能如魚得水。 當你有五項以上top 5%的技術,想轉職時,找你的人會很多,廠商、醫院人資、獵頭公司都會跟你約時間。喜歡哪個工作,自己挑。 Q: 以上好難,我選醫護這條路,好像錯了?為什麼一個神聖的職業變得如此艱困? A: 我開始念書的時候,電子業如日中天,新創公司的初始股東,40歲就身家上億,提早退休。我畢業的時候,工程師年終分紅動輒千萬以上,買房買跑車。我拿到專科醫師證書時,多數的電子業工程師,月薪不到十萬,還得加班到半夜,一輩子沒機會領到千萬年終。這轉變,不過二十年光景。 醫護人員的薪資與社會地位下降,是不是與電子業的轉變很像呢?(唉,除了40歲身家上億便退休那部分。) 你說,醫護團隊拯救「人」的生命,是神聖的。 我說,人類社會資源有限,健保定好點值與給付,醫護職業就是工作換薪水。如果真要計較神聖,穿白襯衫騎腳踏車的摩門教徒,神不神聖?到處貼電線杆「神愛世人」的基督教徒,神不神聖?年薪買不起台北一坪豪宅的彭淮南,守護新台幣這麼多年,神不神聖? 神聖不能量化,但健保點值可以。逝去的光環不能養家,但薪水可以。 理想可以放在心裡,但請別忘記,生存,才是硬道理。

蔡依橙 I-Chen Tsai, MD: 「醫療崩壞中,我該怎麼辦?」:如何精進專業

蔡依橙 I-Chen Tsai, MD: 「醫療崩壞中,我該怎麼辦?」:如何精進專業

Q: 為什麼醫院都很摳門,福利一直縮? A: 私人醫院,每天都在現金流裡搏鬥,每收購一塊地,就要考慮戰略意義與戰術,並想辦法榨出正向現金流,自然,在人事銓敘的思維上,也會一樣。每個人都必須被評價、每個人都必須發揮其價值,不管你的價值是生論文、帶團隊、做臨床還是喬事情,都是價值。私人醫院要在資本社會中生存,健保給付艱困,敘薪邏輯如此,其實相當合理。你來開醫院,也會這麼做。 Q: 每個人都是獨一無二的,為什麼醫院要一直評價我的業績、我的產出,一逮到機會就要扣我薪水? A: 企業,會對員工評價,並給予企業認為合理的報酬。人,是企業成本中,最貴的一項,資本家仔細關心自己的投資是否有產出,本就合理,就像你會去看自己的股票漲了沒。 當然,員工也可以反過來評估,我在這裡工作,對我人生的價值如何?我學到新東西了嗎?我有安全感嗎?如果沒有,大可離職,尋找更適合自己的地方。 Q: 新一代的學生已經越來越有這種自覺,也因此台灣已經跨過了醫療崩壞的可逆點。 A: 是的,這是共識 XD 我們有生之年一定看得到台灣醫療崩壞,請拉椅子、買個鹹酥雞。 Q: 我真的很討厭我現在的工作,這種疲累,遲早我的身體會出問題,XX附醫怎麼這麼惡劣?管理階層有沒有良心啊? A: 我們沒有能力改變趨勢,就像沒有任何市井小民能夠抵擋王家被拆。但是,與其整天埋怨擔心,最後真的變成職災受害者,大家覺得你好可憐好悲傷,成為大家茶餘飯後惋惜的對象,為什麼當初不選擇勇敢離開,到輕鬆一點的地方呢? 需要錢,同樣的勞力,很多方法可以換錢;你想發展,很多類似的地方可以完成夢想。XX附醫,說穿了,就是眾多醫院裡頭的其中一家,如此而已。如果醫院對你不夠好,你當然也不需要有什麼忠誠度。 Q: 可是,我的家就在醫院旁邊,我也需要這份工作的薪資才夠讓小孩念私校。不管啦!XX醫院太無良!XXXXX! A: 改變現狀,一定需要代價,有考慮過開車一小時內可到的其他醫院/診所嗎?或者,你有其他專長,可以嘗試發展?我有朋友從護理改做金融、保險、藥商業務的。醫師朋友中,自行開業、到中小型醫院、做進出口貿易、婚姻介紹的都有。 你的家就在醫院旁邊,表示你省下了時間成本。你覺得太累身體不好,表示你付出了健康成本。換個薪水較低的工作,小孩只好念公立學校,這是機會成本。這些放在天平上秤,結果如何,答案只有您自己知道了。 對我來說,健康第一。我看過公立學校小孩,知書達禮創意滿點;我看過通勤一個小時上班的朋友,家庭幸福快樂;但過勞死之後又復活的,目前倒真沒聽說。 再說,護士、醫生,也只是眾多職業中的其中一種,如果你認為這個工作會讓你疲倦、中風、被告、賠三千萬,大可以去做網拍、做直銷、賣保險、頂個雞排攤或開家五十嵐啊。為什麼還要花那麼多精力去埋怨一些「以自己的能力與位子完全不可能改變」的事情? 或者,你有能力在網路上抱怨,卻沒有勇氣為自己的人生做一個負責任的決定? Q: 你的意思是,我們大家都姑息系統出現的問題,然後各自鳥獸散嗎? A: 我不知道你從哪裡推導出我在姑息。 是的,大環境需要改變、系統必須修改,但你不需要跟著這個大環境與系統一起墜毀。大家都知道醫療要崩潰了,要不你挺身而出改變它,要不就腳底抹油快點溜。 Q: 每年還是有好多新鮮的肝加入熱血的XX附醫... A: 今天XX附醫或者CMUH或者NTUH或者VGHTPE或者CGMH為什麼可以有那麼多的年輕肝臟可以用,因為大家還是一直去啊。 為什麼一樣的薪水,這些醫院可以叫人做更多的事情?因為他們給你「在大都會工作的感覺」、「在一流醫學中心工作的感覺」、「跟朋友家人提起好像比較有面子的感覺」,所以他們可以獲得溢價。這就是資本主義社會的品牌價值。 不然,你大可以到地區醫院、基層診所工作,在這些地方,工作輕鬆、薪資合理,缺也不少。都市找不到,就到鄉下,鄉下找不到,就到山上。要一份工作,真的沒有那麼難。 Q: XX附醫還有一個問題,需要你時不惜重金挖角,覺得你沒有大用處了就狠狠一腳踢開。 A: XX附醫的這個作法,我個人不覺得是問題。 在資本主義社會想要享有溢價,就必須持續維持自己的價值,跟股票一樣,股民喜歡你的時候可以把你捧上天,120萬買一張宏達電也覺得未來有機會,但你漲不上去,就不能怪人家在80萬的時候,停損把你賣了。 想要享有職業球員般的天價高薪,就要忍受走下坡時被無情釋出。 Q: 可是我的手術技能沒變,為什麼薪水變低? A: 因為你的技能不再是醫院殷切需要的,「市場價值」就是這樣的東西。 威盛做的東西還是CPU,國泰人壽賣的還是保險,為什麼股價從天上掉下來? Q: 怎麼好像你都替資本家說話? A: 我不是替資本家或企業說話,而是嘗試讓年輕人醒來,看清楚世界是怎麼運作的。不喜歡的話,可以去公家醫院找個缺,因為掃弊案的關係,最近署立醫院缺很多,剛好是進去的好時機。 Q: 我覺得怪的地方是,蔡主任似乎假設資本家/體制和勞工/個體是對等的,所以可以互相評價,功利自處。實務上,在「不堪忍」之前,壓迫一直存在,而且是單方向的,而誰在壓迫階級,誰在被壓迫階級,最大的因素是出身,而不是努力、能力、毅力這些可由個人決定的因素,「二代的起點是小資的終點」顯現出這種壓迫的不正義。不正義應該被矯正,而不是視而不見。 A: 您說的我同意,我並沒有「這些不正義不需要被矯正」的想法,如果個體認為應該積極抗爭,那就有系統、有策略的去抗爭,取得成績。但如果覺得在facebook上按讚或者抱怨一下,世界就會改變,那還是早點醒來比較好。 我的策略比較不同的,是我重視「人生是短暫的」這回事,更重視「人在台灣多元社會的獨立性」,或許我們的起點不如富二代,但我們能獲得的快樂與自由,也是很多富二代一輩子達不到的(光這個我可以講一大堆故事給你聽)。貧富差距的擴大,不是你我能在幾年內逆轉的,但你可以讓自己活得比有錢人、資本家,更快樂、更健康。 台灣還是希望之島,我們的環境還能出現「沈芯菱」這樣的孩子,利用網路跟自學,找到屬於自己的快樂;資深一點的,還有「王錦雲」小妹妹,用自己的腦力發展出策略,建立成功的入世佛教系統。 跟大多數網路的憤怒之氣不同的是,我想提醒年輕人,即使你要憤怒、要抗爭,也必須理解到你要抗爭的是什麼東西?那是一整個體制、一整個趨勢。你總要理解你的敵人才有勝算吧。 當壓迫者不是一個人,而是一個停不下來的系統時,悲劇很難避免。都更法就那樣,所以王家被拆了;健保財務問題就那樣,所以護士倒下了。 被壓迫的時候,有幾條路可以選:1. 有策略的抗爭(士林王家案) 2. 沒策略的謾罵(醫界三千萬內鬨討論) 3. 腳底抹油快溜。 我想說的是:請選1或3,2沒有用。 如果你想要的是一個平靜快樂的生活,相信我,台灣還有很多條路,不是人家開了夜市你就要去逛、弄一個教職體系你就得去鑽、有個主任位子你就得去搶。也不是因為你學了護理就得做護理,也不是你醫學系畢業就得當醫師。我以前三角函數跟對數都會算,難道我應該靠算數學賺錢嗎? 證照制度,是保障你可以吃這行飯,但不是限制你只能吃這行飯。人還是獨立的、人還是自由的。

TextTeaser

MojoJolo/textteaser

TextTeaser is an automatic summarization algorithm that combines the power of natural language processing and machine learning to produce good results. demo: http://www.textteaser.com/ api: https://www.mashape.com/mojojolo/textteaser

11/26/2013

paulirish / browser-logos

paulirish / browser-logos - collection of browser logos

Winston Chen @ 飛向科技: 美國人,印度人,與華人在積極程度上的差異

Winston Chen @ 飛向科技: 美國人,印度人,與華人在積極程度上的差異

另一個簡單的報告專案 強者我朋友又跟我分享了一個分組專案報告的小故事。 當組上的成員敲定,身為台灣人的我們會假設大家會在第一次討論中,大家坐下來決定報告的走向,進行分工。我們會假設每個人都可能有當組長的機會與意願,因此會在第一次的討論中,跟所有人一起決定 Leadership 是誰,等等。在大家不熟的時候,我們會採取『共識決』。 不在其位,我們不會跳出來領導。 他們組中的老美可不這樣搞。 第一次討論之前,他就已經把報告幾個可能的走向與分工都想好,並用 Email 寄出。第一次討論讓大家直接針對他提出來的東西進行討論。 成員當然有說不的權利,但是討論之前,整個報告就已經被老美想過了,討論的走向當然會在他提出的框架下進行,除非有人強力反對,整個團隊的領導也會是這位老美先生。 一樣的,在團隊領導方面,這位老美先生很自然地掌握了先手之勝。如果這時候有某位華人朋友想當組長,第一次討論時才出手,根本沒有辦法服眾,大勢已去。 要跟美式的積極對戰,就要爛熟美式的積極才行。 美式升遷,我怎麼知道你能把事情做好? 就我認識,身居要角的朋友或是上司告訴我,他們這裡的哲學是: 『We promote whoever that can do the job well. (我們提拔可以勝任該職缺的人)』 但是重點是,到職該職缺以前,他們怎麼知道你能把該職務做好? 答案很明顯,你要讓他們感覺『你已經在做了』,之後升你只是讓他們能夠名正言順的把責任扣在你身上而已。 你對某個職位很有興趣,不要害羞,跳進去做就對了(當然你原來的工作還是要做好),要等到有 Title 才做事, Title 就絕對不會是你的。 『你已經在做了』,這就是美式的積極。

squarespace

squarespace - beautiful site drag-n-drop site builder along with analytics data built in. Even better, you could sell merchandise there.

Squarespace provides you with beautiful, rich imagery, designer templates that undeniably command your attention right off the bat. Our first thought of their templates is that they are clean, minimalistic and gives off a sophisticated vibe. They definitely project a highly finished quality, as if a designer has invested months in polishing them. We particularly appreciated their clean lines which is a nice contrast to other website builders’ templates which could be a bit noisy. All Squarespace templates are responsive, meaning that you can resize your browser and the content (including the images, slideshows) will also automatically resize to help give you and your visitors optimized viewing experiences. This is especially helpful if your visitors tend to use mobile devices (certainly an upward trend for most users). Squarespace gives you extensive styling options that the majority of other website builders do not have. We’re not saying that you can’t do those types of customizations with other website builders, it’s just that Squarespace makes it very easy for you to customize your website’s design without editing codes. So this option works great especially if you are not a coding ninja. For example, you can adjust the fonts, colors, image opacity, sidebar width, background images, sizes, spacing / padding, etc of just about anything on a Squarespace website.

Parallax scrolling

http://kennedyandoswald.com/#!/rendezvous-with-death-video
http://www.nytimes.com/newsgraphics/2013/10/27/south-china-sea/
LAMDASH DNA | メンズシェーバー ラムダッシュ | Panasonic
http://prinzhorn.github.io/skrollr/
視差滾動(Parallax Scrolling)技術在網頁中應用的精美案例 - 網站設計及開發 - 香港矽谷

11/25/2013

mojombo/clippy

mojombo/clippy Clippy is a very simple Flash widget that makes it possible to place arbitrary text onto the client's clipboard.

Here is what Clippy looks like on GitHub: Clippy in action

11/15/2013

Is there any way to redraw tmux window when switching smaller monitor to bigger one?

Is there any way to redraw tmux window when switching smaller monitor to bigger one?

tmux limits the dimensions of a window to the smallest of each dimensions across all the sessions to which the window is attached. If it did not do this there would be no sensible way to display the whole window area for all the attached clients. The easiest thing to do is to deatch any other clients from the sessions when you attach: tmux attach -d