RSS.Social

Rambling Comments - Len Holgate's blog

follow: @[email protected]

Posts

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