2019年8月9日 星期五

Windy 氣象預報網站

每當颱風來臨時,都會跟孩子一起使用 windy 天氣預報服務,一起來了解一下 windy 這項豐富的互動式天氣預報網站吧。

Windy.com 是由位於捷克,提供全世界天氣預報服務的互動式網站。2014年11月捷克的創業家 Ivo Lukačovič 創立,採用的氣象資料包括美國國家氣象局全球預測系統模型歐洲中期天氣預報中心模型、以及瑞士天氣預報公司 Meteoblue 採用的美國國家海洋暨大氣總署 NEMS 模型,一開始服務只限於風力動畫,而後衍生出氣象學的溫度、大氣壓力、相對濕度等數據的雲端互動服務,動畫部分採用 Cameron Beccario 計畫的 Javascript 程式語言  earth 開放原始碼函式庫。[1][2][3]

參考文獻:

  1. Wikipedia - Windy (weather service)
  2. cambecc/earch open source code @ github (windy 視覺化效果的 javascript 函式庫)
  3. cambecc earch project site (windy 視覺化效果的全球風力預報網站)

2019年7月12日 星期五

台灣的家族本位主義

台灣文化中的家族本位主義,除了因為源於中國傳統的農業
社會人力需求,甚至古今中外帝王與皇室世襲制度也顯示家
天下思維的普及,因此不難理解台灣文化中也會有家族本位
主義。

至於家族本位在台灣與在中國的差別,則是台灣這塊土地上
長期經過葡萄牙、西班牙、清帝國、日本帝國,甚至中華民
國政府來台後的二二八事件與白色恐怖極權施政等影響,在
地士紳為了能夠在歷來的殖民政府統治下延續家族香火,而
發展出台灣獨有的家族本位主義,確保能讓家族存活在不同
殖民政府的更迭,以及國際政治情勢的變化,因此助長了台
灣人對家族本位思考的發展。

比如清帝國到日治時期的台灣五大家族:基隆礦業顏家,新
北市板橋大地主林家,台中霧峰首富林家,彰化鹿港水泥金
融的辜家,以及高雄製糖產業的陳家,都可見家族本位主義
透過土地開發、經營茶、樟腦、糖、礦產等商業、聯姻或商
業合作延續或壯大,這些大家族對子女言行教育的身教與
言教,傳承勤業精神,也打破傳統坊間的富不過三代迷思。
[1][2][3]

而在日治時期到中華民國政府來台後,又有以橫跨金融控股
、石化、醫療、電信、水泥等產業的台灣新五大家族,包括
:台塑集團王家、富邦金控與國泰世華金控的蔡家、台新金
控與新光金控的吳家、重工業與家電產業的大同公司與橫跨
多領域的遠東集團徐家。[4]

Forbes 統計2018 年台灣資產最大的家族企業,則是電子業
富士康集團的首富郭家、食品業頂新集團的魏家、國泰世華
金控蔡家、富邦金控(台灣大電信與 Momo 電子商務)蔡家
、正新輪胎的羅家、研發製造手機(包括iPhone)光學鏡頭
大立光林家與陳家、直銷業先妮雷德的陳家、建築業寶佳企
業的林家、製鞋業以 Nike 運動鞋為主要客戶的豐泰企業
王家、橫跨地產金融媒體的三重幫成員聯邦企業集團林家、
塑膠產業奇美實業的許家、遠東集團的徐家、塑膠與石化產
業台塑企業的王家、3C產品鋁合金機殼產業可成科技的洪家
、資產融資租賃產業中租控股的鹿港辜家、建築營造休閒產
業遠雄企業的趙家、台新金控吳家、製鞋業為 Nike, Adidas,
 Under Armour 跟 Puma 代工的寶成工業蔡家、新光金控的
吳家、電源供應器產業台達電子的鄭家、汽機車零件產業的
至興精機吳家、資訊安全產業趨勢科技主要個人股東的葉家
、食品產業統一集團的高家、飲料食品產業金車公司的李家
、食品產業佳格食品的曹家、晶片設計產業聯發科技的蔡家
、到中國經營連鎖火鍋店的賀家、美容保養產業克麗緹娜的
陳家、石化產業的長春企業鄭家與廖家、印刷電路板產業楠
梓電子的吳家、螺絲與螺栓產業的晉億實業蔡家、汽車產業
裕隆集團的嚴家、金屬回收產業的怡球金屬黃家。[5]

