MacBook Pro 2017 安裝軟體

用 Mac 十年啦,本來在用的 MBP Late 2012 本想再戰的,無奈硬體故障 Wi-Fi: No hardware installed + Bluetooth not available + 右邊整排 SD卡插槽、HDMI + USB 沒反應,有點慘啊,先買了一個外接 USB 網卡繼續用,但最杯具的是 App Store 無法登入更新,然後有些從 App Store 安裝的軟體就無法使用了,試了各種黑金塔招數(據說是要求 en0 必須是內建網卡)仍無法突破…. orz

於是只好認命入手新 MacBook Pro 2017 Touch Bar 了,拿到機器時還是預裝 Sierra,先升級 High Sierra。使用兩天的心得:

  • Touch Bar 有趣但沒用。本來有考慮買沒有 touch bar 的版本,但是看了比較 之後發現差別不只 Touch Bar 啊
  • 鍵盤是蠻不習慣,比 Apple 自己新出的藍芽外接鍵盤鍵程還短
  • 外殼的 Apple 沒燈了,讓我不確定蓋起來成功休眠了沒
  • 原本擔心的 USB-C 轉接器,買了 小米 USB-C 至 Mini DisplayPort
    多功能转接器
    小米 USB-C至HDMI多功能转接器 就解決了,聽說千萬不要買 Apple 自己出的 HDMI 轉接器超貴der
  • USB-C 真的會影響 Wi-fi 2.4GHz 啊,幾乎完全不能用會掉封包,一定要接有線網路…
  • 我算是淺度 Vim 使用者,這個 ESC 觸感很慘啊…… 如果深度用戶應該會想死…
  • 插頭沒有 MagSafe 接頭了…. 充電器的捲線設計也沒有了…. 可惜…

真的是很多小缺點,但是要升級 CPU、RAM、硬碟是硬需求啊,還是只能買新 MBP。

回到主題,這一篇趁重裝紀錄一下安裝了哪些 Apps:

閱讀全文〈MacBook Pro 2017 安裝軟體〉

A brief introduction to Machine Learning 投影片

這是我在今年 RubyConf China 2017 演講的投影片,錄影官方也釋出了在 Youtube。這場分享總結了這兩年業餘接觸機器學習的一些知識點和心得,希望能在 Ruby 圈推廣一下資料科學和機器領域,以及主流的 Python 工具鍊。同一天另一場還有一場關於機器學習的 姜鹏 – 金数据是如何鉴黄的 也講的非常好,介紹一個真實的應用案例,也推薦大家一看。

老實說,就像做 Web 用 Rails 很棒,做數據分析和機器學習,就是要用 Python 這套方案。這不代表整套 production code 都要從 Ruby 換成 Python ,就像 Apple 做機器學習的 Core ML 也是用 Python 方案作數據分析和機器學習訓練,在得到模型和參數後,實際運作的 production code 當然還是用 Apple 自家的 Swift 語言來進行預測。

另外,我覺得為什麼 Ruby 圈老是去黑 Python 呢?(的確,如果眼界只在做 Web 的話,我以前也是覺得學了 Ruby 就用不到 Python 了),我認為就培養個人技能來說,應該挑互補的,而不是挑做一樣的事。Python 可以做 A.I. 可以做數據分析,Ruby 有很好的 OO 物件導向設計,做應用程式非常適合,是可以互補的。反而例如去學 Elixir 跟用 Ruby 一樣是做 Web 開發,對個人的技能發展我認為是重疊的。

Tweets 整理 (2017 Q3)

2017/9

  • 2017-09-21 23:17 1. Python 是 Ruby 做 Data Science 最好的朋友 2. 透過 PyCall t.co/wbOpvsmP58 就可以調用 Pandas, seaborn, matplotlib, sciki… t.co/Bl37ZP7OfY
  • 2017-09-21 13:12 “科学式家|戴文渊:机器学习教科书的 7 大经典问题” t.co/b9zHC2xGeV # 神经网络不宜超过三层? 决策树不超过五层? 特征选择不超过一千个? 集成学习获得最好学习效果? 正样本和负样本均采样到1:1? 交叉验证是最好的测试方法? 过拟合一定不好?
  • 2017-09-17 17:27 @judithyhh 謝謝~~ ?
  • 2017-09-17 09:33 “Packing your Ruby application into a single executable” t.co/TThHLL6vLU 把 Ruby 專案打包成一個執行檔,支援 Mac/Windows/Linux,牛逼!
  • 2017-09-15 11:43 RT @peter_szilagyi: Two months in the work, but Geth 1.7.0 (Megara) is finally here! Faster, slimmer, Byzantium enabled! #Ethereum ;) t.co/GztSNeLbA2
  • 2017-09-06 11:58 Wi-Fi: No hardware installed + Bluetooth not available + SD卡插槽失能,是在提醒我該換 MacBook Pro 了嗎? # 已重置 NVRAM t.co/d0QOD7GlWr 還是沒用 :(
  • 2017-09-04 23:02 @cowboy_ryan 是 Ropsten test network 測試網絡啦,這裡的以太幣不值錢
  • 2017-09-01 11:47 每個想學怎麼用 geth 編譯智能合約的工程師好像都要踩一次這個雷啊 t.co/JGhEXlGB5A “eth_compilers, eth_compileSolidity are gone in go-ethereum 1.6.0”

