去年在 OpenStreetMap Taiwan Webinar 的題目「自己的圖磚自己刻」之後,注意到其實從頭到尾創建一個圖磚伺服器,要安裝、設定的軟體相當多,要設定資料庫、匯入海岸線 Shp、安裝 mapnik 相關的軟體、寫好 style sheet 等。為了簡化所有的程序,方便入門 2015 年已經先以 Docker 建立初版圖磚伺服器,這個伺服器將資料庫建立、匯入、軟體安裝等等合而為一,入門開發者只要三十分鐘內就可以配置好一個伺服器開始嘗試開發。就算不是 Linux 的開發者,也可以透過 Docker Machine 或其他虛擬機方式設定 docker 開發環境。

不過由於當初把所有的軟體擺在同一個映象檔 (docker image) 中,導致不容易抽出再做延伸的利用開發。 從「自己的圖磚自己刻」講者吳政璋 (小璋丸)的筆記中,可以初步理解要完成一個圖磚 (slippy map) 伺服器所需要的軟體堆疊 (Software stack) 大概可分為編輯後的原始資料、後台資料庫、繪圖輸出 (rendering) 以及前端視覺。

 

最近嘗試進一步的改善 Docker images 的實踐方式,將每個軟體元件拆分成獨立的 image,以便互相疊加應用。由於 Open Source geospatial software 的發展迅速,迭代頻繁,在過渡時期,偶爾會發現新版的函式庫的 Python binding 已經故障,反而是 node.js 的延伸開發迅速,反之新的技術實踐無法搭配舊伺服器使用。透過 Docker 技術可以很快的「解決」這些軟體版本的相依問題,直接搭配正確的 Linux Distro 版本使用,方便一個軟體服務同時使用新舊科技。希望可以陸續把 Linux 上 常用 Open Source geospatial software 也整理出來,方便進階開發者使用。

目前已經完成 PostGIS, osm2pgsql, mapnik, mod_tile, tilestache, gdal 以及幾個常見的 featured tiles. Docker images 都已經發布到 Docker Hub 上的 OpenStreetMap Taiwan 群組中,原始碼發布於 Github Group中,歡迎試用。

以下分享一些入門的實踐典範,可以供一般 GIS 從業人員或軟體開發者簡便利用開放街圖資料。

首先,對於一般 GIS 資料處理人員,利用 OSM 最初步的工作就是建立一個 Database Replication. 設定 OSM 資料庫並與最新的資料保持同步,並接取到桌面的軟體上進行處理。首先,你需要 PostgreSQl/PostGIS 與 osm2pgsql,其中 osm2pgsql 已經設計成每個十分鐘會抓取一次最新的資料,並匯入資料庫中。

操作的指令可以參考 osmtw/osm2pgsql 的說明,基本上只需要兩個指令

  1. 以環境參數設定資料庫名稱、帳號、密碼後,啟動 osmtw/postgis instance
  2. 以 link 參數連結 postgis/osm2pgsql,並以環境帶入想要匯入匯入的區域與更新頻率。

osmtw/osm2pgsql 會負責下載最新的 OSM PBF 檔案,並匯入 osmtw/postgis 資料庫。大概只要十分鐘內,就可以建立好包含最新台灣圖的資料庫,並可以透過 qgis 連上進行查詢,並做後續處理。

qgis connect to docker

QGIS

有了資料庫之後,接下來是做出 Slippy Map Server,線上即時產生圖磚。從這裡開始,就可以像是疊積木一樣,依照需求配合不同的軟體來搭建。
常見的組合有有 Mapnik/Cascadenik/Carto/Millstone 搭配圖磚處理服器如 mod_tile/Tilestache 輸出成 Raster Image,或是直接以 Mapnik API 輸出成圖。網站伺服器則可以用 nginx/apache2.