依據台灣董事學會發表的「2017年華人家族企業報告」,台
灣上市櫃公司家數有70%是家族企業高於中國大陸的33%與香
港的40%,上市櫃公司中家族企業市場價值佔總市值的60%,
平均每個家族企業市值有5.1億美元。[6][7]

台灣家族企業中,有跨足多領域的集團企業,也有專精於利

2019年7月11日 星期四

自我概念清晰度 Self Concept Clarity

Facebook AI 工程師 Yann Lecun 引述一篇 Harvard Business
 Clearer Sense of Self,提倡到國外工作可以幫助人們提
高自我概念清晰度,符合他個人的實際體驗。

自我概念是個體藉由與社會互動,形成我們對自己觀點、
理念、情感與態度的整體認識,是個人發展自我的重要屬性。

自我概念清晰度指個人對自我認識的程度,不管是重視個人
主義的西方文化,或重視群體主義的東方文化社會,在心理
學來說都是個體獨立的程度,也是個人了解社會對自身認識
與期望的程度;影響的是個體的自尊、幸福感等心理健康以
及適應社會的程度。

個人離開原本熟悉的國度來到異鄉,想當然爾的跟異鄉的社
會連結較少,勢必會有較高的獨立自主空間,因此可以建立
更高的自主性。

當我們因為求學、工作而到原生城市以外的國內其他城鎮生
活時,是否也提高了自我概念清晰度呢?

如果我們試著以旅客、異鄉人自居來面對我們已經再熟悉不
過的社會,是否也可以幫助我們每個人獲得更多獨立自主
空間?

在離開日常生活熟悉的事物與友人後,我們似乎能更接近
自我,提高自我概念清晰度。當坐禪冥想時、或是獨自在
異地、在國外旅行時,也有類似的感觸,但是跟作者說的長
時間求學與工作比起來,自我概念清晰度應該是更高層次的
領悟與感觸。

該文也討論到這只是個關聯,並未對到海外求學與工作跟自
我概念清晰度的因果關係做出定論,是到海外求學才提升自
我概念清晰度?還是自我概念清晰度高的人傾向到國外求學
與工作?

要取得這項好處的前提,就是個體要先能夠克服初到異鄉的
文化衝擊所帶來的焦慮感,進而習慣新文化後才能提高自我
概念清晰度。

另外一些關於自我概念清晰度的相關事項如下:

如果工作不穩定,感情關係不穩定通常都會降低個人的自我
概念清晰度。

對於自我概念清晰度低的人,會比清晰度高的人花更多時間
在電玩遊戲與社交網站中。

自我概念清晰度高的人,較有自信心、較少受他人意見影響
、較少使用社交網站、較有創造力、較少偏見在工作職涯發
展上更成功。

2017年10月29日 星期日

英文形容詞的分類與使用順序

CourseraEnglish for Media Literacy 課程時,看到了原來
英文形容詞的分類有八種,而且還有使用順序的文法規定,以下是
依照使用先(1)到後(8)順序的八種英文形容詞:

1. Quantity 數量
2. Opinion 偏好、個人好惡
3. Size 大小、尺寸
4. Age 年齡
5. Shape 形狀
6. Color 顏色
7. Nationality 國籍
8. Material 材料、原料

2014年9月29日 星期一

OpenData Taiwan Meetup 開放資料授權議題筆記

上星期接到 Whiski 的聚會邀請後參加了 Open Data 台灣聚會,順便筆記為 Blog 灌水。

與會的講者都有相當的法律知識背景,也進行了非常專業的討論,提到把開方資料技術平台與提供原始開放資料的政府各單位兩者分開的觀點,政府各單位是原始提供者,但各個資料的來源,不一定是我們可以直接混搭使用的,這種觀點也類似軟體專案中可能採用到不同的軟體授權規範,使用開放資料必須注意所有使用到的授權規範中是否都有符合開放資料原則。

比較建議的共識是採用創用 CC (4.0 開始規範到資料庫),可以讓使用者有較乾淨的資料授權,但實務上仍需要注意用到的開放資料採用哪些授權。

