Ember Podcast of my OSS Ember add-on

Recently the Ember community has added a global podcast to their growing library of instructional content and I was pleased to be asked to introduce a OSS Ember Addon which I’ve been working on: ui-list.

Going Big on Apple

After today’s Apple announcement I feel the need to go big. Not metaphorically. Physically.

First, I think I’m going to go for the iPhone 6s Plus. It just seems like a bigger shift from my once-large iPhone 5s. I’m a little concerned how this will impact the use of my iPad Mini (which I love) but I guess we’ll see. I will do a quick “pocket test” first but outside that failing I will be carrying around my first phablet in a months time.

In addition to the phone I really want to experience the iPad Pro. Sucks that we need to wait until November but that size and processing power really puts it into a category that isn’t occupied yet in the shrinking tablet-to-laptop space (certainly not in the Apple camp). Count me as likely-leaning-towards-definite future owner.

Windows 10

When I switched to OSX 5 or 6 years ago I was surprised by how quickly I made the change. OSX wasn’t exclusively better in every regard but it just felt right whereas Windows felt old and clunky. In the intervening years I have had to work in Windows occationally and each time I’m left with the impression that this is an OS that was left behind. I couldn’t wait to get back to OS X.

About 18 months ago I decided to upgrade an old laptop to Windows 8 just to have a look. I did kind of like the idea of “apps” for the desktop which resembled the eco-system we now expect from more mobile devices but very quickly I found the new OS to be confusing and ineffective. That laptop now runs Ubuntu.

Yesterday I decided, in a moment of irrational exuberance, to upgrade my Windows 7 virtual machines to Windows 10. The installation took a while to get right but it wasn’t painful and when I finally got the new OS unpacked I was very impressed. Wow. It is a nice looking and well thought out OS. I suspect that this will stem the tide of defectors leaving Windows for OS X (a trend which I will anecdotally say has been strong for several years now). Gone is the dual nature of Windows 8’s “metro” and “traditional” desktops. The apps ecosystem is immediately filled with interesting offers. And most importantly it feels like an efficient place to get work done while delighting its user with a visually attractive environment to do it in. Yes it’s still a little square in places that OSX is “rounded” but really I don’t think it is at all a second class citizen anymore.

For developers the fact that OSX sits on top of a Unix kernal is a big plus. That’s something Windows will never have (although with container tech like Docker maybe this isn’t such a big hindrance anymore?). For designers there is a long history of hating windows that won’t disappear overnight. But for the rest of the population I suspect there will be a contentment maybe even excitement about Windows that hasn’t been around for many, many years.

State Management is Cool?

I know it sounds like a dry topic … do you really want to think about, talk about, or associate with others who spatter on about something as uninspiring as “state management”?

Well I’m thinking yes. At least that’s the conclusion I have come to over the past two years. For decades computer science students have been told about the importance of state management, have been given cryptic tools like K-maps, and been told that was critical to simplifying complexity. For me at least, the ideas in the classroom had a harder time translating into discrete activities in the real world. Sure “state mattered” but it was talked about it through abstractions like a functional decompositions, site maps, screen design, and many other “real-world” exercises which all dance around state management without ever addressing it head on.

What’s changed? Well I think to reach the next level of complexity, society — often unknowingly — is needing to document state more directly/explicitly in an attempt to simplify implicit models that predated them. Oh really? Is that what you think professor Ken? Well an example might help. Good point, I’ll give two examples for now and leave your creative imagine to fill in the rest.

Let’s start with EmberJS which is a new breed frontend MVC framework which set out to solve complex web applications (they describe themselves as “a framework for creating ambitious applications”). There are lots of great things the framework provides users but at the core of the value being provided is an opinionated architecture which means that to solve today’s problems we need to leave behind yesterday’s debates and Ember promotes this by having a default way of addressing many sorts of problems. This by itself is an attempt to simplify but it isn’t the crowing example I want to point to. Intead it is within this framework the core feature that really adds value for Ember developers … the router. What is the router? It is a state machine! It provides a powerful framework for developers to build complex application and at the centre of it is a state machine. Interesting.

Now for my second example. Docker. BTW, this is some hot-shit technology; if you’re a developer or in operations and haven’t played with it yet, stop what you’re doing (well right after you’ve finished my blog post) and check it out. Anyway, Docker has a feature called “Automated Builds” which scripts the building of a “machine” (well really its a container but let’s not get too technical). The goal of doing this is so that you can build the a machine in a completely explicit and stateful way. No longer your code — which no one doubts is just perfect — work just as well on that fancy OSX machine as it does on production because the “machine” you’ve used isn’t just similar it is identical. Turns out absolutes matter a lot. Identical is a lot better than similar. Fully automated is a lot better than pretty automated which is a lot better than manual. In many ways giving Docker credit for any of these things is not fair as many technologies that preceeded it at the very least laid the groundwork but my point is that the reaction to Docker is near universal in its praise. People don’t need convincing tha this technology can help them. And why? Becuase it helps to manage state.

If you’re not yet convinced that state management is important, interesting, and maybe even cool … then you are clearly a cold and uncaring person. I have already given up on you. Let’s hope you never give up on you. Harsh? Well maybe but then what do you care? You stoic, stateless bastard. 🙂

