原创 玩了一會兒 SQL Server Compact 3.5

  本來,在 VS2008 Beta2 中見到這個文件型數據庫引擎的時候,覺得還是挺好的,CE 版的數據庫,也有桌面版,畢竟是微軟出品的,基本上不用擔心驅動程序的問題,雖然 SQLite 號稱比它速度快,不過,如果只是用來做單元測試之類的

原创 D Parser 之前:寫一個簡單的虛擬機

  最近寫了一點兒 D 程序,除了感覺標準庫太差之外,沒有一個好的 IDE 也是一個很頭疼的事,特別是沒有智能提示,每次調用一個函數什麼的,都要查文檔或者直接看源代碼,實在是太費勁了。   所以決定自己嘗試寫一個支持智能提示的 D 的 I

原创 獵殺連環木馬

  新裝的XP系統,卻發現偶爾有廣告窗口跳出來,用 360 安全衛士查不到木馬和惡評軟件,安裝了賽門鐵克也沒查到病毒。   打開進程管理器,卻覺得多了很多不認識的進程,殺掉 webtc.exe 後,不出廣告了,可是覺得另外一個叫 Run

原创 點睛文本編碼查詢 D 語言版

  本軟件用於將文本的字符串轉換爲 Text、Default、Unicode、UTF-8 之間的互相轉換,用於文本查詢。轉換結果使用十六進制表示。   D 語言版不需要特殊的運行庫支持。相對於 VB5 版增加了允許輸入十六進制的功能,相對

原创 DbEntry.Net v0.33

  這是我設計的一個輕量級的 .Net ORM (Object Relational Mapping) 數據訪問及 WEB 框架。對於 ORM 和 Sql 調用,它都擁有清晰和易用的接口,目前支持 SqlServer、SQLite、MyS

原创 D 語言的子集的 Z 編譯器

  把 D 語言的語法規則改寫成 ANTLR 的語法腳本後,大概有30多K,編譯的時候,出了很多的錯誤,最後內存溢出了。想一想,也是,一來我對 ANT

原创 .Net 3.5 的擴展方法

  原本,我聽說 Partial Class 的時候,以爲可以爲已存在的類添加方法了,不過,Partial Class 只能在同一個 Assembly 之中的要求,使得它並不能實現這一點。.Net 3.5 增加了很多語言特性,擴展方法是其

原创 沒有 TOP 又如何

  在 玩了一會兒 SQL Server Compact 3.5 裏,我說,因爲 SQL Server Compact 3.5 因爲連 TOP 都不支持,所以會很慢。不過,這兩天想了一下,可能是我小題大作了。   其實在數據庫內部,應該是

原创 D Parser 之前(二):彙編編譯器

  在《D Parser 之前:寫一個簡單的虛擬機》裏,其中計算 1 到 100 之和的程序 add.bin,是使用十六進制編輯器直接編輯出來的。虛擬機制作完後,考慮了一下,如果直接寫 Z 的編譯器,難度還是不小,所以決定,先寫一個彙編語

原创 逗到我了

剛在 C++ 博客上看到一篇中文編程的小文,逗到我了,摘錄一段: cpp 代碼 #define 趁還 while    #define 那個啥 int    #define 總的來說 main    #define 買 cin   

原创 用 ANTLR 做一個四則運算器

  開始把 D 的語法轉換爲 EBNF,發現 D 還支持中文變量名,也就是所謂的 UniversalAlpha,查看了一下 dmd front end 的源代碼,檢查字符是否 UniversalAlpha 的函數是這樣的: int isU

原创 對《ruby on rails爲什麼暫時無法成爲企業應用開發的主流?》的一點看法

  今天看了《ruby on rails爲什麼暫時無法成爲企業應用開發的主流?》一文和它的評論,有一點看法,不過註冊3天才能發技術貼,即使回覆也不行,另外,好像是老文章了,所以算了,在這裏說一下。   該文中說道: 例如JavaEye2.

原创 .Net 3.5 擴展方法的另一個限制

  這兩天用擴展方法用的很舒服,也發現了它的另一個限制,不能擴展“屬性”。  雖然,從本質上來說,屬性不過是兩個特殊命名的方法的一種快捷方式,不過,我

原创 D Parser 之前(三):Z 語言編譯器

  終於把 Z 語言的編譯器做完了。意外的在四則運算上耽誤了很多時間,發現 Grammatica 的四則運算的例子其實是右結合的,費了很大勁才解決了。現在覺得 Grammatica 的完整度好像不是很高,比如沒有幫助建立抽象語法樹的工具之

原创 TestDriven.Net 的 BUG 一枚

  使用 TestDriven.Net 2.8.2130,偶爾發現,在某些情況下,用項目方式運行所有測試用例時,顯示全部通過,但是事實上,有幾個測試是不應該通過的,而且,單獨測試那幾個用例,也是無法通過的。   很奇怪,我用低版本 Tes