對於開放資料與隱私權的問題學習到的觀點是,不要因為隱私權問題而因噎廢食停止開放的腳步。

另外對於開放資料正確性的問題,也學習到不一定都是資料的問題,有時候是開發者在後製資料時才產生的問題,可以在使用開放資料的地方註明所使用的資料來源是哪個時間點的資料,或哪個時間點更新,以供使用者判斷,如果可以儘量能夠讓 client 端使用原始開放資料平台,避免資料過期的衍生問題,另外當使用開放資料時,必須注意如果開發的軟體使用資料做出的衍生判斷與建議是需要考慮法律責任的,這對於使用的資料是否是開放資料應該都是一視同仁。

因此隱私問題跟資料誤用或錯誤其實都不是開放資料衍生的問題,是在資料處理時本來就該注意的議題,可以個別看待這些問題,或者說這些衍生問題會跟開放資料有關,但是又各有相關的法律(個資法,民事,刑事法律)規範可以尋求解決之道。

資料授權的法律層面

開放資料主要問題: 授權,符合相關法規,因地方自治國發會的規範,不會直接影響地方,所以必須同時觀看使用到的所有開放資料來源的規範

1. 行政院主要的政府開放資料規範
    國發會
    http://data.gov.tw/demo_tech_spec

2. 內政資料開放平台:
    http://data.moi.gov.tw/MoiOD/Data/DataList.aspx

3. 各直轄市的開放資料規範如下:
    3.1 台北市    http://data.taipei.gov.tw/opendata/rule;jsessionid=BB43E4C947A384F94C3F12F1CA3F46E3

    3.2 高雄市
    http://data.kaohsiung.gov.tw/Opendata/
    http://data.kaohsiung.gov.tw/Opendata/UsageRule.aspx

    3.3 新北市
    http://data.ntpc.gov.tw/NTPC/

4. 討論開放資料授權時,需要注意的幾個專有名詞,以及需要再花時間討論的議題
    4.1 Non-exclusive 非專屬

    4.2 irrevocable 不可撤回, 不溯及既往,與隱私權之間的關係,是互相獨立的問題,不可撤回指的是在不違反其他法律的情況下不可撤回

    4.3 Permitted for a sublice 容許再授權,轉授權

    4.4 CC by 4.0, CC 0/ CC By 盡其幅度的鼓勵分享, Share Alike 自我增生

    4.5 規費是否不適用於 open data 的開放與無償原則


筆記如果有誤再麻煩提出以供改正,感謝。

2014年2月8日 星期六

摘譯: 免疫力與癌症

摘譯自: Your Body Can Kill Cancer. It Just Needs Better Instructions

文中列出的改造免疫系統抗癌流程:

  1. 先取得有白血病病人 B 細胞,其中包括免疫系統的攻擊細胞 T 細胞
  2. 基因改造T細胞並訓練觀察 B 細胞表面的 CD19 分子,及其衍生的癌細胞
  3. 將改造後的 T 細胞注射到病人身上,這將殺死所有 B 細胞
  4. 因為 B 細胞代表人的抗體,因此需要另外注入抗體支援病人被削弱的 B 細胞免疫系統






2013年12月7日 星期六

活在當下

剛才邊上廁所邊上網查資料時...
小兒子跑進廁所問我:爸爸你在幹嘛?
我回答:在上網查資料啊
小兒子:爸爸你在上廁所啊

活在當下。

使用 python 分析網頁資訊

摘譯自
'My Data Is Big Because It Doesn't Load Into R': Why Python Is the Language of Web Science

當資料量大到不能直接交由 STATA/Excel(Google Drive)/R 分析網頁資料時,就該考慮使用 python 幫你預先處理資料格式,比如將資料庫資料轉為較通用的 csv 檔案格式,再將 csv 資料載入其他工具或函式庫做分析處理。

網頁科學會以統計學為各學科間的基礎,來進行分析、視覺化處理,客製化資料格式,也是用來搜集其他網頁,產生新集成資料的平台,在這領域因為還在發展階段,並不存在最佳解決方法,大家都還在討論、試圖理論化、實作並進行測試。

Python 的優點是好學好用,語法清楚,套件包山包海,有廣大的開源社群當你的智囊群。

