2018年度技術總結

轉眼間2018年只剩下最後的幾天了,趕忙趁熱寫篇年度總結,畢竟聽說元旦會變冷。html

入手Mac

參加工做的第五個年頭,終於買了一臺本身的MacBook Pro。其實我從高中時起,就對Mac有一種憧憬。那時候每到週末,就經常往蘋果的實體店跑,就爲了去看看那些精緻的筆記本,試着在觸控板上滑動一下手指,點開幾個本身只在蘋果官網上看過icon的陌生應用。mysql

依稀記得下決心買這臺電腦的那天晚上,回到家掏出以前的聯○筆記本,發現轉動顯示屏蓋子的地方壞掉了,致使筆記本的蓋子翻不起來。在家裏要接一個外置的顯示器來用實在是太麻煩了,當即就萌生了買一臺新的來應急的想法。再三思索後,決定嘗試一下Mac,便當即在官網下單了。使人啼笑皆非的是,明明是要應急用的,結果仍是過了三天才到手。慶幸的是,在公司是用外置顯示器來辦公的。git

用上Mac以後有挺多的感觸,有興趣的讀者能夠移步這裏閱讀,這裏就再也不贅述了。令我本身也感到驚訝的,是我在用了Mac以後還購買了幾款軟件——我並非一個很捨得花錢買軟件的人,多數狀況下,都是用一些免費的開源軟件的。在Mac上買的這幾款軟件,大概是由於它們真的挺好用吧。最先入手的是Alfred,買了它的Powerpack。後來買了BetterTouchTool,自定義了不少touchbar上的按鈕,用得挺歡的程序員

BetterTouchTool的使用現狀

再後來,遇到了堪稱神器的Contexts,如今在macOS中切換窗口就像是牛奶巧克力那般的絲滑。最近買的,則是Bartender,是在淘寶上的數碼荔枝那裏買的,趁着雙十一的時候有折扣趕忙入了手。它們都很實用,使用頻率也很是地高。固然了,像[Default Folder X]()雖然也很是好用,但由於它能夠無限期地無償使用(只是會偶爾彈個窗提醒購買),因此我就沒有急着花錢了。一些比較有意思的應用,好比Little Snitch,雖然很酷炫(看着世界地圖上的各類連線),但對我而言用處不大,最後也就卸載了。github

寫博客

越是寫博客就愈加現,博客的力量是有限的,除非超越博客。我不作程序員啦JOJO比起寫給本身查閱的筆記,寫公開發表的文章是大不一樣的。筆記能夠寫得像銅牆鐵壁那麼規整,能夠一層一層地嵌進去。可是發表在博客上的文章就像代碼,是寫給本身以外的人看的,要講究閱讀體驗。偶爾要用段子活躍一下氣氛給讀者提提神,字裏行間也要注意正確地使用行話。尤爲是寫一些教程通常的文章時,要按部就班地講述本身的操做過程,還要戰戰兢兢地擔憂別人沒法復現本身的結果(人類的本質是復讀機)。面試

從新開始寫做後才發現,簡書上的最後文章已是2017年七月份的了。重開的博客,打算繼續發表在GitHub Pages上。原本GitHub Pages上的博客的頁面,是我用本身寫的一個工具來生成的。結果這個半成品在Mac上由於cl-mysql安裝失敗跑不起來,我也一時不想折騰,因而決定換個成熟的工具來用。目前用的是Hexo。一個驚喜是,Hexo默認支持Google Analytics——儘管並無多少人會去看個人博客。sql

除了GitHub Pages以外,我也把文章發表到了SegmentFault的專欄上。感謝SegmentFault極其不友好的插入圖片的方式,迫使我寫了一個Alfred的Workflow,用來快速地把截圖的圖片上傳到GitHub的一個倉庫裏(拿GitHub的倉庫當圖牀)。如今的寫做流程,是在電腦上用Typora先寫好,而後hexo new一下生成源文件,把寫好的內容粘貼進去,再發布,最後把文章內容再到SegmentFault上建立篇新文章再貼一次,發表出去。編程

布穀,布穀

之前用(壞掉如今又修好了的)聯○筆記本的時候,我用Windows 10自帶的Alarm設置了不少提醒——叫外賣的、喝水的,以及起來走走的(久坐是很差的喲),大量的定時提醒讓我有一種生活層次分明的感受——寫做感受讀做錯覺。Mac在這方面能夠作得更好,由於它自帶crontab。因而我便用crontab和alerter(剛開始的時候用的是terminal-notifier)給本身設定了很多定時提醒。等到crontab -l的輸出開始氾濫後,便萌生了本身寫一個管理工具的想法。segmentfault

一開始還在Boostnote上煞有介事地寫了一篇需求文檔和設計文檔(已經都是廢稿了),想着用Common Lisp來開發。但一樣由於cl-mysql安裝不成功,我又不但願把時間都花在了折騰環境上,便改用了Node.js來編寫這個管理工具。框架選擇了egg-js,在操做MySQL和Redis方面都有相應的插件,此外還內置支持定時任務,上手很方便——真要是用Common Lisp的話,也許還在糾結某個功能是用某個半殘的第三方庫仍是本身費勁從零寫起。後端

用Redis的ZADD、ZRANGEBYSCORE、ZREM,以及ZSCORE指令作了一個簡陋但夠用的消息隊列——用Z*系列的指令是爲了能夠模擬出延時消息的效果(beanstalkd阿里雲MNS都支持這種特性)。配合egg-js的定時任務功能,就能夠實現定時提醒了——彈出提醒仍然是用alerter。目前這套系統運做得還不錯,大部分本來錄入在crontab中的定時提醒已經交由它來處理了。儘管還有很多的小問題,不過相信都是能夠解決的。

