Wally


Parallelism-Aware Batch Scheduling: Enhancing both Performance and Fairness of Shared DRAM Systems. Onur Mutlu, and Thomas Moscibroda. Proceedings of the 35th International Symposium on Computer Architecture (ISCA-35) 2008. paper

一時手癢來寫一下
第一次看到神妙的 vim 是在系上的的機房
某天 I0來學校弄機器 然後就在我旁邊秀了一手 vim 的神技 (對那時候用 ee 的我來說 哈)
我記得 I0 好像先 show 了一下 split … (好神奇啊!)
然後還有 Virtual mode, Block mode、 ‘>’ 等等
對那個時候整天在用工作站的我來說 vim 簡直是神器啊
回家馬上把 vimtutor 開來練習
從此和 vim 結下不解之緣 可以說是惠我良多

一般 editor 可以做到的功能 vim 通常也少不了
最讚的應該是 vim 支援很廣的 file syntax
從此以後不管是寫網頁, 寫 verilog, 寫 asm, 全部用 vim 就一次搞定
連打 latex, 寫 spice 都可以用
而且全部都有漂亮的 syntax highlighting

接下在研究所時期
我是做硬體的 所以主要都是在寫 verilog
實驗室裡面的人 除了我以外 都是以 UltraEdit 為主
不過那時候和我一起弄 project 的 cplin 看 vim 覺得蠻神奇的
也常常跑過來問我要怎麼用
有人問當然要好好研究一下
看看 vim 的世界還有什麼好東西是我沒發現的

第一個是寫硬體的人一定會用到的 visincr 這個 plugin
基本上用 UltraEdit 的人第一個想問的應該會是這個
這個 plugin 像 UltraEdit 的 Column mode
可以生出一行累加的數字 1, 2, 3, 4 或是 0, 3, 6, 9 等等
這個應該是 hardware designer 必備

另外一個是把 vim 變身成一個 edit + debug 的平台
一般我們寫 code 的流程是這樣
寫完之後把 compiler 平台叫出來 compile code
查一下 message 在第幾行後 再回到 vim 修改
這樣就有點麻煩
一來要切來切去 二來要從一堆亂亂的 message 中找到行數真的是件麻煩的事
後來找出了 vim 強大的 quickfix
配上 command line 的 compiler
把 error log 的 format 寫好
就可以很輕鬆的把 vim 變成 editor + compiler
寫 code 寫好後 按下 F7 就可以自動檢查
如果有錯會開一個小 window 把 error 秀出來
點兩下就可以跳到有問題的那行
快樂的把 code 修好
從此寫 code 的爽度 ++

最後一個 也是我覺得 vim plugin 裡面最重要的一個: Project
對.. 這個 plugin 的名字就叫做 Project
基本上用了這個之後 你的 vim 就變成一個神兵利器
用起來的像這個樣子
Vim + Project
簡單講 Project 可以把會用到的檔案放在一起
vim 的左邊就變成了像一般 IDE 的 Project manager
點兩下就可以把檔案開在右邊的 Window
整合了這個和上面的 quickfix 的功能
vim 就變成 vim x++ 了 (x 隨便你換)
基本上和一個整合的 IDE 沒什麼差別
用了之後你應該會和我一樣 覺得生命美好了許多

我的 vim 之路到大概就到這裡
其他還有一些
必學的三種 virtual mode
可以省下很多的麻煩的 macro (’q')
如果你有在用 buffer 的話 方便的 selectbuf plugin
等等比較基本的就不介紹了
另外在 vim 的網站上有不少的寶 (scripts/plugins)
翻一翻應該會蠻有收獲的

因為某種特別需要 (噗)
需要拿程式內部的 data

我對 windows programming 其實不熟
對整個流程不甚了了
不過整理一下過程

  • 在 Inject Dll 裡面 開一個 Share Memory 把 Data 放進去 像這樣
    #pragma comment(linker,”/SECTION:.shared,RWS”)
    HINSTANCE hDll;
  • 設定 Victim Window 的 Hook 到 DLL 的一個 Function,HookProc
    g_hHook = SetWindowsHookEx( WH_CALLWNDPROC,(HOOKPROC)HookProc,
    hDll, GetWindowThreadProcessId(hWnd,NULL) );
  • 在 HookProc 裡面把 Library Load 進來
    然後開始做壞事
    比如說偷看系統 DLL 的 function 之類的 XD

流程大概是這樣
不過我只有把 Function Disable 掉之類的比較成功
其他要偷把系統 Function Call 的東西拿來偷看之類的都蠻失敗的
不知道是因為資料量太大還是怎樣 (用 OutputDebugString .. )
還沒看到好料的就 Crash 了 orz

比較好的方法應該是用 DDE 把 Data 弄出來吧
不過我 windows programming 不熟
以後再慢慢研究 XD

另 Auto Debug for Windows 也是好物
對要處理的 Dll 會有比較清楚的了解

因為某些邪惡的因素有在跟某 news group 的文章
所以把舊的不能動的 nntp2rss 修了一下 (php5 incompatible, 懶得丟 patch :p)
可以動了
不過該 news group 是 Big5 or GBK 的編碼
還得順手轉一下

之前有看過 irssi 的 recode plugin, 似乎是好方法
不過和 imap 的 extension 衝到 php 一開就爆炸
我原本是像找比較像 libhz 的 library …

最後發現比較方便的是 mb_string (花了一堆時間 orz 爛 recode)
用法如下
mb_detect_order(”UTF-8,BIG5,GBK”); // 應該是 GBK 沒錯 orz 對匪區不太了解
$enc = mb_detect_encoding($str);
return mb_convert_encoding($str, “UTF-8″, $enc);
這樣就可以同時轉 Big5 又可以轉 GBK

這幾天用 Firefox 用得很相當的不爽 @”@
Firefox 處理 Picture 相當的虛
早上關了一個 VM 吃了 1.8G 的 Firefox 感覺非常的差

剛找了一些 trunk 的 build
應該修了不少 Memory leak
現在用起來超開心

Btw, TBE 完全爛掉了
改用 Tab Mix Plus 追 trunk 的版本

ITHOME 的報導

Workaround 的方法

不過我懶得弄 ._.

小結: 微軟再不 patch 就慘了 ….

Update: Passive and active fixes available for .wmf

今天看到 SKII 在板上寫

Firefox 的 Memory 秏得太兇了
在將瀏覽器開開關關之後,我覺得FF的低消太高了啊~~~怎麼可以隨隨便便就站上20MB?
再經過我開些有的沒的網頁後,就可以升到60MB,這是什麼狀況啊? T_T

上網查了一下
找到這個好玩的 Secrets of Firefox 1.0
原來 Firefox 的 Target Memory Usage 是 51.2 MB..
調低一點就是了

還有剛找到的這個 FireTune
Update: Mozilla Developer News: What Next ?