Reaching escape velocity

The last few days have been frustrating. Every time we get ready to pack up and come home something comes up. First it was a bout of jaundice which needed seeing to. Now the pediatricians are being abundantly cautious about a twitch she has while she’s asleep. This has extended the sentence by at least another 48 hours which is really aggravating. Having a quite day or two to myself to potter and get the house ready is one thing, but at this rate I’ll have burnt all my paternity leave before my child gets home.

I feel bad for abandoning Fliss who keeps patiently sending me home to get another good nights sleep. I know it will be all right in the end but it’s definitely making me aggravated. I would like my family at home please!

Do the stars shine brighter tonight?

This was my thought as I unpacked the car tonight. It may have been the cold weather and clear skies though, it’s hard to be sure. I’m currently pottering around the house tidying up and preparing to welcome Ursula to the home tomorrow. I suspect my perspective may have altered in the last few days.

Lets start with the birth. As it approached it felt much like a late night after party when everything was getting a bit hazy. You know the sort, you’re sure someone said something profound but it’s been a very long night.

For a variety of totally mundane reasons it had taken us 28 hours to reach the dénouement of this particular hospital visit. I’ll spare the tedious details although I’ll happily give you the story as I remember it over a beer if you ask me in person. 28 hours is a long time to be awake and the sensation of transforming from the theoretical future parent to an actual real one is much akin to being launched off on a roller-coaster of unknown length and duration. I have now joined that biggest of shared clubs – hello my fellow breeders, I can talk about my child now ;-)

Picture of a newborn baby looking hungry

When I was ordered to bed the first night I excitedly blurted the news across the social media. I was worried I would bore my followers with parental ramblings before being reminded there are a lot of parents out there happy to share their experiences. I’ll be paying closer attention to what they say in the future on my journey to responsible adulthood.

I’ve ticked off a few things on my journey so far.

* My baby certainly didn’t look like Winston Churchill. I don’t know all those other parents cope ;-)
* Nappies aren’t really an issue, parental pragmatism kicks in pretty quickly.
* Nuzzling post-feed babies are indeed cute, even to a manly bloke like myself

I’m sure I am quickly acquiring the list of stereotypical parental behaviours. I get the sense it’s going to be a wild ride catching them all!

Edit with Emacs v1.10 released

I received a bunch of feedback and patches from my last announcement but I think all the outstanding bugs are now squashed. The edit-server.el has seen some love to make it more idiomatically correct for elisp. The main change is new code to handle editable DIV tags beloved of such sites as Google+ (which you are welcome to follow me on, maybe I should have an elisp circle?).

A big cosmetic change is a brand new settings page which looks less like a web-form from the early 90′s and more like part of Chrome. Alas I can take no credit for this but can thank Frank Kohlhepp’s fancy-settings library. In fact a lot of the credit should go to third party libraries like jQuery and of course the growing list of contributors who have submitted code for merging.

So the final changelog for 1.10 is:

Extension

* Ignore textareas marked as read only
* Don’t tag areas that are not visible
* General clean-up to use jQuery to find elements
* Explicit CSS for edit button to override page settings
* Handle editable DIV blocks (e.g. Google+)
* Optimise the finding of text areas for highly dynamic pages
* Revamp the settings page with “Fancy Settings”

edit-server.el

* Allow customisation of edit-server-default-major-mode
* Allow edit mode to be set by matched URL
* Tweak detection of MacOS X Emacsen
* Change behaviour of C-x C-s to save to kill-ring
* Persist the buffer-local variables beyond mode changes
* Setup keymap within defvar
* Clean-ups to code to be more idiomatic.

Call for testing for Edit with Emacs

I’ve been doing a bunch of house-keeping on Edit with Emacs recently in preparation for a new release. I can only apologise to those people who have submitted patches and merge requests for my tardiness. I’m afraid Real Life tm has been taking precedence.

As regular readers of the non-emacs sections of my blog will be aware my recreational coding time is about to be severely curtailed. As it’s been a while since the last release and a number of new features have been added it would be nice to get some wider testing. I therefor am hoping to elicit the help of the Emacs community to check out the code and give the tires a bit of a kick before I push out the final release to “the cloud”. I’d rather not regress behaviour for the 1917 users who get Edit with Emacs from the Chrome store just before I disappear into a haze of nappies and parental responsibilities. The current changes over the last release are:

Extension