I think I’m going to miss Windows


I bought a monster Windows machine a few years back. It still is a powerhouse today (i7 processor, quad processor, 12gb RAM, 2 x 24” monitors, etc.) but the problem is it’s become unreliable. I think a lot of it comes down to my fancy RAID array (LSI MegaRAID) but in reality I really don’t know and am equally willing to blame it on voodoo or some ancient medieval curse.

The Rash Decision, A Nagging Doubt?

Anyway, I made a momentous – some may say rash – decision yesterday to buy an iMac. Just fucking tired of wasting time with all the problems i was having with my PC. It’s as high end as you can go with the iMac (27” monitor, 3.4ghz i7, 16gb RAM, quad processor, etc.) so it’s going to win a few beauty contests but I can’t help but feel this nagging guilt and worry that I just spent a ton and didn’t really move forward. Probably just a case of initial buyers remorse – I hope – but we’ll see once it arrives how I feel and more importantly how I feel after a week or two.

He’s not fat, he’s my Windows system

One thing you hear a lot of today is “Windows sucks.” Admittedly this is often said by OS zealots and with religious fervour but it has been said so many times now it has spilled over and passes as conventional wisdom. Anyone who has used Windows 7 knows that this categorization of Windows is naive. Windows may have square edges in places where the Mac OS is rounded but it is technically solid and superior in many ways yet rarely given credit in the mainstream. Beyond the OS, my real concern comes from the fact that many dual-OS software solutions are MUCH better on the PC side. Microsoft Office is a classic case. The Mac version is a completely different code base and looks pretty but is MUCH less feature rich and a bit buggy too (this latter part I expect will resolve itself relatively quickly with the service release). Other software that worries me include:

  • Adobe Acrobat Pro (the version 9 on the PC side is twice as good as the version 10 on the Mac … men against boys)
  • LiveWriter is Microsoft’s free blog writing software (which I’m using here) and it is only available on the PC. There is nothing that approaches Livewriter on the Mac.
  • Mindjet Mindmanager is one “version” ahead on the Windows side but even on like-for-like versions, the Windows side is far more complete and better designed

Now I must admit just like I’m hooked on some of the PC software advantages I am VERY much looking forward to having access to OmniGraffle on the big screen (right now I’m just using on my Macbook Air). I also really like the Reeder RSS reader. And I guess the final bit, the part that got me over the hump in the purchasing decision, is that I can run Windows inside the Mac OS. I think there’s always a temptation to avoid this but I have enough memory and processing power to not worry myself too much about it so hopefully – fingers crossed – I’m a happy camper in a few weeks time.

How to backup your data



A friend of mine was looking for advice on how to backup their data and so here’s my quick version of things to do to protect your increasingly valuable digital archive:

  1. Local Backup. Buy an external USB hard-drive to backup your data and then use your operating systems built-in backup software to backup. External drives – even conveniently small ones – have been getting more and more affordable for a long time. You’ll need a drive that is bigger than your laptop/desktops hard drive (or at least the capacity you use on this drive) to make it effective. Ideally aim for something that is 2-3x times larger. Both Windows (Windows 7 and Windows Vista) and modern variants of  the Mac OS (look for “Time Machine”) have built in software to manage this backup process for you. If you’re using an older version of Windows or Mac OS then you’re probably best to buy software to manage this for you. I don’t know about the Mac OS but for Windows a good choice is Acronis software.
  2. Online/Cloud Backup. There are a growing number of companies who provide a easy to setup backup solution that is “in the cloud.” You install their software and pay an annual fee and in the background you’re data gets sent to a server on the internet where the company takes ownership for ensuring the safety of your files. This is good peace of mind and very easy to setup as long as your willing to pay a nominal annual charge. It also has the advantage over local backups of disasters like theft or fire where you could potentially not only lose your laptop but your backup too. The disadvantage is as fast as the internet is it’s still much slower than a direct connection and that means that the initial backup takes a long time to get fully backed up (after that incremental changes are much faster) and really requires that you leave your computer on and on the network at night (at least sometimes). For people who choose to use a local backup option it is often advisable to use cloud backups as an extra precaution. Local for convenient, fast backup. Cloud for a second line of defence and a precaution against physical disasters like theft and fire. Top options in this space are Carbonite and Mozy.
  3. Cloud Synchronisation. This an interesting option because it can adequately provide backup to some of your important data for free (all of it at a price). Services like Microsoft’s LiveMesh and Dropbox are primarily meant to synchronize data across computers … either to make sure all your computers are in sync or that friends or co-workers can collaborate with documents. These services also offer synchronisation with the cloud which means that even if you synchronize with no other computers you can still get your data back from the cloud if disaster strikes.

Backup is surprisingly complex but the two key things that are key are:

  1. Choose a strategy and get started or be ready to suffer the losses that will eventually come
  2. Choose a solution that is easy to follow so that you actually follow the backup plan or else you’ll find yourself feeling secure up until you actually lose the data.

The good news is the options available today are pretty easy and getting easier but it’s still up to you to choose a strategy and get started living a more secure digital life.