June 9, 2012

Debian Linux 傳送檔案到 ICS 的 Galaxy S2

No comments:
因為老婆熱愛桃紅色的手機,於是換了一台 Samsung 的 Galaxy S2 給她。

身為一個阿宅,當然要盡快幫老婆的手機升級到 Android 4.0 的 Ice Cream Sandwich. 升級到 4.0 之後,比較重大的改變就是 USB storage 的功能變成了 MTP,目前看到的 windows 使用好像沒啥問題 (有問題應該也不敢賣吧),但是很不巧的,在 linux 底下好像麻煩許多。

 稍微 google 一下,解法不外乎是用 gmtp 或是 mtp-tools 去 mount mtp,但我在 更新到 4.0 的 S2 上面怎麼試怎麼失敗,完全無法 connect。直到我看見這篇 MTP connection between Galaxy S2 裡面有段話
In short: your device doesn't use MTP as libmtp understands it. It's a custom stack by Samsung and you're sort of just screwed.
(簡單來說,libmtp 並不了解你的裝置上面的 MTP,那是 Samsung 自己搞的一套,你吃屎了)
好吧。Base on Linux 的 Android 搞了一個 Linux desktop 很難溝通的機制,Android team 真是太傑出了。

所幸底下有解法,解法意外的簡單,打開 Settings,進入 wifi 的設定,裡面有個 USB 工具,在 Connect Storage to PC 點一下即可。

底下是傻呼呼 Step by Step 教學

1. 首先拔掉手機跟電腦之間的 USB 線

 2. 在桌面的 Menu 裡頭點 Settings


3. 在 Wireless and Network 那一區裡頭點選 More



4. click USB Utilities



5. Connect Storage to PC



6. 出現這個對話框的時候,把 USB 線接上



7. Here you go! 人生依然美好



同場加映:在 4.0 之後要抓圖,是「按著 Power 鍵 + Home 鍵持續一秒」,抓的圖會放在 Pictures/Screenshots 目錄底下

March 13, 2012

Android Clickable Span in TextView

No comments:
Spannable 可以讓一個 TextView 顯示不同外觀的字串,也可以加入 Click 事件的 callback。

通常想讓 TextView 觸發 Click 事件,最直接的正規作法就是 View.setOnCilckListener。倘若運氣不好,遇上一些比較奇怪的需求,例如一串文字的某一部份用一種顏色,另外一部份使用其他顏色,而這兩者同時都要能夠 Click。




這樣的需求能以 ViewGroup + TextView 完成,但更進一步的問:是否用一個 TextView 就解決?解答就會導向 Spanned/Spannable

不知道 Span 該如何翻譯,單從功能上來看,Span 是賦予一段文字(CharSequence)額外的能力。舉例來說我有一個字串 TheFinalAnswerIs42,我希望 Final 的部份以紅色顯示,42 的部份可以被 click,就是把 ForegroundColorSpan 設給 Final,ClickableSpan 設給 42,如此一來,TextView 仍然是顯示這一段文字,內容卻變得更加豐富。

先看看物件之間的關係,Spanned 介面繼承了 CharSequence,Spannable 介面繼承了 CharSequence,TextView.setText 的對象是 CharSequence,因此所有的 Spanned/Spannable 都可以直接放入 TextView 而不會出錯。因此問題簡化成如何從一個 String 變出我們需要的 Span。

查閱 Android 本草綱目,利用 SpannableStringBuilder 產生 SpannableString