底下的討論中 Todor Kazakov 提到 http://statace.com/ 提供 R 語言的雲端服務,讓 R 使用者可以將大量資料處理交給 statace 處理。

(譯註:看完發現 R 的資源也蠻多的啊 XD )

2013年9月30日 星期一

公開資訊觀測站 IFRSs 新制 每月營業收入表

臺灣證券交易所網站改版後,目前 IFRSs 新制的每月營收報
表位置為:

交易資訊(左上方橫條數來第二項) -> 統計報表 -> 
國內上市公司營業額及背書保證金額彙總表

-- 2013年編輯時原本資料位置 開始 --

公開資訊觀測站 每月財務分析資料在改版後(連舊版也有改)
,都有分採用 IFRSs 跟沒採用IFRSs 兩種:

新版點選方式:
彙總報表 -> 資訊揭露 -> 每月營收 ->採IFRSs前-財務分析資料查詢彙總表
彙總報表 -> 資訊揭露 -> 每月營收 ->採IFRSs後-財務分析資料查詢彙總表

舊版點選方式:
彙總報表 -> 採IFRSs前-財務分析資料查詢彙總表
彙總報表 -> 採IFRSs後-財務分析資料查詢彙總表

-- 2013年編輯時原本資料位置 結束 --

採用 IFRSs 需求原因:
為加強國內企業及國際企業間財務報告之比較性,提升我國
資本市場之國際競爭力並吸引外資投資國內資本市場,同時
降低國內企業赴海外籌資之成本

因為 102 年才導入 IFRSs, 所以採用 IFRSs 後的資料就只有
 102 年 1 月起才有

預計效益
一、 有效提高國內會計準則之制定效率及國際形象,並提升
我國資本市場之國際評比。
二、 加強國內企業及國際企業間財務報表之比較性,有助於
吸引外資投資國內資本市場。
三、 國內企業如欲赴海外發行有價證券,無須依國際會計準
則重編財務報告,可降低相關籌資成本。
四、 全球採用單一會計準則,對於有海外轉投資公司之國內
企業,可降低會計帳務之轉換成本,並提高經營管理效率。

參考:

2013年3月23日 星期六

Apple iOS UDID 替代方案

摘譯:
UDID 是一組辨識裝置(比如 iphone, ipad devices)的字母與數字組合字串,原本 iOS 的 UDID 優點是可以跨 服務供應商,分析廠商 辨識單一裝置。

可能的替代方案:
1. Wifi module 的 MAC address,但這做法一直有泄漏隱私的疑慮實作方式可以參考 UIdevice_with_UniqueIdnetifier-for-iOS5

2. Apple 官方建議改用 CFUUID (Core Foundation University Unique Identifier),由 iOS 的應用程式取得,但跟 Apple UDID 差異是可能會被刪除,非永久有效。使用者清除裝置(wipe/restore)資料時也會消失。另一個可能可以用的 id 是 advertisement identifier

3. OpenUDID 由 AppsFire 在 2011 年八月開發,但跟 Apple UDID 有同樣的隱私疑慮,可能要考慮被停用的風險。

4. 較新的是 SecureUDID 跟 OpenUDID 一樣是開源做法,但是多提供防止多個應用程式開發者共同存取同一個 SecureUDID 的功能,也讓使用者有機會取消 SecureUDID
5. mobile Cookies,已經有許多 Gmail, eBay, Facebook 之類的應用程式可以在 Android/iPhone/Blackberry 等手機平台上辨識你的登入資訊,當然也同樣可以儲存類似 UDID 等資訊。StrikeAd 已經採用並可以彙整資訊到 Google Analytics 或 Omniture(?) 等資訊中。

參考:

The End of UDIDs - what it means for mobile advertising

2013年3月15日 星期五

https 加密 http uri 與 response data

常有人好奇我們的瀏覽器 https 究竟保護了哪些資料呢? 而 http 的 GET/POST/DELETE 等 method 在 header 有沒有加密?

從 OSI model 來想,tls(ssl) 在 session layer, http 在之上的 application layer,因此知道 tls(ssl) 完整保護了 header 跟 response body data

