I'm Gil Milow. I like to create software and write about the process.

multiple desktops and the windows api

In a previous post about the Macbook Pro, I mentioned that one of the things I love about OS X is the multiple desktop feature. I also mentioned that Windows 10 had just come out and it promised to have similar functionality. So, about that..

Windows 10 does indeed have support for multiple desktops and what’s more, it’s pretty damn good. There are some differences between the Windows and Mac when it comes to multiple desktops but overall they both work just as well. The one major thing that Windows lacks is the ability to switch to specific desktops easily using the keyboard. On the Macbook, I can set keyboard shortcuts in the system preferences to accomplish this. Windows has no such thing out of the box. I am a geek obsessed with productivity and so this was really annoying.

When I started using Windows 10, I found a solution to the problem using open source tools. I found the Windows-10-Virtual-Desktop-Switching-Shortcut project on GitHub that claimed to do exactly what I wanted. I gave it a shot but found that I could not get the keyboard shortcut to work. However, a utility called VirtualDesktopSwitcher, included in the project, did work. I searched some more and came across a popular utility called AutoHotKey that allows you to pretty much do anything in Windows using the keyboard. I hooked the two of them up together and voila, I had my solution!

Unfortunately, after a routine Windows Update last week, VirtualDesktopSwitcher ceased to work. My guess is that the reverse engineered Windows API that allowed VirtualDesktopSwitcher to work in earlier versions of Windows 10 was removed or altered. Sigh. Back to the drawing board.

Luckily, I was able to find an alternative, again on GitHub, called VirtualDesktopAccessor. In addition to switching desktops, it offers much more desktop-related capabilities. The instructions on the readme even show how to set it up using AutoHotKey! In order to compile the code, I had to grab a copy of Visual Studio 2015 Community Edition. To run the utility on a Windows machine without Visual Studio installed, I had to install the 2015 runtimes from Microsoft.

For those of you who don’t know what C++ even is, you can download the 64bit version of VirtualDesktopAccessor.dll that I compiled. Place it in the same directory as your ahk (AutoHotKey) file. For an ahk file sample, see the VirtualDesktopSwitcher page. My only alteration was to add the following for using Windows-{number} to access desktops 1-9:


biting the apple

All throughout my adult life I have been an avid Windows user. Even so, I once thought Microsoft was evil. Remember those days? That aside, their products were always easy to use and ubiquitous. When Windows 95 came out I was hooked on the interface. I never even considered another operating system for my personal or professional use.

Apple has enjoyed a strong following in the tech world. For me, they were closed-minded and oppressive. Apple always touted their products’ user-friendliness and simplicity, but I saw it more as a cult with a “my way or the highway” mentality.

That brings me to.. the iPhone. I’ve had a smartphone since before the iPhone came around, and was even creating Apps for it before anyone know what an App was. I did like the iPhone look and feel and made a Windows Phone version of it, but never had a desire to switch. By the time Android was available, I was so annoyed with the lack of support for Windows Mobile that I decided to get an Android phone. I’ve never looked back.

When my wife wanted to upgrade to a smartphone, we decided on the iPhone because of its so-called simplicity. Wrong move. My wife would constantly ask me how to do things on the iPhone to which my answer, after fumbling around for a bit, would be I have no idea. Her inability to figure out the phone was exactly the opposite of what I expected from a non-techie using an Apple product. Paul Stamatiou wrote a great post about it and I pretty much agree.

My antipathy towards Apple changed a few months ago. Sort of.

Although I love Android and dislike iPhones, when it came to portable personal computing my belief in the Windows ecosystem was starting to falter. Windows 8 was a dud in my eyes, and the hardware it ran on was not that appealing. That’s when I started reading about something called the MacBook Pro. It looked great, had amazing battery life and a touchpad that you can actually use. Finally, something I can carry around that has the power of a workstation without too many downsides of a laptop.

After much consideration, I bought one. When the new 2015 models came out, I found an older version at a great price and took the plunge. Then I set about learning how to use it.

Although at first it may seem similar to Windows, the Mac does have some major differences. Using the MacBook at first felt like moving into a new house. Everything that used to be rote and straightforward suddenly seemed foreign to me. Working on the Mac was like trying to drive in England. It’s similar to driving in the US but different enough to always keep me on my toes.

The biggest difference for me was the distinction between Applications and Documents. In Windows, an Application can have multiple windows but each one is treated the same by the operating system. This means I can tab through them (ctrl-tab), or look at them in the taskbar. In OS X, task switching is done at the Application level. This means that even if I have separate windows for Chrome, each with their own tabs, when I use ⌘-Tab I only see one Chrome icon. I think Apple have realized that this makes it hard to navigate between documents in the era where documents are first class citizens. Their solution is Mission Control, where you can see all your windows on the screen at the same time and pick which one you like. This works, but is a lot slower than using shortcuts like ⌘-Tab.

