2018年4月19日 星期四

Python 計算巢狀式串列 (nested list ) 中某個元素的總數加總

好吧,nested list 不知道中文要怎麼翻譯比較順,就先叫他巢狀式串列吧 XD

假設有一個 list 集合的資料結構長這樣,我們想要計算書本的總數
[
    {'name':'James', 'books':["Python", "Java", "Golang", "C++"]},
    {'name':'Amy', 'books':["Node.js", "C"]},
    {'name':'Danny', 'books':["Perl", "JavaScript"]}
]
這時候可以先用 for 迴圈將所有 books 元素拉出來再計算 books 元素的長度,最後加總起來就可以了
sum = 0
for x in list:
    sum += len(x['books'])
print(sum)
我喜歡用一行寫法,簡潔快速
print(sum([len(x['books']) for x in list]))

2018年4月17日 星期二

使用 docker-compose 直接更新運行中 docker 的方法

如果有正在運行的 docker 想要更新資料,
可以透過下面的指令直接更新,且不用重啟 docker,
實在太好用了😍

docker-compose up -d --no-deps --build svc1

其中的 <service-name> 要和 docker-compose.yml 中設定的一樣

2017年8月23日 星期三

幫 Sqlite 檔案瘦身

當對一個 sqlite 檔案內容進行刪除紀錄後,會發現檔案大小都沒變,
這時需要使用 "vacuum" 來幫檔案瘦身

$ sqlite3 db.sqlite3 'delete from table'
$ sqlite3 db.sqlite3 vacuum

2017年8月1日 星期二

Linux 快速刪除檔案某一行的方法

沒想到這麼簡單(笑)
使用 sed 工具就可以了

ex. 刪除第三行
原始內容
1
2
3
4
執行結果
$ sed 3d /tmp/test
1
2
4

sed 工具預設只有將結果輸出,如果要直接寫入檔案,可以加 -i 參數

$ sed -i 3d /tmp/test

注意:加上 -i 後就沒有輸出任何訊息了!請特別小心!

2017年7月12日 星期三

Windows 環境下 Golang 的 andlabs/ui 安裝方法


備份一下網路上查到的資料

golang的gui库andlabs/ui的使用
http://www.jianshu.com/p/7948b273926f

MSYS2 + MinGW-w64 + Git + gVim 环境配置
http://dantvt.is-programmer.com/posts/63161.html

總結一下
MinGW 環境建議使用 MSYS2 去安裝就好
安裝後再使用 MinGW 安裝相關套件


2017年7月5日 星期三

Ubuntu 16.04 更新後無法開機

隔了一陣子沒有更新系統,想說更新一下相關的系統套件,以往也沒特別注意更新完的訊息,結果立馬重開機就進不了 OS 了。

這時候心想該不會更新 kernel 時爛掉了...!?
所以就再重開機一次於開機選單選擇先前的 kernel,果然可以進入系統。

不死心再更新一次,這時後仔細看了更新過程的訊息,原來是開機分割區 /boot 空間滿了!(笑)

原來 Ubuntu 每次更新 kernel 時,並不會主動清除先前的 kernel,我的 /boot 分割區只有 200MB,所以更新個幾次就滿了 XD

這時候要手動清除 kernel file 也是可以,不過有更聰明的方法
$ sudo apt autoremove

2014年2月26日 星期三

[HTC New One] 4.3 root 後如何更新 4.4.2

注意:升級到4.4.2 後需要重新 root


HTC 的 OTA 升級會檢查是不是原廠的 BOOTLOADER,


Mobile 01 上查到,若 Root 過要升級有兩種方式:


兩種方式選一種
1.刷回官方RECOVERY,OTA完成後再重刷RECOVERY.不用把S-OFF改成S-ON


2.先下載,但不要安裝,然後進第三方RECOVERY,選"INSTALL ZIP FROM SDCARD" 到\SDCARD\DOWNLOAD\找OTA檔案來刷


原文:http://www.mobile01.com/topicdetail.php?f=566&t=3775026&m=f&last=48694891#48694891


 


很開心的選擇第二種方式,感覺最簡單.....但我失敗了!!!(忘記截取失敗畫面)


失敗的訊息好像是解壓縮失敗...什麼之類的。


於是只好選擇第一種方式,但沒嘗試過有點可怕...


最後還好有成功。


不怕死的XD 各位可以跟著以下不負責的步驟嘗試看看:


1. 準備工具


下載:ADB-FASTBOOT


下載:官方原廠 BOOTLOADER recovery 3.18.709.2.img


原始載點:


http://d-h.st/users/Guich/Stock%20Recovery


http://d-h.st/xGy


2. 解壓縮下載回來的 ADB-FASTBOOT 到 C:\ ,方便等一下 CMD 操作


3. 將 recovery img 更名為 recovery.img ,放到 ADB-FASTBOOT 目錄,方便等一下 CMD 操作


4. 將手機關機,進入fastboot 模式,並將 USB 傳輸線連接手機跟電腦


進入 fastboot 模式很簡單,先將手機關機,然後持續按住 電源鍵+音量下鍵 


照片 2014-2-26 下午9.34


接著用音量鍵,將游標移至 FASTBOOT 上面(預設一開始就是),然後按下確定(電源鍵)


中間藍色的字會從藍色的 HBOOT 變成紅色的 FASTBOOT


照片 2014-2-26 下午9.34 #2  


連接上 USB 後,若有成功載入驅動與電腦連接,則會變成 FASTBOOT USB


照片 2014-2-26 下午9.35  


 


5. 開啟 CMD,進入到 ADB-FASTBOOT 目錄,然後輸入以下指令


fastboot flash recovery recovery.img


若有出現傳輸的訊息就成功把 recovery.img 上傳到手機了


螢幕截圖 2014-02-26 21.28.36  


6. 將手機重開機 (REBOOT),進行官方 4.2.2 升級


7. 升級過程約 10 分鐘,之後經過約三次重開機後就更新成功了!


Screenshot_2014-02-26-21-25-52  


如何在 golang 裡面引用 gitlab private repo

參考文章:https://stackoverflow.com/questions/27500861/whats-the-proper-way-to-go-get-a-private-repository 原文是用 gitlab.company.com 當範例,這邊改成一般帳號...