2017/8

  • 2017-08-31 01:24 “Scalable Blockchain Infrastructure” t.co/Mx5ZR73sI2 # 1. 連 geth 或 parity 都不用裝了,發 HTTPS call 就好了 2. 為什麼背景圖用哥吉拉啊,是有一點點諧音啦… XD
  • 2017-08-30 02:33 ? mined potential block ? block reached canonical chain # 人生第一次挖到礦 # 挖了半小時拿到五顆以太幣 # 在 Ropsten test network 啦 # 真是太有趣了
  • 2017-08-29 22:13 在本機同步 Ethereum 或 Bitcoin 全節點的話,記得設定 Mac 的 TimeMachine 不要備份那些目錄啊 # TM 狂跑才想到這事
  • 2017-08-21 18:06 @jeffhung @number5 tig 太陽春啦
  • 2017-08-21 15:27 @number5 GitX 沒更新很久了….. 有bug沒人修啊
  • 2017-08-21 15:17 “Fork: a fast and friendly git client for Mac” t.co/wRbFIQo0LK # 看起來不錯,喜歡這種輕量級的
  • 2017-08-20 11:54 IBM 主推的 HyperLedger Fabric 區塊鏈跟它的智能合約是用 Go 語言寫的,然後官方安裝步驟是用 Docker 安裝,原來金融業也這麼潮了。
  • 2017-08-19 17:14 t.co/K12LueiFwV # 兩百行的 Node.js 區塊鏈簡單實作 1. 用 websocket 實作了 P2P 網絡 2. 用 express 做了 HTTP API 3. 可惜沒有實作共識系統,想看 PoW 機制
  • 2017-08-14 17:33 @hSATAC 快發一篇 LOGAN
  • 2017-08-07 21:35 “TodoMVC for the RealWorld” t.co/qMFcCguTFa # (任意前端框架 x 任意後端框架)的範例 app
  • 2017-08-05 23:25 RT @audreyt: 人們不再彼此相互信任,為什麼?我們怎麼改變這種情況?合作博弈論的互動講解手冊: t.co/gXKQ7LKOMP
  • 2017-08-04 10:36 RT @webmaxru: This day goes to #PWA history! Initial steps of #ServiceWorker in #Safari: t.co/WU4Uin6ZHP. Kudos to… t.co/VolDoNRo9O
  • 2017-08-04 01:39 記得你是何時加入 Twitter 的嗎?我記得!#我的Twitter週年紀念日 t.co/WyCkmOkq8d

2017/7

Git worktree: 同時開多個工作目錄

Git 的 worktree 是 Git 2.5 新增的功能,有點相見恨晚啊。

有在用 Git 的都知道如果工作目錄(working tree)修改到一半的話,是不能隨便切換 branch 的。解決方式是要麻是 git stash 先暫存起來,不然就是先暫時 commit 等會再 reset 回來。這都還好。

但是,還是會碰到一些需要同時處理不同 branch 的情況,例如想要同時修改或對照不同 branch,或是一邊跑測試一邊繼續寫code,甚至是想同時開發測試不同 branch 等等。這時候就得另外 clone 一個目錄,但這就是麻煩的開始,不同的 repo 目錄要怎麼同步最新的修改? 重新複製目錄? 先 git push 再 pull 一次? 總之就是有點繞啊。

git worktree 這個神奇的指令可以創造出另一個工作目錄,例如:

$ git worktree add -b hotfix ../hotfix master
Preparing ../hotfix (identifier hotfix)
HEAD is now at 46d363dc XXX

如此就會在上一層新建立一個 hotfix 目錄,並新建一個分支 hotfix。這種工作目錄叫做 linked working tree。

cd ../hotfix 就是一個乾淨從 master 分出來的 hotfix 分支,可以在這邊做事。最後 commit 完事之後,直接 rm -rf 砍掉這個 hotfix 目錄(放心,東西已經進 branch,這可以砍掉了),接著 git worktree prune 就會清除 linked working tree 記錄了。不清除也沒關係,三個月後也會自動清掉。

不過如果你把 linked working tree 放在會被移除的裝置上,例如外接硬碟上,這樣可能會不小心被 Git 清掉。這時候需要用 git worktree lock 指令。