Modifier keys are something else that drives me crazy. In Windows, there is Ctrl, Alt, and Windows. Most keyboard shortcuts that have modifiers use the Ctrl key. If I want to copy, I use Ctrl-C. If I want to move the cursor to the previous word, I use Ctrl-Left. You get the picture. On the MacBook, there are four main modifier keys: Command (⌘), Option (⌥), Control (^) and Fn. If I want to copy, I need to use ⌘-C. If I want to move to the previous word, however, I have to use ⌥-Left. The list goes on. As I use it more, my brain remembers what keys I need to use for which OS, but it’s taking a while.

My last gripe is about what Apple calls mnemonics. If you are a Windows power user I’m guessing you use this all the time without even thinking about it. That is, until it is not there. If you have ever hit Alt-F to get to the File menu of your application, you are using mnemonics. I use them all the time to get to menu items that do not have specific hotkey combinations. It is a great time saver to not have to use the mouse for these menu items, especially when coding. Alas, Apple has decided that they are not a good idea and frown upon their use. This is another example of Apple thinking they know what is good for users but fall short.

So reading this you may be thinking that I regret my decision to buy the MacBook. I don’t. I love my MacBook and here’s why: Multiple Desktops, UNIX terminal, and the hardware. Yes, it is taking me a while to learn how to maneuver in OS X but the multiple desktops are a key feature and I love being able to use UNIX commands from the terminal. Yes, I’m a nerd.

But most of all, the hardware. It just works. The trackpad is so seamless that I don’t even need an external mouse. Multi-touch gestures work amazingly well. The Retina screen is gorgeous. And did I mention the battery life? It is amazing, like all day amazing. A lot of this has to do with OS X not being a power hog like Windows. You can run Windows on the MacBook, but from what I’ve read it goes through the battery much more quickly. I can improve the battery life even more by switching from Chrome to Safari, but I’m addicted to my Chrome bookmarks and, well, I just like Chrome better than Safari. Lightroom is a huge battery hog but I can’t live without that for maintaining my pictures. More on that in a later post.

The MacBook is such a great looking piece of equipment that I wanted to protect it’s delicate aluminum skin against the elements when I take it with me from place to place. There are lots of sleeves available for it, but the Acme Made Skinny Sleeve is my recommendation. There are no zippers to scratch the MacBook, it is sturdy, and it is easy to get the laptop in and out.

I’ve been sitting on this post for a few months and in the interim, Microsoft has released Windows 10. It already has a higher adoption rate than Windows 8. Maybe it will make me change my mind about Windows. But until someone can make hardware to match the MacBook I’ll stick with my evil Apple product, thank you very much.

kindle 4 life

I love my Kindle. There, I said it. A recent article on kottke.org pointed out that ebook reader sales are declining and ripped on Amazon for not being design-oriented enough.

I was curious what Kottke meant by that so I read (ok, skimmed) an article he references by Craig Mod. In the article, Craig talks about feeling that ebooks are less beautiful than paper books. He then says that Amazon should do a better job letting a reader know when they have long-neglected books that need reading:

The pile of unread books we have on our bedside tables is often referred to as a graveyard of good intentions. The list of unread books on our Kindles is more of a black hole of fleeting intentions.

Here’s the thing: I love my Kindle. Did I say that already? I can read using one hand. I can read without any room lights on. I can carry lots of books with me everywhere I go without having to, you know, carry lots of books around. Although I agree that the experience can be better I still think the good outweighs the bad.

Not long ago, newspapers used to be the way we consumed our news. Who reads a newspaper now? The convenience of reading internet news on a phone, tablet, or whatever has surpassed the need to feel the newspaper.

I think that the people complaining about ebooks being too sterile are of the older generation that grew up with paper books. They grew to love the feel of a paper book and miss that when using an e-reader.

The sad part is that if sales are going down that means that the younger generations are reading less. That is truly disheartening.


I use Google Calendar to keep track of my work meetings and such, and I wanted a simple Windows app that would pop up to remind me when events were approaching. GMinder fits the bill perfectly. It is a free open source app and it just worked. Sure it has its small quirks but hey, it’s free, right?

A few months ago the app stopped working. After some research on the app’s new home, I found that other users had the same issue. One of them even figured out the problem: Google had stopped supporting the version of the API that GMinder was using.

Having worked with the Google Calendar API before, I decided to update the code myself. Luckily I was able to do it fairly easily. The project page contains the downloads and a link to the source code on GitHub. If you are looking for a quick reminder tool for Google Calendar on Windows, check it out!


I’ve been listening to a podcast called Serial for the past few weeks. It is offshoot of This American Life, one of the most popular podcasts ever.

I’ve been telling people about Serial because I believe it is a revolutionary podcast. Then I saw Marco’s post mentioning it and decided to make my opinion public. Marco mentions that this podcast, and its amazing popularity, does not indicate any trend in the podcast market as a whole. He’s probably right, but I do see this format of podcast taking over as the most popular type of podcast. It could also potentially lead people who already listen to podcasts to listen even more.

The type of shift that Serial represents has been seen before with television shows. TV shows used to be self-contained episodes. Watching one episode of Who’s the Boss was pretty much like watching any another episode. Then along came shows like The Sopranos, in which each episode built on the previous ones. If you started watching in the middle of Season 2, you would be lost as to what is happening.

Serial is the podcast version. Each episode builds upon the previous one. And it is addicting.

Older posts