透過 Docker Compose 可以很容易的組成所需的軟體結構。依照 OpenStreetMap 標準的圖磚為例子,包含傳統使用 Mapnik xml style, Cascadenik XML 的 OpenStreetMap 標準圖磚,以及使用 Carto CSS style 相當簡潔漂亮的 Mapbox OSM-Bright。前端界面則配合 LeafletJS 做出使用者界面,方便切換幾個不同的底圖。網站服務器則用 mod_tile+apache2. 相關的程式碼與操作請見 github

本地街圖

osm-bright

另外一個例子則是小璋丸手刻自創的鬼島地圖,他使用 Cascadenik 語法產生樣式,並以 tilestache 產圖以及 uwsgi 作為網站伺服器。

鬼島圖磚-1

鬼島圖磚-2

 

這幾個樣式大多是僅透過 SQL 取出 PostGIS 中的圖徵,然後配上 stylesheet 產出。有時候會需要做一些資料的前製處理後,才能搭配輸出到圖中。例如等高線圖與地勢圖,就可以從 DEM 資料中計算得出,這個時候可以用 gdal 等工具將原始資料轉成 TIF 或是 SQL,再套疊到地圖上,這樣就可以做出地勢顏色與等高線圖等效果。

2016-06-10 14-20-37 的螢幕擷圖 2016-06-10 14-20-48 的螢幕擷圖

20160609-本地街圖

 

最後,光是做出 Slippy Map / Raster Image 其實是很空洞的平面地圖,許多地圖的使用者往往希望可以取得特定 POI 的詳細資料。這個時候就需要搭配向量圖磚來豐富地圖上的資訊量,雖然像是 Mapzen, Mapbox 商業公司已經提供現場的接口可用,但是常常比不上自己下 SQL 語法來的有彈性。

我們可以透過 OpenStreetMap 圖資與 TileStache 來輸出支援 GeoJSONTopoJSONMapBox Vector (MVT) 等格式。請參考飲水地圖 vector tile server 的實做方式,從資料庫中搜尋 amenity=’drinking_water’ 的 POI ,並以 LeaftletJS 將資料繪製到地圖上。由於他使用本地資料庫,所以會比飲水地圖官方網站透過 overpass 撈取資料快速許多。

Leaflet GeoJSON Example

Google’s I/O 2016 的演講[1]提到會支援 Raw GNSS measurements,開放開發者取得 pseudoranges, dopplers and carrier phase 等資料。

過去,這些資料是在 GPS basdband processing 就已經計算處理好,對於一般軟體開發者而言通常直接使用 LocationManager 取得最終的定位資料,而非衛星訊號數值等資料。

對於需要做 GPS 效能調校的硬體、韌體工程師,通常透過 Android HAL API 測試 GPS 訊號。在 Android 中最低階的協議是透過 NMEA sentence 協議取得衛星訊號數值,但是這其實還不夠低階到包含如 pseudoranges 等資料[5][6]。這些 raw data 資料只來自使用該晶片商獨家的 binary protocol,而沒有標準的 API 可用。

Google I/O 的講者 Steve Malkos 的演講 (37分30秒)[7] 其實只提到會拿到原始 GNSS 測量資料。但是他還沒有分享具體的設計會長什麼樣子,另外最大的改變是 GPS, Wi-Fi, Cell 等 Connectivity API 會被從較高階 API 移到底層的 Sensor Hub (low power domain),這樣可以更省電且有效的計算位址資料。

查了一下 android-n-preview-3 的 codebase,目前 libhardware 的 HAL Interface[2][3] 還沒有改變,上層的 Location API[4] 也還沒有跟著新的設計異動。

繼續期待。

