Rambling Comments - Len Holgate's blog
Practical Testing: 42 - Another code update
JetByte News: Thirty Years of JetByte
JetByte News: New Year, 2026
Time is an illusion, CLOCK_REALTIME, doubly so...
Compiler Versioning and Continuous Integration
JetByte News: Going Postal, again...
AFD datagram performance
JetByte News: 2025
This project cannot build given the current state of the project.
A multi-connection AFD-based echo server
Socket readiness without \Device\Afd
Visual Studio solution files with unix line-end crash explorer...
More \Device\Afd goodness
Asynchronous Events: Bug in OOB data handling
Debugging yourself...
The US government's view on memory safe code is not the whole story
Oops, broken .htaccess update and 301s leading to 404s
MiniDumpWriteDump now mostly useless for in process use
Old and cranky me from 20 years ago
Adventures with \Device\Afd - a simple server
Adventures with \Device\Afd - a simple client
Adventures with \Device\Afd - test driven design
Merging L'Hexapod's content...
JetByte News: 2024
JetByte News: Long distance debugging
How little things kick you out of the zone
JetByte News: Punch card programming...
Setting the preferred NUMA node for a Windows Service (and making it work after a reboot)
JetByte News: Reanimator!
Multi-threaded testing
Sick PC
Rust - Borrowing mutable references
Rust - Lifetimes
Debugging network protocols with journaling
Rust - Deadlocks
Rust - Accessing the Id Manager from multiple threads
Rust - Sharing data between threads
Testing, discipline and detail
Rust - Simple threading
Rust - Thinking about threading
Wayback
20 years of blogging...
Adventures with \Device\Afd - test driven understanding
Quick and dirty analysis of memory allocations in Visual Studio code
The cost of encapsulation
Building OpenSSL 3.x for x86 and x64 on Windows for side by side deployment
Practical Testing: 41 - GoogleTest
Practical Testing: 40 - Code updates and new functionality
GoogleTest - the first test
VS2022 Version 17.6.0 Preview 3.0 - Standard Library Modules warnings (std.ixx)
Asynchronous Events: Windows Registered I/O code update
Adventures with \Device\Afd
Practical Testing: 39 - 19 years' unit testing the same code
Currently reading - Rust Brain Teasers
Asynchronous Events: Stability
LockExplorer is no more
SetServiceStatus framework bug
Currently reading - Rust Atomics and Locks
Migrating to Hugo
L'Hexapod: More than just a delay, it seems...
Rust - Threading
JetByte News: Onwards into 2023!
Rust - The journey so far
Rust - Clean up and additional functionality
Rust - Generic code in Rust
Rust - Renaming without restructuring
Rust - Smart Ids; object lifetime and mutability
Rust - Building an id manager from a collection of intervals
Rust - Removing values
Rust - Adding intervals correctly
Rust - A collection of intervals
Rust - An interval
Rust - An Id Manager
Rust - Introduction
Allowing renaming but not deleting for files on Windows
Unsupported protocol - and the geeks score another own goal...
JetByte News: More of the same...
Breakpoints that are conditional on other breakpoints...
Asynchronous Events: Recent release notifications
Asynchronous Events: Recent releases and 8.0 beta
Asynchronous Events: Latest release of The Server Framework: 7.4
Asynchronous Events: Latest release of The Server Framework: 7.3
Asynchronous Events: Latest release of The Server Framework: 7.2
Be careful what you ask for...
Asynchronous Events: Latest release of The Server Framework: 7.1
Framework releases
Asynchronous Events: Latest release of The Server Framework: 7.0
Asynchronous Events: Latest release of The Server Framework: 6.9.5
JetByte News: Well, that was different...
Are all fully patched Windows boxes really vulnerable to this easy UDP DDOS attack?
Strangely fatal UDP issue on Windows...
Practical Testing: 38 - Bringing the code up to date, again...
Asynchronous Events: Latest release of The Server Framework: 6.9.4
JetByte News: Happy New Year!
Asynchronous Events: Latest release of The Server Framework: 6.9.3
I don't do roadmaps, but...
Asynchronous Events: Latest release of The Server Framework: 6.9.2
JetByte News: Linux port, new framework releases, mail sorting and industrial control software
JetByte News: Busy, busy, busy...
JetByte News: Linux port, .NET Core, Mail sorting servers, WebRTC
Asynchronous Events: Latest release of The Server Framework: 6.9.1
C++ Tools - Deleaker
C++ Tools - CppDepend - 2017 update...
Asynchronous Events: Latest release of The Server Framework: 6.9
VMWare bridged networking intermittently failing
JetByte News: WebRTC, TLS hardening and Scalable game servers
How to determine if a non-IFS LSP is installed
Asynchronous Events: Latest release of The Server Framework: 6.8
Asynchronous Events: Bug in multi-buffer writes in 6.7
C++ Tools - JetBrains ReSharper C++ - purchased...
C++ Tools - CppDepend
Practical Testing: 37 - Bringing the code up to date
C++ Tools - JetBrains ReSharper C++ is slowly winning me over
Practical Testing: 36 - Timeout handle wrap
Practical Testing: 35 - Heap corruption
C++ Tools - Some thoughts on JetBrains ReSharper C++
Practical Testing: 34 - Potential reentrant locking deadlock
More thoughts on C++ Tools (on Windows)
It must be about time for a 'the state of C++ tooling' rant...
Hosting .Net Core in C++
London MMO Meetup - Christof Wegmann from Exit Games and Ben Hollis from King
Asynchronous Events: Supporting Visual Studio 2015 Update 3
Asynchronous Events: Latest release of The Server Framework: 6.7
Visual Studio Component Cache bug looks like it's here to stay...
Asynchronous Events: 6.7 - Potentially faster code, in some circumstances...
Asynchronous Events: Another release is coming...
Asynchronous Events: Latest release of The Server Framework: 6.6.5
JetByte News: Things have been busy!
Asynchronous Events: TLS 1.2 handshake failure for certificates signed with MD5
Asynchronous Events: Latest release of The Server Framework: 6.6.4
SChannel ALPN support, documentation 'bug'...
GetVersionInfoEx() deliberately broken in Windows 8.1/10
Visual Studio 2015 Bugs - Save As existing file crash
Asynchronous Events: Latest release of The Server Framework: 6.6.3
Visual Studio 2015 RTM - I hope the first service release is soon...
The real solution to 'error MSB4175: The task factory 'CodeTaskFactory' could not be loaded from the assembly'
Solution to 'error MSB4175: The task factory 'CodeTaskFactory' could not be loaded from the assembly'
Bug hunting
Hotfix now available for Slim Reader/Writer lock issue
Video streaming from IoT devices
JetByte News: New IoT fixed-price development project
That Slim Reader/Writer lock issue is a kernel bug
Asynchronous Events: WSARecv, WSASend and thread safety
Living with Gimpel Lint is made so much easier with Visual Lint
Two quite different approaches to multi-threading
How to build a GCC Cross-Compiler
Asynchronous Events: Dropping support for Visual Studio 2005 and 2008
Asynchronous Events: Dropping support for Windows XP and Server 2003
Asynchronous Events: New option pack: Streaming Media
Surprising Slim Reader/Writer Lock thread exit issues.
Asynchronous Events: New client profile: Eonic Gaming - Turf Battles
JetByte News: Eonic Gaming - Turf Battles Triumphus - Server development
Activatable Object
Asynchronous Events: Latest release of The Server Framework: 6.6.2
Asynchronous Events: UDP flow control and asynchronous writes
Efficient Multi-Threading
Useful undocumented Visual Studio compiler switches
Intrusive C++ containers
Practical Testing: 33 - Intrusive multi-map.
Practical Testing: 32 - Intrusive containers.
Bitten by 'scoped static initialisation' in C++ - turn on Visual Studio's C4640 warning!
TIME_WAIT perfmon counters
JetByte News: New fixed-price development project
Asynchronous Events: Latest release of The Server Framework: 6.6.1
Asynchronous Events: OpenSSL outbound connection establishment failure bug in version 6.6 of The Server Framework
JetByte News: More fixed price M2M server development for our secretive security company client
JetByte News: Happy New Year!
Asynchronous Events: New client profile: Wave Systems Corp.
Asynchronous Events: New client profile: Chinese Company - M2M Server
Asynchronous Events: New client profile: Tricerat Inc. - Printer sharing
Asynchronous Events: New client profile: French Security Hardware Company - M2M server for smart alarm panels
Asynchronous Events: Latest release of The Server Framework: 6.6
Asynchronous Events: Release 6.6 to support Visual Studio 2013 and Windows 8.1
Asynchronous Events: 6.6: Saying goodbye to compilers, operating systems and code...
Visual Studio 2013 Preview - isprint() incorrectly classifies ' ' as printable for 'C' locale.
Asynchronous Events: New client profile: Geosocket Information Inc. - Oil and Gas industry GIS developer
Book review: Instant Windows 8 C++ Application Development How-to - Packt Publishing
Asynchronous Events: New client profile: Korean Gaming Company - Mobile Gaming
Comments disabled for a while
10 years of blogging...
The problem with FILE_SKIP_COMPLETION_PORT_ON_SUCCESS and datagram socket read errors is fixed in Windows 8
Asynchronous Events: 6.6 - Breaking Changes - Service Tools Library
Asynchronous Events: Slightly more efficient locking
Incorrect Windows 8 error message change!
Asynchronous Events: Reducing context switches and increasing performance
JetByte News: Fixed price M2M server development for a Security company
New release of Lock Explorer tools now support Slim Reader Writer locks and Mutexes
JetByte News: More of the same in 2013!
Asynchronous Events: Latest release of The Server Framework: 6.5.9
See what process is using a TCP port in Windows
The perils of 'home office' RAID 5
Asynchronous Events: Latest release of The Server Framework: 6.5.8
Asynchronous Events: Write sequencing bug in all versions of The Server Framework
OpenSSL 1.0.1c key files are not compatible with OpenSSL 0.9.8x
Asynchronous Events: AcceptEx() bug in Windows 8 and all Server 2012 variants
Asynchronous Events: Winsock Registered I/O, I/O Completion Port Performance
Building OpenSSL for x86 and x64 on Windows for side by side deployment
Where are all the Microsoft Networking MVPs?
Asynchronous Events: Winsock Registered I/O - Traditional Multi threaded IOCP UDP Example Server
Asynchronous Events: Worrying issue with Windows 8 and AcceptEx...
Asynchronous Events: Windows Server 2012 Registered I/O Performance - take 2...
Asynchronous Events: Latest release of The Server Framework: 6.5.7
Half of the classic singleton is a useful concept; a class that has only one instance. The other half is bollocks; providing a global way to access that single instance.
Asynchronous Events: Latest release of The Server Framework: 6.5.6
Asynchronous Events: Windows 8 Registered I/O Performance - finally using a full 10 Gigabit link...
Happy Zeroth birthday Max Holgate!
Asynchronous Events: Bug in the 6.5.5 changes for the read timeout connection filter
JetByte News: Consultancy position with HTI Labs
Asynchronous Events: Differences between Visual Studio 11 Beta and Visual Studio 2012 RC
Drivers for Windows Server 2012 RC for Intel 10 Gigabit AT2 adapter
Unexpected causes of poor datagram send performance
C++ 11, Concurrency
The new Windows Azure looks good!
Asynchronous Events: Latest release of The Server Framework: 6.5.5
Netmap, RIO and the challenges in using a 10 Gigabit pipe
Asynchronous Events: Windows 8 Registered I/O Performance - 10 Gigabit networking...
Asynchronous Events: Windows 8 Registered I/O Performance
JetByte News: Security Clearance granted
Asynchronous Events: Windows 8 Registered I/O - Generating load for the performance tests
Asynchronous Events: Windows 8 Registered I/O - Traditional Polled UDP Example Server
Asynchronous Events: Windows 8 Registered I/O - Multi threaded RIO IOCP UDP Example Server
Asynchronous Events: Windows 8 Registered I/O - Single threaded RIO IOCP UDP Example Server
Asynchronous Events: Windows 8 Registered I/O - Single threaded RIO Event Driven UDP Example Server
Visual Studio 11, the UI changes don't matter...
Asynchronous Events: Windows 8 Registered I/O - Simple RIO Polled UDP Example Server
Asynchronous Events: Windows 8 Registered I/O Example UDP Servers
Asynchronous Events: Latest release of The Server Framework: 6.5.4
Asynchronous Events: The advantage of having lots of clients and clients with lots of clients
Asynchronous Events: WASP download of XP versions now fixed
JetByte News: Happy New Year
Asynchronous Events: Latest release of The Server Framework: 6.5.3
RFC 6455: The WebSocket protocol
Asynchronous Events: New client profile: Smart Moves Software Systems - Online gaming
Asynchronous Events: A new release of WASP, now with SSL/TLS support
Asynchronous Events: Latest release of The Server Framework: 6.5.2
Asynchronous Events: Dropping support for Visual Studio .Net 2002 and 2003
Asynchronous Events: New client profile: Takion Technologies - Equity trading platform
Asynchronous Events: Windows 8 Registered I/O Buffer Strategies
Asynchronous Events: Windows 8 Registered I/O and I/O Completion Ports
Inside the Windows 8 Registered I/O Extensions, RIO
Asynchronous Events: Windows 8 Registered I/O Networking Extensions
Asynchronous Events: Out of band data, TCP Urgent mode and overlapped I/O
Asynchronous Events: Latest release of The Server Framework: 6.5.1
Asynchronous Events: A little note to all you Chinese hackers
Asynchronous Events: New client profile: MiX Telematics
The WebSocket protocol is done...
Designing an asynchronous server-side API for WebSockets
Asynchronous Events: Latest release of The Server Framework: 6.5
The curious case of the missing copy constructor
JetByte News: Where is the year going...
The WebSocket protocol - Draft, HyBi 13
Autobahn WebSockets protocol compliance test suite
I guess this is a geek thing...
WebSockets - I miss the TCP half close...
WebSockets - The deflate-stream extension is broken and badly designed
Another day, another deadlock avoided with no harm done
WebSockets - Why do we need to mask data from client to server?
WebSockets - Why differentiate between text and binary frames?
WebSockets is a stream, not a message based protocol...
The WebSocket protocol, design by committee and requirements tracing
Asynchronous Events: The WebSocket protocol - Draft, HyBi 09
Movable Type upgrade annoyance
Asynchronous Events: TCP flow control and asynchronous writes
In response to @dhanji on unit testing
Asynchronous Events: New client profile: inConcert
Asynchronous Events: New client profile: Cadcorp
Asynchronous Events: Latest release of The Server Framework: 6.4
Asynchronous Events: Avoiding non-paged pool exhaustion when using asynchronous file writers
Asynchronous Events: Bug in CStringConverter::WtoA().
Asynchronous Events: Automatic crash dump creation.
JetByte News: Fixed-price server development for a Custom Electronics Manufacturer
Asynchronous Events: Potential for bugs in the design of the pre 6.4 CIOPool constructor.
Asynchronous Events: Performance, allocators, pooling and 6.4
GetExtendedTcpTable(), MIB_TCPTABLE_OWNER_PID and TIME_WAIT
Asynchronous Events: TIME_WAIT and its design implications for protocols and scalable client server systems
Asynchronous Events: New client profile: RTE Network
Practical Testing: 31 - A bug in DestroyTimer.
JetByte News: Website update
Asynchronous Events: Latest release of The Server Framework: 6.3.3
Welcome to the new Rambling Comments
Asynchronous Events: One Million TCP Connections...
Asynchronous Events: The WebSocket protocol
Asynchronous Events: My approach to bugs
Asynchronous Events: Bug fix for 6.3.x CServiceManager.cpp
Asynchronous Events: New client profile: Desktop Sharing Company
Lock inversion detector finally fully integrated in my build
Asynchronous Events: Latest release of The Server Framework: 6.3.2
WinRM/WinRS job memory limits.
Asynchronous Events: Useful link to TCP connection knowledge base articles
A lock inversion detector as part of the build is good
Asynchronous Events: Potential to deadlock in OpenSSL, SChannel and SSPI Negotiate connectors
Tangential testing
Asynchronous Events: Latest release of The Server Framework: 6.3.1
WinRM/WinRS job memory limits?
Bug in OpenSSL stream socket filter which causes memory leaks
Asynchronous Events: Bug in OpenSSL stream socket filter which causes memory leaks
Asynchronous Events: How to support 10,000 or more concurrent TCP connections - Part 2 - Perf tests from Day 0
Asynchronous Events: How to support 10,000 or more concurrent TCP connections
Asynchronous Events: WASP command line options
Asynchronous Events: More complex message framing
Asynchronous Events: WASP's config file
Asynchronous Events: WASP plugin entry points
Asynchronous Events: WASP Server instances
Asynchronous Events: Testing complex server code
Asynchronous Events: Calling WASP functions from your plugin DLL.
Asynchronous Events: Some thoughts on that two thread pool server design
Asynchronous Events: WASP's thread pools
Asynchronous Events: Using OpenSSL with Asynchronous Sockets
Asynchronous Events: Stress testing WASP using the EchoServerTest program
Asynchronous Events: Message framing, a length prefixed packet echo server
Asynchronous Events: The simplest plugin, examining EchoServer.dll
Asynchronous Events: Automating WASP installation
Asynchronous Events: Enabling and viewing WASP's performance counters
Latest release of The Server Framework: 6.3
ServerFramework.com
Asynchronous Events: Changes to the CLR Hosting Tools library in 6.3
Asynchronous Events: Running WASP as a Windows Service
Asynchronous Events: Checking for new versions of WASP
Asynchronous Events: Changes to the Service Tools library in 6.3
Asynchronous Events: Getting started with WASP
Asynchronous Events: Latest release of The Server Framework: 6.3
Asynchronous Events: An introduction to WASP
Asynchronous Events: Welcome to ServerFramework.com
The design implications of FILE_SKIP_COMPLETION_PORT_ON_SUCCESS and the Vista overlapped I/O change, reprise
Things I hate about Visual Studio 2010 - part 'today'
6.3 is coming...
Practical Testing: 30 - Reducing contention
DevPartner Studio 10
Practical Testing: 29 - Fixing the timer wheel
DevPartner Studio 10 - unmanaged disappointments
More thoughts on invasive/intrusive containers and STL allocators
CLR Hosting - A flexible, managed plugin system, part 2
Useful Visual Studio retirement matrix
Practical Testing: 28 - Finishing the timer wheel
Invasive containers
STL allocators, hmm...
Practical Testing: 27 - Fixing things...
.Net 4.0 different AppDomain managers for different AppDomains
CLR Hosting - A flexible, managed plugin system, part 1
CLR Hosting - .Net 4.0, .Net 2.0, take your pick
Tool lag
Practical Testing: 26 - More functionality, more refactoring and a new bug
Amusing bug in GetTempPath()
Practical Testing: 25 - Nothing is free
Practical Testing: 24 - Removing test duplication
Practical Testing: 23 - Another new approach: timer wheels
More thoughts on Big C
Practical Testing: 22 - Performance: Some you win...
Practical Testing: 21 - Looking at Performance and finding a leak
STLPORT 5.2.1 AND VS2010 AND X64
Step over library code when debugging C++ in Visual Studio
Performance comparisons for recent code changes
IOCP performance tweaks and repeatable perf logging
More performance testing
New UDP Server examples
Things I hate about Visual Studio 2010 - part 1
The design implications of FILE_SKIP_COMPLETION_PORT_ON_SUCCESS and the Vista overlapped I/O change
Lock free or many locks?
Bug fix for viewing performance counters remotely
JetByte News: Ongoing development projects for our Industrial Control client
The joy of hacking
Latest release of licensed socket server code: 6.2
Speeding up C++ builds
L'Hexapod: Delays...
Happy Zeroth birthday Scott Holgate!
Performance improvements in the Socket Server Framework
FILE_SKIP_COMPLETION_PORT_ON_SUCCESS and datagram socket read errors
L'Hexapod: Bug in v7.0 of the servo controller firmware
L'Hexapod: Where are we?
JetByte News: Ongoing development projects for our Online Gaming client
DevPartner Studio 9.1
Bug fix for obscure shutdown sequence race conditions
Datagram filtering
L'Hexapod: Sensing servo torque
L'Hexapod: New soldering iron...
L'Hexapod: ATMega168 64 channel servo controller with 'advanced' servo commands
L'Hexapod: Back to JIT testing
Writing a custom Wireshark dissector plugin
.Net 4.0 Hosting (again)
An overview of features of the licensed Server Framework
Stream compression
L'Hexapod: Testing backwards
Latest release of licensed socket server code: 6.1.1
L'Hexapod: ChipHacker.com
L'Hexapod: Relative branch out of reach
Talk to the bear
Bugs
JetByte News: Fixed-price CLR hosting project
L'Hexapod: Testing, Testing...
Concurrency profiling with VS2010
.Net 4.0 Hosting
L'Hexapod: Repeatable Unit Testing with AVR Assembler and AVR Studio
Visual Studio 2010 Beta 2 installation failure
L'Hexapod: Unit testing AVR assembly language
L'Hexapod: Integrating the multi-move command
L'Hexapod: After the servo controller
L'Hexapod: Moving multiple servos at once
L'Hexapod: Almost there....
L'Hexapod: New design please...
L'Hexapod: Flow control is the key?
L'Hexapod: Serial communications issues
The equivalent of static libraries in .Net
L'Hexapod: I seem to have developed something remarkably similar to the SSC 32
L'Hexapod: Storing data in the eeprom of an ATMega168
L'Hexapod: ATMega168 64 channel servo controller
L'Hexapod: New servo controller commands
L'Hexapod: Moving forward
Interesting Blog Posts on High Performance Servers
Parasoft Insure++ vs Microfocus/Compuware DevPartner Studio
Highlights of the 6.1 client/server framework release
Latest release of licensed socket server code: 6.1
A week with Windows 7
Using old compilers
Tracking down reference counting bugs
Excel 2010 XLL SDK
Using Wireshark to debug UDP communication issues
uuid.lib(unknwn_i.obj) : fatal error LNK1103: debugging information corrupt; recompile module
L'Hexapod: Prototype fabrication
Downloading Windows 7
L'Hexapod: And then switch to the ATMega168...
Testing blocking calls
Tracking invocations
L'Hexapod: Registers, stack usage and timing
Custom client/server request/response protocols
L'Hexapod: Asynchronous serial responses
L'Hexapod: All the problems of multi-threading without the threads
L'Hexapod: Extending the servo controller
L'Hexapod: What's next?
L'Hexapod: Tweaking the servo controller
L'Hexapod: ATTiny2313 24 channel servo controller schematic
L'Hexapod: A timer driven PWM servo controller - part 4
L'Hexapod: A timer driven PWM servo controller - part 3
L'Hexapod: A timer driven PWM servo controller - part 2
A time and a place for comments
Globals are evil
L'Hexapod: A timer driven PWM servo controller
Asynchronous spreadsheet calls in a Managed XLL
Error: Cannot pass a GCHandle across AppDomains
L'Hexapod: Redesigning the servo controller firmware
SSPI Negotiation; NTLM and Kerberos clients and servers
Where's the catch(...)
L'Hexapod: Chiara hexapod
Allocating page aligned buffers
Structured exception translation is now optional
Why not to compile as 64 bit...
L'Hexapod: Fabrication...
New Windows Services library
L'Hexapod: Linkfest...
L'Hexapod: Fundamental design flaw in the servo controller code
L'Hexapod: Atmel ATtiny2313 Servo Controller v0.2 - source code
Bug Psychology and how you can get stuck in a rut...
L'Hexapod: 64 channel servo controller...
Race condition during service shutdown
Bug fix in performance counter instance activation code
L'Hexapod: Atmel ATtiny2313 Servo Controller v0.1 - source code
L'Hexapod: CD74HCT238E
#pragma unmanaged
Building an inproc ATL COM object as x86 and x64
Embedded assembly programming
L'Hexapod: Atmel ATtiny2313 Servo Controller v0.1
L'Hexapod: AVR Studio 4
Everything you need to know about timers and periodic scheduling in the server framework
L'Hexapod: I may have been a little harsh...
L'Hexapod: Arduino multiple serial disappointment
L'Hexapod: The servo controller problems weren't power supply noise...
May your software scale, and other curses...
L'Hexapod: Books for programming an AVR micro
L'Hexapod: Once more with feeling
L'Hexapod: More thoughts on the proto leg
L'Hexapod: First steps in embedded programming; first build the hardware...
L'Hexapod: Thoughts on the proto leg
Interesting piece on thread pools
Bug fix for the free server framework code
L'Hexapod: Prototype leg v0.1
L'Hexapod: The servos are twitching
Custom application servers
L'Hexapod: Pulse width modulation for servo position control
L'Hexapod: Useful links and suppliers
L'Hexapod: Servos with status feedback
L'Hexapod: Micromagic systems
L'Hexapod: A-pod, an ant inspired hexapod
L'Hexapod: Welcome
Upgrading to version 6.0
JetByte News: Updating ISO8583 servers
Excellent article on Non-Paged Pool
Highlights of the 6.0 server framework release
Latest release of licensed socket server code: 6.0
Automatically pruning empty log files
JetByte News: Consultancy for SSL client development
Testing SChannel code
Memory leak in SChannel SSL code
Asserts and testing
Latest release of licensed socket server code: 5.2.5
Bug in the dispatching of OnConnectionClosed() in release 5.2.4 of the server framework
Breakpoint sequences...
Living with Subversion
The new Microsoft File Transfer Manager appears to suck...
JetByte News: Fixed-price server development for ELTAV
JetByte News: Ongoing development projects for our Online Gaming client
Shared locks and unique locks
How do you convert a number to a string in C++ with MSVC...
More code shuffling...
The great source code shuffle...
Latest release of licensed socket server code: 5.2.4
DevPartner Studio 9.0 and VS2008
Comments are back on...
Comments are off for a while
DevPartner Studio 9.0
Lock contention
/Wall
Goodbye old friend
Asynchronous SChannel Servers
STLPort 5.1.5 and VS2008 and x64
Alternative call stack capturing
How does the socket server framework compare to Boost::ASIO?
WM_TIMECHANGE broadcast strangeness...
Log file rotation
The perils of precompiled headers
Connection collections
Flame on
JetByte News: New fixed-price ISO-8583 transaction server development project
Practical Testing: 20 - Mind the gap
Writing testable code
Lock free code is hard
Documentation bug...
Practical Testing: 19 - Removing the duplicate code
The life of a stream socket connection
Latest release of licensed socket server code: 5.2.3
Practical Testing: 18 - Removing the potential to deadlock
JetByte News: New fixed-price development project
There will be a 5.2.3, or documenting leads to refactoring...
Good technical blog
Server shutdown in 5.2.1 and 5.2.2
Memory leak in licensed socket server code
Latest release of licensed socket server code: 5.2.2
Write completion flow control
Managed XLL Excel Addins
High throughput, low latency
The mounted file system does not support extended attributes...
Data distribution servers
Another ISO 8583 transaction server
More on the CLR startup change
Interesting blog
WOW64 Win32 DebugAPI CLR application startup change
Socket connection termination
Spam gone...
Spam problems
Comments, captcha and blacklist...
What would I do??
PQR - A Simple Design Pattern for Multicore Enterprise Applications
Practical Testing: 17 - A whole new approach
It seems I'm not the only one...
Practical Testing: 16 - Fixing a timeout bug
And then there were three...
ReadyNAS development...
Bug in timer queue code
Back from Skiing...
.Net Abstract base classes vs. interfaces
When are asynchronous file writes not asynchronous...
Latest release of licensed socket server code: 5.2.1
Major Vista Overlapped I/O change
Process management using Jobs on Windows
Another CCNet patch
Currently Reading: Windows via C/C++
CC.Net and Robocopy
CC.Net File System Source Control speed up
Living with continuous integration
Coding the markets
DNSBL - again...
CruiseControl.Net patches
Potential deadlock bug in free socket server framework
New release of free Socket Server framework
How important is VC6 to you now?
Socket write sequencing memory leak bug in free version of socket server framework
Currently reading: Excel add-in development in C/C++
Local project trigger...
Thread.Sleep(100); // sleep for a short while, to avoid hammering CPU
More Cruise Control .Net woes
Fighting with CruiseControl.Net...
CruiseControl.Net
Performance counter mismatch detection
Secure code on vista only for 'enterprise' developers?
Reclaiming my CPU...
Managed Excel addins
Bug in overlapped UDP port unreachable errors?
JetByte News: Short term contract based at our Guildford office for Lloyds TSB
Thank you Raymond
VS 2008
Back in time with DDE
CLR Hosting lifetime issues bite again...
Another useful piece for anyone in a relationship with a nerd...
Performance counters that don't show up in perfmon
OnSocketReleased() weirdness
Continuing a theme...
IOBuffer allocation strategy...
Being wrong.
Summary of x64 Win32 Debug API issues
x64, IOCP, Socket Server framework
WOW64 Win32 DebugAPI and managed code
x64 Debugger, ExceptionCode == 0x4000001f
DebugSetProcessKillOnExit and Win32 processes on x64
Thirteen Patterns of Programmer Interviews...
Spolsky's law stikes again...
Where did August and September go?
See the 'What About .NET?' sidebar...
Hosting .Net takes me back to the 'Good ol' days of COM'
VS2008 Beta 2 first impressions
Nick Gunn is blogging again...
Sometimes it almost seems that they don't want you to get the code to work...
Unsequenced socket bug fix
VS2005 breakpoint annoyance
How to liquidise perfmon's guts but still leave the body standing...
Infrant Ready NAS NV+
Non-trivial...
Performance counter rewrite almost complete
CreateFileMapping, Vista, Global namespace, SeCreateGlobalPrivilege...
Fixing my performance counter library for Vista
Reliable UDP
Pluggable log systems
x64 port - a diversion
IPv6 support - in anger...
Performance counter installation on Vista
x64 Socket Server framework
JetByte News: Reliable UDP for the Online Gaming industry
STLPort 5.1.3 and multiple VC versions
I'm with Dennis, and Ian...
A computer magazine that makes me feel like I used to about programming...
UPnP User Interface causes Explorer to hang in My Network Places?
Graceful close bug...
cvs update -j
A design that is both too simple and too complex at the same time
Filtering and layering functionality onto a TCP byte stream
Cohesive interfaces
Socket Server code - refactoring
Taking more of my own advice...
Go on, tell us why?
JetByte News: More fixed-price design and development
Taking my own advice
Echoes from the CLR
Socket Server that hosts the CLR
So, what's the difference between the free code and the licensed version?
UDP Multicast
Bug in my debugger code, and hence also in TickShifter
Yay .Net sockets stuff...
Hmm, is this really a good fix?
Software failures...
Dino Viehland on CLR hosting
Lifetime management issues with CLR hosting
Crapness in mscoree.h
Some interesting stuff from Katie Lucas
Socket Server code: AcceptEx server memory leak
Socket Server code: Connection termination race condition bug
Back in the UK
Comments should now be operational again...
Update
Meanwhile...
Question from a reader
Socket Server Code - async connect failure handling change
Why do developers still use VC6?
Socket Server code - addressing bug fix
PeakLeaders Argentina BASI course - review
I passed!
Passed!
BASI Ski Instructor training: Day 10
BASI Ski Instructor training: Day 9
BASI Ski Instructor training: Day 8
BASI Ski Instructor training: Day 7
BASI Ski Instructor training: Day 6
BASI Ski Instructor training: Day 5
BASI Ski Instructor training: Day 4
BASI Ski Instructor training: Day 3
BASI Ski Instructor training: Day 2
BASI Ski Instructor training: Day 1
The most important C++ stuff, ever...
BASI Trainee Ski Instructor training: The Numbers
BASI Trainee Ski Instructor training: Day 5
BASI Trainee Ski Instructor training: Day 4
BASI Trainee Ski Instructor training: Day 3
BASI Trainee Ski Instructor training: Day 2
BASI Trainee Ski Instructor training: Day 1
BASI Trainer is here
Something that has helped
Nerd in a cave
No, this recent activity doesn't mean that normal service is about to resume
Deadlock detection tool design change for Vista?
CLR thread pool woes
Argentina and beyond...
Mock32, parameterize from below
The thread hijack exercise was a waste of time
IDisagree
Hijacking a thread in another process
I love it when a plan comes together
Tools, debug thyselves
TickShifter v0.2
TickShifter v0.1
What this blog is ACTUALLY about
Comments and trackbacks are now back
Comments disabled for a while
Deadlock detection tool updates
Ok, now I'm confused
It must be a slow news day when...
Ah, so that's what it's like to make the front page of digg!
Be careful what you wish for
Table for one
Latest release of socket server code
VS2005 STL strstream and stringstream leaks
More on the socket server VS2005 'leaks'
New kind of spam?
Good stuff
Sounds like a real nice way to work
Back from Megève
More on the socket server leaks
Leak plugged
Look back and shudder
Always Produce
Charles Petzold on why he loves books
The best toys always come with an SDK, 2
When your mocks are executable
First tracks
Purecall
A collection of links
So that's what it's called
Shaping the future of the XLL interface in Excel 12
Online autism 'test'
Excel addins sharing data
Beware the momentum of prototype code
Detecting the Excel Function Wizard
Now I'm confused (C++/CLI destructors)
Something all C++ programmers should know when using managed C++
Implicit Interfaces
Grumpy old men
C++ Tips: 4 - Learn to work in terms of abstractions, no matter how small
iTech Bluetooth Virtual Keyboard
LEGO Mindstorms NXT
C++ Tips: 3 - Strive to be const correct
C++ Tips: 2 - Avoid designing undefined behaviour
C++ Tips: 1 - Avoid unnecessary optionality
Programming by contract in C++
JetByte News: Summit Bonds and Money Markets
Garmin eTrex Vista C communications protocols
Thought for the day
Is it just me, or do the best toys always come with an SDK
Interesting article on deadlock detection in DDJ this month
More thoughts on thread naming
On Edit and Continue
Pluggable exception handling
STLPort 5.0 and multiple VC versions
Panto season!
Naming Win32 threads - how it works
I think the weirdness was me
DbgHelp weirdness
I guess I'll file that in the 'I didn't know you could do that' pile
3 days with JMock
A change of technologies
Udi Dahan on Physical Design
Testing Windows Services
Hosting problems resolved
Hosting problems
Kevin Barnes on TDD
More on Windows Networking resource limit server failures
I don't like Vanilla Scoble
Why are the 'event' classes in .Net STILL broken?
Too much encapsulation reduces the ability to multiplex?
Controlling Time, Take 2
Profilers and The Perils of Micro-Optimization
Bad Managers?
What's your worst bug?
Visual C++ 2005 cannot build dynamically linked applications for NT4 deployment
TCP/IP Server Failures
Simple Echo Servers
Windows TCP/IP Server Performance
RSS feeds for Microsoft Knowledge Base articles
Practical Testing: 15 - Testing payback
The 64000 connection question
Assume makes an ass out of u and me
Note to self
Handling lots of socket connections
Evil macros in April 2005 Platform SDK headers
Old friends
If you enjoyed the Petzold thing earlier...
LNK2005: _iswdigit already defined in ...
Charles Petzold on coding
Unit testing and accessing external systems
Classic hits
Reprints - OLEDB; no pain, no gain
Some people shouldn't be dungeon master
Printf debugging when you don't have a console
Walking Managed Stacks with the Profiling API in v2.0 of the CLR
Dependency Injection
I don't think I've ever been disagreed with in Japanese before
Quote of the week
Throwing the baby out with the bathwater
Back in time
More on locking
Walking the call stack
MT-Blacklist
Serenity
Jeff Darcy on Linus on specifications
Asserts are evil, except when you have no other choice
JetByte News: Fixed-price UDP development for VOIP company
Once again I've been too busy to comment on these during the week
Is Raymond Chen's use of Assert valid?
Book review: Rootkits by Hoglund and Butler
More from Mark and Barry on Assert
Common knowledge to many, but...
Barry's take on Assert
Good stuff
Opera lover
AdSense preview tool
New C# v3 features explained in context
Three reprints from when COM ruled the land
Cool
Restricting the use of extension methods?
Concepts and C++ Templates
Whilst I'm on the subject of code communication
Sacrificing precision for ease of use?
Thoughts on testing COM objects
C# v3 Extension methods, syntactic sugar for the lack of free functions?
Overriding virtual functions, C# is better than C++
Rootkits
Does the arrival of Google Blog Search mean blogs will be removed from the main Google results?
Assert is evil
More thoughts on change and typedefs
Pimp my hide
In summary, don't summarise too soon
Change is good
Lots of answers but little help
What's with CreateProcess and managed exes?
Viewing lock lifetimes
Lock Free
Observing lock contention
It's Friday, so...
I've been lazy this week
How refreshing
Make sure you are doing RAII properly
Reader Questions
Lots of things become unnecessary if you factor things correctly
I just don't get it, what's with this->?
It's obvious when you think about it, but
Undocumented Windows 2000 Secrets
The price of freedom is eternal vigilance.
More Reprints - CORBA, C++ and Java
JLR on C++ interfaces
While Windows lives, it's hard to see how COM will ever die.
It's the libraries, stupid
Joel is a bit confused about agility and design
I wonder what the rationale for this restriction is
Garbage Collection and Pointers
Borland C++ v3.1 and 'The Raymond Chen Camp'
How to reset the BIOS on a Vortex86-6071LV
First impressions of Visual Studio 2005 from a C++ point of view
I feel the need to comment on this...
Be explicit about a class's multiple interfaces
Reprint: Using OpenSSL with Asynchronous Sockets
Setup and Teardown, reprise
/Y3 where have you been all my life
Exploring the C++ Unit Testing Framework Jungle
Threading flames
On the bandwidth wasted by poorly designed spam software
Blog Explosion just doesn't do it for me
Whilst on the subject of deadlocks
Debugging deadlocks in C++ code with Visual C++
Setup and TearDown considered harmful?
Visual C++ 2005 loses single threaded CRT
Result should be const ? conditional operator : if then else
Unit testing for speed?
Blogs as conversations and how blog search can help fill in the gaps
This should be interesting
Disappointing .Net Sockets article in MSDN Magazine this month
No, that's not the point, and yes, trace logging IS bad
What's wrong with my CSS?
A single responsibility, please
My own legacy code
The 'full articles' feed is now feeding full articles again
Another day learning the Linux way...
JetByte News: Embedded Linux development
Currently reading
So, where's the Unix version of CodeProject?
Linux's Dll hell?
Showstopper?
Travelling at the speed of a floppy drive
2.4.31 Kernel build is go...
And now for something completely different
Is bloglines always slow?
Ok, Roy wins, I'm starting to see the advantage of mocks with expectations
Easy interaction testing in C++ with Mocks that create logs
0xFF 0xFE -> CVS -> 0xEF 0xBB 0xBF
Working on the borders
Catching my breath
Code Generation
Static linking
Winsock, ConnectEx, shutdown, SO_UPDATE_CONNECT_CONTEXT and WSANOTCONN
Normal service is about to resume...
JetByte News: Fixed-price ISO8583 server development
Practical Testing: 14 - Bitten by the handle reuse problem
Happy Birthday to me...
Normal service will resume, sometime
My Sister is home
Why you're missing the point if you use a framework to generate mock objects for you...
Stan Lippman's VC6 rant
Stage complete - time bonus
C++ Meta programming madness?
Busy
Hoisting test code into production
The value of malleable systems
Spammer's choice
So much for testing
VS.Net #Region
Looking back from near the end
Smash it up
NetMeeting Data Channel sample code
Bug in CThreadPool
Because we can
I don't usually do the meta-blog thing but...
Baus waves at Scoble
JetByte News: We're working with Car-Tech Auction Inc.
Auction Server Performance
Practical Testing: 13 - Missing functionality
An excuse to buy new tools
Lock Free
More Socket Server Refactoring
Measure twice, cut once
Currently Reading
Practical Testing: 12 - Threading is orthogonal
11th October is Thanksgiving Day in Canada
This is the book I've been waiting for
Warren Smith Ski Academy - Sep 2004
Back from Saas-Fee - 2004
Tests as tours
Harvest for reuse
Could someone please
Yup, that's where the value is
Red sky in the morning
How hand overs become hand offs
The good thing about blogging is
They're learning
Why does windows hold the loader lock whilst calling DllMain?
WTF?
LoadLibrary error
NFOFY JTDPN are the victim of spamy morons
Code coverage and testing
Doxygen niggles
Platform, push off
Repaying the technical debt
Thoughts turn to snow
Practical Testing: 11 - Moving away from the simplest thing
Just In Time Testing
Brute force marshal by value
Singletons and testing
Excellent piece on exceptions
The Exponential Nature of Lines of Code
Hmm, so I'm wet, huh?
Most Amusing
Failed
Caring
Sick of the R word
Reducing what the code could do to just what the code should do
Explicit class initialiser methods
Reprint: CORBA - Reference Counting
Practical Testing: 10 - Fixing the tick count wrap bug, again
/FI, STLPort, Precompiled headers, warning level 4 and #pragma hdrstop
Practical Testing: 9 - More tests, more development, notice the order?
Practical Testing: 8 - Once more, with tests first
Practical Testing: 7 - Fixing the tick count wrap bug
Comment Spam Morons
Testing Reflections
Busy...
Reprints
Not Invented Here or just Not Usable Here?
DRY
Currently reading
Staying focussed on the finish
Code that's like a box of Lego
JetByte News: New contract with Commerzbank London
Firm Foundations
Erase registry keys using .reg files
Repeat after me, COM is just an interface layer
Testing payback
Joel on Win32; API complexity and the Army of Muppets (a rant)
Pimply youth
Outage...
20 years on, 60 years on, thoughts on D-Day
A time to move on
This still amuses me
A challenge for the .Net boys and girls
Gripe of the day; explorer's desire to scan entire folder trees
Testing shouldn't be that hard
Practical Testing: 6 - Tests refactored
Back with the refactoring project
Practical Testing: 5 - Testing shouldn't be this hard
Mythical Man Month
Practical Testing: 4 - Taking control of time
Practical Testing: 3 - Test 2, Enter The Mocks
Monday Mornings
Practical Testing: 2 - The first test
Practical Testing: 1 - Introduction
Practical Testing
Easy performance improvement for the socket server code
Skate weekend
The perils of premature 're-use'
More than 20 years on and still as much to say
Blog's a year old
In the Zone
Wafer thin testing?
Dogfood
Block
Designing to be inherited is extra effort
MT-Blacklist
SOA, coupling, flexibility and discipline
MT-Blacklist
Back from Megève
JetByte News: Part time contract with Credit Suisse First Boston
Bizarre Googling
Testing synchronous communications
Async Pop
Jimmy on TDD
True, even if beauty is in the eye of the beholder
Saas Fee in September
Code review
Const correctness
OpenSSL test server certs expired
Meanwhile, back with the tests
Cypher
Adding layers without adding value
Craig on TDD
These are not the containers you're looking for
Thought for the day
POPing back
We'll be right back, after this word...
Most interesting present
An abstraction too far
More on the bug
Why I started thinking about obvious complexity
Some thoughts on complexity
Implementing the new AcceptEx server
Does anyone know of a VS.Net 200X to VC 6 project file conversion tool?
Why is Outlook 2002's POP handling so slow?
I hate things that turn off the explorer status bar
JetByte News: Fixed-price server development
Bluetooth server demo
Happy Birthday to me...
Finally, the penny drops about AcceptEx
66% Evil, seems about right...
Uncontrolled coupling - Singletons, just say NO!
I seem to have lied earlier...
Test Driven OBEX
Off to Saas-Fee again...
Do blogs without comments have any value?
I always regret leaving the perfmon code out
Is Open RBL a crock or is my DNS set up wrongly
You learn something new every day
Can performance tests treat the object under test as a black box?
Explicit callbacks or virtual methods
.Net 1.1 TCP/IP wierdness fixed
Quality of MS developer support
I'd rather have poor information than no information
We want information, information, information
Looking for more blogs to read
Thought for the day
Where do the mocks live?
Knocked a few things off the list...
Ok, I'm curious
So, what do these tests look like then?
How useful it could have been if...
Hacking our way to the first test
Admitting that your baby's ugly
HeadCam2
Oh good, comment spam
Back from Meribel
JetByte News: Fixed-price secure server development
Bitten by the one definition rule
In C++ why isn't this a reference?
Template shims
.Net 1.1 TcpClient strangeness
Use and misuse of C++ nested classes
2003, The year of the test
New Year
Retiring Princess Leia
Thought for the day
Thinking, Discipline and Courage...
How times change
End of the refactoring project
Ski Weekend, Courmayer, Gressoney, Chamonix
Mismanaging Agents
Edit my points
Not a lot of coding going on
Promote a mock
Bug hunt on the refactoring project
The Maytag customer service experience
Matrix Reloaded Revisited
Rolling...
Just enough RFC822
The one where I dont use XML
Filtering mail
F Lock fix
Bluetooth on XP
Dealing with the simplest things
JetByte News: WallStreet Money Markets and custom FX systems
I'd like a refactoring lint
A sustainable pace
iPaq upgrade
POP3 Client almost complete
Way behind the curve
Sniff my packets!
Dirty Little Secret: Test code is fun to write
James Antill doesn't like TDD
lessonOfTheWeek == !onesize.fits(all)
Tangled testing?
Unexceptional examples
Tests and TDD in anger
Exceptions are for exceptional situations
MSDN Reloaded
I've got a brand new combine harvester and I'll give you the key...
Harvest Time
JetByte News: Fixed price SSL server development
Why objects should keep it on the inside
Does TDD lead to earlier integration?
Murphy's Law
Everyone there works on Word, I'm a bespoke tailor
Windows update should...
Comment rot
Back to the refactoring project
'The sample code uses limited error handling'
Frankenstein programming
Video editing
No, No, No! That way lies the army of muppets!
Images from Saas-Fee
Back from Saas-Fee
We'll be right back, after this word
Things that make you go, Hmmm...
I know it's trying to help, but..
Damned if they do, damned if they dont
Introspection on INTJ
Why do I code? Because I couldn't not do it...
iNTJ
I'm sorry but...
I blame the testing
BenSkating
Netgear MR814v2
So, who's the smart arse who thinks it's OK to move keys on a keyboard?
Run away to the alps
Eric Sink on instant gratification
Insufficient coverage
What did I do to deserve...
You can lead a horse to water...
Decoupling the FX GUI
Art - by Catherine Purves
FX Testing
FogBUGZ
Writing tests for new code vs writing tests for legacy code
You'll tick when I say so and not before!
Here comes the snow...
The first FX test
Skate Adicts
The Black Stuff
FX refactoring
The good thing about this web log lark is...
Learning by imitation vs learning by understanding
Polishing
Tull
Uncle Bob talks lots of sense
Site update
The onset of infection
Currently reading
Keeping all the balls in the air
Free software integration code drop
Big blind, little blind
Unsound FX
Twenty Eight
Big ball of mud
Untestable 2
Waltzing with Bears
Three bugs went into a program
My Name is Len Holgate, and I'm a workaholic
Busy weekend
The style sheet made me do it
Untestable
In the future, there will be robots!
Changing the vinegar
Pinging down NetMeeting data channels
Wise words
Top tip
OBEX and ISO8583
That test driven development thing might just work
Full bodied, or not?
Switching to CVS
Analysing my blogging
Giving it away
Analysing my analysis
Timezone...
It's important who's driving
80 00 1A 00 0F D7
Sunny day in Kensington Gardens
Bluetooth sockets
Working for Microsoft
New toy == good
Real Greek
Stuff
Password policies
The colours thing bites
New toy
Why do I do that
Bluetooth blues
More socket server code updates
MSDN Subscription blues
Weekend's hosed
Clean shutdown
The slacking worked
Slacking
Socket Server code updates
Developer buy in
VS.Net 2003
I'm an exception, let me out of here...
Got skates, let's go!
Evanescence
A coming together...
Final skate lesson
Blog is 1month old!
Stage complete. Time bonus...
Infect me
You don't want to do it like that....
Matrix Reloaded & Animatrix
Victoria Park, The Crown, Matrix Reloaded
Bottle of Evian == cure for RSI?
CSS, IE 5.x and the box model bug..
Hello?
Requirements overload
We came. We saw. We did a little testing.
Crossover turns and going backwards
One step closer to sanity
Test-Driven Development (By Example) - Kent Beck
Our first test
Can Do considered harmful
Slack - Tom DeMarco
Scribbly pen
Skating and Skiing
Just in time requirements
Refactoring project: Joel Test, reprise
Last orders...
Dawn of the dead
Busy week
Colorado 2003
On Cringely On Refactoring
New flat pictures
The Joel Test
Little and often
Sk8er boy
What kind of thinker...
Understanding bad code
The Order of the Silver Rose
Death by debug trace
Currently reading...
The importance of keeping the metaphor pure
Rifts character sketch
Day 0
Welcome
JetByte News: Real-time fixed income position server development
Using OpenSSL with Asynchronous Sockets
Sinking connection points in C++ objects.
Designing asynchonous COM components for VB
JetByte News: Fixed-price development work for PayPoint
JetByte News: Contract with Commerzbank
AVL Tree
Rooms 1.7
Java caches in the middle tier
The CORBA Evictor Pattern in Java
CORBA - Keep Alive
CORBA - The Evictor Pattern
CORBA - Iteration
CORBA - Enumeration
CORBA - Reference Counting Issues
CORBA - More Reference Counting
CORBA - Reference Counting
JetByte News: Contract with HSBC
COM+ Administration
OLEDB - Disconnected Recordsets
MFC - Include/Exclude list boxes
Using COM to write extensible applications
It's a wonder any code is ever reused
OLEDB - Client Cursor Engine updates
OLEDB - Updating data through an ADO recordset
OLEDB - IRowsetLocate and Bookmarks
OLEDB - Custom Rowsets
OLEDB - Objects via ADO
MFC - Templates
IEnumXXXX
JetByte News: Contract with CSFP
Smart cards in Russia
Rifts character sketch
The Order of the Silver Rose