Books, Articles and other Publications
Back when I was living in Canada, before I started working at Microsoft, I discovered that I really enjoyed writing. I was doing a lot of developer training, travelling around the US and Canada teaching week long courses covering Access, Visual Basic, Architecture, SQL, and more. I started to reach out to some publishers, pitching some technical book ideas and getting a few chapter and book assignments sent back to me from various places. I ended up writing a few books, but I eventually moved teams at Microsoft and took a job as a full-time writer. I would write small articles, explaining a concept, going through the code, and hopefully inspiring some folks to try it out for themselves. I don’t know how many articles I’ve written, but I do know that I used to try to write 1-2 a week. At the same time, I was actively blogging (first on a site called blogs.msdn.com, but eventually moving to my own domain), with a similar focus on coding concepts, sample code and a ton of link sharing. Other than internal documents, this blog is my only real writing these days. I come up with book ideas from time to time, and I have many article ideas, but the combination of writing on my own property and not having to commit to something as large as a book means that a blog post every month or so is just about right.
My most recent print publication was a single ‘article’ in the book “97 Things Every Cloud Engineer Should Know”, a quick intro to the idea of scalability.
Books
As I mentioned, I was involved in a lot of books, and I don’t have a full recollection of them all. I would receive a copy of every book, sometimes one in every language it was translated to, but I recently decided there wasn’t a lot of reason to keep them around and I took a few boxes of them into a local used bookstore. Hopefully they weren’t so old that no one will find them useful. Doing a bit of internet sleuthing, here is a list of the books I’ve written, starting with the most recent.
- Zune For Dummies (with Brian Johnson and Harvey Chute) – 2007
- Xbox 360 For Dummies (also with Brian Johnson) – 2006
- Kickstart: Microsoft Visual Basic .NET 2003 (with Andy Baron, Erik Porter and Joel Semeniuk) – 2003
- Teach Yourself Visual Basic .NET in 21 Days (with Kent Sharkey) – 2001
- Exchange and Outlook: Constructing Collaborative Solutions (with Joel Semeniuk) – 2000
- Word 2000 VBA Programmer’s Reference (with Felipe Martins) – 1999
I wrote a few chapters for many books as well, but I could only find a couple of those listed on Amazon. Essentially Wrox, SAMS, QUE, or another publisher would reach out and ask if I could write some section of a book. I remember doing 3 chapters on data access in Visual Basic for example, and they would just use that to fill gaps in another author’s book. The couple I could find…
- Using Visual Basic 6*
- MSCD Training Guide: Visual Basic 5*
Articles
Since it was my job, I wrote a lot of articles for the MSDN website, but I also wrote for a few other websites ‘on the side’ and I ended up writing quite a few for MSDN Magazine (a print publication, that was related to the MSDN site, but always felt like a bigger deal to be published in because they had more limited space). Unrelated to programming, I also signed up for a year or so, to write the Xbox Dad column on xbox.com. This was a series of articles about gaming with kids, which I was quickly becoming an expert in with my two children. Many of the articles I’ve written are now gone off the internet, which is sad, but part of the danger of publishing onto other people’s domains.
MSDN Articles (not in the magazine)
- Laziness .NET (June 26, 2003) Duncan Mackenzie describes how to use remoting and a Pocket PC to create a simple remote control for Windows …
- Add a Quick Poll to Your Web Site (August 3, 2004) Duncan Mackenzie describes his process to build a “Quick Poll …
- Rotating Is Fun (August 25, 2004) Duncan Mackenzie describes the creation of a simple “content rotator” in ASP.NET.
- How Long Now? (July 1, 2004) Duncan Mackenzie describes how to calculate the difference between two …
- Macro Madness (June 3, 2003) Duncan Mackenzie shows you several useful macros for the Visual Studio .NET development environment, including …
- Developing Priorities: Fun First (August 20, 2003) Duncan Mackenzie shows how the coolness of a feature can increase its chance of being finished early in a …
- Background Copying (February 28, 2003) Duncan Mackenzie describes how to build a tool that uses the Background Intelligent Transfer Service …
- Want to Know What I’m Listening To? (April 30, 2003) Duncan Mackenzie describes how to use a new PowerToy for Windows Media Player to tell the world what you are …
- Playing with Music Files (January 24, 2003) To kick off the new Coding4Fun column, Duncan Mackenzie describes how you can use the Microsoft Windows …
- Checking My E-Mail (March 26, 2003) Duncan Mackenzie describes how to build a tool that uses the System.Net namespace of the Microsoft .NET …
- Introducing Client Application Deployment with ClickOnce (October, 2003) In this draft chapter from the forthcoming Addison Wesley title, Essential ClickOnce, Duncan Mackenzie …
- Coding in the Blue Glow Duncan Mackenzie describes how to control a serial-port–connected LCD panel using Microsoft Visual Basic .NET and Microsoft Visual C# .NET.
- Using System.DirectoryServices to Search the Active Directory (November 1, 2002) Duncan Mackenzie describes how to use the System.DirectoryServices namespace to search for information in …
- Printing Reports in Windows Forms (July, 2002) How to create your own reports using the printing features of GDI+ in Microsoft .NET.
- Creating a Visual Studio .NET Add-In to Provide Windows XP Theme Support (July, 2002) Use Windows Forms to create an add-in for Microsoft Visual Studio .NET that automatically sets up your code to use the look of Microsoft Windows XP.
- Creating a Design Surface Using Windows Forms and GDI+ in Microsoft .NET Techniques used to create a GDI+-based design surface for the user to create and position various graphic elements within a Windows Forms control in Microsoft .NET.
- Adding Regular Expression Validation (May, 2002) Covers the basics of inheriting from another control and adding your own properties, methods, and events along with …
- Developing Custom Windows Controls Using Visual Basic .NET (May, 2002) An overview of associated sample articles illustrating the basic concepts of Microsoft Windows control development …
- Extending the TreeView Control (May, 2002) Covers adding data-binding functionality to the TreeView control as one of a series of Microsoft Windows control …
- Draw Your Own Controls Using GDI+ Details development of a data-bound, owner-drawn control using GDI+ …
- Visual Basic .NET 2003 Language Changes (May, 2002) Duncan Mackenzie provides an overview of the language changes included in the 2003 release of Visual Basic® .NET.
- Using Windows XP Background Intelligent Transfer Service (BITS) with … (February, 2002) This article explains how to use Microsoft Background Intelligent Transfer Service (BITS) in Microsoft Visual Studio …
- Architectural Options for Asynchronous Workflow (December, 2001) This article describes the benefits of asynchronous processing and discusses three possible ways to implement this …
MSDN Magazine Articles
Turns out we have an author page for writers on the magazine, but here are some individual links as well
- { End Bracket }: And Along Came 10… Introducing On10.net (http://on10.net), the Channel 9 answer for the technology enthusiast who isn’t necessarily a programmer. Duncan Mackenzie – December 2006
- Visual Basic: Navigate The .NET Framework And Your Projects With The My Namespace The My Namespace is best described as a speed-dial for the .NET Framework. It provides an intuitive navigation hierarchy that exposes existing .NET functionality through easily understood root objects. Here Duncan Mackenzie explains it all. Duncan Mackenzie – Visual Studio 2005 Guided Tour (special issue in 2006)
- Advanced Basics: A Match-Making Game in Visual Basic My four-year-old son has decided that he wants to be like his dad when he grows up. He is planning to work in my office, and write computer programs just like I do. But there is one problem—he thinks I write games. Duncan Mackenzie – October 2005
- Advanced Basics: Creating A Breadcrumb Control Hansel and Gretel had the right idea when they followed the pebbles that glistened there like newly minted coins, showing them the way. ” The deeper you get into the forest or into your data, the more likely you are going to need help to find your way back out again. Duncan Mackenzie – July 2005
- Advanced Basics: Remembering User Information in Visual Basic .NET Many applications need to store user-specific settings to be persisted between sessions. But how do you go about saving and restoring these settings in your Microsoft® . NET Framework-based application? It’s not all that easy to find the correct answer. Duncan Mackenzie – April 2005
- Advanced Basics: Creating a Five-Star Rating Control I have to admit it; most of my Windows® Forms controls are an attempt to copy something that already exists. In my October 2004 column I showed you how to create a progress bar that mimicked the one shown during the Windows XP setup routine, and this month I’m at it again. Duncan Mackenzie – January 2005
- Advanced Basics: Digital Grandma As a parent of a young child, I take a lot of pictures—many more than anyone would ever be interested in seeing. Well, anyone except my mother. This is her first grandchild and the one or two pictures I send to her each week only brush the surface of her grandmotherly needs. Duncan Mackenzie – November 2004
- Advanced Basics: Building a Progress Bar that Doesn’t Progress In many situations, accurately estimating the length of a certain process (copying a large file, loading data from a server, retrieving files from the Internet) would be both difficult and inefficient. Duncan Mackenzie – October 2004
- Advanced Basics: Data Binding Radio Buttons to a List Duncan Mackenzie – July 2004
- Visual Basic: Navigate the .NET Framework and Your Projects with “My” The next version of Visual Basic, Visual Basic 2005, will include some powerful new features. One of the most interesting is the My language extensions: My.Application, My.Computer, My.Forms, My.Resources, My.Settings, My.User, and My.WebServices. The My language extensions take the idea of helper functions to a whole new level because they include so much functionality out of the box. Called “a speed-dial for the .NET Framework” by the author, the My extensions are a feature you won’t want to overlook. Duncan Mackenzie – May 2004
Gaming (Xbox 360)
Sadly, all of these have been removed from the Xbox site… I might try to track down my originals, so just leaving the list here for reference!
- Xbox Dad Goes Adventuring – Time to go on an adventure with Indiana Jones.
- Xbox Dad Checks Out Chessmaster LIVE – World class chess comes to Xbox LIVE with this new title.
- Xbox Dad Discovers The Last Airbender – He joins Aang on his journey through the Earth Kingdom.
- Xbox Dad Has a Party – It’s party time for Xbox Dad with Viva Piñata: Party Animals.
- Xbox Dad Checks Out Xbox LIVE – Five great things about Xbox LIVE for your kids.
- Xbox Dad Plays the Bee Movie Game – Barry B. Benson shows up in the Xbox Dad household.
- Xbox Dad Goes to Hogwarts – Harry Potter mania has struck the home of Xbox Dad.
- Xbox Dad Enjoys the Dish of Ratatouille – It’s a great family game, and great fun for everyone.
- Xbox Dad Stays in Touch with Xbox LIVE Vision – Grownup boys and girls need to chat with Dad too.
- Xbox Dad Games with the K-6 Crowd – What games are good to play with the really young ones?
- Xbox Dad Plays Shrek the Third – The green guy is ok, but who can resist Puss-In-Boots?
- Xbox Dad Honors Xbox Mom – Unlock the Good Husband achievement in your relationship.
- Xbox Dad Shouts Cowabunga! – Teenage Mutant Ninja Turtles remain a family favorite.
- Xbox Dad Meets The Robinsons – The first Family Game Night game is a Disney smash.
70a41b1 @ 2021-02-05