[1]: http://gpsworld.com/google-opens-up-gnss-pseudoranges/ “Google opens up GNSS pseudoranges : GPS World”
[2]: https://android.googlesource.com/platform/hardware/libhardware/+/android-n-preview-3/include/hardware/gps.h “include/hardware/gps.h – platform/hardware/libhardware – Git at Google”
[3]: https://android.googlesource.com/platform/hardware/libhardware/+/android-n-preview-3/include/hardware/sensors.h “include/hardware/sensors.h – platform/hardware/libhardware – Git at Google”
[4]: https://developer.android.com/reference/android/location/GpsSatellite.html
[5]: https://en.wikipedia.org/wiki/Pseudorange
[6]: https://en.wikipedia.org/wiki/Doppler_effect “Doppler effect – Wikipedia, the free encyclopedia”
[7]: https://www.youtube.com/watch?time_continue=2251&v=OEvycEMoLUg “Making Android sensors and location work for you – Google I/O 2016 – YouTube”

The Taiwan government has launched the new Public Warning System to warn cell phone subscribers the happening emergency. There are a few integration need to be done to support PWS on Ubuntu phone.

  1. rild from Android.
  2. ofono to dbus.
  3. User interface to handle the dbus event.

ofono supports the CBS/PWS[1] long time ago. There are a few TODOs to support the PWS

  • Make sure the rild can receive and pass the Cell Broadcast Service (CBS) to ofono
  • Need a userspace program to handle the Emergency Broadcast from dbus.

References:

[1] 國家通訊傳播委員會_災防告警系統(PWS)介紹 – http://www.ncc.gov.tw/chinese/gradation.aspx?site_content_sn=3744
[2] ofono/ofono.git – Open Source Telephony – http://git.kernel.org/cgit/network/ofono/ofono.git/tree/src/cbs.c#n100
[3] PWS specs

  • PWS – Public Warning System – https://tools.ietf.org/agenda/79/slides/atoca-0.ppt
  • 3GPP specification: 22.268 – Public Warning System (PWS) requirements – http://www.3gpp.org/DynaReport/22268.htm
  • 3GPP specification: 23.041 – Technical realization of Cell Broadcast Service (CBS) – http://www.3gpp.org/DynaReport/23041.htm
  • LTE for Public Safety – Rainer Liebhart, Devaki Chandramouli, Curt Wong, Jürgen Merkel – Google 圖書 – https://books.google.com.tw/books/about/LTE_for_Public_Safety.html?hl=zh-TW&id=oVy3BgAAQBAJ

The post is based on engineering note.

Shinyei PPD42NS[1] 做的粉塵感應器 (Dust sensor)[0] 是透過計算一定時間的脈衝次數,紀錄大於 1um 小於 2.5um 的微粒,測量結果單位是 pcs/0.01cf,必須要經過轉換,才能符合常見的細懸浮微粒 (PM2.5) 的 ug/m3 單位,然後透過 ug/m3 才能再算出 AQI[2]。
參考這篇論文 – Preliminary Screening System for Ambient Air Quality in Southeast Philadelphia[3],文中提供了一些公式可用來轉換。
 
為了方便用 node.js 兜起來用,順手改了一版 upm[4][5] 出來。不過由於濕度會影響微粒計算[6],必須配合溼度計,套用雨天或晴天不等的濕度矯正參數公式才會比較準確。
 
[0] Grove – Dust Sensor – Wiki – http://www.seeedstudio.com/wiki/index.php?title=Grove_-_Dust_Sensor&uselang=en
[1] Data sheet of PPD42NS http://www.seeedstudio.com/wiki/images/4/4c/Grove_-_Dust_sensor.pdf
[2] Air Quality Index (AQI) Basics – https://airnow.gov/index.cfm?action=aqibasics.aqi
[3] Preliminary Screening System for Ambient Air Quality in Southeast Philadelphia – http://www.cleanair.org/sites/default/files/Drexel%20Air%20Monitoring_-_Final_Report_-_Team_19_0.pdf
[4] ppd42ns: convert pcs/0.01cf to μg/m3 to aqi by chihchun · Pull Request #409 · intel-iot-devkit/upm – https://github.com/intel-iot-devkit/upm/pull/409/commits/ad31559281bb5522511b26309a1ee73cd1fe208a
[5] upm_0.3.2.bb – https://gist.github.com/chihchun/438625062886f8a53c0c532d22281baf
[6] Seasonal variation of particle size distributions of PAHs at Seoul, Korea | SpringerLink – http://link.springer.com/article/10.1007/s11869-008-0002-2