* Ignore textareas marked as read only
* Don’t tag areas that are not visible
* General clean-up to use jQuery to find elements
* Explicit CSS for edit button to override page settings
* Handle editable DIV blocks (e.g. Google+)
* Optimise the finding of text areas for highly dynamic pages

edit-server.el

* Allow customisation of edit-server-default-major-mode
* Allow edit mode to be set by matched URL
* Tweak detection of MacOS X Emacsen
* Change behaviour of C-x C-s to save to kill-ring

Project Veg Patch

I noticed I haven’t posted anything this month about what’s going on in my life. Well as you can imagine the impending arrival of our first child has kind of glossed over everything else. I have not yet achieved a state of panic but it’s very firmly in the radar now. Although I’ve been taking it easy on the drinking (so as to help Fliss avoid the temptation) I’m now going fully dry as I’m on potential hospital driving duties.

It was nice to catch up with a bunch of people at Adam and Lou’s wedding last weekend. It more or less qualified as our last venture away from home for the foreseeable future. This weekend I spent a good deal of the time laying the excess turf from Project: Veg Patch over what used to pass for our front lawn. This of course means the main landscaping of the new “Vegetable” patch at the back of our property is now complete:

I have to admit most of the work at the back was contracted out including a my brother and his partner who did most of the work levelling, laying and building what will hopefully be a productive growing area. Still we are both very pleased with the outcome and hopefully the grass will take and we can concentrate on planting what will provide us with fresh food for the future family!

*ritchie=NULL;

Now the smoke has settled on the passing of Jobs I’d like to talk about a real computing hero of mine. Someone who literally has changed the world (at least for everyone reading this). I learnt last night that Dennis Ritchie had passed away. Without pioneers like Ritchie we wouldn’t have most of the computing infrastructure we have today.

When I was growing up in our computer filled house I learnt like many people playing with BASIC interpreters embedded into many of the early micro-computers. From there I started to learn about assembler and writing code that runs directly on the processor. However it wasn’t until I picked up my first copy of The C Programming Language (often just called K&R) I truly started my journey towards becoming a real programmer. Pretty much every procedural language since has borrowed from or been developed from the foundations of C. I still own a copy of the first edition which holds a honoured place on my computing bookshelf. It’s hard for me to imagine a better book to learn from for my first “proper” programming language.

C has been subjected to much criticism over it’s long history for being a source of many classic programmer errors. Non programmers may have even seen their computers complaining about a “NULL pointer de-reference” when a program goes bang. This is because the history of C was wrapped up in the need for a powerful low level language (“close to bare metal”) that allowed the development of powerful yet portable systems including the original UNIX which Richie was also involved in the development of. Without C/Unix there would have been no Objective-C, no NeXT and ultimately no Mac OS X which is important for much of the renaissance of Apple now enjoys.

If your looking for true pioneers of modern computing Dennis Ritchie is certainly among them. The world of computing has lost of it’s true innovators and one of my personal computing heroes.

RiP

Today the tech-world has lost one of those rarest of things, a tech geek with name recognition. Steve Jobs and the company he founded with the lesser know Steve Wozniak is now a technology giant with operating profits and margins that most oil companies only dream of. It is all the more remarkable given Apple’s turbulent history from early home computer pioneer to near death experience in the 80s (when Jobs was ousted) followed by one of the most successful corporate turnarounds in history. Jobs’ return to Apple coincided with the release of the iconic iMac, soon to be followed by the iPod and of course now the ubiquitous iPhone.

In the early days Apple was pioneering as the nascent home computer market was finding it’s way into the homes of the world. Arguably their most successful product, the iPod, was not a new innovation. Where Apple made up for this was in their execution. A lot of this is a tribute to Jobs’ laser sharp focus on usability. The new Apple did not ship something half working and then worry about fixing it later in software. Nothing was shipped from Cupertino until Jobs was happy they had created a product that worked beautifully and would instantly promote the desire to own one when you played with it. The success of the Apple store is down to the fact that once you’ve touched and fondled their products parting with your cash seems like such a sensible idea.

I have many criticisms of Apple and the way they conduct business in their walled garden. For this reason I’m not a big user of their products or technology. However I happily concede that Apple under Jobs’ leadership have done more for advancing the vision how technology can improve peoples personal world than most companies in the tech sector. A world without Jobs’ vision and focus is certainly a poorer one and he deserves his place in the history books for what he achieved.

