2012年1月30日

UltraEdit (Linux version) 長期愛用版

[2012.06.22]
3.x 之後好像改用 UUID 的方法, 所以做法更簡單, 用 alias:
alias ucx='rm -rf /tmp/[0-9A-Z]*-[0-9A-Z]*-[0-9A-Z]*-[0-9A-Z]*-[0-9A-Z]*.* ~/.idm/ucx/alt.conf ~/.idm/[0-9A-Z]*_[0-9]*.conf; ~/tools/ucx/bin/ucx'
alias uex='rm -rf /tmp/[0-9A-Z]*-[0-9A-Z]*-[0-9A-Z]*-[0-9A-Z]*-[0-9A-Z]*.* ~/.idm/uex/alt.conf ~/.idm/[0-9A-Z]*_[0-9]*_[0-9]*.conf; `which uex`'


UltraEdit (Linux version) 的 30 天限制是
  1. 將 1970 到啟動那天的天數寫入 .dat
  2. uex.conf 紀錄該檔產生那天, 和 .dat 做比較計算出剩餘天數
有人是直接砍掉這兩個檔案, 但是這樣很多設定就會隨著 uex.conf 而不見, 所以用下面的語法可以常保青春又有活力.
#!/bin/sh

rm -f ~/.idm/uex/.dat

result=$(echo "`date +%s` /60 /60 /24" | bc)
q=$(echo "$result / 256" | bc)
r=$(echo "$result % 256" | bc)
echo -e "\x`printf %02X $r`\x`printf %02X $q`" > ~/.idm/uex/.dat

sed -e s/Value=1.*/Value=$result/g ~/.idm/uex/uex.conf > ~/u.conf
mv -f ~/u.conf ~/.idm/uex/uex.conf

`which uex`

2011年10月5日

[Python][Finance] 胡立陽的地心引力線

根據 "胡立陽的地心引力線說法" 去寫的工具:

胡立陽從電腦統計數據中發現,「30日移動平均線+72日移動平均線」的「平均數」正是股市地心引力的所在,倘若大盤漲幅超過10%,指數就會乖乖的被吸下來,而跌幅超過10%,指數也會被莫名的吸上去,大盤走勢彷彿跟著這條地心引力線上上下下,準確率高達9成以上。
雖說股市受到地心引力很有規律的上下走動,然而,這世界上,總會有令人意想不到的事情發生,難道,股市都一定按照地心引力來走,都不會有令人驚奇的意外發生嗎?胡立陽說,這樣的情況,的確偶爾發生,他提醒投資人,若大盤遠遠超過了地心引力線上方達10個交易日以上,這可是大牛市的先期預兆,投資人應順勢而為,從起漲點買進,反之,若大盤跌落在地心引力線下方,股市則由多轉空,投資人宜謹慎操作

2011年9月15日

[Survey] WYSIWYG tools for Graphviz

Graphviz 是個畫圖的好工具,但是語言化的描述格式所帶來的不便就是要去記憶很多語法。問了一下神,還是沒找到合用的,倒是幾個堪用品。
  • GraphViz Workspace:是個立即呈現的線上工具,但是還是要去記一些語法。
  • TINTFU:Java 寫成的工具,有點簡陋,不過可以拿來起草稿。
  • GraphvizPlugin for Trac:給 Trac 用的,可以藉由 Trac 的預覽功能看結果,但是還是要記語法。
  • GraphVizio:A Visio addin for Graphviz,不過我的 Graphviz 路徑不是預設的,所以跑起來有點問題。他的 blog 有寫怎麼改 regedit。但是資質駑鈍,暫時無解。問了作者,他也說放在預設安裝路徑試試先。
中文問題 cf. 在 Windows 上設定 Graphviz 中文字型

[Python] reStructedText WYSIWYG editor from Enthought

[1] 討論了如何在 Ubuntu 10.10 上安裝 Enthought 的 reStructedText WYSIWYG editor。不過在 Win7 上面卻是一堆問題。下面要描述的就是如何讓這個好物在 Win7 上面跑起來。

2011年6月29日

[CMake] 列出 Makefile 裡的 target

現在大多用 CMake 來產生 Makefile. 如果想知道產生後的 Makefile 中有哪些 target, 可以使用 "make help" 來列出. 假如列出的有個 target 叫作 myTarget, 如果打:
make myTarget
會檢查其相依性先, 然後再執行 myTarget 的相關編譯工作. 因此, 如果遇到相依一大串的 target,
那真的會讓人等到瘋掉.

2011年6月15日

[CMake] Add additional files to Code::Blocks project

我平常在設定 C source list 時, 不太會去加 header files 或者相關的參考檔,因為相關的相依性會交給 tool 去處理,好讓 CMakeLists.txt 比較簡潔點,可以把有限的專注力放在必要的地方。而 CMake 有個好處是可以產生 Code::Blocks, KDevelop, Eclipse 的 project file,這樣就可以省去 IDE 上的設定。相較於 K & E,Code::Blocks 除了比較小外,也足夠應付 UI 的開發(使用 wxWidgets)。

可是,要怎麼把這些額外的檔案加入 project file 呢?

2011年6月14日

[CMake] 為單一檔案或 target "新增" 編譯的參數

有時整個專案中,某些檔案或者 target 會需要特別的編譯參數,這時可以使用
SET_SOURCE_FILES_PROPERTIES() 或者 SET_TARGET_PROPERTIES() 來增加這些編譯設定,例如:

SET_SOURCE_FILES_PROPERTIES(src/aFile.c src/bFile.c
                            PROPERTIES COMPILE_FLAGS "-DmyDefine -ggdb"
                           )
這時再去看看生成的 flags.make 和 build.make 就會有所發現!

不過要留意的是,這裡指「新增」。表示原有繼承的編譯參數還是會存在,可以檢視 "CMAKE_C_FLAGS", "CMAKE_CXX_FLAGS" 等變數 [1]。換句話說,原先的編譯參數中,如果有 "-O0" 後續想換 "-O4" 就不能僅僅只是新增,而是要替換掉。這點需留意。

  1. CMake Useful Variables