范疇先生[1]一連寫了幾篇 FUD[2] 文章,警告政府必須立刻開始推動《晶片國安法》[3],否則會被「大數據」實質統一台灣

文章中引用了許多科技詞彙,甚至舉出 Seth Wahle[5] 把 RFID/NFC Tag 打進手臂[6][7],藉此將神奇小晶片偷渡過安全檢查,從此就可以貼身入侵別人手機。這是個很有故事性的劇情,但是將各種不明究理詞彙如「大數據」(Big Data)、互聯網、物聯網、射頻晶片放在一起,只能寫出不入流的科幻小說,范疇的推論經不起科學的檢驗。

Seth Wahle 作為一個 biohacker[8] 嘗試改造人體,但除了 2012 年部份 Samsung Galaxy S II, S III and some HTC phones[9] 等早期版本 Android 手機被發現漏洞外可以直接安裝執行 App 外。以新型手機作業系統而言,Seth Wahle 手臂上的 NFC Tag 要入侵你的手機,必須滿足三個前提

  1. 受害者的手機開啟 NFC 功能,並且已經解鎖。
  2. 受害者點擊了 NFC Tag 觸發的網址連結。
  3. 受害者選擇下載安裝了不可信任的軟體。

不需要 NFC 功能,任何透過郵件、簡訊、即時通訊中的連結,都可能觸發受害者。與其這麼費勁又冒著曝光危險的近身攻擊,又只能用在舊版手機上,現在政府[10]的手段高明許多。前鎮子曝光的 Hacking Team[30],就被查出使用短訊漏洞[11],促使手機安裝 RCS (Remote Control System) 後門監控軟體[12][13]。的確有許多跡象顯示中國政府支持網路入侵攻擊,但是非接觸式智慧卡晶片的缺乏計算能力與儲存空間,沒有主動收集資料的能力,頂多被視為針對某些舊有漏洞來承載惡意代碼的載具。只要讀卡端的系統設計安全,不用擔心晶片卡入侵所有連網裝置。

你需要擔心的是軍事化的網路攻擊。除了巧妙的塞入後門外,政府支持的網路團隊會利用 0day[31] 尚未公告或透漏的系統漏洞,有系統、大規模的採取入侵行動。即便像是 BlackHat 中會有研究人員揭露出像是透過 MMS 等方式[32][33]植入惡意程式到受害者手機,但是等到一般使用者安裝上修正程式前仍有時差,此外政府支持的網路攻擊團隊很可能還掌握更多 0day exploits.

事實上缺乏資安常識與戒心的一般使用者,往往更容易誤裝非官方軟體或者上當被釣魚[14][15],上述透過特定漏洞的複雜入侵手法通常被用來針對特別有價值的對象。

至於范疇先生所提的二代身份證或卡式台胞證等 Contactless smart card,並非神秘的特製晶片,也非具備強大運算能力的電腦。二代身份證是使用 ISO/IEC 14443B (13.56 MHz) [16] 規格的無線晶片,明定可用通訊協定[17]。一般具備 NFC 功能的手機應該也可以讀取,但是在沒有解碼模組的狀況下只能讀出一串亂碼。

與其疑神疑鬼覺得這些小晶片會偷偷的使出外太空科技的「吸星大法」,不如認清卡式台胞證就是中華人民共和國政府用以維穩的工具[18][19]。而且由於設計的限制,以至於難以掛失,要是加密模組被破解或卡片遭到冒用,個人身份[22]被遭到冒用後,就難以補救挽回。

你真正需要留意的反而是具備強大運算能力而且承載個人資料的智慧型手機。這些來自中國的手機漏洞可能被藏在預載的 App 軟體[23][24][25],甚至是韌體固件[26][27]中,即便是台灣製造商,也可能誤用藏有後門的系統元件或解決方案。