Saturday evening in New Zealand

A lot of people have made out that having the rugby on in the morning is a bit of a pain for fans. I’ve been quite enjoying the matches so far. The last two weekends Fliss and I have rotated cooking a Canadian style breakfast to go with our morning rugby. This week was my turn:

Picture of bacon, pancakes, eggs and maple syrup.

Enjoying adding the syrup.

Although England have been really lucky with their group it was hearting to see much better game than the last outing. There were a few times when Romania threatened to put a ball over the line but it brought out the best in the England team. In the end though the match was one sided and England were able to start romping the tries in.

The France vs New Zealand promised to be a very well contested game for the first 10 minutes. However the All-Blacks soon asserted themselves over France and pummelled them into submission. This bodes well for England as it puts of the inevitable All-Black confrontation until the end of the tournament (assuming we make it that far).

We’re currently watching the Argentina vs Scotland which looks as though it will be the tightest of the lot so far.

Social Wars

Well it seems the next major technology war has kicked off on the web. Google has opened up its beta social service to all and sundry. At the same time Facebook have had another major face lift and announced their intentions to become a content hub for the Internet.

For me Facebook’s latest move is eerily familiar of the early days of the web when everyone was vying to be the default web portal in the browser. It didn’t work back then and companies like Yahoo have never really recovered from failing in the land grab. Back then everyone underestimated the demand for search that just worked and when Google offered something that broadly gave you relevant results the curated model of the web died.

However Facebook have a massive advantage now having captured 750m users who visit their site on a regular basis. They didn’t come to Facebook to find cool places on the internet but to interact with their friends. Facebook didn’t invent social networking but they certainly demonstrated that executed properly it was something that lots of people wanted. So far people have been very relaxed about Facebook’s access to all that valuable social information and its use in advertising. Frankly any company that launches any sort of consumer product these days has to have some sort of strategy about how they will interact with Facebook.

Google have know that “social” is going to be a big thing for some time now. They have had several attempts to capture a segment of the market and Google+ is their most serious contender to the space so far. Their reasons for running the service are much like Facebook’s although their principle advantage is not having to worry about how to monetise the service yet. Google’s history has very much been developing ideas and seeing if they become popular before working out how to monetise it. Meanwhile it’s a dangerous time for Facebook as they move towards an IPO where their long-term investors will be looking to cash-out on their investment. If Facebook start hemorrhaging users to alternatives its market value will literally disappear before the investors eyes. In the web-based world where a competitor is literally a click away the last thing they want to do is repeat the experience of MySpace. This would be especially ironic as Facebook was one of the major reasons MySpace went the way it did.

Who will ultimately “win” is an exercise in futurology that is a futile as predicting anything related to the fast changing world of the internet. I personally can’t wait to move away from Facebook and to a service that gives me more control over my data. For now that is Google+ but it’s by no means certain that’s where it will stay. However one thing I’m sure of is the process of taking my data from Google and moving somewhere else will be a lot easier than the exercise has been from Facebook. Coincidentally it’s probably the main reason why I’ll be staying with Google for the time-being.

What do you think of these latest moves? Do you care who “wins” or what the services turn into? Or is the age of social networking the latest in a long line of internet fads that has already peaked?

org-mode and clocking in

I’ve recently started using org-mode‘s time tracking to keep track of what I spend my time doing at work. This was in response to being asked by one of my managers what I spend my time doing and basically being forced to guess.

Setting up a clock page is fairly simple. It’s then just a case of C-c C-x C-i and C-c C-x C-o on the appropriate sub tasks. Dynamic blocks can then be added to your org-document to generate weekly, monthly or annual reports based on the clock lines in the document.

So far the results have been illuminating and certainly shows how optimistic I can be in predicting how much time I spend doing my core job hacking on the code. However one thing that is captured but hard to summarise is interruption cost. I’ve taken to switching task every-time I’m interrupted in person or by phone call (I’m not counting IM/IRC as it’s less disruptive). I can eyeball the raw data and see that some weeks are exceptionally bad for task switching. However what would useful is a break-down of mean and median clock lengths against each task to give some sort of indication of how much straight line hacking I’ve gotten done. I have a feeling the :formula and :formatter options could be used for this but I’ve been struggling to find any example. Does anyone do a similar analysis with their org-mode clock data?

UPDATED: fixed keystrokes.