2019年4月11日 星期四

"echo 0 > /proc/sys/kernel/hung_task_timeout_secs"

Better Linux Disk Caching & Performance with vm.dirty_ratio & vm.dirty_background_ratio

reference : 
        https://feichashao.com/dirty_ratio_and_dirty_background_ratio/
        https://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/

2019年1月31日 星期四

git checkout fail " error: The following untracked working tree files would be overwritten by checkout: "

error: The following untracked working tree files would be overwritten by checkout:


Remove all untracked files:

git clean  -d  -fx .


  • -x means ignored files are also removed as well as files unknown to git.
  • -d means remove untracked directories in addition to untracked files.
  • -f is required to force it to run.

reference:
https://mirrors.edge.kernel.org/pub/software/scm/git/docs/git-clean.html
https://stackoverflow.com/questions/17404316/the-following-untracked-working-tree-files-would-be-overwritten-by-merge-but-i/35067275

2017年8月23日 星期三

Makefile的賦值運算符(=, :=, +=, ?=)

Makefile的賦值運算符(=, :=, +=, ?=)

總結:
= 是最基本的賦值
:= 會覆蓋變數之前的值
?= 變數為空時才給值,不然則維持之前的值
+= 將值附加到變數的後面

另外 =, :=這兩賦值運算符號在網路上查詢,常常會看到這種說法:
= 在執行時擴展(values within it are recursively expanded when the variable is used, not when it's declared)
:= 在定義時擴展(values within it are expanded at declaration time)
而白話一點的說法如下範例所示

  1. =
  make會將整個makefile展開後,才決定變數的值。也就是说,變數的值會是整個Makefile中最後被指定的值。看例子:

x = hello
y = $(x) world!
x = hi

all:
@echo $(y)

  在上例中,輸出結果將會是 hi world! ,而不是 hello world!

  2. :=
  變數的值在Makefile展開途中就會被給定,而不是整個Makefile展開後的最终值。

x := hello
y := $(x) world!
x := hi

all:
@echo $(y)

  輸出結果 ====> hello world!

2017年8月16日 星期三

Excel 工作表密碼保護的解除方法

當開啟一個 Excel工作表,進入後要看工作表上的公式如何運作,才發現工作表受到密碼保護,上網搜尋了一下破解方法,試過很多種方法都太麻煩,最後終於找到最簡單的破解方法,借此分享,希望用的到的人不必再一一去試。

Excel 工作表密碼保護的解除方法

利用 VBA 巨集程式破解法:

1:打開該文件,切換到“檢視”選項,點擊“巨集”→“錄製巨集”,出現“錄製巨集”窗口,在“巨集名稱”隨意輸入一名稱(假設:ABC),點擊“確定”退出;

2:再點擊“巨集”→“檢視巨集”,選擇“巨集名稱”下的“ABC”並點擊右邊的“編輯”,會自動打開“Microsoft Visual Basic”編輯器,用以下的內容完全替換右側窗口中的所有編碼:

Sub  ABC( )

   Dim i As Integer, j As Integer, k As Integer
   Dim l As Integer, m As Integer, n As Integer
   Dim i1 As Integer, i2 As Integer, i3 As Integer
   Dim i4 As Integer, i5 As Integer, i6 As Integer

   On Error Resume Next

   For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
      For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
         For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
            For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
               ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
               Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
               Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)

               If ActiveSheet.ProtectContents = False Then
                  MsgBox "One usable password is " & Chr(i) & Chr(j) & _
                  Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
                  Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
                  ActiveWorkbook.Sheets(1).Select
                  Range("a1").FormulaR1C1 = Chr(i) & Chr(j) & _
                  Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
                  Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
                  Exit Sub
               End If

   Next: Next: Next: Next: Next: Next
   Next: Next: Next: Next: Next: Next

End Sub

3:再點擊“巨集”→“檢視巨集”,選擇“巨集名稱”下的“ABC”並點擊“執行”,密碼就現形了。

4:切換“校閱”選項,點擊“保護工作表”,然後輸入密碼即可解除鎖定。

-----------------------------------------------------------------------------------
上述方法僅適用工作表被密碼保護的檔案,若是檔案被密碼鎖住,則必須利用破解工具


reference:  http://jgm0730.blogspot.tw/2012/09/excel-2007.html

2017年3月10日 星期五

USB 相關

USB 相關
    先記錄,再研究


1. USB Host 簡介
    http://pollos-blog.blogspot.tw/2015/08/usb-host.html

2. USB Video Class 簡介
    http://pollos-blog.blogspot.tw/2014/10/usb-video-class.html

3. USB PTP/MTP 簡介
    http://pollos-blog.blogspot.tw/2014/10/usb-ptpmtp.html

4. RS232 over USB 簡介
    http://pollos-blog.blogspot.tw/2014/10/rs232-over-usb.html

5. USB Mass Storage Class 簡介
    http://pollos-blog.blogspot.tw/2014/10/usb-mass-storage-class.html

6. USB 簡介
    USB 簡介[1]
   http://pollos-blog.blogspot.tw/2014/07/usb-1.html
    USB 簡介[2]
   http://pollos-blog.blogspot.tw/2014/07/usb-2.html
    USB 簡介[3]
   http://pollos-blog.blogspot.tw/2014/07/usb-3.html
    USB 簡介[4]
   http://pollos-blog.blogspot.tw/2014/07/usb-4.html
    USB 簡介[5]
   http://pollos-blog.blogspot.tw/2014/07/usb-5.html
    USB 簡介[6]
   http://pollos-blog.blogspot.tw/2014/07/usb-6.html
    USB 簡介[7] - Zero Length Packet
   http://pollos-blog.blogspot.tw/2014/08/usb-7.html
    USB 簡介[8] - USB Class
   http://pollos-blog.blogspot.tw/2014/08/usb-8-usb-class.html

2017年2月23日 星期四

monitor tar-progress in linux using pv command



tar cf - /folder-with-big-files -P | pv -s $(du -sb /folder-with-big-files | awk '{print $1}') | gzip > big-files.tar.gz
4.69GB 0:04:50 [16.3MB/s] [==========================>        ] 78% ETA 0:01:21


 $ pv big-files.tar.gz | tar xjf - -C target_directory

reference:
        http://www.tecmint.com/monitor-copy-backup-tar-progress-in-linux-using-pv-command/