作為一個消費者,或許你可以選擇一個採用安全技術的製造商,像是 Android 中的 SELinux (Security-Enhanced Linux)[28] 可以限制 App 或固件只能存取某些資料。但是話說回來 SELinux 由美國國家安全局開發[29],同樣也是老大哥,你要相信那一位?

[1] 范疇 https://www.facebook.com/2020bluesea
[2] Fear, uncertainty and doubt https://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt
[3] 范疇 – 立院應立即推動《晶片國安法》 – 今周刊 http://www.businesstoday.com.tw/article-content-100207-117624 http://buzzorange.com/2015/07/16/law-for-chip/
[4] 范疇 – 「大數據」實質統一台灣? – 今周刊 http://www.businesstoday.com.tw/article-content-100207-119451 http://buzzorange.com/2015/07/27/big-data/
[5] Seth Wahle https://www.facebook.com/seth.wahle
[6] Hacker Implants NFC Chip In His Hand To Bypass Security Scans And Exploit Android Phones http://www.forbes.com/sites/thomasbrewster/2015/04/27/implant-android-attack/
[7] BBC – Future – The man who hacks phones with an implant under his skin http://www.bbc.com/future/story/20150515-i-hack-phones-with-touch-alone
[8] Biohacking https://en.wikipedia.org/wiki/Biohacking
[9] Android, Nokia smartphone security toppled by Near Field Communication hack | Ars Technica http://arstechnica.com/security/2012/07/android-nokia-smartphone-hack/
[10] 維基解密公布100多萬筆Hacking Team內部郵件 | iThome http://www.ithome.com.tw/news/97348
[11] Dangerous Texts: Preventing SMS Cracking – InfoSec Institute http://resources.infosecinstitute.com/dangerous-texts-preventing-sms-cracking/
[12] 简要分析Hacking Team 远程控制系统-月光博客 http://www.williamlong.info/archives/4293.html
[13] 人手一份核武器 – Hacking Team 泄露(开源)资料导览手册 | WooYun知识库 http://drops.wooyun.org/news/6977
[14] 讲讲最近非常时髦的钓鱼攻击:银行存款杀手(多图) http://daily.zhihu.com/story/4637119
[15] 伪基站 + 钓鱼 = 完美黑产 – 乌云君 – 知乎专栏 http://zhuanlan.zhihu.com/wooyun/19890065
[16] ISO/IEC 14443 – Wikipedia, the free encyclopedia https://en.wikipedia.org/wiki/ISO/IEC_14443
[17] ISO/IEC 14443-4:2008 Identification cards — Contactless integrated circuit cards — Proximity cards — Part 4: Transmission protocol http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50648
[18] BIG BROTHER IS WATCHING YOU – 台胞證免簽卡式化 http://blog.nutsfactory.net/2015/06/17/big-brother-is-watching-you/
[19] 驚曝中共利用二代身份證監控 破解有妙招 | 破解方法 | 追蹤與反追蹤 | 大紀元 http://www.epochtimes.com/b5/13/11/23/n4017563.htm
[20] 二代身份证的隐患 ~ 南方人物周刊 南方人物周刊 http://www.nfpeople.com/story_view.php?id=4768
[21] 二代身份证的意见和建议 http://www.boxun.com/cgi-bin/news/gb_display/print_versiOn.cgi?art=/gb/pubvp/2008/10&link=200810270647.shtml
[22] Identity theft – Wikipedia, the free encyclopedia https://en.wikipedia.org/wiki/Identity_theft
[23] Chinese Android phone maker hides secret backdoor on its devices | Computerworld http://www.computerworld.com/article/2860742/chinese-android-phone-maker-hides-secret-backdoor-on-its-devices.html
[24] CoolReaper Revealed: A Backdoor in Coolpad Android Devices – Palo Alto Networks BlogPalo Alto Networks Blog http://researchcenter.paloaltonetworks.com/2014/12/coolreaper-revealed-backdoor-coolpad-android-devices/
[25] HTC多款手機被發現有官方預留的後門程式 | iThome http://www.ithome.com.tw/node/70135
[26] 翻墙问答﹕台资制手机晶片出问题 http://www.rfa.org/cantonese/firewall_features/taiwan-chips-12122014080202.html
[27] 威盛電子淪為中國間諜?/南方快報《政治修理站》 http://www.southnews.com.tw/polit/polit_00/14/02942.htm
[28] Security-Enhanced Linux in Android | Android Open Source Project https://source.android.com/devices/tech/security/selinux/index.html
[29] Security-Enhanced Linux – NSA/CSS https://www.nsa.gov/research/selinux/
[30] 「義賊」入侵駭客公司Hacking Team,盜取500GB內部文件揭露幕後客戶為各國政府 | T客邦 – 我只推薦好東西 http://www.techbang.com/posts/24578-hackers-are-terrible-hacking-team-stolen-500gb-internal-data
[31] https://en.wikipedia.org/wiki/Zero-day_%28computing%29
[32] 950 million Android phones can be hijacked by malicious text messages | Ars Technica http://arstechnica.com/security/2015/07/950-million-android-phones-can-be-hijacked-by-malicious-text-messages/
[33] Experts Found a Unicorn in the Heart of Android › Zimperium Mobile Security Blog http://blog.zimperium.com/experts-found-a-unicorn-in-the-heart-of-android/

