Archives
-
What’s Next for Window Clippings
I know a lot of you are wondering what’s going on with Window Clippings. I had hoped to release another update this year but time has just slipped away. It’s turned into a pretty hectic year what with moving from Canada to the UK and starting a new job as a technology consultant in London, quite a departure from commercial software development.
-
Parallel Programming with C++ – Part 3 – Queuing Asynchronous Procedure Calls
In part 1 of the Parallel Programming with C++ series I introduced asynchronous procedure calls (APCs) and how they can be used with alertable I/O to process asynchronous I/O requests without blocking an application’s thread. In part 2, I showed how APC handling can be integrated with window message loop.
-
Parallel Programming with C++ – Part 2 – Asynchronous Procedure Calls and Window Messages
In part 1 of the Parallel Programming with C++ series I introduced asynchronous procedure calls (APCs) and how they can be used with alertable I/O to process asynchronous I/O requests without blocking an application’s thread.
-
Parallel Programming with C++ – Part 1 – Asynchronous Procedure Calls
Who says you need to add additional threads to your application to keep it from becoming unresponsive? The golden rule for responsive client applications is to avoid blocking calls on window threads. A blocking function call on a window thread prevents the thread’s message loop from dispatching messages promptly and the result is an unresponsive set of windows since the window is not able to respond to input from the mouse, the keyboard, other applications or the operating system itself. A common solution is to make blocking calls on worker threads but threads are costly, introduce complexity into your application, and would itself not be doing much of use other than managing some state and waiting for the blocking call to return. One simple and efficient solution to this problem is called alertable I/O and makes use of asynchronous procedure calls (APCs) and that is the topic of this first part of the Parallel Programming with C++ series or articles.
-
Parallel Programming with C++ – A New Series
Microsoft’s developer division has, at least publicly, been placing a lot of emphasis on making it easier for C# and VB developers to build scalable applications more easily. The Parallel Extensions CTP for .NET 3.5 is clear evidence of their commitment to the C# and VB developer. Why C# and VB and what about C++? Is C++ not getting the attention it needs in the age of parallel programming?
-
British customer service: Can it get any worse?
It’s been almost four months since arriving in England. We moved into a flat on the 30th of August. Can I get something as fundamental as a working phone line in that time? No that’s apparently too much to ask for. I’ve received some poor customer in my day but BT takes the cake.
-
Programming WPF
I arrived home this evening and Karin told me a package had arrived from Chris Sells. Chris had sent me a copy of his latest book entitled Programming WPF. Karin then pointed me to the acknowledgements (clearly she’d examined the package carefully before I arrived home!) where I was pleasantly surprised to find my name in both Ian’s and Chris’s acknowledgements and the following in particular under Chris’s Acknowledgements:
-
Windows with C++: Windows Template Library 8.0
The latest installment of my Windows with C++ column is now online in the December 2007 issue of MSDN Magazine.
-
Microsoft UK
I’m visiting the Microsoft campus in Reading on Friday 26 October (tomorrow). I’ll be hanging out in building 3 I believe, for an MVP event. Do stop by and say hello if you’re in the area.
-
Go Bokke!
South Africa wins the Rugby World Cup!!!
-
To XmlLite or Not To XmlLite
Since publishing my XmlLite article in MSDN Magazine I have received a lot of questions about distribution. Clearly developers are very excited to have a fast and “lite” alternative to MSXML for native code but the lack of a redistributable for Windows XP keeps coming up as a roadblock.
-
What Do You Want Me To Write About?
The third installment of my Windows with C++ column should be out next month and I am starting to think about what I will be writing about next year. It looks like I’ll be writing 5 articles for this column next year and I thought I would follow the lead of fellow columnist Charles Petzold and ask you, dear reader, what you would like me to write about.
-
Where Have I Been?
Sorry for the lack of posts over the last few months. Karin and I moved our family (three little kids) from beautiful British Columbia to England. Why on earth did we do that? Well it’s a long story but basically hopes of getting a US visa to work in Redmond ran out and we really wanted to get closer to family and couldn’t have been further away in Vancouver. It has been a long and arduous process but I am happy to report that we have settled in a town called Whyteleafe. The location isn’t particularly interesting as we just needed a place to settle while we figure out where exactly we want to live. Any ideas? :)
-
Windows with C++: Task Scheduler 2.0
The October 2007 issue of MSDN Magazine is out and features the next article for my Windows with C++ column. In this instalment I introduce the new Task Scheduler API that provides a welcome upgrade to the antiquated scheduling engine found in older versions of Windows (prior to Windows Vista).
-
Contact
This is just a quick note to say that my web hosting provider decided that now would be a great time to shut down all my services and move them to a new server without notice. As a result, all my domains including Window Clippings have been down for days. I have also not received any email this week as it is routed through the domains.
-
Goodbye Canada
Sorry for the lack of activity on my blog. We’re less than a week away from departing for the UK and it’s been quite hectic trying to get everything finished. We’ve unfortunately also had some serious setbacks. From the moving company completely letting us down, to me contracting a rather serious illness, to my web hosting provider apparently taking all my domains down. Fortunately they were quick to rectify the situation.
-
Windows with C++: Windows Vista Control Enhancements
The August 2007 issue of MSDN Magazine is out and features my new column entitled Windows with C++. It will initially be published every other month and focuses on Windows Vista and Windows Server 2008 development using C++. As with my Cryptography Next Generation article, each column includes a “What about .NET?” sidebar that showcases how the various techniques discussed in the article can be used from managed code using either C# or C++/CLI.
-
Notebook Update
Last month I mentioned that I really need to get a notebook before leaving for England. I was considering either the Dell Latitude D630 or the Lenovo ThinkPad T61. The Dell because I’ve used Dell for years and they’ve never let me down and the Lenovo because it is generally considered the very best notebook on the planet and I really wanted something just a little better than the Dell notebooks I’ve used thus far.
-
Manifest View 1.0
Every so often I need to view an application’s manifest, for example to debug application dependencies or to confirm the requested execution level. This usually involves opening up the binary application file in Visual Studio and exporting the RT_MANIFEST resource to a text file that I then open in Notepad. Needless to say this is very tedious. Well tonight I had enough of this and whipped up this little tool.
-
News flash: Microsoft is coming to Vancouver!
Today I woke up to the news that Microsoft is opening the first software development center in Canada and Vancouver is the lucky city that gets to host it. Here’s the press release. They must really have taken my little blog entry seriously! :)
-
How to learn C++ (and Windows development)
Every few months I get asked for book recommendations for learning the C++ programming language and then how to get started with Windows programming with C++. I don’t buy into the “C++ in 10 days” school of learning but rather advice readers to read books that will provide them with a good foundation.
-
Three Things I Learned About Software WHILE NOT in College
As per Scott's request, here are my three things…
-
Looking Forward to Window Clippings 2.1
I haven’t been able to work on Window Clippings too much over the last month as I’ve been focusing on my day job as well as other projects such as a new column for MSDN Magazine starting next month. I am however planning the 2.1 release of Window Clippings and thought I’d quickly let you know what’s tentatively in store! As always your feedback is very much valued and helps drive the direction of this product.
-
Notebook Needed
As some of you know, we’re moving to England at the beginning of August which leaves just 6 weeks here in Canada. I had planned on purchasing a new notebook before leaving but held off for a variety of reasons. Of course now I’m worried that I’ve waited too long. I can’t imagine being stranded in a new country without a computer – the horror!
-
Security: Applying Cryptography Using The CNG API In Windows Vista
My next article for MSDN Magazine is now available. Its part of the July 2007 issue of the magazine and covers the new cryptography platform introduced in Windows Vista.
-
Send your Window Clippings images to an FTP server
Ari Glaizel just sent me this neat add-in for Window Clippings that he created to send images to an FTP server. It is a well thought-out add-in making it immediately useful to folks that do a lot of web publishing or blogging.
-
Add watermarks to your Window Clippings images
I wrote this add-in last night using the .NET Framework mostly to serve as an example of how easy it is to write add-ins for Window Clippings, but also because I think it’s a useful add-in for those who like to add watermarks to their published images. So if you’re interesting in writing your own add-ins, take a look at the C# project to see what’s involved. If you’re just interested in using the add-in then here’s what you do:
-
Window Clippings 2.0.28 is now available
This is mainly a service release to correct some problems found in the original 2.0 release of Window Clippings. It also introduces some usability improvements that I think you will appreciate.
-
Window Clippings and Paint.NET
Rick Brewster, creator of the excellent Paint.NET, provides a great comparison of the steps involved in getting a nice screenshot with and without Window Clippings. He goes from a whopping 14 tedious steps to just 4 steps with the help of Window Clippings:
-
Chris Pirillo on Window Clippings
Chris Pirillo published a video highlighting Window Clippings on The Chris Pirillo Show today. You can also watch the video on YouTube.
-
Window Clippings Website Update
I’ve updated the Window Clippings website with a few small but important updates.
-
Window Clippings 2.0 Is Now Available!
Download it now from www.windowclippings.com.
-
Mono Anyone?
No, not that Mono…
-
Nishant Sivakumar on C++/CLI
My friend Nish recently published his C++/CLI book entitled “C++/CLI in Action” and his publisher just sent me a copy. Previously I mentioned Gordon Hogenson’s C++/CLI book that focuses on the C++/CLI language and does a great job at that. Nish’s book takes a more pragmatic approach and focuses instead on the whole interop story for managed and native code. So it’s a very different kind of book but well worth reading if you want to bring the CLR into your legacy or native applications.
-
Looking Forward to Window Clippings 2.0: Reducing User Interface Friction
Update: Version 2.0 is now available! Download it now from http://www.windowclippings.com/.
-
Window Clippings Update and Question
Sorry for the lack of updates regarding Window Clippings in the last two weeks. I only get to work on it in the evenings and I’ve been too busy getting the 2.0 release finished to blog much more about it.
-
The NT Insider on C++
I know it’s shocking: a magazine devoted to kernel-mode development talking about C++. I just received my copy of The NT Insider in the (snail) mail. If you’re at WinHEC next week you’ll also get a copy in your conference loot bag. It includes a great article by Edouard Alligand with many helpful tips on using C++ in your kernel driver projects.
-
Windows Hardware Engineering Conference
WinHEC is next week. Unfortunately I won’t be going this year but I wanted to mention it anyway because its hands-down the most interesting conference of the year. In years past I’ve been to TechEd, PDC, and others but WinHEC trumps them all. It might have something to do with the fact that there aren’t any C# sessions. :) Seriously, it’s just a great way to learn a boatload about the entire Windows platform and technology stack. It’s a pity it’s in LA though. If it had been in Seattle again I would probably have gone.
-
Looking Forward to Window Clippings 2.0: Image Effects
Update: Window Clippings 2.0 is now available! Download it now from http://www.windowclippings.com/.
-
Looking Forward to Window Clippings 2.0: Add-In Development
Update: Window Clippings 2.0 is now available! Download it now from http://www.windowclippings.com/.
-
Looking Forward to Window Clippings 2.0: Add-Ins
I had planned to talk about add-in development next but realized that I really ought to explain what add-ins are and why you should care.
-
WindowClippings.com
With the upcoming release of Window Clippings I've finally taken the plunge and set up a website that will be the permanent home of the Window Clippings product. It is just a simple page at this point and I will update the site before the 2.0 release with more content and features. Let me know what features you'd like to see, such as forums etc.
-
Looking Forward to Window Clippings 2.0: Cost
Update: Version 2.0 is now available! Download it now from http://www.windowclippings.com/.
-
Looking Forward to Window Clippings 2.0: Storage
-
Looking Forward to Window Clippings 2.0: Selection
Continuing my look at some of the highlights in the upcoming Window Clippings 2.0 release, today I want to share what I’ve done to improve the selection features. In Window Clippings 1.5 you can only select top-level, non-maximized windows. Window Clippings 2.0 supports selection of virtually anything you can see on screen. You can select maximized windows (one of the most frequently requested features), MDI child windows, disabled windows, individual controls, etc. You can also create images without ever selecting a window.
-
I’m an MVP! ... Again!
I just received word that I have received the Microsoft MVP Award ... again! I received the MVP award in 2005 for Developer Security. This time around the award acknowledges my contributions to the Visual C++ community.
-
Looking Forward to Window Clippings 2.0: Pop-ups
That’s right: I’m working on Window Clippings 2.0. This is another big release with many new features, much of which has been driven by user requests. I will be highlighting some of the new features over the next few weeks to give you an idea of what you can expect from version 2.0.
-
AutoPtr Revisited
My AutoPtr class template, which I first published in my article entitled Mixing Native and Managed Types in C++ and then later updated for my MSDN article entitled Best Practices for Writing Efficient and Reliable Code with C++/CLI has turned into quite a popular class while at the same time generating some confusion or frustration.
-
Balance CPU 1.0
Recently someone asked me what on earth the new QueryIdleProcessorCycleTime function in Windows Vista does. I can understand the confusion considering the documentation is just plain wrong, at least in terms of how the function is used. If you can look beyond the documentation then you will discover a function that is quite straightforward to use and actually quite interesting if you’re into performance and scalability. But first some background information.
-
XmlLite: A Small And Fast XML Parser For Native C++
Sorry for the lack of posts lately – I’ve been hard at work on various projects. In particular I’ve been working on a whole bunch of new articles that will be published throughout the year. The first of these is available now in the April 2007 issue of MSDN Magazine.
-
Dark Day in Computer Land
Today I spilled some tea on my beloved Microsoft Natural Ergonomic Keyboard 4000 and now it no longer works. Sigh.
-
Window Clippings is now DPI Aware
Windows Vista changed the way that windows are rendered in large scale or custom DPI configurations. Since this is an opt-in change, applications need to specifically request the new behavior akin to the way applications need to explicitly request themed common controls. Those applications that are not DPI aware will effectively be stretched by the desktop window manager.
-
Window Clippings and Multiple Monitors
A few users reported problems with Window Clippings in a multiple-monitor configuration on Windows XP. It worked fine on Windows Vista (my only multi-monitor computer) but I had no way of testing Windows XP outside of a virtual machine and unfortunately I haven’t found multi-monitor video drivers for any of the main virtualization platforms.
-
Gordon Hogenson on C++/CLI
I read a lot of books but with my day job and various other projects and writing commitments I don’t have a lot of spare time. As a result I am very picky about what books I read and especially technical books since there are so many mediocre technical books out there.
-
Recovering a Window’s Alpha Channel
Ian Griffiths who convinced me to add the window transparency features to Window Clippings writes about calculating the alpha channel for a window. Ian does a good job of explaining the theory behind the calculations.
-
Using Window Clippings
As a first-time user, it may not be obvious how to get started or how to discover all the features that Window Clippings provides. This article presents an introduction to using Window Clippings 1.5 as well as a handy reference of all the settings that it provides for customizing its behavior and the resulting images it creates.
-
Why doesn’t Kenny Kerr work for Microsoft?
Chris Sells posted a comment to my Controls and the Desktop Window Manager article that read:
-
Window Clippings 1.5
Update: Version 2.0 is now available! Download it now from http://www.windowclippings.com/.
-
Controls and the Desktop Window Manager
Of all the Windows Vista for Developers series articles that I have written, the one about the Desktop Window Manager (DWM) is by far the most popular considering the blog traffic statistics and the amount of email I receive with questions about glass.
-
Window Clippings and Toronto
I’m taking Window Clippings on the road this week! Only kidding… Sorry about the delay folks. I know a lot of you have been waiting for version 1.3 to be released. One of my monitors recently died. I ordered a replacement from Dell but I’m still waiting for it to arrive. The courier company seems to be struggling with the weather we’re having here in the North West. Window Clippings supports multiple monitors and it’s important that I test those scenarios before every release because of all the calculations that are done with screen coordinates.
-
Window Clippings Question
I have received some great feedback from a few users and am preparing to release a new version with a few great new little features. It should be available in the next week or so. I will talk a lot more about that soon. However, here is a question for you:
-
Those Five Things Bla Bla
I find it interesting that the self-assumed chancellor of blogland has a problem with the "Five Things" meme. How dare we waste RSS on such silliness as if it were a precious natural resource we are squandering? Sigh. But then he also proclaimed private blogs unconstitutional so you have to wonder.
-
Looking Back At 2006
I can't believe I can already say that 2006 is behind us. 2006 involved a lot more writing and some new tools. Let's take a quick look.