Saturday, December 23, 2006

停車場

信用卡

best ftp

http://www.filehippo.com
http://www.download.com

Monday, November 27, 2006

C/C++

C語言
http://zh.wikipedia.org/w/index.php?title=C%E8%AF%AD%E8%A8%80&variant=zh-tw#.E5.9F.BA.E7.A1.80.E6.95.B0.E6.8D.AE.E7.B1.BB.E5.9E.8B

struct {int a[3], b;} hehe[] = { [0].a = {1}, [1].a = 2 };
struct {int a, b, c, d;} hehe = { .a = 1, .c = 3, 4, .b = 5} // 3,4 是對 .c,.d 賦值的
字元串裡面,\u 支持 unicode 的字元
所以 printf scanf 的格式化串多支持了 ll / LL (VC6 里用的 I64) 對應新的 long long 類型。
除了已經有的 __line__ __file__ 以外,又支持了一個 __func__ 可以得到當前的函數名
增加和修改了一些標準頭文件, 比如定義 bool 的 定義一些標準長度的 int 的 定義複數的 定義寬字元的 有點泛型味道的數學函數 跟浮點數有關的 里多了一個 va_copy 可以複製 ... 的參數。 里多了個 struct tmx 對 struct tm 做了擴展

C++
http://zh.wikipedia.org/w/index.php?title=C%2B%2B&variant=zh-tw

變數

http://people.ofset.org/~ckhung/b/pr/variable.php

畫面左邊
亂掉了?!

變數


何謂變數? 在談論與變數相關的問題時,
請記得所有程式語言到最後都要編譯或解譯成電腦看得懂的機器語言。
機器語言的層次, 沒有變數的概念, 只有 「記憶第幾個 byte 起, 到第幾個
byte 為止」 的概念。 也許 把每一個簡單變數想成是一個盒子,
下面的觀念就會比較具體了。

r-value 與 l-value


  1. x = 5; 與 5 = x; 這兩句話看起來很相似, 為什麼第一句正確;
    而第二句不正確呢? 第二句錯在那裡呢? 5 與 $x 都可以 提供值
    所以兩句的等號右側都沒有問題。 另一方面 $x 可以 提供空間
    用來裝其他的值; 而 5 不是, 所以第二句錯了, 錯在等號左邊。


  2. 心得: 一個無辜的簡單變數, 其實沒有那麼單純。 寫法沒有改變,
    但在某些場合它的功用是提供值 (我們有興趣的是去讀取它的值);
    而在某些場合它的功用卻是提供空間。 一個變數出現在提供值的場合時,
    我們稱它在此扮演 r-value 的角色;
    當它出現在提供空間的場合時時, 我們稱它在此扮演 l-value
    的角色。


  3. 誰來決定「場合」 (上下文, context)?
    變數通常當做運算子的運算元, 或函數的參數, 所以決定一個變數究竟扮演
    r-value 或 l-value 角色的, 通常就是運算子或函數。 例如 "=" (c 與
    perl 裡面的 assignment operator)
    這個運算子要把右邊的值放入左邊的盒子去, 所以我們看到 =
    就知道它左邊的東西必須扮演 l-value 的角色; 而它右邊的東西必須扮演
    r-value 的角色。


  4. 有些東西只能當 r-value, 例如 literals; 有些東西既可當 r-value
    又可當 l-value, 例如變數的名字。


  5. 有些運算子需要 r-value, 例如 + 的兩側又例如 = 的右邊;
    有些運算子需要 l-value, 例如 = 的 左邊;
    有些運算子需要一個運算元同時可以扮演 r-value 與 l-value 的角色,
    例如 ++。


  6. Q: 在 ++i; 這句話當中, i 扮演什麼角色? 在 x
    = y = z;
    這句話當中, y 又扮演什麼角色?



