2018年8月7日 星期二

C++11 rvalue 使用筆記

C++11 中多了一個叫 rvalue 的東西表示「可以破壞的暫時變數」
當這些東西跟 STL, return value optimization (RVO) 等等的東西融合時
就讓事情變得很複雜了,讓我現在都不敢跟別人說我會 C++ 了
因此本文紀錄了一些我遇到的 case,希望未來也會繼續更新

2018年7月6日 星期五

在 Arch 安裝 CIC EDA tool 紀錄

由於 EDA 公司跟數位 IC 領域比較封閉的關係
很多的 EDA tool 還是會「建議」用 CentOS 5 之類的環境
甚至有公司在 2018 的現在,電腦的系統還是 gcc 3 或是 Python 2.4 的
雖然有很多 tool 其實就算放到最新的 Archlinux 可以跑
但是有很多情形會缺少一些老舊的 library
有時候是會有一坨智障 script 檢查的時候會不讓你執行

2018年4月23日 星期一

git submodule 複製現有的副本

Git 有提供一個 submodule 的功能
可以把另外的 Git repo 引入現在的 project 使用
然而,有時候我們會需要複製包含 submodule 的 repo 給別人
如果是遇到超大型 project 或是 project 裡面放超大 test data
這時候 clone ~100MB 的時間就會超級久
(有時候 Github 的連線 < 100KBps)

2018年2月19日 星期一

在 WSL (Windows subsystem linux) 模擬 xdg-open

WSL 是 Windows 10 提供的執行原生 Linux 程式的方法
但是如果不能跟 Windows 做某些互動的話很不方便
例如 Linux 中,有時會用 nautilus . 或是 dolphin . 把目前終端機的資料夾打開

2018年1月9日 星期二

遊戲介紹:Factorio(二)

上一篇中提到了因為 Factorio 的關係
導致我的 journal 的進度嚴重落後
呃不對,這件事對這篇文章並不重要
總之因為 journal 草稿寫完了,所以來寫個第二集
讓我們重新開始
上一篇中提到了 Factorio 之中的初期開局
維持了半手動的鐵、銅、電力生產
接著就要來提昇自動化的程度

2018年1月2日 星期二

遊戲介紹:Factorio(一)


最近 Steam 上的 factorio 從 470NTD 降到 320NTD
這款遊戲是我之前看到就非常有興趣的
所以趁著降價,兩個月前就順便買下來了
從結論上來看我推薦這個遊戲嗎?
如果你之前喜歡 minecraft 的,然後最近有事情要忙的
那麼我個人非常不推薦這個遊戲
因為光是兩個月我發現我就累積了 110 小時的遊戲時數
已經是我一年半之前買的 cities skylines 的兩倍
導致我的 journal 的進度嚴重落後
這邊來分享一下一些簡單的心得跟攻略

這個遊戲一開始的設定是太空船出事
落在了一個不知名的星球
遊戲的結局是你要發射火箭上太空
為了達成這個目標,你要建立大量的自動生產系統
剛開始的時候是這樣
(為了偷懶,以下示意圖都開啟了作弊模式)

遊戲中有三種重要的資源銅礦 鐵礦 還有碳
剛開始可以用 M 開啟地圖檢查這三個的總量

如果說走一陣子之後,找不到亮度區域含有 1M 的鐵跟 400k 的銅
那還是建議重新開地圖吧
另外,遊戲中期之後需要的石油最好有 500% 以上的產量
要不然要從遠處搬運,有點麻煩

遊戲開局會有一些基本道具
可以先拿所有的鐵板來產生鐵稿,採集跟拆建築的速度快非常多
一開始先要手動取得一些木頭 (~20) 跟石頭 (~50)
石頭有兩種方式取得,擋路的大石頭(右上)跟石礦(左下)
前者不能自動收成,但是手動挖的時候 CP 值比較高

木頭...就砍樹

自動化工廠最最一開始最先需要的資源是碳
可以先拿開局的時候的熱能採礦機
前面放一個箱子自動收成
(註:按下 alt 可以顯示箱子裡面有什麼)
(註:綠色點點是 bottleneck 的 mod,很好用)
接著手動挖九個鐵拿去燒
製造另外一個熱能採礦機,可以自動收成鐵板

(註:最好熟悉一下遊戲中 ctrl, shift 的使用,很好用)
同理,可以自動挖銅礦

到這邊就完成了半手動的鐵、銅、碳生成了
(這時鐵的需求遠大於銅,可以蓋兩個自動鐵礦熱能採礦機)

當鐵大約達到 100 個的時候可以開始電力化
找個適當空間的水邊建立電力系統
這裡使用了遊戲內部一個非常好用、重要的功能 -- 藍圖
可以在 creative mode 生成之後在 survival mode 使用
雖然遊戲可以簡單的分享其他人的藍圖
但生成自己的藍圖是遊戲的樂趣之一,所以就不分享了

塞滿木炭就開始發電了
把電線拉到電力採礦機的旁邊
電力採礦機的速度大約是熱能採礦機的兩倍


接著繼續電力化鐵的生產
同時建立實驗室,手動生成 30 個 level 1 的科技包
研究「自動化 level 1 」跟「物流學 level 1」

另外,退役的熱能採礦機可以拿去用在銅礦跟石頭上面
到這邊大約完成了整個遊戲結束的,嗯...... 1% 吧
journal 完成之後有機會再繼續分享

順帶一題打個廣告
我在 ICCV'17 發表的論文是有關平行運算的簡化
可以用簡短的 code 完成高規律性的 GPGPU 程式開發
如果有要寫 GPU 程式的可以在 github 找到我的 header file
https://github.com/johnjohnlin/UMI
UMI (unrolled memory inner-product)
(就當作 AMP 或是 thrust 這種東西來使用)
如果你使用了之後,節省到你的時間也請幫我宣傳一下(笑

對了,我的另外一個 project 是有關上面的 ASIC 實做
MIMORI (Multiple input multiple output ranged inner-product)
取這兩個名字絕對跟我個人興趣沒有任何關係

2017年9月24日 星期日

閱讀筆記 - matrix computation (3e)

讀完之後打下來以免哪天又要重新看一次
不是什麼教學性質的,只是單純的筆記而已