2018年8月21日 星期二

prepare for software interview

緊急上場

  1. Cracking the coding interview https://github.com/alexitaylor/Cracking-the-Coding-Interview-6th-Edition
  2. leetcode小弟精選題  https://leetcode.com/list/2un2aj7
  3. 常用演算法資料結構中文入門好文 http://alrightchiu.github.io/SecondRound/mu-lu-yan-suan-fa-yu-zi-liao-jie-gou.html

時間比較多

  1. coding interview university overall preparation !!!  https://github.com/jwasham/coding-interview-university
  2. https://leetcode.com
  3. https://www.hackerrank.com/
  4. google code jam
  5. Operating system & computer architecture textbooks

補充資料
  1. https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24
  2. http://bigocheatsheet.com/
  3. http://highscalability.com/numbers-everyone-should-know
  4. https://www.palantir.com/2011/10/how-to-ace-a-systems-design-interview/
  5. http://www.aosabook.org/en/distsys.html
  6. https://medium.com/cracking-the-data-science-interview/the-10-operating-system-concepts-software-developers-need-to-remember-480d0734d710
  7. https://www.youtube.com/playlist?list=PLOU2XLYxmsIJDPXCTt5TLDu67271PruEk

2015年12月9日 星期三

c++繼承修飾詞差異

筆記一下
C++ class繼承有三種修飾詞 分別是private/protected/public


private subclass
外部會視super class中的public & protected members為private members


protected subclass
外部會視super class中的public & protected members為protected members


public subclass
會維持super class中的修飾詞 也就是外部會視public members仍是public members  protected members仍是protected members

2015年11月26日 星期四

mariadb + python on synology nas

紀錄一下
一般而言
大部分的python mysql connector (例如MySQLdb)在安裝的時候都需要找到一個mysql_config程式
偏偏這玩意在synology上搭配的mariadb就是沒有
所以套件安裝過程中會失敗
看到的error會是"EnvironmentError: mysql_config not found"


