The technical aspects of Staff+ development are well-understood, especially by Staff+ engineers that have a wealth of personal experience to draw on for guidance. Combining this well-developed skillset with the new skills required of a Staff+ engineer is how you’ll start to have a really big impact on the wider organisation, and this can be much more challenging.
While updating this website I’ve found myself staring at a crossroads. Persist with the existing format of a backend application that serves up a mix of templated HTML and static assets, or switch to a UI framework (specifically, elm-ui). But what are the trade-offs? If I’ve grown so fond of elm-ui, why isn’t this switch a simple decision? It comes down to the difference between documents (AKA “content”) and User Interfaces, and I think the answer reveals one of the main weaknesses of the web as a platform.
Use fewer words.
I haven't blogged for a while so I've not mentioned that over the last year or so I've got really into a game called Netrunner. I am also the proud owner of a new(ish) Pebble Time, having owned the original Pebble for the last couple of years as well. The obvious way to combine these things was to make a Netrunner app for the Pebble, so that's exactly what I did.
Last week I gave a talk at the 2014 Scala eXchange in London, entitled "Effective API design with Scala types". The talk involves some practical examples of how choosing appropriate types can greatly improve the design of your API, making it both much easier to build and much easier to use. I promised I would upload some more details about the code so here it is along with some more background, links to the talk and some supporting resources.
SSH is one of the key
tools used for modern web development but it's not very well known
ssh can be configured to make life easier. Modern applications
often bear little resemblance to those that existed when ssh was
developed so tweaking the default settings is increasingly important.
With the lastest release of
the Play Framework, the way
multi-project builds should be created has changed. Unfortunately this
change is yet to be documented. If you're following the docs but
seeing unexpected (and unwelcome) error messages along the lines of
object Project is not a member of package play then read on. I spent
a while getting to the bottom of this, hopefully I can save you the
Time is fairly complex subject but we are used to taking it for granted. One reason for that is that these days computers keep track of time for us so we rarely need to think about it. The way that they do this is very interesting and taking a look at how computers understand time can teach us a lot about what time is to us. What's more, in our look into the world of computer time, we'll uncover an impending disaster that is to the Y2K problem as Krakatoa is to the gentle rumblings of your stomach on a hungover morning.
What a week! I've long been a big fan of Wagner's work and this year marks the bicentenial of his birth, which has given me a fantastic opportunity to get stuck into some music. Most notably, the proms has been offering a veritable banquet of Wagner. It's rare for quality productions of Wagner's later work to be performed in full because of their length and difficulty. It's rarer still for the two most extreme such works to be performed in a single week by an all-star cast with the low barrier to entry (and cost!) offerred by the Proms.
Meter Delta is a tool to help musicians improvise together in dynamic time signatures, chosen at random by the computer. Meter Delta itself is just a library to take care of the timings and time signature selection but I also provide a default UI that you can use directly, or as inspiration for your own project.
It's been a very long time coming but luckily @grumpyjames put together a fantastic blog and showed it to me, which was incentive enough for me to get my own off the ground. It has been pointed out to me that there's no point writing one's own blogging platform when it's so easy to just use one of the almost infinite number of existing solutions. Good advice, that I have chosen to ignore. I finally have a new website.
This blog has started to become a "me sharing little things" place. Along the same lines, a friend of mine has been setting up a website and asked me about SSL certificates. Rather than just replying with a recommendation, I launched into a brief description of why they're necessary. I might as well put it up here in case it can help anyone else.
A colleague just asked me how do I get the IP address of the server this script is running on?, which a great question. You can do it in Python but it's a bit of a hassle and as is often the case, it's really easy to do this in bash. I came up with this off the top of my head. It's not the best way to do it but it works nicely and it's very clear so I figured it would be a nice example to show. (I have a few alternative implementation as well but if you have a neat one I'd love to see it in the comments)
I’m sure you have all heard about Amazon’s decision to stop hosting the WikiLeaks website and given my interests (and career!) in web technologies this is something I’ve been giving a lot of thought to over the past few days. My opinions have changed while I’ve been thinking about it so I’m going to tell the story of my reasoning as a backdrop to what I have (for now) concluded is the real underlying issue. This isn’t about WikiLeaks and it isn’t about Amazon but given the ongoing WikiLeaks debacle and Amazon’s enviable position in online retail and web services, these organisations and the relationship between them makes for a great case study in the deeper issue of the role of technology in our lives today.
So I've been talking about "updating my site" for years. It's one of those things that always needs doing but because it's my own site I've set my expectations pretty high. Many times, I've begun coding an update and many times I've then "found something better" and decided I should do it that way instead. I've hacked away at PHP (as well as written an entire PHP MVC framework), dabbled in node.js, toyed with django (which I'm using at work these days) but not yet got it done.