最後,git worktree list 則會列出目前所有的工作目錄。

如何真正讓 Ruby Constants 常數無法被修改

大概翻了一下 Effective Ruby (中文原文),覺得其中第四個 Be Aware That Constants Are Mutable 有點意思,記錄下來。

在 Ruby 裡面大寫開頭的叫做常數,Ruby 開發者可能知道這個常數是可以被事後修改的,雖然會有警告啦,但是還是被修改到了,那有沒有辦法可以真正無法被修改呢? 原來要用 freeze,而且還需要點技巧。

讓我們看一下代碼:

閱讀全文〈如何真正讓 Ruby Constants 常數無法被修改〉

Tweets 整理 (2017 Q2)

2017/6

2017/5

  • 2017-05-26 16:36 @deduce 我不是說十年,你等了五年,自己算算看 ?
  • 2017-05-26 12:51 @deduce 一直都有默默更新啊,我的目標是從開始寫到完成出版,十年磨一劍。
  • 2017-05-25 01:08 RT @dhh: Webpacker 2.0 for Rails is out: t.co/QM1KaGn3gj – new config format, so some upgrading required. Kudos to @javan & Gaurav Tiwari ?
  • 2017-05-23 13:00 「第一性原理」(First Principle) t.co/LlTEGfr3eI 1. 學習前期用具體技術成長比較快,但後期就需要掌握知識本質才能突破,產生知識爆炸點 2. 知識從沒有爆炸,現在爆炸的只是垃圾資訊
  • 2017-05-20 08:45 抵達 Vue Conf 會場 t.co/whQcXJP9xs
  • 2017-05-19 17:45 “全球首届Vue.js开发者大会” t.co/SipsflETVV 跟 “VueConf 2017” t.co/y93BL8E6vI # 兩個都說自己是第一個 Vue Conference… XD
  • 2017-05-18 13:13 “程序员面试什么最重要?” t.co/bSqqouqdzn # 性格 > 经验 > 基础 > 算法
  • 2017-05-13 19:19 “王垠: 我为什么不在乎人工智能” t.co/Uy0hcRnHzm # 如果 A.I. 取代了人類工作,我認為 “無條件基本收入” 會是正解,只是我也覺得自動編程是不可能的事情 XD
  • 2017-05-04 16:39 “去年雙 11 期間的 1.7 億個 BANNER,都來自阿里的設計人工智能「魯班」” t.co/eotytDtEJk # 連廣告 banner 圖片也是個性化推薦自動合成的啊,厲害 # 讓天下沒有難擼的 banner,諧音就是「魯班」… XD
  • 2017-05-04 15:30 “开撕:亚马逊的推荐到底行不行?” t.co/9w5zGiHkR6 # 如何评价推荐系统的作用
  • 2017-05-04 12:24 “NCurses Disk Usage” t.co/6Y9AjSyzu4 # disk usage analyzer # 在 server 上找大檔案刪的好工具

2017/4

  • 2017-04-28 08:39 RT @dhh: Rails 5.1 FINAL has been released! Loving JavaScript, System Tests, Encrypted Secrets, and more. Happy @RailsConf ? t.co/M9KQlcLy4R
  • 2017-04-22 20:55 “因APCN2海纜障礙影響HiNet客戶連線歐美、日本部份網站之連線品質” t.co/xMbS2YSa23 # 多發生幾次後,就覺得要做生意的話,還是放島內的 Google Cloud Platform 比較放心啊
  • 2017-04-21 22:47 @larrylv 每個月會去一次北京待一週喔
  • 2017-04-20 16:17 “德鲁克谈真正的老师” t.co/Ecbx4TTDRu # 會教的老師少,會教你怎麼學的老師更少
  • 2017-04-20 13:43 有些人覺得付錢去上課是繳智商稅,學習技術就是要很苦逼一萬小時才能精通,任何加速學會的課程都是膚淺的。但是如果學習心態正確,花錢有個好老師可以善用,我認為進步會比自己摸索快很多。 t.co/Pf8c9tfJZ5
  • 2017-04-20 13:21 做開發還可以自己學,作維運 Operations 需要環境滋養啊 t.co/2fHeTgh01e
  • 2017-04-20 13:13 中國市場的話,用支付寶、微信支付比 Paypal 或 Stripe 更方便,手機逼一下 QR Code,按個確認就付款完成,比輸入信用卡卡號又更快了
  • 2017-04-20 12:55 “PayPal 台灣交易系統更新
    t.co/lIwJkvpD2R # PayPal 不能用、Stripe 也不能用。要好好收款只能把公司註冊在國外啊 XD
  • 2017-04-05 01:00 “Big List of Naughty Strings” t.co/joA6m1tKjk # 收集各種奇怪的字串,用來測試用戶輸入會不會弄壞系統 XD