一般ubuntu等linux套件可以很簡單地利用套件管理安裝libmysqlclient-dev或是libmariadbclient-dev來補上MySQL_config程式
但是synology的OS裏頭沒有方便的套件管理
不過好家在mysql本身也有出python connector (ref https://dev.mysql.com/doc/connector-python/en/connector-python-installation-source.html )
把tarball抓下來在synology NAS上跑python setup.py install基本上一定會成功

然後import mysql.connector再參考https://dev.mysql.com/doc/connector-python/en/connector-python-examples.html 看這套件的API怎麼使用即可.



2015年7月11日 星期六

在raspberryPI上開機自動啟動Kodi

紀錄一下步驟

修改/etc/default/kodi
把ENABLED改成1

另外USER改成自動登入的使用者帳號

這樣每次開機後 Kodi就會跑起來~~~

2015年2月3日 星期二

makefile的四種等於 =, :=, +=, ?=


筆記一下makefile的四種等於的差異

雖然平常工作比較少從零開始寫markfile

但偶而還是需要修改一下既有的檔案

 

makefile總共有四種等於 先從最簡單的開始

  1. ?= 

這個是適用於想表達如果?=左邊的變數從未被設定過的話 就讓它設定成右邊的內容、數值

如果已經有值了 就不進行任何變動

  1. =

makefile官方文件中 使用=的時機是希望讓左邊的變數成為"recursively expanded variable"  也就是當變數真的被使用到的時候 在進行遞迴展開

所以就可以先定義 後續再補數值

以下提供一個例子

CFLAGS = $(include_dirs) -O

include_dirs = -Ifoo -Ibar

如果使用以上兩行的定義 CFLAGS真的要被使用時就會展開成 -lfoo -lbar -O  所以可以後定義、補充include_dirs的內容

然後這樣子的特性可能會帶來兩個壞處

第一個是有可能造成無限遞迴 以下就是一個例子 不過這個makefile會提示bug 所以倒也還好修正

CFLAGS = $(CFLAGS) -O

CFLAGS要被使用時會造成無限迴圈

另外一個壞處是跟效能有關的:

因為遞迴展開也適用於函式 所以函式的展開執行也會發生在變數要被使用的時候 也就是說如果變數要被重複使用幾次 函式就會展開跑幾次

所以效能就可能不太好

  1. := 

markfile官方文件中 使用:=的時機是希望讓左邊的變數成為"Simply expanded variable" 也就是當這一行敘述被執行時 就馬上進行展開

所以一旦跑完:= 就不再存在任何reference在變數中

  1. +=

最後一個是+= 用來增加敘述在原有已經定義的變數中

如果+=左邊的變數還沒定義過 +=執行的效果就會跟=一樣 也就是recursively-expanded variable.

如果變數曾經定義過 +=跑起來的效果就會視前一次定義是用=或者:=來決定跑完後是recursively-expanded variable或者是simply expanded variable

2015年2月1日 星期日

2015 mazda3 尊貴版駕駛心得

雖然說是尊貴版
但其實就是便宜的版本
不過撇開燈具 天窗等玩意不說
就駕駛起來的感覺 客觀上跟頂級唯一的落差應該只有輪胎

目前開了200公里
大概有以下的心得

  1. i-stop反應還蠻快的 但是有點不解為啥在兩個情況下會發車
    • i-stop啟動後 稍微晃到方向盤
    • i-stop啟動後 切入空檔 放開煞車 然後在輕踩煞車
    • 還有在方向盤轉一圈多以上的情況下不會啟動 這我也是蠻不解的
  2. 隔音不是很好尤其在高速公路上.... 這一點試乘時開太慢沒有感受到 可能在開一段時間在看看坊間有沒有店家推出好的改善方案吧
  3. 後座 後座 後座真的很窄 尤其是五人滿載會很痛苦 中間的人除了背部會被把手頂著外 連座椅的部份也都很不舒服.... 顯然這是一台以乘坐四人以下為目的的車
  4. 車子的彈跳感很重 雖然交車的時候我有再三詢問胎壓是不是有降到正確值 但實際上開起來 只有我跟老婆在的時候會覺得車子有點顛 但是三個人以上後就還好 可能要找個時間買胎壓計自己量測一下胎壓

優點的部份

  1. 動力真的還不錯 感覺變速箱調校的還不錯 超車反應蠻好的 但是高速時的轉速我本來以為可以在低一點 目前開100~110km/h時轉速大概都落在1900~2100之間 不知道是不是六速的極限了
  2. 駕駛視野不錯 相對於目前市場上蠻多車A柱都前移的流線造型 但是卻讓左右視野受到些影響 這一點mazda3就作得好多了 A柱的位子並沒有往前拉的感覺 讓左右視野不那樣侷促
  3. 油耗還不差 我兩百公里的移動包含車到港後的一些移動 所以一開始的平均數字還蠻慘的 但是開了兩百公里 高速:市區約莫7:3最後跑出7L/100KM的數字 在努力一下應該就可以做出送測的數字

整體而言 撇開載長輩容易被抱怨這一點以外
mazda3的安全性以及引擎科技 絕對值80萬左右的車價
這一台 沒有意外的話應該至少可以陪伴我們到有小孩而且小孩上小學以後閒後座窄吧xdddd

買了台車的心路歷程....

過去半年本來很想買間樓的 無奈台北 新北的房價始終高攀不起
看了數十間房 還是買不下手
後來想想 自己也不是很喜歡待在都市裡的人
不妨買台車 且戰且走 婚後多出去散散心
也許之後買間郊區房也說不定

在買車的時候
主要以安全為第一考量
想說Ford Focus JW, Subaru Impreza二選一好了
Focus是我在美國出差時開了一段時間的車 對她印象蠻好的
加上柴油省油的優點 本來是我的第一選擇
無奈遇到中太汽車的業務的印象實在太差 就只好放棄他了

放棄Focus後注意到新的Mazda3
就打算去Subaru後去Mazda瞧瞧
身邊有買WRX的同事對於四驅讚不絕口 讓我也想試試看他說的車像是吸在地上穩穩的感覺
不過最終還是因為偷懶沒去展示中心看車.... (Sabura的據點終究少了一點...)
反而在某次回家的路上去經過Mazda展間 看一看就覺得還ok
加上IIHS上的優異數據 (好像撞擊後駕駛 乘客受到的傷害控制得還不錯>.<)
試乘繞一小圈後覺得駕駛的視野也還ok 就訂車了

衝動買下去的原因是在我的預算內(80萬上下辦到好)又安全的車似乎只有impreza和mazda3
雖然不愛mazda3 2.0的稅金 但是我也不是很懂subaru為啥有1.6的車(據我所知 sabaru開發的應該是2.0起跳的引擎)
最後想想 mazda3是新改款 而impreza現在買的話應該沒多久就大改款
所以就直接訂mazda3

買車很隨性
但還是有點小遺憾的是沒買頂級版
到現在都還是蠻想要那組自動轉向HID頭燈唉.....
可是五門頂級版又會有天窗 讓後座壓迫超大
權衡之下還是訂了基本款

無論如何
跟老婆之間多了個第三者保護人生未來的旅程 還是蠻好的ccc

2014年10月12日 星期日

假日試煮--老皮嫩肉

記錄一下周末在家隨手煮的菜

食材:
1. 家常豆腐一盒 (雞蛋豆腐、板豆腐等含水量更少的更優)
2. 蒜頭兩小顆
3. 醬油20ml
4. 味醂20ml
5. 九層塔數片
6. 5~10ml葵花油 (豬油應該會更香 不過現在不宜用豬油...)

做法:
1. 平底鍋熱鍋後加油
2. 蒜頭切碎後丟進去爆香
3. 家常豆腐一盒大概可以切出10塊長方體的豆腐
4. 將豆腐放入鍋中煎到可以看到金黃色後翻面
5. 背面也煎到金黃色後 將味醂以及醬油倒入
6. 待味醂、醬油蒸發一些後將九層塔葉片丟入 熱一下後起鍋裝盤

隨手拍的傷眼照 不過味道還不錯

























心得是
豆腐用煎的真的很費神 而且長方體有六面 大概只有正反兩面面積大的好煎
(從上圖 可以看出豆腐的側面都沒有煎的痕跡)
我想坊間餐廳應該都是用油鍋高溫去炸 快速起鍋比較有經濟效應
口味想吃淡一點的人 可以少放一些醬油 也比較健康
不過醬油、味醂一比一的加法 吃起來倒也不會太鹹