六月 27, 2016

Thinker
heaven.branda
» 我們需要的是一個城市

linkname:[國發會對「亞洲矽谷」的定調,我們仍然憂心] http://rocket.cafe/talks/77404 這篇文章提到『原本就都是「去中心化」的發展 (IoT本身不就是科技應用的去中心化典範嗎?); 而我們不贊同未來繼續採用「聚落化」的產業發展政策,也是基於相同的理由。』 我贊成「去中心化/不要園區」的觀點,但對於「聚落化」則無法贊成。 == 創新是一種文化 == 新創產業不只是經濟活動而已,而是一種文化。 這個產業圈必需形成一種文化,而這種文化的形成,可以在網路上, 但也需要面對面的討論。 全球化的今天,即使是最為網路化的 Open Source 社群,你也能看到地理上的集中。 ...

六月 23, 2016

Thinker
heaven.branda
» 亞洲矽谷也無不可,但不是大官、財團們想像的樣子

亞洲矽谷這個計劃這陣子被吵的沸沸揚揚的。我的重點只有一個,「人」。人是一切,如何讓人願意來,願意留下,才是亞洲矽谷的核心。 而讓人來,讓人留下的核心因素是「需求」。根據我的觀察,我來分析一下需求。 == 休閒 == 首先,休閒大概是矽谷最重要的一環。 這幾年矽谷的軟體人才紛紛往 SF 移動,就是看中 SF 的休閒活動比起加州其它地方豐富。 特別是在新創事業中,年輕人特別多,需要有良好的休閒空間和活動,才能吸引人才前來、留下。 百貨公司、商場我們是夠多了,多到爆。不如多規劃一些戶外的空間和活動。 而且必需多元,符合年輕人的需求。 這或許可以參考一下時下年輕人都去哪,分析出需要加強的地方。 ...

五月 14, 2016

Thinker
heaven.branda
» 開放源始碼應該 for fun

linkname:[什麼是該深耕的軟體工業基礎技術?] http://bit.ly/1Ntf6Kz 提到開源。 可惜的是,文中把開放源始碼當成一種經濟、工業手段。 一個健全、活絡的開源社群,需要的不是產業的加入,而是從樂趣出發, 以理想為考量。 如此的生態系,才會多樣、充滿創意,並且健壯。 如果考量經濟、產業,只會帶入執念,利用和丟棄也就同時發生。 我個人觀察,曾經台灣有很好的 open source 生態,直到「產業」看到好處。 沒錯,有更多人使用 open source 了。 但發展 open source 的人卻不見增加,反而在產業的利誘下,有降低的現象。 整體而言,技術力是提昇了, ...

一月 3, 2016

Thinker
heaven.branda
» Device Worker 意外之旅!

半年前開始有 linkname:[Device Worker] http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/495 的想法。 那時把注意力放在最花時間的工作,把 Javascript 轉成 native code。 後來忙於其它事,就把做一半的東西放下。 上個月到米國出差了一周,同事提起了這個點子,建議我應該完成,於是我就計劃著 怎麼繼續下去。 因為環境的改變,IOT 變成許多人注意的領域。 因應這個變化,我在跨年的假期,完成一個適合在 Raspberry Pi 等級的 環境執行的 prove-of-concept 實作。 ...

十一月 23, 2015

Thinker
heaven.branda
» 讀 code 和讀文章應該差不多

有人在 plurk 提供了一個 link linkname:[Code is not literature] http://www.gigamonkeys.com/code-reading/ 內容很有趣,而且也是我思考和嘗試過的問題。 我的觀點和 Peter Seibel 不同。他提到 {{{ But then it hit me. Code is not literature and we are not readers. Rather, interesting pieces of code are specimens and we are naturalists. ..... I think ...

十一月 22, 2015

Thinker
heaven.branda
» 閱讀程式碼的心理層面

linkedin 上面,朋友會 endorse 我各式技能,像是 Linux、embedded system、 python、open source ... etc。 老實說,這些都不是我真實的技能。 如果要我說明技能為何,我會說「讀程式碼」。 我曾在 resume 裡,將「閱讀程式碼」列為我的重要技能,但被對方笑說這 算什麼技能。 然而,讀別人的程式碼是一種技藝,不是想看就能看的懂。 要看的快,理解的快,可不是那麼容易。 如果要比諭,「閱讀程式碼」這項技能就像「吸星大法」或是「斗換星移」 這兩門功夫。 看到任何系統,只要有程式碼,就能很快的拆解、修改,納為己用。 因此有「吸星大法」之效。 ...

十一月 16, 2015

Thinker
heaven.branda
» 學習程式設計的方法?!

