pretty code

2019年7月4日 星期四

awk 小技巧

這是第 2 次在相關專案中看到一樣的 awk 技巧,感覺還蠻好用的,記錄一下,以備不時之需。

假設我們使用 ls -al 列出所有檔案。

total 100
drwxrwxr-x 15 sw3 sw3  4096  六  17 16:59 .
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:58 ..
-rw-rw-r--  1 sw3 sw3  1472  六  17 16:59 benchmark_readme_template.md
drwxrwxr-x  2 sw3 sw3  4096  六  17 16:59 community
drwxrwxr-x  6 sw3 sw3  4096  六  17 16:59 compliance
-rw-rw-r--  1 sw3 sw3  2359  六  17 16:59 CONTRIBUTING.md
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 data_generation
drwxrwxr-x  8 sw3 sw3  4096  六  17 16:59 .git
-rw-rw-r--  1 sw3 sw3    74  六  17 16:59 .gitignore
-rw-rw-r--  1 sw3 sw3   298  六  17 16:59 .gitmodules
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 image_classification
-rwxrwxr-x  1 sw3 sw3  1133  六  17 16:59 install_cuda_docker.sh
-rw-rw-r--  1 sw3 sw3 11348  六  17 16:59 LICENSE.md
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 object_detection
-rw-rw-r--  1 sw3 sw3  3193  六  17 16:59 README.md
drwxrwxr-x  4 sw3 sw3  4096  六  17 17:36 recommendation
-rw-rw-r--  1 sw3 sw3   771  六  17 16:59 reference_results.md
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 reinforcement
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 rnn_translator
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 sentiment_analysis
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 single_stage_detector
drwxrwxr-x  4 sw3 sw3  4096  六  17 16:59 speech_recognition
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 translation
這時我們可以用 awk '{print $9}' 取出檔案名,$0 是原始字串,其他就照順序從 1 開始。

如果想一氣呵成將它產生到另外一個檔案,我們可以把指令一起下完。

ls -al | awk '{print $9}' > tmp.log

2019年7月3日 星期三

Rust 探索之旅 - 函數回傳值

使用 return 就跟平常 C 語言用法一樣。

我們也可以不使用 return,但是傳遞回傳值的那一行不用加分號。

fn main() {
    let s1 = String::from("hello");

    let (s2, len) = calculate_length(s1);

    println!("The length of '{}' is {}.", s2, len);
}

fn calculate_length(s: String) -> (String, usize) {
    let n = s.len();
    (s, n)
}

法律小學堂 - 妨害名譽

最近開始看《一不小心就被吉》這本書,感覺蠻有趣的,記錄一下其中的名詞。

妨害名譽可分為公然侮辱及誹謗 2 種,分別在以下條文敘述,簡單來說單純辱罵沒有涉及具體事實評論的就是公然侮辱。

而誹謗之事,如果是涉於私德,即使是真的,也會構成誹謗要件。故甲和乙即使 2 人真的有不可告人之事,意圖散布於眾也是會出事的。

看了這本書,果然是上了一課。


2019年7月2日 星期二

人不親土親

能夠在英文文章中看到熟悉的品牌真的是一件很開心的事!

決定了,下一台就是你了【mooInk Pro】。

mookInk Pro 吸引我的有幾點:
1. 10 吋又只有 240 g。
2. 台灣廠商。
3. 可以看 PDF。
4. 我在讀墨買的書最多。

可能是缺點的:
1. 電池只有 2000 mAh。
2. 還是走 Android,而不是另外開發 Linux Readmoo App。
3. 觸控筆也要充電。

https://goodereader.com/blog/electronic-readers/these-are-all-the-new-ereaders-that-are-coming-out-in-2019


人體 Compiler 果然很難

今天在測試 struct memory dump 時,無意間發現使用 gcc -S 轉出來的組語很不一樣,我只能說再給我 10 年我也不會想到可以這樣寫,組語其實也蠻有趣的XD


2019年7月1日 星期一

不同 OS Shell 常用語法

偶爾會在 Windows、Linux 和 UEFI Shell 下跑來跑去,各個 Shell 的常用語法都不同,乾脆記錄一下,才不用每次都 google。

Windows Linux UEFI
Declare Variable set ABC=XXX  ABC=XXX set ABC XXX
Use Variable echo %ABC% echo $ABC echo %ABC% 
Error Indicator echo %ERRORLEVEL%  echo $? echo %LASTERROR%
The variable scope in other script  global must use EXPORT  ??

實體 Reset 鍵之必要性

不知道有沒有記錯?以前買的 Palm PDA 都有 reset 孔,至少我確定 Treo 600是有的!如果我的 Note Lite 有這個鍵,只要拿迴紋針戳一下,搞不好我的問題都解決了,想要拆開機器,還要去買特殊規格的螺絲起子,一整個怒。

如果可以送修事情就簡單了,問題是我裡面有幾個花錢購買的 PDF,如果被外流要怎麼辦?我實在是對廠商沒什麼信心。

一個實體 reset 鍵花不了多少成本吧?我寧願增加體積及犧牲美觀,也不願意無法 reset CPU,Please give me the fucking reset button.