原文發布於: http://www.zhihu.com/question/33197302/answer/56199040

我是 Canonical 台湾台北办公室员工,虽然因为业务关系时常来往中国各省差旅,恐怕无法反映中国地区程序员的体验。

有钱任性的创办人,乐意付钱让人作开源项目,对于信仰自由软件或开放原码的人应该相当有吸引力。差别是你写的每一行代码大概都会是 GPL 或 LGPL 授权,无论是 merge proposal 或是 bug comment 都公布在 Launchpad[1] 供人评阅。有许多機會與技术能力强大的牛人共事,大部分的同事都非常友善、容易合作。在这里身為软件程序员也很容易找到工作、生活的平衡点,反正自愿决定 是否加班。

高度自由,可以弹性的选择工作时间与工作地点。事实上,不少人是在家工作,我自己依照需要独立专注工作的需求,通常一周有一天会在家里工作。在某些团队, 你也能自由选择如何完成你的工作,包含尝试不同的开发语言或技术方案。当然这些自由度与开心程度取决你的直属老板的管理风格与能力。

由于许多人都在家工作,平时透过网路联系,一年半载才有机会见面,这时 team building 就更重要了。早期的时候,每个半年有一次 Ubuntu Developer Submmit,召集全球员工一同旅行到美国或欧洲,进行为期一周的欢乐派对^H^H会议,往往开场的时候得叮咛晚上别饮酒过量,但是会议时间过后肯定可 以在附近的酒吧看到每个团队一边狂欢一边讨论工作。后来由于公司规模太大,召开全员到齐的会议太昂贵。只剩下各个团队举办 Sprint 会议,规模大概两三百人到十几人节奏明快的会议。上回到北京開 Sprint, 结束日前一晚由 Vice President 带著一群老外隊伍,到三里屯酒吧街对饮到清晨三点,隔日开会都醉了。

这个公司有许多有挑战性的工作,也有非常乏味的苦力工作,端视你在那一个事业群、团队下面。每个一段时间会因为创办人兴趣^H^H业务变动,进行组织改 组,当下最大的两个软件工程事业群是 Cloud Dev Ops 与 Ubuntu Engineering and Services。从 Ubuntu Engineering and Services 中的工程团队,又大致分成 Ubuntu Engineering 与 Commercial Engineering。