最近 XDite 和陳鍾誠助理教授都針初學者該如何學習程式設計提出看法, 我相信任何方法,都會有人成功,但對於兩者提出的方法,我有極不同的看法。 XDite 說初學者不要問「為什麼?」只要肉體記憶就好了。 我並不贊同這個說法,學習者不同階段需要不同的方法,但程式設計的初學者 並不適合肉體記憶。 程式設計是一門需要精確控制和演示的技藝,初學者若不在初期了解其背後的道理, 很易因錯誤的理解,養成不良的習慣,事後是很難修正的。 一旦有先入為主的錯誤觀念,是很難主動發現,更何況是改變。 初學者只用肉體記憶,還會危害整個產業的發展,產出更多會說出 「不知道之前那裡錯了,反正現在會動了」這樣回應的工程師。 ...

五月 30, 2015

Thinker
heaven.branda
» IOT/WOT 的一個想法 -- Device Workers

一年來,IOT 愈來愈紅,難免各家都想著點力。 基於工作的關係,我難免會想 WEB 在這上面的運用。 WEB 的優勢就不多說的,而問題應該是,WEB 如何在這個應用上發揮作用。 最近開始一個新的 project,試著把 WEB Worker 的 JS code,直接轉譯成 binary, 希望得到 C/C++ 等級的效能。 但無意的亂入之中,想到一個還不錯的點子。 就是把每一個 Arduino 這類的 device 當成一個 worker,並把原本 worker 上 的 JS code 直接 compile 成 Arduino 的 binary, upload 到 Arduino 上執行。 ...

一月 15, 2015

Thinker
heaven.branda
» 某懶人包所忽略的因素

linkname:[某懶人包] http://www.slideshare.net/jserv/ticket-vending 收集了一堆關於寬宏線上售票系統的討論。 裡面包括一堆網路名人,我這小角也插不上嘴。 但基本上我也對這個議題也不感興趣,反正只是一些做事不入流所造成的問題。 我只想提一點這些名人都弄錯的事。 懶人包的第五頁,99% 的人在 1% 的時間進來,同時約 401 人。 這個推論本身的問題很大,而很多討論都依據這個規模。 我們都知道,群眾預期需要搶票的心理下,根本就會在開票前幾分鐘就開始不停 reload。 假設想要搶票的人只有五千人好了,那就表示一開賣就會有五千人在短短的幾秒 ...

一月 12, 2015

Thinker
heaven.branda
» 學徒之路

linkname:[Plurk 上的一則討論] http://www.plurk.com/p/knnrgm , 讓我對這個議題有一些想法。 我不想寫一篇 「XXX 之道」這類的文章,一來我不太夠格,另一方面我 深深認為「每個人都有自己的道路」。 「每個人都有自己的道路」也正是本文的重點。 == 基礎的知識、理論 == 在資訊相關領域(應該不止於這個領域),有許多技術還一直在變動和改進, 更新的速度非常快。 但有些知識是基本的,不太會變動。 必需紮實的學習這些基本知識,就像站椿一般。 這些知識包括理論、觀念和一些工具使用。 常見的基礎知識有 * 演算法 * OS * 機率 * Compiler ...

十二月 18, 2014

Thinker
heaven.branda
» 土砲 Oculus Rift

前陣子參加大型 work week 時,看到其它辨公室的同事在 demo WEB 的 3D 技術, 使用的就是 Oculus Rift。由於我在旁邊看別人使用時的畫面時,就開始頭暈, 所以我沒有真的載上去使用。但我猜那有一定的重量吧! 而且上網查了一下,不便宜。350鎂。 剛才在 linkedin 看到別人推薦的 URL: http://bit.ly/1r0NH7j 一小段 3D pokemon 的畫面,就在想有什麼方式可以不用 Oculus Rift 就能看到 3D 效果? 拿一張黑色的紙板,垂直放在螢幕上,隔開左右兩邊的畫面。 然後臉靠近紙板,兩眼放鬆平視前方,讓兩眼各看一邊的畫面,這樣就能看到 ...

十一月 4, 2014

Thinker
heaven.branda
» 如果有人要求你改善系統

身為工程師,不時會接到要求改善系統。 這個反應太慢,那個吃太多 memory,那那個又用太多電.....等等。 很多人,大部分人的第一個反應是「A 方案可能有效,試試看」。 一些簡單的問題或許直接這麼做就可以,但如果問題是手機耗太多電這種廣泛的問題, 那又該怎麼辨? 我個人建議依據下列幾個步驟,才能真正的解決問題。 * 建立測試報告,了解現在的實況為何? * 依第一步的成果,檢查並比較(如果有比較對象)問題是否存在,並設立改善目標。 * 尋找並測試解決方案,並和步驟一的結果比較。 * 實作、改善前一步驟的成果。 大多數 developer 和 PM,都喜歡直接跳到步驟四。 但往往走錯方向,或在解決一個不存在的問題。 ...

八月 2, 2014

Thinker
heaven.branda
» pthread_cond_wait() 如何運作?

