Archive for April, 2008

深奧的Python

Thursday, April 24th, 2008

最近在計畫編寫一個Assets Management Tools,所以在想這樣的工具,最好的編寫工具是什麼。我理想中的結構是由多個不同的工具所組成,其中之一個是Web介面。 所以就試用了一下Django,跟了它的幾個example寫了一下。實在是設計得很好。由其是它的MTV(Model-Template-View)式的設計,實在夠方便。 但是有一點,是我完全不明白它是如何做得到的: from django.db import models # Create your models here. class Publisher(models.Model): name = models.CharField(maxlength=30) address = models.CharField(maxlength=50) city = models.CharField(maxlength=60) state_province = models.CharField(maxlength=30) country = models.CharField(maxlength=50) website = models.URLField() 這個是Models.py 中定義的Model,django會自動找出所有在這裡被定義的class,再把它們變成相對應的SQL ...

我的開源兒子 amop [amop 見聞錄]

Monday, April 14th, 2008

amop 是我所寫的一個C++ Mock Object[1. 有空會談多些 Mock Object 的運用] Framework,它是開源[1. Open Source]的,也是我第一個開源的程式。 在我開發這個程式之前,我也是使用其他人所寫的Mock Object Framework,但使用起來,發覺有一點麻煩: class Interface { virtual ~Interface(){}; virtual void Foo() = 0; }; class BaseMock : class Interface, MockObject { virtual void Foo() { // Check this function is called } } ... BaseMock mockObject; ... // Some way ...

Macro 小技巧 [C++ 求生筆記]

Wednesday, April 9th, 2008

假如要寫出以下的Macro[1. 當然最好是用template,這個只是例子]: #define SWAP(a, b) \ temp = (a); \ (a) = (b); \ (b) = temp; float temp; float a = 10; float b = 20; // case 1 SWAP(a,b); // Correct. // case 2 if( a > 10) { ...

Keyword Static (Function) [C++ 求生筆記]

Monday, April 7th, 2008

有一些 C 的語法,在 C++ 的程序員相對少用。但就是因為這個原因,有時就會忽略了。 假設我們有一個Header檔 Foo.h: static void f1() { std::cout

Keyword Template [C++ 求生筆記]

Friday, April 4th, 2008

作為一個C++程序員,C++ 這語言本身的認識,是很重要的。有時,有一些語法和守則,因為太少接觸和應用,所以會完全忽略了。希望這個C++ 求生筆記系列,可以給大家參考和交流一下。 今天先說一下這個keyword:template,一個簡單的使用如下: template < typename T > class Foo { public: template R Func() { ...

新的網誌

Thursday, April 3rd, 2008

最近每天也在追看Milo的網誌,發覺真的學到許多東西。當年和他討論過((好像很多年前的事了...)),為什麼香港的遊戲業不怎麼發展。有很大部份原因是,大家的交流實在是太少了。 回想自己在這幾年由不同人身上,學到了不少有關遊戲編程相關的知識, 所以我決定開始這個新的網誌,專注地寫下我所知道的,希望能和大家交流一下。