不知道是不是 C / C++ 寫久了,轉戰 python 竟有些不習慣。
好處是 library 確實很多,目前最不習慣的大概是沒 call by pointer / call by reference。
小小的心願是,希望 python 不會用太久 XD
不知道是不是 C / C++ 寫久了,轉戰 python 竟有些不習慣。
好處是 library 確實很多,目前最不習慣的大概是沒 call by pointer / call by reference。
小小的心願是,希望 python 不會用太久 XD
0. 前言
(0.1) 這篇文章並不會講 CArray 如何使用,網路範例很多, msdn 也很清楚。
(0.2) 前提是以 POD 為基礎。
(0.3) 以 vector 做為輔助比較。
(0.4) vector / CArray 不一定哪個比較好,但要筆者挑的話,肯定不會挑 CArray,這東西使我想罵粗話。
這些東西常用,個人認為沒什麼好提的,但發現還真的不是每個工程師都知道要去用。做個 note 當筆記,下述列表針對 windows,可能還有其他好用的 tools 我沒用過,或許未來會繼續擴下去。
Software
1. cmd instructions < cd , xcopy, copy , mkdir , rmdir , attrib , del >
2. WinMerge , Beyond Compare
3. NotePad++
最近 team 遇到了這鬼問題,全都是源自於萬惡的 vc6.0 移到 vs2010 上面所帶來的效應。言歸正傳,長話短說。
專案裡有一份 exe 和數份 dll (上百份) ,dll 是購買機制,exe 部份功能是看 dll 有沒有開啟。早期 exe 和 dll 都是用 vc6.0 完成的。
exe 從 6.0 升級到 2010 ,dll 也從 6.0 升級到 2010 ,這四種搭配必須無誤,問題點在於有一個功能竟然是直接傳 pointer to class,而這個 class 還是繼承自 MFC 來的,可以想做是 class CMyButton。這個 class 不論 dll 還是 exe 專案,都有同樣的 source code 塞進去。問題點出在,class MyButton 在 vc6.0 和 vs2010 下編譯,大小並不相同 ( 廢話,光是繼承 CButton,再繼承 CWnd ,再繼承 CCmdTarget,這個只要 MFC 中間有改過一個就不一樣了 ) ,接下來的麻煩就不用我講了吧。
問題應源自於,部份 dll 要畫 UI 時,是 exe 和 dll 各負責一半 ( = = 沒錯,是各負責一半,所以在各自專案裡, CMyButton 兩邊都有一份相同的 source code) 。說實在的目前我沒想到好的解決方法。
(1) 可以的話是想在 CMyButton 裡做 padding size,簡單的說就是再手刻一份 CMyButton 能同時相容 6.0 和 2010 ,一方面不確定這辦得到,一方面後續要改很麻煩。
這陣子 trace 一些老專案,發現一些效能上的議題,記性不好,僅做筆記。然後老專案是用 vc6 開發的,裡面一些常用的東西拉出來實測後真的是讓人暈倒。
有些議題可能必須開文慢慢紀錄,但實在沒太多時間撰 blog, 只好先把想法記錄下來。
1. C++ STL vs MFC ATL
(1) CArray<int, int> 速度比 vector<int> 還慢 ,而且慢不少。
(2) STL 裡面有提供 <algorithm> , 但 MFC 裡之 ATL container 真的單純只是資料結構而已,其他要做排序、搜尋、有的沒的就.. 嗯。
標題有點無厘頭,不過說穿了是個簡單的技巧而已。
首先,我猜有更好的做法,如有網友說可用 LoadResource / LoadResourceString 方式完成。
問題敘述
(1) Q1 : 一開始我用 C/C++ 產生 exe,這個 exe 像是直譯器,會去讀某個 script file,做相對應的事。但如此一來,要在某台電腦裡執行某些 script 時,就必須要給兩個檔案 (exe 和 script ),有辦法包成一個就好嗎?
(2) Q2 : 程式有接硬體,程式碼裡某項功能有鎖特定之硬體序號等資訊(將近 1KB 資訊),但每次客戶有需求時,就必須要把硬體序號等資訊重新改過,再 rebuild 過。有辦法不重新 rebuild 嗎?

目前 VS 是我工作最常碰到的 IDE,無奈的 VC6.0 是整個專案延續下來的遺產 ( 期望有機會整個移植出來 )。
用 VS 系列同好大概都對其 debug 功能有所讚許,唯 VC6.0 debug 功能其實還不算穩定,
在 Debug Mode (不是 Release Mode) 下有些特別的情況...
像是整個 IDE 當掉、Watch 視窗竟然找不到 Local Variable... etc,
其實更糟的是 VC6.0 的自定義視窗拖拉,做得很糟,一個螢幕範圍可以放得 Debug Information 其實很少。
最近公司比較忙,趕案,較沒空寫 blog ,一點心得,歡迎交流。
----------- Journal -----------
1. RD = Research & Develope , 別期待 RD 會有很多時間是在 Develope , 更多時間是在 Research & Using。
2. 別期待工作上 Coding 人人都有好習慣 , 相對的要訓練自己 , 能和 Coding 有不好習慣的人相處 , 像是變數名稱一堆 P1, P2, ... P23 的時候 ...
3. 在「非草創 (不一定是大公司) 」的公司裡,Trace , Debug , 加需求 , 會是最常做的事,因產品基本上都有大概的架構出現,蠻多部份都是先基於以前有的架構繼續做改善。
這篇文章受密碼保護,請輸入密碼後查看內容。

在筆者幹家教,教 C language 時,曾有位學生拿了學校老師的作業出來問我,作業說明不多,只有一張圖,類似下面這張。
畫出 sin 圖形,另那份作業是需要「標座標」的,也就是要標 x, y 軸刻度,及交點座標。當下是怕太擔誤課程進度,所以並沒當下解,而是回去時候才花了一、二個小時畫出來 (其中半小時是在推座標公式,半小時是在調刻度及標號交點,剩下 Coding 很快)。
解題方向
無論如何記得一件事,一般 y 軸座標遞增方向,和一般數學上 y 軸座標遞增方式是反過來的。
首先要聲明,筆者認為 [在 console 裡畫圖型] 只是練習用而已,然後解法大致分成三大類。
半廣告文,半資訊文。
說實在話有點意外,以往一直認為台灣分享風氣不盛,導致不少初學者認為台灣程設沒高人 ( 沒要筆戰,就別死咬這點了 ),原因只是因為找到的文章多屬英文和簡體。
然後今天在 ptt soft_job 看到「程式人雜誌」 http://programmermagazine.github.com/201301/
裡面的「關於程式人雜誌」,寫得讓人感到頗吃驚的 (以下引用)
程式人雜誌是一個結合「開放原始碼與公益捐款活動」的雜誌,簡稱「開放公益雜誌」。開放公益雜誌本著「讀書做善事、寫書做公益」的精神,我們非常歡迎程式人認養專欄、或者捐出您的網誌。