Useful git commands – part 2

Sometimes you have a project with lots of submodules that you never change yourself, but want to update occasionally. One example would be if you use Pathogen for your VIM plugins. You’d think you could use git submodule update here, and sometimes you can. But note that one of the main features of submodules is that they are locked to a particular commit. In case you want to pull in the latest changes from the remote, you need something else.

I put this alias in my .gitconfig file to solve the problem (note that this needs to be all on one line):

subup = submodule foreach 'git pull -s recursive 
-X theirs origin master'

The command will cd into each submodule, and do a forced pull overwriting any local changes you may have. Nice, right?

Useful git commands – part 1

If you are like me, you have a whole bunch of projects on your hard disk that you want to update occasionally, but don’t really work actively with. Previously I usually put an file in the root folder of those projects. But in most cases it is possible to use a general approach. I now do it like this:

If you pass a path to the script, it updates all subdirectories under that path, else it uses the current directory. And to make it even more convenient, you can add an alias to your .gitconfig file, like so:

pullall = !~/bin/

Now you can just use git pullall to update everything in one go. Convenient!

Disk problems and recovery

I have for the first time in maybe 10 years had a disk crash so severe that the computer didn’t start. And here I was under the impression that the risk for this happening should be less with an SSD disk.

Anyways, my computer had been displaying several weird symptoms over the past days, mostly as internet connectivity problems. And when I got to work today it would not wake from sleep (it had been fine at home half an hour earlier). I did not think this could be a disk problem right away, so I first tried to boot into safe mode. However, the boot just stalled. I left it for 20 minutes, but no progress. So next step was to start from the recovery partition and running Disk Utility. Doing that indicated a number of file system errors. I let Disk Utility fix them, and now everything seems OK again.

Not too bad, nothing was lost – at least I haven’t noticed anything yet.

Pebble, a month later

So, I’ve had my Pebble for a while now, and I still like it. The vibration works great for waking me up. I never had a wrist watch that could do that with sound. More exciting though, is that things are finally happening at the apps front. The watch face SDK was released a few weeks ago, and boy was there a pent up need to produce watch faces!

Most are crap of course, but some are really good. I am currently using Revolution, which is a excellent. Huge display of hours and minutes, so even I can see it. But it also shows seconds and date. Also, some user written apps are showing up – still far fewer that watch faces though. I am using Timer occasionally. It is a simple but useful countdown timer that really should have been built-in. And to show what is possible, we have a Hex Editor no less! Yes, it allows you to totally screw up the watch OS and other apps. Weird, but why not.

And of course, the RunKeeper app has finally appeared! Woot! This was announced already when the Kickstarter project was set up, and was probably the main reason why many decided to get a Pebble. The current version only displays distance/speed in miles. Hoping for a fix to that asap …

No more Windows for me

Well, that’s not quite true. But I have stopped using a separate Windows computer, and instead run Windows 7 in a virtual machine on my Mac. I am currently using Parallels 8.0 which works brilliantly. I have switched back and forth a bit between Parallels and VMWare Fusion. I’d say that they are quite similar functionality wise, at least for the things I use them for, which is almost exclusively to compile and debug with Visual Studio. Anyhow, the less Windows the better so I’m happy with this setup for now.

Pebble impressions

I have had my pebble for a few weeks now, and I actually like it a lot, even with it’s current limitations. There is a small uproar going on in the Pebble community because all the promised watch apps and the developer SDK has failed to appear yet. And I agree – I too would like to try writing cool apps for the watch. However, I do believe that will be available at a later point, and the watch is actually quite usable even as it is.

My favorite function is a very simple one. The motion sensor in the watch turns the backlight on at a flick of the wrist. This is so useful that all electronic watches should have it.

The main functions the watch has right now (apart from telling time) is SMS and mail notifications. SMS is flawless, mail works most of the time but not always. This is apparently a problem with the iOS API and the Pebble guys are working on it – or so they say. The watch also works fine as an iTunes controller.

A big drawback is unfortunately a severely diminished battery life on the iPhone due to the increased Bluetooth traffic. I used to get at least two days out of my iPhone before Pebble, and now I get barely one day. Irritating, but not really Pebble’s fault.

My Pebble watch has arrived!

W00t11! My Pebble watch has finally arrived after an exciting trip through Kazakhstan of all places. I thought for sure that it would never be passed through because Borat wanted it for himself, but it all worked out for the best. 🙂

I have read a lot of horror stories in the Pebble forums about bad displays and other malfunctions in the new watches, but mine seems to be fine (touch on wood). We’ll see how things work out after I have used it for a while.

And for your viewing pleasure, here are the obligatory unboxing pictures.


First keyboard impressions

OK, now I have used the new Unicomp keyboard a little while, both on Windows and on OS X. Very happy with it so far. One little thing I was afraid would be bothersome is that the Trackpoint control only has two mouse buttons. I am, as are most users nowdays, spoiled with using a pointing device with a scroll wheel. That function is often activated by the third mouse button to toggle scroll lock mode when you don’t have an actual scroll wheel.

So what to do? I first looked for a solution using AutoHotkey to toggle scroll lock mode with some key combination. That is probably the best solution, since I use the program anyways, but I didn’t find a good solution right away. So instead I am now using X-Mouse Button Control set to toggle scroll lock with a right click. I then use the context menu key on the keyboard to get the normal right click functionality. Works great.

As for OS X, I have been using a trackpad for a long time now, so of course I’ll be losing all the multi-touch gestures. But that’s ok I think. It was possible to live without them before, so it should be possible again. At least the context menu key works as function key on the Mac without any extra configuration. That was actually unexpected, since it doesn’t either on Das Keyboard or on my Realtek. So, all in all good stuff.

My new keyboard is here!

I have always been a keyboard freak, trying this and that hoping that I finally have found the ultimate keyboard that will improve my typing and remove all strain. Maybe I finally have …

A week ago, I ordered not one, but two, Endura Pro keyboards from Unicomp, Inc. These are mechanically the same as the original IBM Model M keyboard, as delivered with the original IBM PC. This is arguably the best keyboard ever made – it is certainly the most durable with many still in daily use after almost 30 years.

The Endura Pro model has an additional feature – a built in Trackpoint mouse control. So now I can throw my mouse in the bin … Maybe.

Anyways, I am typing away on it now, and so far it feels great. It has a very distinct click, and the key press is stiff, but not too hard. It is quite loud though, so I hope my collegues will not object to my clicking and clacking.

Here are some images from the unboxing. Enjoy!

Keyboard Macros on Windows

My new job is forcing me to use Windows. Yes, it sucks a bit, but to make the best of the situation I try to set it up as similar to my Mac environment as I can. My primary editor is SublimeText 2, which is available on both platforms, so that works fine. I have set it up with all package files in Dropbox, so they are automatically shared. More on that later.

A code editor such as that relies heavily on keyboard shortcuts. And those tend to work best with an American keyboard layout. I switched over several years ago on the Mac, and use a keyboard macro program to type all the necessary national characters without having to resort to cumbersome dead key combinations and such.

So when I started using Windows, I immediately looked for a suitable program, and I can really recommend AutoHotkey ( It is free, incredibly capable, as it  actually contains a full programming language and can create arbitrarily complex GUI widgets. I currently use just a small part of it, but intend to look at more use cases later. Anyhow, here’s my national characters macros. They may come in handy for someone else.

Continue reading