從 python socket programming 來看,會是先建 socket 到 server host/ip 以及 port 443,再加上 ssl wrapper 後,才對 server 送出 GET /PATH/TO/URI 然後收到 response 資料,因此也可以理解 https 連線保護了 http uri 跟傳輸的網頁內容,竊聽者除了知道我們跟哪一台主機、跟 port 連線外(tcp/ip header),除非真正解密,或找到其他安全漏洞,否則無法知道連線內容。

參考程式碼:
    https://github.com/sjh/python/blob/master/demo_https_ssl_encryption_parts.py











2013年2月18日 星期一

ruby 2.0 bitmap marking 節省的多個 proccess 共用記憶體空間


閱讀 ruby 2.0 garbage collection

http://patshaughnessy.net/2012/3/23/why-you-should-be-excited-about-garbage-collection-in-ruby-2-0

原本的 ruby GC 演算法 mark and sweep:
Ruby 的 String 等物件在 ruby 記憶體配置中,都是由一組 flag/RValue 的雙欄位物件組成,RValue 儲存在 heap 中,當新申請的物件找不到足夠記憶體時,就會啓動 garbage collection(GC), GC 演算法就是去找到哪些 RValue 已經沒人在用可以重新釋放,讓新的物件使用,flag 中有個欄位稱為 FL_MARK,設定 FL_MARK 為 1 表示正在使用中,當整個 heap 檢查完,沒有 mark 的 RValue 就會加入一個 free list,被 sweep (清除),每當使用新的物件或數值就會使用 free list 中的 RValue,當 free list 又被用空後,就會再次執行 mark and sweep 的 GC 產生新的 free list,如此進入新的循環。

如果執行完 mark and sweep 後發現沒有多餘 RValue 可供生成 free list (空的 free list) 該怎麼辦? ruby interpreter 就會產生新的(一次十個) heap 並產生相對應的新 free list 給新物件使用。

Ruby 2.0 嘗鮮版 bitmap marking(號稱比 rubyEE 更快的 GC):使用 copy on write optimization 的 GC 可以讓不同的 heap arrays 共用有相同值的 RValue 物件,也就是多個 process(比如 ruby on rails 有許多共同的網頁物件),但可惜的是再 mark and sweep 演算法中,會把這些共用物件設定為 marked,因此無法繼續享受共用 RValue 來節省記憶體空間。但Phusion Passenger 的 Hongli Lai 已經在 ruby EE中改掉這個 marked as modified object 的問題。而現在 Narihiro Nakamura 的 bitmap marking 修改是放棄 flag/RValue 的資料結構,改在每個 heap header 採用 bitmap 紀錄記憶體是否已使用,因此 mark 的動作,不會再去改到 heap 本身的資料結構,享受到 copy on write optimization 來節省共用物件的記憶體空間了。

另外一個修改是這些 heap header 必須對齊到 2 的次方位置 (posix_memalign, not malloc),優點是計算 heap header 位址的方式較方便

在 heroku 的 ruby on rails 可以在 Gemfile 加上:
ruby "2.0.0"
指定 ruby 版本

因應 ruby(python) interpreter GIL 使用多核心的記憶體問題

閱讀 Malthe Boltche 的 Hog that CPU

http://www.maltheborch.com/2013/02/hog-that-cpu
原本是講 python 但是也有提到 ruby 的部分

使用多核心與記憶體的關係:
Python 跟 Ruby 兩個 script language 因為在 interpreter 採用 GIL,
因此單一 interpreter 會有無法用到多核心效能的問題,

如果要使用多核心的效能,必須為每一個核心各 fork 新增一個
 interpreter 實體,但同時也因此變成吃記憶體的怪獸,比如使用
ruby on rails framework 一個實體就可能吃掉數百 MB 的記憶體
空間,而使用多核心(或新增 ruby process 處理新的 http requrest)時
多產生的 interpreter 實體可能很容易就用完系統記憶體。

Ruby EE, Rubinius 跟 jRuby 一樣採用 copy on write 的 shared
memory 共享記憶體方式,而在 Ruby 2.0 加強的 bitmap marking GC
 algorithm 可以減少 ruby process 在 web framework 的記憶體使用量

而 ruby GC 演算法改進可以看
python 的使用者可能會對 hog that cpu 後半段討論的 CPython 在單
核心使用 mulithreading 但遇到 no thread safe 的討論有興趣。