作業: 請把下列敘述翻譯成白話文:


  1. 變數可以扮演 r-value 的角色, 也可以扮演 l-value 的角色; 像是 7,
    "hello" 這樣的 literal, 則只能扮演 r-value 的角色,
    不能扮演 l-value 的角色。


  2. + 號要求它兩側的運算元扮演 r-value 的角色; ++
    要求它右邊的運算元先扮演 r-value 的角色, 再扮演 l-value
    的角色。



Life Time

一個變數, 從它開始佔有一塊記憶體起,
一直到它佔用的記憶體空間被系統收回為止, 這段時間稱為它的 life
time
("生命期")。



變數按照其產生與消失的時機/方式可分為:


  1. 靜態變數: 從程式開始執行起就存在, 到整個程式執行完畢才消失。
    包含所有的 global scope 及 file scope 變數, 還有 block scope
    變數當中加上 static 關鍵字的變數。


  2. 自動變數: 程式流程執行到某一區段 (例如進入一副程式) 即自動在
    activation record 中產生,
    程式流程將離開該區段前即消失。 Block scope 變數中, 除了以 static
    宣告以外的所有變數都是。


  3. (手動的)動態變數: 程式設計師以 malloc 向系統要空間時產生, 以
    free 將空間釋放回系統的 free store 時消失。

變數的起始值設定: 只在產生時設定一次。



副程式內的靜態變數的用途: 常用來記錄過去的呼叫歷史,
如統計總呼叫次數或記錄先前呼叫時的參數/結果。 作業: 參考系統副程式
strtok(), 自己寫一個簡化的版本。 (C 當中 "static" 一詞兩用,
且意義相差甚遠, 請特別注意!)

Scope

在最簡單的程式語言裡 (例如許多工程計算機的記憶功能),
一個變數的名字恰恰對應到一個固定的盒子; 從來不會有兩個不同的盒子
(也就是在記憶體中, 不同位址開始的兩串 bytes) 竟然共用一個名字。
如果世界一直都是這麼簡單就好了, 這一節要解釋的問題也就不存在了;
但如果你的程式包含 5 個以上的副程式, 很快就會發覺這個簡單的規則,
其實是一個惱人的限制: 在寫第 5 支副程式時, 你必須記得前面 4
支副程式用到了那些變數, 以免不小心重複使用同一個 (名稱不小心相同,
但在你心中其實完全不相干的數個) 變數, 造成副程式之間互相干擾。
如果程式更大, 作者不只一人, 甚至連記憶力也解決不了問題了。

於是有了 global variable (全域變數)local variable
(局部變數)
的概念: 每個副程式可以有自己專屬的變數,
與其他副程式當中同名的變數互不相干, 稱為這個副程式的 local variables
-- 就像四技一A 有一位同學叫總務; 二技三B 也有一位同學叫總務一樣。
至於需要讓所有 (或很多) 副程式共同使用的變數,
就將它放到所有副程式外面, 成為 global variables。
程式設計師當然應該多用 local variables, 避免使用 global variables,
才不需要像先前描述的一樣擔心和其他副程式用到相同的變數。

