libMMI 是我在工作上,順帶寫的一個程式庫。目的在累積 domain independent 的 know-how,以加速日後程式的建構。發展準則有:

  • Incremental construction - 有用到的 feature 再加,慢慢累積。
  • Homogeneous across languages - 橫跨若干 programming language,不同於 C# 的 CLI,只求用法、API 長相差不多就好。目前用到的有 C/C++、Perl、PHP、SH 等程式語言。
  • Cross-platform if possible - 盡可能地隱藏 cross-platform 的細節,目前可以橫跨 FreeBSD/Win32 以及 GCC3/MSVC6。不過因為 incremental construction 的發展準則,尚未 porting 的功能,會產生 pre-processor-time 或 run-time error。
  • Privode both C/C++ interface if possible - 盡可能地為 C/C++ 推出不同介面,對應功能的版本。

就在剛剛,我做了第一千次的 commit。因此趕緊來賽豬公一下:

SHELL> svn log -r 1 svn+ssh://mmi.jeffhung.idv.tw/svn/libMMI
------------------------------------------------------------------------
r1 | jeffhung | 2004-04-19 17:45:19 +0800 (Mon, 19 Apr 2004) | 2 lines

*** empty log message ***

------------------------------------------------------------------------
SHELL> svn log -r HEAD svn+ssh://mmi.jeffhung.idv.tw/svn/libMMI
------------------------------------------------------------------------
r1000 | jeffhung | 2005-08-12 13:17:46 +0800 (Fri, 12 Aug 2005) | 2 lines

Add ::mmi::util::version class.

------------------------------------------------------------------------
SHELL> svn export svn+ssh://mmi.jeffhung.idv.tw/svn/libMMI/trunk/libMMI
...
SHELL> cd libMMI
SHELL> sloccount .
...
SLOC    Directory       SLOC-by-Language (Sorted)
13093   test            cpp=12669,ansic=424
10787   include         cpp=8838,ansic=1949
5764    src_top_dir     cpp=5764
2750    src_mmi         cpp=2750
1898    perl            perl=1898
1123    src_mmi_locale  cpp=1123
912     evaluating      cpp=912
857     src_mmi_string  cpp=857
363     top_dir         ansic=255,sh=108
183     php             php=183
122     src_mmi_utils   cpp=122
34      src_mmi_textproc cpp=34
11      sh              sh=11
0       doc             (none)
0       image           (none)
0       xsl             (none)

Totals grouped by language (dominant language first):
cpp:          33069 (87.26%)
ansic:         2628 (6.93%)
perl:          1898 (5.01%)
php:            183 (0.48%)
sh:             119 (0.31%)

Total Physical Source Lines of Code (SLOC)                = 37,897
Development Effort Estimate, Person-Years (Person-Months) = 9.09 (109.08)
 (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months)                         = 1.24 (14.87)
 (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule)  = 7.34
Total Estimated Cost to Develop                           = $ 1,227,939
 (average salary = $56,286/year, overhead = 2.40).
SLOCCount is Open Source Software/Free Software, licensed under the FSF GPL.
Please credit this data as "generated using David A. Wheeler's 'SLOCCount'."

可惜 Subversion 沒有如 cvsplot 的工具,要不然就可以畫漂漂圖了。