對了,這玩意兒的名字叫作cuckoo,即布穀鳥。

GTD?

Mac跟「效率」這個詞彷佛特別有緣,經常被人換作生產力工具,彷彿一拿起Mac,便自動屏蔽了外界的干擾。開始用Mac的幾天後,我便開始把玩macOS上各款大名鼎鼎的TODO list應用了。關於這個話題以前也寫了一篇吐槽文,有興趣的能夠移步這裏閱讀。世間的TODO list應用是真的多,不過多是個人口味實在是太刁鑽了,我居然沒有一款是特別滿意的。在把玩的期間最讓我產生好感的,要屬My Life Organized,然而這貨沒有Mac版,否則我真的極可能會喜加一。

每過一段時間,我就會想要把本身對TODO list類應用的一些想法付諸實踐,本身動手開發一個給本身用。不過到目前爲止,這些想法仍然處於被封存的狀態,被遺忘在了磁盤上哪一個角落裏的文件中。目前Emacs的org-mode還算夠用,它兼顧了我使用上的凌亂與規整,尤爲是當我須要在某個任務下寫一些包含代碼的筆記或者想法的時候,org-mode幾乎就是全部TODO list類應用中的惟一選擇了。但工具只是用來管理任務,當夜深人靜坐下來,想要本身次日給安排得明明白白的時候,就會發現,即使有最好的工具(我並非說org-mode),也仍然須要方法論來指導這個安排的過程。尤爲是,這個過程應當是「object-oriented」的——不是面向對象,而是「目標導向」。若是不事先制定一些目標——無論是像人生規劃這般空泛的目標,仍是像租一輛共享汽車開車上路這樣具體的短時間目標,若是缺少目標,那麼很快就會陷入了「隨便找一些任務來填充次日的空閒時間」這樣的狀態,長此以往GTD也就實踐不起來了。

規劃不等於目標。

Note-taking

沒法高亮編程語言代碼的Evernote、OneNote,使用不通用的存儲格式的Boostnote、Quiver,還有收費的爲知筆記,都沒可以取代Emacs的org-mode成爲我作筆記的工具。org-mode最弱的地方,就在於使用起來不夠隨意,不像其它的幾款筆記軟件那樣,截圖以後的圖片沒有辦法一鍵粘貼到.org文件中去。但偏偏我我的不太喜歡截個圖配一段話的筆記形態,因此這個缺點能夠視若無睹。我如今的筆記都是QA形式,一個一級headline就是一個問題,headline下的文本就是答案,而org-mode又支持嵌入代碼(雖然說Markdown也支持),很適合個人習慣

Emacs中的筆記示例

最近我以爲,與記筆記一樣重要的,是可以方便而且準確地查找本身的筆記。筆記若是隻是記而沒有翻閱出來利用,那還不如每次都打開搜索引擎當場查找算了。我打算把筆記的導入到ElasticSearch中去,而後依託它的全文搜索功能來查找。感謝org-mode,是純文本的存儲格式。要寫一個工具,把.org文件中的每一個問題和對應的答案組裝成一個JSON餵給ElasticSearch真是太簡單了。如今缺的是一個方便的入口,以及一個美觀大方的結果顯示方式。

不過這個新想法的項目名還沒想好

Web後端的固有結界

年初開始漸漸負責起了面試的工做。爲了能夠比較系統地面試,便整理了一份Web後端工程師須要掌握的知識的清單。目前這份清單還在絕贊完善中——想必這個完善的過程是不會中止下來的,並且目前積累的面試題也不足。

本來還有另外一份清單,是自我提高用的指引。但漸漸地我發現要求面試者所具有的知識,和充電用的技能樹指引,實際上是應當合二爲一的,因而乎便誕生了一個叫作charging的項目。在其中的一個叫作knowledge.org的文件中(又是org-mode),我以本身的理解自上而下地給Web後端的軟件工程師所須要的知識作了一下劃分,並逐級細分,到了合適的粒度的headline,便添加這個分類下的相關面試題。除了在這些葉子節點上掛上面試題以外,我還依照這些合適粒度的headline給本身安排學習的內容,通常是相關主題的電子書或者PDF。通過最近一次的梳理後,接下來可能會學習一下Erlang(都不記得是第幾回了),讀一下《重構》,以及《Redis實戰》。固然了,這些只是最近一次整理增長的內容,僅僅是完整學習內容的冰山一角XD

我原本不喜歡聽網課的,認爲視頻和語音方式的教學,接收信息的效率比用眼看的方式要來得低效,畢竟無論是視頻仍是音頻,老是要收完前一段內容才能繼續收下一段內容(真香警告)。大約在兩週前,買了極○時間的專欄《MySQL實戰45講》,聽下來發覺其實還挺有意思,尤爲適合在通勤和夜晚慢跑時聽,算是2018年新增的一種學習方式吧。

後記

儘管有年月日的劃分,但日子畢竟是連在一塊兒過的,因此今年未完成的學習安排並不會在2019年到來的那一刻戛然而止。Org Agenda中還有不少標記爲TODO的條目,Pocket中還有不少未讀的文章,還有不少沒看完的PDF,LeetCode和Project Euler上也還有不少的題目沒作。2019年,想必會是忙碌的一年。

全文完

閱讀原文

相關文章
相關標籤/搜索