Spannable span = (new SpannableStringBuilder()).newSpannable("TheFinalAnswerIs42");
span.setSpan(new ForegroundColorSpan(0xFFFF0000), 3, 5,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

如此一來,這個字串的其中一部分就被賦予了變色的能力,如果要使其成為 clickable
span.setSpan(new MyClickableSpan(), 16, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mTextView.setText(span);
mTextView.setMovementMethod(LinkMovementMethod.getInstance());
MyClickableSpan 是繼承 ClickableSpan 的實作,只要覆寫 onClick 即可。


最技巧的部份就是 setSpan,使用的對象是最原始的 Object 而非比較嚴謹的 Spanned 之類介面,本草綱目也說你可以任意綁上自己定義的物件,問題就在此:TextView 怎麼知道如何用我定義的物件?反過來想,TextView 是如何使用 ClickableSpan?

簡單挖一下 TextView 的 source code 即可明白:TextView 的 onTouchEvent 有針對 ClickableSpan 做處理。換句話說自己定義的 Span 無法被 TextView 認得,必須繼承 TextView,針對自己的 Span 做處理,至於 Api 裡頭提供的 Spannable,TextView 應該都已經認得,不須擔心。

於是,一個原本單調的 TextView,賦予 Span 進去之後就會開始變得多采多姿。

February 6, 2012

Cat Library

No comments:
日前 Tony 在 Facebook 分享了一個愛貓人士專用書架 (original website),果然許多養貓的人一看都直呼:「想要買這個!」

厲害的設計師,透過三種簡單的元件就可組成一個開放書架,只要看懂那三個組件之後就可以請木工師父做一個。恰好最近因為要裝潢自己的新房,透過 Bizkit 的介紹用了 SweetHome3D 這個非常棒的室內設計軟體。

SweetHome3D 有 Linux 版可用,Debian 系應該是一行指令就裝完了。使用上非常簡單,基本上就是 2D 的編輯畫面把各個 3D model 排在一起,底下就會出現 3D 的視圖。


我用做了一個簡單的 Cat Library 3D model,可以在 SweetHome3D 裡面使用。其實用 Google 的 Sketchup 來作應該很快,但是它沒有 Linux 版,只好用 blender。

從來沒用過強大的 Blender,光是學一些最基本的操作就花了我好多好多時間。一開始產生的元件,貼圖之後不知為何在 SweetHome3D 裡面的顯示結果很奇怪,最後我只好忍痛放棄貼圖,改用類似木頭的顏色當成材質。

如果你也需要,可以從這邊下載

4 x4 格 Cat Library 的 Blender 檔
4 x4 格 Cat Library 的 Obj 檔  (SweetHome3D 可以直接 import 進去)
5 x5 格 Cat Library 的 Blender 檔
5 x5 格 Cat Library 的 Obj 檔  (SweetHome3D 可以直接 import 進去)

January 30, 2012

2011 歐洲記遊

No comments:

2011 年中的時候,參加了 Canonical 在布達佩斯所舉辦的 UDS-O,這篇記事不但拖過了新年,連農曆年都沒有趕上,懶惰可見一斑。

不到一週的行程,雖然過了很久,小事忘記不少,歐洲美麗風景給我的感動其實一直持續到現在。主要分成 Budapest 與 Armsterdam 兩部份,大部分的照片已經放上 Picasa,有興趣的可以去看看。

在出發的前幾天發生了一些不愉快的事情,耽誤了許多準備的時間,很可惜忘記帶單眼過去以致於所有的照片都是用手機拍照,不過再來一次,我是否願意帶著單眼到處跑也很難講 XD


啟程

一大早從新店搭計程車至中正機場,以節省預算的方法下,我們的路線是 桃園 -> 香港 -> 阿姆斯特丹 -> 布達佩斯。雖然花上不少時間在轉機,一路上多停留感受一下出國的真實感也不錯。

From Budapest & Armsterdam


香港機場等了 11 個小時,坐在大廳裡用 Kindle 幾乎看完了一整套的漫畫。香港的機場比起桃園機場真是先進太多,整體的設計感十分現代。機場內有遇見許多大陸旅客,也見識到大陸旅客不排隊的特色。當大家都在排隊買東西的時候,前方突然有幾個講著標準北京腔的人插隊,隨即呼朋引伴:「陳老師、徐老師,快過來這兒。這裡的東西比較便宜呀!」。瞬間我們的前方就擠滿了十幾個穿著相同背心的旅客,當然他們彼此之間也是沒有排隊習慣。有幾個已經排隊好一段時間的外國人向服務生抗議,只見服務生聳聳肩一臉無奈。站在後方聽他們的對話,這些習慣插隊的大陸客似乎是某校的教師團出遊。

由於缺少行前準備,許多東西我們是出發後才慢慢補足。甚至連當地的變壓器是何種形式我們都不知道 XD。一直到當晚十一點上飛機時,前前後後的同班機旅客都是西方臉孔的時候,才真正有著要去歐美國家的感覺。十幾個小時的飛行,除了睡覺就是不斷地餵食飛機餐。長腿的困擾在這時候就出現了,沒事我就要站起來走動走動,好險我一向容易入眠,昏睡幾次就到了阿姆斯特丹。

清晨抵達阿姆斯特丹的史基普機場,周遭已經很難看見東方臉孔。驚訝的是還能看見許多簡體中文字的 DM,果然中文快要變成強勢語言了。史基普機場非常大,而且有許多購物的商店。可惜我們回程的時間沒抓好,Kanru 原本想要趁機買一台相對便宜的 iPad 回家,不但沒找到還差點趕不上飛機 XD


抵達布達佩斯


約兩三個小時的航行,從晴朗的阿姆斯特丹飛抵匈牙利的布達佩斯。落地的時候看見的就是雨天,入境的機場有點陳舊,讓人感覺心情不好。怎知這是我們來這幾天唯一遇上的壞天氣,而且整個機場剛好就這個地方比較不先進。

From Budapest & Armsterdam


我們出發前除了知道會住在哪間旅館之外,剩下的貨幣、交通方式等等一無所知,當場發揮阿宅本色,開始用各種方式收集資訊理出頭緒之後,也在機場就看見許多一同要參加 UDS-O 的阿宅們,一同坐車到市中心的旅館。我們住的是 King's Hotel,離會場距離不遠,在大馬路旁的小巷子內。

從機場往旅館的路上,總能看見牆壁上有許多噴漆塗鴉,這一點至少我是很不習慣的,雖然路上看見的垃圾不多,總覺得不太舒服。

旅館看得出來有點年紀,整體很乾淨很舒服。大門對面的公寓有濃濃的東歐味(老房子 + 鐵網 XD)。雖然緊鄰大馬路,但是整個街道非常、非常安靜,跟前一天的新店街道的經驗比起來,這才是人住的地方。我的運氣不錯,房間有個小陽台。不時有小鳥飛過,站在陽台俯瞰整個後院,還看得見鄰居的工作環境、琴房。


緊急採購逛大街

身上幾乎什麼裝備都沒有,不久後我們就出發到街上採購。當天是星期日,見識了歐洲人週末不工作的風氣,除了大賣場或超級市場以外之外完全找不到可以買東西的地方。當地可以使用歐元或是福林兩種貨幣,換算後發現當地的物價比台灣還要低,也許是因為匈牙利在 1989 年共產主義才開始瓦解,在歐洲不必當窮人的感覺真好。

From Budapest & Armsterdam


在匈牙利的首都布達佩斯逛大街的首要感想是,人行道竟然幾乎比大馬路還要寬,而且這條馬路在查了地圖之後才知道是主要道路之一。最不習慣的是無論你在巷道過馬路時,駕駛發現你都會停下來讓你先過,不論他剛剛開得多快,這大概是我有生以來首次在馬路上覺得自己像個人。

January 16, 2012

2012 選後雜談

No comments:
先引述一個 twitter 上面看見的來自對岸同胞的有趣感想
刚一台湾朋友结束聊天时对我说,“明天早上我們要去投票了﹐晚上就知道總統是誰了”,我顿时不知如何答复。虽然我们之间的交流没有任何障碍,但在他面前真觉得无地自容。我只好说,“你们太落后了,我们如果明天早上投票的话,今天晚上就知道谁会当选了。。。”

由於我個人關心的部份是政黨票,因此報一下政黨票的相關數據 (來自中選會網站)

這一次有過門檻的政黨一共四個,第一階段 得票率

  • 國民黨 約 44.5%
  • 民進黨 約 34.6%
  • 台聯    約 8.9%
  • 親民黨 約 5.4%
這四個黨在未來四年可以分到不分區立委以及政黨補助。

至於其他幾個小黨,與 2008 年得票概況 相比
  • 綠黨從 58473 票 (0.6%) 到 229566 (1.74%) 進步了約十七萬一千票
  • 台灣國民會議(我視為紅黨) 從 77870(0.8%) 到 118632 (0.9%) 進步了約四萬票
  • 新黨從 386660 (3.95%) 到 195960(1.48%) 減少了約十九萬票
很明顯新黨未來勢必有相當大的挑戰。至於去年年終才改名的台灣國民會議,我相信絕大多數的人對這個名字非常的陌生,還能夠拿到 11 萬多張的選票,我覺得是很不錯的進步。最讓我訝異的是綠黨,拿了將近 23 萬張的選票,增加了好幾倍,成為低於嚴酷門檻的最高票黨,也成為台灣第五大黨。我相信「政黨票的故事」應該有不小的幫助 XD

5% 的門檻真的很可怕,以這次低於 5% 的最高票黨綠黨來想像

今天走進菜市場拿大聲公喊一下:「知道 國民黨/民進黨/親民黨 的鄉親請舉手!」,我相信 100 人之中絕對超過 99 個人舉手。

但我沒有辦法想像,問題變成「認識綠黨的鄉親請舉手」,我很難相信會有 5 個人舉手,更遑論要把票投給綠黨。從這樣來看,進步到 1.74% 真的不簡單。

話說今年的首投族估計數字是 76 萬,約佔 4%,我相信這裡面有非常高的比例的人,都會使用網路來獲取信息。下一次也會增加幾十萬的首投族,在這四年內也會有更多人從原來的不習慣,變成接受透過網路習得新知。

因此,我也樂觀地相信,在未來的選舉,會有更多人在網路上傳播直覺而且透明的網路訊息,幫助我們做出對自己最好的選擇。


---- 分隔線 ---

以下就談談鞋櫃這幾天的數據好了,也許某些朋友會有興趣。