為了討論一些技術細節,分析一下 pthread_cond_wait() 的行為。概念如下。 {{{#!raw mutex *wait_critical; mutex *wait_lock_cur; mutex *wait_lock_next; int *wait_count_cur; int *wait_count_next; /* * Make the current thread being blocked by wait_lock_cur. */ cond_waiting() { wait_count = wait_count_cur; wait_lock = wait_lock_cur; ...

七月 12, 2014

Thinker
heaven.branda
» 如何用 setjmp 、 longjmp 設計 coroutine?

昨天去參加 COUT,滿滿 C++ 的愛好者,除了我之外 XD 而,一位交大的學生做了精采的 present。 present 的內容是關於 C++ AMP 的實作,其中有一段是關於實作 corountine。 講者試著用 setjmp 和 longjmp 實作,但遇到困難,而轉用 ucontext。 由於講者花了太多時間,所以我沒在當場提出來討論。 == setjmp 和 longjmp 的問題 == 以下是用 setjmp 和 longjmp 實作的 coroutine 功能。 {{{#!cpp jmp_buf scheduler_env; jmp_buf task1_env; jmp_buf ...

五月 13, 2014

Thinker
heaven.branda
» Promise 解決了什麼問題?

Promise 最近被當成 callback hell 的救命仙丹。我覺的根本沒任何改善。 程式的流桯依然很破碎。 我不知是否有人試過類似的做法,我在出門搭機前,想到這個方法或許能有所改善。 {{{ function async(generator) { var deferred = Promise.defer(); function fulfill(v) { var ctx = {fulfill: fulfill, reject: reject, value: v, fulfill: true}; try { var ret = generator.send(ctx); ...

四月 13, 2014

Thinker
heaven.branda
» OSDC.TW 2014 投影片

Hacking System Calls and APIs 投影片 http://www.codemud.net/~thinker/downloads/osdc-2014-embed.svg FYI

四月 12, 2014

Thinker
heaven.branda
» 為何希望方仰寧下台

公投盟是一群白髮蒼蒼的老人,從事台獨建國、公投修法催生。不管你的立場為何,都是一群可敬的老人。 昨天晚上一群人為了公投盟的老人被警察強硬驅離,並導致蔡教授衝去撞車的事,要求方仰寧下台。 結果一晚過後,開始有一些人開始用一些可笑的理由支持方仰寧。 例如,有人說「警察也是人」難道那些公投盟的老人不是人? 況且他們早就合法請得集會許可,而且部分法條已經被確認違憲。方仰寧還在議會說過,就算違憲他還是會撤掉公投盟的許可。 「方仰寧是鐵錚錚的漢子」其實他只是躲在國家暴力後面,不敢有道德思考的垃圾。 比起公投盟那些鐵錚錚的老人,方仰寧什麼都沒有犧牲,他只是乖乖的執行命令,然後等著升官。 這和千萬萬的上班族沒什麼不同,何以爭得特別的欽佩? ...

四月 7, 2014

Thinker
heaven.branda
» 台灣工程師的主要問題

有些人質疑,為何台灣有那麼多勤奮、有創意、願意燒肝的工程師, 也有世界知名的公司,但為何台灣在數位化、電信和網路,都相對的落後。 甚至許多工程師得靠啃中國的文章過活? 然而,台灣工程師真的那麼厲害嗎? 為何實際的結果和想像相差甚遠? 其實,本文的第一句話充滿著誤解。 以下,我拋出幾個我對工程師(主要是 programmer)的觀察。 台灣工程師其實很懶,懶於用大腦多想一些。 「偷懶是程式設計師的美德」這是大部分人都知道的,但大部分台灣工程師 連「偷懶」都懶的做。 偷懶不是什麼事都不做,而是少做。少做是需要用腦力和想像力找出更好的 解決方案,讓我們能以更少的力氣,完成更多的事。 但台灣大多數工程師懶的多花時間在「思考」這件事上,大多只想要接受 ...

一月 27, 2014

Thinker
heaven.branda
» 你可能沒想過的 Python 用法

本文要介紹幾個簡單的事實,或許很多 Python programmer 沒想過 * class 的定義, 其實是一段程式碼。 * 這段程式碼的 local namespace 就是 class 的 dictionary (__dict__)。 * 所有 local variable 都會存進 local namespace 裡。 有了這幾項事實,就可以寫出以下的程式碼 {{{#!python # class to key, value pairs def class_to_kv_pairs(clazz): return [k, v for k, v ...

一月 14, 2014

Thinker
heaven.branda
» Hey Jude - Hacker 版本

改編自 linkname:["Hey Jude"] http://www.lyricsfreak.com/b/beatles/hey+jude_20014845.html by Paul McCartney, Beatles. {{{ Hey jude, don't make it bad. Take a sad code and make it better. Remember to let her into your heart, Then you can start to turn you (a) hacker. Hey jude, don't be afraid. You were ...

biggo.com.tw

A Django site.