其中 Ubuntu Engineering 做的是产品项目,像是 Ubuntu Phone, Desktop, Core, Unity8, Mir, Snappy 等等。做产品相对比较具有挑战性,会依据 Mark Shuttleworth 的产品策略或产品经理定下开发蓝图,以 Agile 敏捷开发模式进行产品项目开发 (之前是依据半年的发行周期),每隔两三周都会交付成果。由于代码完全开源,所以开发时候也可能有外界社区加入给予意见。全球的员工透过 CI/Launchpad/IRC/Kanban board 等协作工具合作,需要线上沟通的技能透过文字或代码清楚表达你的思路。除了公司内部小组间的合作,也常常需要回应开源社区的疑问。

至于 Commercial Engineering 则是将产品出货的部门,产品类型多元,可能是 Desktop、Phone 或是神秘的研发计划。其中最枯燥无味的大概就是 Desktop preload project,许多工作已经制式化,日常是不停重复同样的工序,像是验证硬件程序、测试 BIOS、打内核补钉、整 workaround、出貨排期、发行预载版等等。这些工作是确保搭载 Ubuntu 出货的笔记本等硬件功能都可以完美的运行,由于硬件完成的时候因为各种因素会导致驱动无法运作,像是 BIOS 不按照业界规格实践、不同的硬件使用同样的产品代码,导致使用错误的驱动程序、或是新硬件平台时内核支持功能未完善等,这些细节都需要大量人力的调适。这 个部门会适配来自不同合作伙伴的闭源软件,依据授权的不同导致部份代码无法开源。硬件调适与功能验证[7] 是 Canonical 收费的主要服务之一。

即便仍然会有些开发工作,像是做 userspace 的软件问题、LTS 的共用预载版、Firmware Test Suite[2]、Checkbox Job[3]、上述这些重复工序的自动化工具,但是常态仍是重复工序。而空闲程度通常跟出货季节相关,淡季时有些人会兼职当猎头、专研新技术、上网选修课 程、修 Launchpad[1] 上公开的臭虫[8]、翻译物理书籍等等。不过目测接下来一两年的 Snappy Personal Ubuntu 会从 Debian-based 换成 Snappy[4],以及 Unity8 的更换,应该会有一波新的挑战。

Commercial Engineering 也有一些来自不同客户的订制项目,订制项目通常包含大量软件改造与功能适配等工作,相对会多元有趣一些。

目前除了在家工作的员工之外,Canonical 在全球有四个主要办公室 London、Boston、北京、台北,依照事业群或团队的要求,会要求是否进办公室,通常与硬件相关的部门,像是需要实体硬件上测试的 QA 等就必须进办公室工作。各地辦公室的福利不同,北京辦公室就让本地员工来回答吧。由于许多员工都是在家工作,所以有个坑人的规定,是员工必须自备笔记本, 即使在办公室上班,公司仍不配发电脑。

在台北办公室的福利之一是办公室位于 Taipei 101,以下是我的窗景 (四十七楼) –
20150707_184148-01
以上是我的个人体验,你也可以参考一下 Glassdoor 上的员工评价[5],看看其他人的说法。

如果看了这么多之后,你对到 Canonical 工作感兴趣,欢迎查看目前职缺列表[6],在填送求职申请的时候,介绍人一栏写 Rex Tsai. 并私下与我联系,以便告知你应征的技巧或调查职缺内容或向征人团队经理写推荐信。除了帮点小忙外,Canonical 也提供 Referral Bonus Policy,正式通过试用后介绍人会得到 USD 1,000-2,000 的介绍费奖励,依照所需职位的急迫重要性不同,我曾经最高拿过 USD 5,000 的介绍奖金呢!有兴趣请来联系吧。

[1] Launchpad
[2] Firmware Test Suite Kernel/Reference/fwts
[3] Testing/Automation/Checkbox
[4] Ubuntu’s Desktop-Next Switching From .DEBs To Snappy
[5] Canonical Reviews
[6] Canonical | Careers

[7] Certification

[8] BugSquad – Ubuntu Wiki