一個變數的「知名度」稱為它的 scope: 簡單的情況下,
例如一個 global variable, 它的 scope 就是整個程式; 而一個 local
variable, 則可能只有它所在的副程式可以「看得見」它 (在其他副程式當中,
如果去用到這個名字, 你的 compiler 或 interpreter 就會抱怨 "undeclared
identifier" 或 "undefined variable" 等等)。

如果同一個名字的兩個變數 (都叫做 x 好了), 一個是 global, 另一個是
local 呢? 筆者所知道的程式語言都遵循一個很自然的規則:
在「看得見」兩者的地方, 凡是談論 x, 必定是指 local 的 x;
在只「看得見」 global 的地方, 談論到 x 當然就是指 global 的 x 嘍。
("我們的總務" 這個詞, 出現在班會的場合, 指的是誰?
出現在全系同學集會的場合, 指的又是誰?) 知名度低的變數 ("地頭蛇"),
會「覆蓋」過知名度高的變數 ("天高皇帝遠"),
有一些書或手冊把這個現象叫做 shadow (要注意區分文中 shadow
一詞是主動還是被動)。

很多語言 (例如 pascal 與 lisp 語系)
允許副程式的定義裡面又有副程式的定義,
所以局部/全域變數的觀念其實不限於上述的兩層。 ("我們的總務" 這個詞,
如果出現在全校同學集會的場合, 指的又是誰呢?) C
語言不允許副程式的定義嵌在副程式裡面, 但也有三個不同層次的 scopes:
互相連結 (link) 的所有程式檔都能夠看到的真正的全域變數 (用 extern
宣告全域變數; extern 省略也可以); 只有這個程式檔內的副程式可以看到的
file scope variable (在全域變數前面加 static,
降低它的知名度); 和副程式的局部變數。 詳見
個別編譯與相關議題。 ANSI C
更允許每個 block (例如 for 迴圈) 裡面有更局部的變數。

namespace

有時候我們希望在同一個場合使用到隸屬於不同 模組/類別/檔案/程式庫,
但具有相同名字的兩個副程式 (或變數)。
這時需要有一個語法讓我們可以稱呼「A 類別的方法 f」 以便和「B
類別的方法 f」區分。 在 c++ 當中, 用 :: 表示「(某類別) 的」, 在 perl
當中, 同樣用 :: 表示「(某模組) 的」, 這個運算子叫做 scope
resolution operator
。 通常一個 模組/類別/檔案/程式庫
(究竟是何者, 要視語言而定) 就定義了一個 namespace,
所以不同的 模組/類別/檔案/程式庫 當中可以出現名稱相同,
但其實完全不相干的變數或函數; 而如果有需要的話,
程式設計師仍舊可以在同一場合將它們拿來使用, 只要把 namespace
與變數的名稱一起寫出來就可以了。 ("各班的總務請將錢交給系學會的總務")
你也可以把 A::f 視為一個函數的全名, A 是它的姓, f 是它的名。
寫小程式時, 所有的變數都在同一個 namespace 當中,
所以我們習慣直呼其名; 同時使用到好幾個 namespaces 時,
就必須要連姓帶名喊出來了。

支援 namespace 觀念的語言, 通常也支援多層次的 namespace --
也就是說 namespace 裡面又有好幾個 namespaces。

Lexical (Static) Scoping 與 Dynamic
Scoping



先前我們提到 shadow 的觀念; 這節我們要談的是 shadow
沒有發生的狀況: 在程式原始碼的某一點 (例如在副程式 h 當中),
用到一個變數 x, 但 local variables 當中並沒有 x。
先前我們的答案很簡單: 那麼這個 x 指的當然就是 global 的 x 嘍!

問題是: 那一個 global 的 x? 在 pascal 與 lisp 語系
等等允許副程式定義裡面又有其他副程式定義的語言裡, 單單講 global 與
local 並不清楚。 如果最內層的副程式裡面沒有宣告 x 但卻用到了 x,
那麼究竟要去那裡找其他 (比較 global) 的 x? 像這個
例子

最直覺的答案是: 看程式碼, 找最內層 (最 local) 的 x。
這種「根據程式碼當中, 變數出現的位置,
來決定未在本地宣告的變數究竟來自何處」的規則, 叫做 lexical
scoping
也叫做 static scoping。 大部分的語言 (例如
pascal) 都採取這個規則。

還可能有別種規則嗎? Lisp 語系的眾多方言 (dialects) 當中, 有許多
(例如 emacs lisp) 採取的是 dynamic scoping:
光看程式碼還不夠, 必須真的知道程式執行的過程, 畫出程式執行到使用 x
那句話當時的 系統堆疊, 由內
(最近放上去的 A.V.) 向外找到何處有宣告 x。 在 lisp 的某些方言 (例如
librep) 當中, 平常採取的是 lexical scoping; 但如果你用 defvar
宣告變數, 則這個名稱的變數就變成了 dynamic scoping。 在 perl 當中,
比較常用 lexical 變數 (用 my 宣告); 如果要用 dynamic scoping, 必須用
use vars 宣告全域變數, 用 local 宣告局部變數。

用術語來講, lexical scoping 循的是 static ancestors
的族譜向上找 (h -> f -> 最外層); 而 dynamic scoping 循的是
dynamic ancestors 的族譜向上找 (h -> g1 -> f ->
最外層 或 h -> g2 -> f -> 最外層)。







Tuesday, November 21, 2006

UART

TI 界面產品 : Universal Asynchronous Receiver/Transmitters (UARTs) http://www.ti.com.tw/product/interface/uarts.asp


WINCE 支援 16c550 driver

Monday, November 20, 2006

CETK

setup CETK
1.move D:\WM500\OTHERS\WCETK\ARMV4I\clientside.exe to D:\WINCE500\OTHERS\WCETK\ARMV4I\clientside.exe

2.modify Edit command line to::: tux -o -d fsdtst -x1001-1010,5001-5031 -c"-zorch -r '\IPSM'"

Microchip pic

The 8-bit PIC® microcontroller solutions select guid
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=74

Wednesday, November 15, 2006

8051 microcontroller FAQ

http://www.faqs.org/faqs/microcontroller-faq/8051/
A1: 11.0592 MHz crystals are often used because it can be divided to
give you exact clock rates for most of the common baud rates for
the UART, especially for the higher speeds (9600, 19200).
Despite the "oddball" value, these crystals are readily available
and commonly used.

A2: When Timer 1 is used as the baud rate generator, the baud rates
in Modes 1 and 3 are determined by the Timer 1 overflow rate and
the value of SMOD (PCON.7 - double speed baud rates) as follows:

smod
2
Baud rate = ------ x (Timer 1 overflow rate)
32

Most typically, the timer is configured in the auto-reload mode
(mode 2, high nibble of TMOD = 0100B). In this case, the baud
rate is given as:

smod
2 Oscillator frequency
Baud rate = ------- x --------------------
32 12 x (256 - TH1)

Some typical baud rates for an 11.0592 crystal:

Baud rate SMOD TH1
---------------------
19200 1 0FDH
9600 0 0FDH
4800 0 0FAH
2400 0 0F4H
1200 0 0E8H
300 0 0A0H

Another way to look at it, would be to rework the formula to give
us the crystal frequency that we need for the desired baud rate:

smod
Minimum crystal frequency = Baud rate x 384 / 2

This gives us the minimum crystal frequency possible for the
desired baud rate. The frequency can be evenly multiplied to
obtain higher clock speeds.

As an example, the minimum crystal frequency for 19.2K baud is:
3.6864 = 19200 x 384 / 2 (smod is 1 for 19.2K baud)

11.0592 = 3.6864 x 3


To determine the timer reload value needed, the formula can be
changed to factor in the multiplier:
smod
Crystal frequency = Baud rate x (256 - TH1) x 384 / 2


From the example above, the multiplier (3) is used to determine
TH1:
TH1 = 256 - 3 = 253 = 0FDH

The crystal frequency for 19.2K baud is:
11.0592 = 19200 x (256 - 0FDH) x 384 / 2
(smod is 1 for 19.2K baud)


Other values can also give good results, but 11.0592 is one of
the higher speed crystals that allows high baud rates.

Friday, November 10, 2006

C - Approved standards

http://www.open-std.org/JTC1/SC22/WG14/www/standards

Thursday, November 09, 2006

使用Subversion进行版本控制

http://www.subversion.org.cn/svnbook/1.1/index.html

Turbo explorer download

Turbo explorer已經開放下載了。目前有下列四個版本:

* Turbo C++
* Turbo C#
* Turbo Delphi
* Turbo Delphi for .Net


有興趣的人快去下載吧。
http://www.turboexplorer.com/downloads

Wiki

tiddlywiki
http://trac.tiddlywiki.org

best Editor

Notepad++ is a free source code editor (and Notepad replacement), which supports several programming languages, running under the MS Windows environment.
http://notepad-plus.sourceforge.net

Wednesday, November 08, 2006

Google AdSense for Search

http://www.google.com/custom" target="google_window">
Google

HTML语法

细说HTML标签
在HTML语法中,大致上可以分为: ( 节录自‘网站建置百宝箱’)
http://leekindo.googlepages.com/t_htm

High Level Assembler

HLA On-line Documentation and Resources
http://webster.cs.ucr.edu/AsmTools/HLA/index.html
HLA Language Reference Manual
http://webster.cs.ucr.edu/AsmTools/HLA/HLADoc/HLARef/HLARefTOC.html

Assembly Language

Current High-Level Assembler (HLA) Download is Here
HLA v1.86 is now available and represents the most comprehesive update since the port to Linux. Also included are the HLA test generation program (that generates all the instructions in all their forms for testing HLA) and Randy's new disassembler engine he is writing for "The Art of Disassembly".

Which Assembler is the Best?
The following links take you to pages containing assembly language development software, sample source code, libraries, programming tools, and documentation for various assemblers that are freely available.
Assemblers
HLA (the High Level Assembler)
MASM (Microsoft's Macro Assembler)
FASM (the Flat Assembler)
NASM (the Netwide Assembler)
Gas (the FSF/GNU Assembler)
GoAsm (Jeremy Gordon's Assembly Toolset)
NBASM (New Basic Assembler)
WASM (Open Watcom Assembler)
Integrated Development Environments
IDEs for HLA, MASM, FASM, GoAsm, NASM, etc.
Debuggers
OllyDbg for HLA, MASM, FASM, and other assemblers
Writing Your Own Assembler
The Assembler Developer's Kit

ARM ASSEMBLER

http://www.heyrick.co.uk/assembler/index.html

Good WinCE blog

阿冰BLOG
http://ustcers.com/blogs/devzhao/

Windows Mobile Version 5.0 Serial Port Driver Samples

Developing a Device Driver > Windows Mobile-based Device Drivers > Serial Port Drivers
The following illustration shows how the different serial driver components combine to form a serial driver.

[You can see Mobile help picture]


The following table shows the serial port driver sample code locations.
Location
Description
%_WINCEROOT%\Public\Common\OAK\CSP\ARM\Intel\PXA27X\Serial
Serial port driver for the PXA27X.
%_WINCEROOT%\Public\Common\OAK\CSP\ARM\PXA25X\Serial
Serial port driver for the PXA25X.
%_WINCEROOT%\Public\Common\OAK\CSP\ARM\S3C2410X\Serial
Serial port driver for the S3C2410X.
%_WINCEROOT%\Public\Common\OAK\CSP\MIPS\AMD\AU1\Serial
Serial port driver for the AMD AU1.
%_WINCEROOT%\Public\Common\OAK\CSP\MIPS\NEC\VR4131\Serial
Serial port driver for the NEC VR4131.
%_WINCEROOT%\Public\Common\Oak\Drivers\Serial\2890_SER
USB function driver for Netchip NET2890 that exposes the serial interface.
%_WINCEROOT%\Public\Common\Oak\Drivers\Serial\COM16550
Lower layer.
%_WINCEROOT%\Public\Common\Oak\Drivers\Serial\COM_CARD
Lower layer sample code to support the 16550 UART and PC Card–based serial ports.
%_WINCEROOT%\Public\Common\Oak\Drivers\Serial\COM_MDD2
Upper layer that addresses transmission performance issues in the Windows CE .NET 4.2 and earlier serial port driver upper layer, but requires some modifications to existing lower layers.
%_WINCEROOT%\Public\Common\Oak\Drivers\Serial\ISR16550
Sample installable ISR for the SER16550 serial library.
%_WINCEROOT%\Public\Common\Oak\Drivers\Serial\OO16550
Serial driver PDD 16550 common code.
%_WINCEROOT%\Public\Common\Oak\Drivers\Serial\SER16550
Library for supporting 16550-compatible UARTs is included. The lower layers use this.
%_WINCEROOT%\Public\Common\Oak\Drivers\Serial\SER_CARD
Lower layer sample code to support the 16550 UART and PC Card–based serial ports.
%_WINCEROOT%\Public\Common\Oak\Drivers\Serial\SER_CARD2
Lower layer sample code to support the 16550 UART and PC Card–based serial ports.
%_WINCEROOT%\Public\Common\OAK\Drivers\Serial\Serpddcm
Serial driver PDD common code.
%_WINCEROOT%\Platform\Aspen\Drivers\Serial
Legacy lower layer.

Windows Mobile Version 5.0 High Speed Serial Port Driver (16550)

Developing a Device Driver > Windows Mobile-based Device Drivers > Serial Port Drivers > Serial Port Driver Development Concepts
The sample installable interrupt service routine (ISR) allows you to capture data from the serial port at a higher rate than with a regular serial port driver. This ISR, which is also referred to as ISR16550.dll, is in %_WINCEROOT%\Public\Common\Oak\Drivers\Serial\ISR16550. Any serial driver that links with the SER16550 serial library located in %_WINCEROOT%\Public\Common\Oak\Drivers\Serial\SER16550 can use this installable ISR.
ISR16550.dll minimizes the time to signal the interrupt service thread (IST). This allows faster data transfer because there is a penalty for the system to schedule the IST. ISR16550.dll buffers data from the hardware to receive first-in, first-out (FIFO) data and fills up hardware transmit FIFO data from the software buffer without IST involvement. The IST is signaled only when the receiving buffer reaches its threshold and the transmitting buffer is empty. The IST is also signaled when the incoming data stream times out, which is same condition as hardware FIFO. This allows less frequent signals to the IST and SER16550 or the driver using the installable ISR can handle high throughput.
ISR16550.dll is loaded and enabled when HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial registry key contains certain subkeys and values. The following table shows the specific subkeys and values to include with the HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial registry key.
Subkey
Value
"Irq"
DWORD:3
"IsrDll"
"isr16550.dll"
"IsrHandler"
"ISRHandler"
If the SER16550 driver does not find any of these registry subkeys and their correct values, or the SER16550 driver cannot load the installable ISR, the installable ISR does not load and soft FIFO is disabled for the SER16550 driver or the driver that is trying to use the installable ISR.
The following registry key example shows the entire HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial registry key:[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial]
"SysIntr"=dword:13
"Irq"=dword:3
"IoBase"=dword:02F8
"IoLen"=dword:8
"DeviceArrayIndex"=dword:0
"Prefix"="COM"
"Dll"="Com16550.Dll"
"Order"=dword:0
"Priority"=dword:0
"IsrDll"="isr16550.dll"
"IsrHandler"="ISRHandler"
In this example, the value for the Irq registry key is DWORD:3, which means that the driver uses IRQ line 3. If you are using a PCI device, the PCI bus driver generates this entry automatically. If you are using this driver for an ISA or built-in device, this value must be in the registry entry for the driver to use the installable ISR.

Software/Project Management

JIRA
http://www.atlassian.com/software/jira/
Features
Manage bugs, features, tasks, improvements or any issue
A clean and powerful user interface that is easy to understand for both business and technical users
Map your business processes to custom workflows
Track attachments, changes, components and versions
Full text searching and powerful filtering (customisable, saveable, shareable and subscribeable!)
Customisable dashboards and real-time statistics
Enterprise permissioning and security
Easily extended to and integrated with other systems (including email, RSS, Excel, XML and source control)
Highly configurable notification options
Runs on almost any hardware, OS and database platform
Web service enabled for programmatic control (SOAP, XML-RPC and REST interfaces)
and much more...

Software/Project Management

CodeBeamer
http://www.intland.com/
*Key Features
Project, Task and Change Request tracking
Workflow driven change enforcement (tracker)
SCM independence
Knowledge management with Mind Mapping
CMMI software process support
Document Management with versioning
Team discussion forums
Integrated multi-functional dashboard
Role and group-based secure access management
Intuitive Web-based interface
Source code quality with code trending
Full text search on all information
Build management with Ant, Make, Maven
See all features
*Key Benefits
Improves project management by providing real-time visibility and control across multiple initiatives
Controls project scope with powerful task and change management, ensuring repository commits are associated with an approved change
Increases team productivity and promotes reuse by providing fast, searchable access to all development and communication assets
Enables comprehensive impact analysis and traceability of assets throughout the project lifecycle from requirement to source code
Protects valuable intellectual capital by capturing, linking, and persisting knowledge as it is created and communicated
Increases team productivity and reuse by providing fast, easily identifiable access to information and assets
Key Integrations
Eclipse, WSAD
Lotus Notes
Subversion, CVS, CM Synergy, PVCS, VSS, WebDAV
MS Office, Star Office
Wiki, FreeMind
LDAP, Siteminder
DB2, MySQL, Postgress, Oracle
See all integrations

Tuesday, November 07, 2006

MP3

好用的 MP3 軟體 -- 千千
http://ttplayer.com/

Monday, November 06, 2006

Wiki

正在研究好厲害的 Wiki 觀念, 資料來源 http://zh.wikipedia.org/wiki/Wiki%E5%BC%95%E6%93%8E
不同Wiki引擎的介紹
MediaWiki:PHP語言開發的wiki引擎,維基百科所使用的引擎。支援繁簡中文。
安裝需求:Apache + PHP + MySQL
    IIS + PHP + MySQL亦可執行,但是部份源碼的的參數需要修改(參見meta的說明)
最新版本:穩定版本1.8.2
SushiWiki:用C#開發的WikiClone,中文支持較好。
安裝需求:IIS + ASP.Net + (可選的資料庫伺服器)
最新版本:SushiWiki V1 RC2
FlexWiki:微軟的開源產品,開發語言為C#,基於CPL(Common Public License)協議,不支持中文連結。
安裝要求:IIS + ASP.Net
最新版本:FlexWikiCore 1.8.0.1696
JASSWiki
安裝需求:IIS + ASP 不需要資料庫
JspWiki 是一套非常容易安裝的系統,支持JSP腳本
安裝需求:JDK + tomcat
OpenWiki 2004是一款非常出色的WIKI引擎,基於ASP開發,而目前ASP的WIKI引擎數量稀少,因此OpenWiki無疑是基於IIS+ASP的伺服器的首選.支持中文(一般)。
安裝需求:IIS + ASP + ODBC
WikkiTikkiTavi:小巧輕快的 Tavi 系統
安裝需求:PHP + MySQL
ChiqChaqWiki:預設給一般人使用的 WikiClone. 支持 utf-8,繁體中文沒問題,但不支持 RSS
PersonalWiki:個人使用的 Wiki 系統
OddMuse:使用 Perl 的 Wiki 系統
TheWikiWay:介紹WikiWiki協作編輯系統的專著
MoinMoinWiki:Python cloned Wiki 支持中文版本,可運行在Windows、Linux/BSD/UNIX、OS X等環境下。目前能夠處理英文、德文、繁簡體中文、日文、俄文等約20種語言。
WakkaWiki:十分小巧的基於PHP+MySQL的wiki。由於其小巧簡潔,非常適合基於他進行個性化改進。
CooCooWakka:一個基於WakkaWiki的中文改進版,支持簡體和繁體中文。
PmWiki:PmWiki 使用 PHP 語言開發,容易安裝配置,無需資料庫支持。支持分組及分級(全站、組、單個頁面)讀寫許可權,支持中文及UTF-8編碼,官方不支持中文連結。參考PmWiki 簡體中文版
XOOPSWAKKA:基於Wakka修改的XOOPS Wiki模組,支持簡體中文與繁體中文,並加入了目錄,中文索引,腳注,日曆,文件上傳等新功能。
DokuWiki:這是一個符合標準,簡單易用的維基軟體,主要用來生成說明文件。它的目標是開發團隊,工作小組及小型公司。
UseModWiki:採用Perl語言所開發的維基引擎,曾為維基百科所使用。
Instiki:採用Ruby on Rails 框架開發的維基引擎,以安裝簡便和使用方便而著稱。
Generic Applications Server