Articles

This section contains articles which will hopefully be of interest to a variety of readers. Most of them are technical in nature, dealing with different technologies (C++, web site creation and maintenance, extending Visual Studio...), and some are useful no matter what development technology you use. There will also probably be some non-technical articles here.

Some of the articles were initially published as blog posts, and the links below point to the original blog post. Apart from the actual article content, you may find some comments there which are only relevant to the moment they were written, I hope you will find the articles useful nonetheless....

Windows development

What's broken in the WM_KEYDOWN/WM_CHAR input model? [June 2005]
A detailed review of the windows keyboard input model (WM_KEYDOWN, WM_CHAR, and their problems)

Extending Visual Studio

How to obtain the IVsCodeWindow from the IVsTextView [Sept 2005]
Dealing with IVsTextView [Sept 2005]
How to intercept keystrokes in the VS text editor [Sept 2005]
How does VS internally handle line terminators? [Sept 2005]
Controlling when a package is loaded [Sept 2005]
Hooking Visual Studio global events [Sept 2005]
Availability of the DTE object, or, troubleshooting Visual Studio splash icons [Sept 2005]

Editing with vi/vim

All vi/vim related articles are at the viemu vi/vim tips page.

Be sure to check my vi/vim graphical cheat sheet & tutorial! [March 2006]

And also the article Why, oh why, do those #?@! nutheads use vi? [May 2007]

Web site creation / maintenance

Using Cheetah to structure a web site [Sept 2005]
Cheetah is the framework I use for www.ngedit.com, www.viemu.com, and www.codekana.com.

Developing a compiler

Introductory articles:

Writing a compiler... [May 2005]
More compiler writing [May 2005]
Compiler & VM finished [May 2005]
New customs [May 2005]
Tons o'garbage [June 2005]

Actual review on how to develop a compiler:

Lexical scanning and basic parsing [June 2005]
Generating code while parsing an expression [June 2005]
Generating code for assignments [June 2005]
The bytecode virtual machine runtime environment [June 2005]