2013年2月1日 星期五

靜態檢查 python 程式碼的工具

參考 StackOverflow 上關於 Abhijit 跟 Nick Bastin 討論關於靜態檢查
 python 程式碼的工具:

Standard Compliance verification - PEP8

  1. Pylint 
  2. PyFlakes
Metrics

  1. PyMetrics 
  2. Traceback 
  3. objgraph (Python reference chain metrics and debugging)
Code Coverage

  1. Code Coverage

擁抱與氣球

跟家人逛街發生了兩件事,擁抱與氣球。

一開始是帶著 sch 走在路上,有個應該是信仰天主教的信
徒(?)說他感受到天父的熱愛,想要給我一個擁抱,問我
是否願意接受,一開始猶豫了一下,但看起來應該蠻單純的
,就讓他抱了一下。

後來在捷運站時,ssh 在跟著我們等捷運列車時,突然收到
一位外國朋友送他一個 hello kitty 氣球,讓他開心了一
整晚。

感謝信徒與好心的外國朋友,讓我們有一個特別的夜晚。
;-)


2012年12月8日 星期六

sourceforge 並未凋零只是上了年紀

摘譯 sourceforge 社群經理 Rich Bowen 的 The Myth of the death of sourceforge 文章

sourceforge 上有許多已經許久沒有動靜的專案,這反映開源軟體開發的本質與現實,並非每個專案都會成功。

sourceforge 上有的凍齡專案數較其他開源網站服務多,這表示 sourceforge 相對於其他同類服務的網站較久,只要給其他同類型網站夠久的時間,也是會出現相對夠多的凍齡,沒有再繼續開發的專案。

為何不刪除這些沒有繼續開發的專案?因為這些沒有繼續開發的專案,並非已經沒有價值,對於其他專案來說,可能會發現先前的半成品,只要再修修補補就可以造成新的好輪子。


2012年11月15日 星期四

Linux runtime PM and system suspend resume

在 Linux kernel 3.1 比原本的 device driver suspend/resume 多了另一組 runtime PM,隸屬於 struct device 的新屬性
include/linux/device.h 中定義的 struct device 可以看到:

struct device {
...
    struct device_driver *driver;
    struct dev_pm_info power;

Documentation/power/devices.txt
runtime PM 分成:prepare, suspend, suspend_noirq 三個階段

1. prepare 鎖定 parent, child 關係,申請需要的記憶體空間
2. suspend 停止 I/O 讓 device 進 low power mode 或斷電,可能有 wake up event
3. 關閉 irq 後進入 suspend_noirq 顧名思義是不會再收到 irq request 備份所有必要的暫存器,讓 device 進 low power mode 或斷電

相對應的是 resume_noirq, resume, complete
原本的 device driver suspend/resume

struct device_driver {
...
int (*suspend) (struct device *dev, pm_message_t state);
int (*resume) (struct device *dev);

Android 的 early_suspend, late_resume 是最外層,但是 runtime PM 跟 device driver suspend/resume 的順序關係為何?文件中叫我們自己 trace code...

Documentation/power/runtime_pm.txt

直接看 runtime PM 的資料是開機 default suspend 不管硬體狀態,在 system running 可依定義的 runtime PM 群組 suspend/resume suspend 是由 child -> parent,由下而上的順序相依關係,因此要使用 runtime PM 的 device 還需要使用的 device class 或subsystem, bus type 也使用 runtime PM 才行

/sys/devices/.../power/control 寫入 "on" 可以呼叫

pm_runtime_forbid() 保持在 active mode 禁止 runtime PM 動作
等確定可用後再寫入 "auto"

如果 runtime PM 在 running 沒執行過會由 kernel/power/suspend.c 進行 suspend,resume 最好先全部 active 再說?

PM core 會在呼叫 suspend/resume 時個別設定 counter 加一或減一
drivers/usb/gadget/omap_udc.c

會用到 udc->driver->suspend()

drivers/usb/core/driver.c

會用到 udriver->suspend()

所以還是要確定 device driver suspend 順序跟 runtime PM 的順序關係為何?

2012年11月11日 星期日

開車賣衣服的義大利人

走在庭仔腳時,路邊停了一輛 Tida 車上只有駕駛一人,一直對我說著
什麼?可是又聽不清楚,他看似一直努力要跟我說什麼?我靠近以後,
他先問我會不會英文?他是義大利人,來台北101出差最後一天,車上
後座載著超大旅行箱,好像是說他帶太多衣服,如果過海關會收關稅,
有四套其中三套免費,有一套要收錢,但是收很少的錢,問我要不要買?

我笑笑回答說沒興趣,他就立刻開車走了,連車尾燈牌也沒看到。

不知道是不是詐騙。

2012年11月7日 星期三

TI OMAP 3 Linux USB otg driver trace

Android gadget driver in Linux kernel

drivers/usb/gadget/android.c
定義 vendor ID 0x18D1 product ID 0x0001
可以從 platform data override
定義 Manufacturer, Product string, Serial string (adb 看到的)
rndis 跟 mass storage, MTP 互斥


drivers/usb/gadget/android.c 裡面 include
usbstring.c, config.c,
epqutoconf.c 選擇符合 descriptor 設定的 endpoint以及相對應的
 gadget device



USB controller 端是 otg registers
arch/arm/mach-omap2/usb-musb.c

usb_musb_pm_init() 會先 reset otg controller 應該是漏掉這裡沒追到


musb 資料另外跟廠商要 datasheet,透過 IRQ92 對 core INTC 發中斷
suspend/resume 後一段時間就沒收到新的中斷?主要問題從這裡開始追

drivers/usb/musb/omap2430.c



drivers/usb/musb/musb_core.c musbhdrc 的控制,需要再讀資料

drivers/usb/musb/musb_debugfs.c debugfs 介面


drivers/usb/musb/musb_procfs.c procfs 介面



drivers/usb/musb/musb_gadget.c




drivers/usb/musb/musb_hdrc.c


drivers/usb/musb/musb_host.c


USB Phy 是掛在 PMIC 上,透過 I2C 控制,目前只支援 high speed
USB ULPI 模式,控制 regulator power on/off,Phy suspend/resume
VBUS/ID 腳位有變化時才會打開 vusb3v1,vusb3v1 ldo 的電從
 vbat 來,而非 vio
drivers/usb/otg/twl4030-usb.c





2012年11月5日 星期一

正向循環 惡性循環

摘譯 seth godin 的正向循環 惡性循環(cycle worse cycle
 better)一文

惡性循環很常見。酗酒問題導致失業,失業又加重酗酒問題
。糟糕的客服導致客戶換廠商,當然也導致客服的投資變少
,因此問題持續惡化。

老闆因為領導能力的壓力而易怒。易怒問題讓老闆跟同事關
係惡化,導致老闆壓力更大更易暴怒。員工因為老闆的負面
回應而失去忠誠,導致員工產出降低,當然會導致更多負面
回應。

大多數的問題,都是從小問題開始,然後漸漸惡化。答案並
不是針對長期的問題找尋快速、確定的解法。而是取代惡性
循環,改為正向循環。

常見的明顯簡單計劃是繼續活在造成問題的惡性循環(當有
壓力就動彈不得,所以需要找出壓力的來源)。簡單的計劃
倚賴外在的環境不要再輸入導致負面問題的原因,這通常無
法解決問題。

較困難但也是較有效的選擇,是瞭解惡性循環。當你發現
以後,了解導致惡性循環的關鍵原因,解決問題根源,若無
法解決問題,則要學會使用這個惡性循環的根源,並啓動另
一個正向循環。

這是我的惡性循環。我要怎麼把惡性循環改成正向循環?誰
可以幫我?我需要學習什麼才能做到改變?我要如何改變習
慣跟我的直覺本能?

這不只對組織有效,也對個人有效。魚餐廳銷售量降低,借
錢買較新鮮的魚也無法提高銷售量,而是應該提供切邊服務
。廣告代理商在損失客戶後,不是裁員,而是僱用更多有創
意的員工。

銷售量降低我們需要投資更多客戶服務而不是減少客服資源
。銷售量降低我們要花更多時間在熱情的研究,而不是更少。

這困難度是違反人性的。但是找出惡性循環,並投資在建立
正向循環是最佳策略。另一個選擇是合理化惡性循環,並解
釋惡性循環為自然法則,或是故有習慣,但這只會造成悲劇。