Tuesday, March 04, 2008
WikiNotes Open Sourced
I am very pleased to announce that a project I have been working on at Google has now been open sourced under the Apache 2.0 license. This application implements a personal Wiki for the Android platform and demonstrates a number of key concepts about Android software development. You can read the full announcement at http://android-developers.blogspot.com and the project is at http://code.google.com/p/apps-for-android. Enjoy.
Saturday, January 26, 2008
On Air
Putting the finishing touch into my new podcast recording studio seemed to be the ideal excuse to try and start blogging again. The sign you see on the left is an "antique" on-air sign that Jackie bought me for Christmas. I mounted it on the door today and put a little fluorescent light in it, and voila - the finishing touch.Of course, a podcast isn't really "on air" but it is nice to let people know when you are recording so that they can avoid walking in during the recording. The completion of the studio is good for starting something else up again as well - the Podcasting book that I almost finished and then put on hold for a year while we moved out to California, started new jobs and all that other stuff.
I am pleased as punch with my studio - some of the highlights include a video-conferencing and media center powered by a Mac Mini connected to a 32" HDTV, and video conference capable as well. I have the room pre-wired with four microphones so that we can just sit down and start recording a posse episode, and also the mac mini has an output that runs straight into the 14 channel mixer along (with USB output) along with the mics - this means that we can record people in the room plus video or audio conference other people in and record them as well.
On top of all this, there is a monitor output from the sound board to an infra-red headphones transmitter, and four pairs of receiving wireless headphones so that we can all monitor the recording while it is happening, but not have any trailing headphone wires (it is also a wickedly good setup for recording conferences without the people at the other end hearing any echo, or their voice getting picked up by the microphones in the room).
The room is filled with comfy furniture, and I put up heavy curtains around three of the walls which, when drawn, help deaden any echoes. The results are pretty good - you can always judge for yourself at http://javaposse.com.
Friday, June 22, 2007
New article up at Developer.com
It has been a while, but at last I am back to writing technical articles again. The first one in a while: Guicing Up Your Testing demonstrates how you can speed up and improve your testing for applications that use a lot of slow resources like databases, using Dependency Injection with Guice as a way of replacing the slow resource with a faster alternative. Future articles in this series about Guice will go into better practices generally for testing with Guice. The next one, for example, will cover using Guice with EasyMock. Beyond that, I am hoping to examine how to break up large code building dependencies using Guice and generally use it to improve the architecture of your application.
Wednesday, June 20, 2007
My Sister's New Enterprise
Just found out that my little sister, Kirsty, has a new website/business called Flower, the PA (Personal Assistant). You can see the new site (which looks very nice) at http://www.flowerthepa.co.uk/ and if you have any design needs give it a look, she is very good at that sort of thing.
Wednesday, April 25, 2007
A Series of Unfortunate Firsts
Yesterday's trip home was a series of firsts which I wish I had never had to experience.
The first was pretty decent - I was averaging over 16 miles an hour on my bicycle, riding home from the shuttle stop to my apartment - about 12-14 miles depending on the route I take. In fact I was feeling so good I decided to take the longer route.
Then the bad stuff started happening.
Due to some miscalculation - a moment of distraction, whatever it was, my bar ends on my handlebars just clipped one of those (silly my thinking goes right now) metal bars that they put on bicycle lanes to stop cars driving down them (is this *really* a problem?). Anyway, combined with a pretty high speed (above the 16 mph I was averaging - at least that's my guess), I went down fast and hard.
Then another first, I have been winded before, but not like this. I could feel my heart pounding but was totally unable to draw breath, I remember being quite calm wondering what would happen next since I couldn't draw breath.
What happened next was that I passed out. This truly is a first - I have never passed out before - I thought there might have been a couple of times I had, but nope - this was definitely something new.
Waking up (or coming to) was actually quite a nice experience. At first I was just in bed, all comfy, thinking I could sleep for a bit longer, but then it occurred to me that something was wrong. For one thing, my bed doesn't have grass or asphalt in it, then I realized that some things were hurting pretty bad - mainly my shoulder and my side.
I called Jackie to come and meet me, and with a combination of walking and cycling, made it to the road. On the way, I had what I thought was the worst attack of hay fever ever (certainly it felt like hay fever times 10). I think it must have been something else because by the time Jackie reached me, my eyes (and much of my face) had swollen to the point where I could only barely see out of one eye.
Then another first - I voluntarily went to the ER. I don't like hospitals much, and I have never been for an ER visit (at least not as an adult - I think there might have been a couple of times as a kid with my parents). In fact, if Jackie hadn't of suggested it, I would have, because on top of the allergic reaction which was causing me to have trouble seeing, my shoulder and side were really hurting.
Another first - we always make a point to scope out the local hospitals when we go and live in a new place, but for some reason we hadn't done it yet since our move to California. Finding the closest hospital was a bit interesting.
When we got to the ER, they saw us pretty much immediately. I think it was the allergic reaction that did it (it's such an obviously visible thing). This was followed by my first CT scan (My head had some scratches, and when they learned I had passed out, they just did it). I then had 14 X-rays as well - by this time the doc had told me I had almost certainly fractured a rib or two - he had felt it in his examination.
So - I guess after years of paying (or at least part-paying) medical insurance and being pretty healthy - yesterday I cashed in a lot of those chips.
I was counting myself lucky it wasn't much worse. The diagnosis was 2 fractured ribs and a separated shoulder, plus numerous abrasions and a head hematoma (fancy word for bruise). No casts, and the bike is actually in pretty decent shape too. My laptop made it, the laptop bag is another matter though - it's a little the worse for wear.
Anyway - the Doc said no work for a day, and no driving for the rest of the week, longer if my arm gives any pain when I try to drive. I have so much medication in my body right now that I don't even feel like myself - I rarely even take aspirin, right now I am on stuff to prevent swelling and muscle relaxants, high powered pain killers and strong anti-histamines (my eyes are still a little swollen even 24 hours later). No one seemed able to come up with a reason why I got the allergic reaction but speculated that I may have been bitten or stung while passed out.
Upshot is I am a little wiser today - getting the average speed up above 16mph (on a mountain bike mind :-) ) seems a lot less important than 24 hours ago. I can live with being slow and together rather than fast and broken. Ahh well - no real harm done. I will have a reminder for a few weeks about what happens when you are stupid on a bicycle, and then hopefully will be back to normal. That will give me enough time to fix the few things wrong with the bike now, and maybe take it in for an overdue tuneup.
And does anyone know if those damn metal posts really are necessary?
Oh, and if you like, you can read about Jackie's side of the story on her blog.
Saturday, April 21, 2007
The top of El Toro
We joined in the yearly Morgan Hill expedition to climb up El Toro today. The view from the top was well worth it (camera phone doesn't do it justice though). 1400 feet, so fun but not a real tough challenge.
Sunday, March 25, 2007
Wine tour of Santa Clara
Time to get blogging again and what better occasion? Today we are taking a day out from the moving work and touring some of the wineries of Santa Clara valley - a mustang convertible is highly recommended on a sunny day like this...
Saturday, December 16, 2006
My First Two Weeks at Google
I have been wanting to blog about my first two weeks at Google. One of the first things that is impressed on you is to be careful what you blog, and I want to be. For one, I certainly don't want to talk about anything that could jeopardize what is the best job I have ever had (so far anyway), and for another, I see the reasons behind the need for confidentiality. As with most companies that rely on their IP, you learn very quickly that Google has a lot to lose from loose lips, and I don't want to see that happen.
That said, there are some things that I am pretty sure I can talk about safely, and I will. I will start with describing what life is like as a Noogler.
The first day is kinda boring - very typical admin stuff, fortunately it gets a lot better after that.
The best I can describe the first two weeks is like being back at uni - lots of classes to learn the ropes so to speak, but they are great classes. I found myself wanting to get some coding done and the classes kept breaking things up, but at the same time imagine getting two weeks of training in some very cool subjects indeed. I have learned a heck of a lot in a very short time.
As for the job itself, although it's early days I am very excited about the work and the team I am in. They all seem really sharp, and we have had some great geeky-talks about what they did before Google (a lot of diversity like mobile OS, experimental new apps, etc.).
On top of that - there are the perks - this is the gravy that goes on the workday "meat". Great gym facilities, the food rocks, it's a really nice atmosphere for working in - you can take off in the middle of the day and grab a latte at one of the cafes, and sit outside and work on the wifi - just like going to a starbucks, but the coffee is free :-)
I am really looking forward to getting down to some serious work now. I want to start earning this paycheck.
In fact, suffice to say that I can't recommend this place highly enough, and I can't wait to see what next year brings.
That said, there are some things that I am pretty sure I can talk about safely, and I will. I will start with describing what life is like as a Noogler.
The first day is kinda boring - very typical admin stuff, fortunately it gets a lot better after that.
The best I can describe the first two weeks is like being back at uni - lots of classes to learn the ropes so to speak, but they are great classes. I found myself wanting to get some coding done and the classes kept breaking things up, but at the same time imagine getting two weeks of training in some very cool subjects indeed. I have learned a heck of a lot in a very short time.
As for the job itself, although it's early days I am very excited about the work and the team I am in. They all seem really sharp, and we have had some great geeky-talks about what they did before Google (a lot of diversity like mobile OS, experimental new apps, etc.).
On top of that - there are the perks - this is the gravy that goes on the workday "meat". Great gym facilities, the food rocks, it's a really nice atmosphere for working in - you can take off in the middle of the day and grab a latte at one of the cafes, and sit outside and work on the wifi - just like going to a starbucks, but the coffee is free :-)
I am really looking forward to getting down to some serious work now. I want to start earning this paycheck.
In fact, suffice to say that I can't recommend this place highly enough, and I can't wait to see what next year brings.
Sweet Ride
This is my new bike. Since the big move of all our stuff to CA is still a while off, and because my cannondale is now 12 years old, I decided to take the plunge and get a new one out here.
It's a Specialized FSR-XC and I just got back from my first real ride on it - a 2 hour jaunt around Almaden with Carl (Quinn). We did a bit of single track... Enough to christen it without making it too dirty (you see it here after the ride). It is by far the best bike I have ever owned, and I can't wait to get back and ride it after our vacation in England.
It's a Specialized FSR-XC and I just got back from my first real ride on it - a 2 hour jaunt around Almaden with Carl (Quinn). We did a bit of single track... Enough to christen it without making it too dirty (you see it here after the ride). It is by far the best bike I have ever owned, and I can't wait to get back and ride it after our vacation in England.
Sunday, December 10, 2006
Sunday, December 03, 2006
Start of a new day
And the start of a new chapter. Yonder beast of burden is set to whisk me away for two weeks of orientation at Google. The real chapter starts in the new year - this is more like that scene setting poem or quote, but you get the idea.
Wednesday, November 22, 2006
Leaving do...
Like all good brits, I went down the pub for my leaving do. In attendance were John C, John W, KJ, Hon, Tim, Stewart and Josh. It was a great afternoon and I totally lost at darts.
Monday, November 20, 2006
And the rest of my office...
Unfortunately, the rest of my office is not quite as neat as the whiteboard. At least most of it is boxed or thrown away now. Should be able to finish up easily by tomorrow.
Sunday, November 12, 2006
Finally I am Server Free
As of today I have finally realized one of my very long term goals. Several years ago I decided the only way to get the flexibility I wanted for my home websites, email, file transfer, dvd database and numerous other things was to run my own Linux server at home. It was a fun and educational experience setting it up, and I certainly don't regret doing it, or learning how.However, as time has gone on, running a server at home has become less of a convenience and more of a liability. For one - the version of Linux the server is running is pretty old now, as is the box it is running on. I have often thought of upgrading both, but the amount of work coupled with a lack of time has always put me off.
Having a home server was primarily a convenience for email - I wanted a central location (IMAP) where I could deal with my email from multiple computers - as a software engineer, using multiple computers throughout the day is just a fact of life.
I also ended up running an increasing number of websites on the machine (at one point it was running 6 different low volume websites on the same box). It also worked as a print server, FTP server, ran several PHP applications including a DVD database, and several other things that I have forgotten about now.
The risk has always been that power outages cause a lot of things to fail, and we get a fair number of them around the lake. On top of that, the version of Linux is old on there now, and hasn't had any security updates in a couple of years now. It is a testament to Linux that this box has never been compromised, but I have known for some time now that I am probably pushing my luck. One good hack, and 5 websites and much more would go down, probably taking hours or even days to repair.
The first step in moving away from having a server at home was getting a gmail account - I consider this solution superior in every way to the IMAP server I was using - and someone else has all the headaches of keeping it running.
Then I moved my blog away, onto blogger.com from wordpress which I was running at home - another great simplification.
Next up - my Bookmarks (oh yes - I had a php bookmark manager on there too) - that went to Delicious and I haven't looked back on that one either - it now syncs automatically with firefox, and I use the bookmarks far more than when I had the PHP app. It even integrates into my desktop search tools.
DVD Database? For this I found dvdspot - an amazing free service - highly recommended although the signup is a little quirky. Once you get signed in though, it is pretty much the ideal DVD cataloging tool, and ties in with all sorts of online services to get DVD details, price-compare for items on your wishlist, etc.
FTP and file transfer were taken care of by the excellent AMD vault online service - I blogged about this recently - it allows you to store up to 25 gigs of data with the free service, more for the for-pay options.
So - finally with the impending move to California to go and work for Google, I took the plunge and switched out the last thing my server was left doing - web sites.
For this, I went with the free services offered by my future employer - Google Apps for Your Domain - a brilliant service (I can say this after using it to transfer everything over for free today) that offers gmail, home pages, chat and calendar for any domain you own. I transferred all of mine over, including the one we run for another separate organization - I set them up with their own email site and calendar should they decide to use it.
As soon as the changes go through with my domain name service, I can finally turn the switch off on the poor little 200MHz P2 that has been doing this duty non-stop for the past five years. So long little Linux server, and thanks for all the hard work. Meanwhile, all I will say is it's amazing what you can find for free online these days.
Would you like to Digg this?
Wednesday, October 04, 2006
AMD Live Media Vault
From time to time I duck into the world of gadgets, particularly online gadgets, to look for new cool things that might make my life easier.For some time now I have been following the progress of a mono application called iFolder. Mono is an open source implementation of Microsoft's .NET and there are some interesting tools for it, although (and I consider myself pretty worthy at Linux at this point), unless a tool happens to be packaged for Linux already, I always find that Mono applications are way, wayyyy to hard to build from source on Linux (it never just works), it's like Java in the days of blackdown, only far worse! Mono clearly has a way to go still, I am sure it will get there, but where is the simple distribution that the CLR should enable? I thought that the idea was you should just be able to download one of the .exe files and run it!
Anyway, I did find a packaged version of the iFolder client for Ubuntu Linux, and installed it and it worked. However there is no AMD 64 version, and no packaged iFolder server - and as far as I could see there is no online provider of iFolder hosting right now. I abandoned the attempt as I have a number of times before.
However, I got determined about finding some way of getting an online drive that is Linux friendly. I looked at GMailFS and as best as I can tell, it too is broken right now as well (I got authentication, and the mount was reported as working, but I was denied permission, even as root, to access the gmail drive). I have to say I had my reservations about putting important data into something like this where a simple API change by google could render my data unrecoverable.
Then I hit upon AMD Live Data Vault after a bit of searching, and I have finally found a really good solution to the issue of an online drive for Linux. The free version offers 25 gigs of storage, and a maximum file upload size of 25 Megs. There are limits to how much you can download each month, so it's not really a good transfer medium, but for off-site backups this rules.
Security features seem a bit lacking, but you can easily just encrypt your files before you put them up there - I use OpenSSL for this:
openssl enc -aes-256-cbc -salt -in
and to decrypt
openssl enc -d -aes-256-cbc -in
These will ask you for a password when they run - choose one for encryption and remember it cos otherwise you won't be able to decrypt
Between that and the archiving tools built into ubuntu I feel safe storing even very sensitive files on the online drive, and it's great to have the peace of mind of an online backup.
They sell accounts too, with more storage and download capability, but 25 gigs is ample for me for now.
Tuesday, September 19, 2006
GTD: Treo now Syncing OTA with GCal
I had all but given up with the idea of getting my Treo to sync with Google Calendar over the air (OTA) using the Java GCalSync midlet because it just appeared that the IBM Java Environment used on the Treo didn't support it. Then I came across the missing piece of the puzzle. Apparently the PIM access libraries for Java are in a separate directory when you download the Java environment and have to be installed explicitly. After I did this I was able to get GCalSync (a free program) to synchronize my Google Calendar with my Treo without needing any computer in the loop at all. This is a happy thing :-).The steps, if you want to do this yourself, are:
- Download the Websphere Everyplace Java VM from http://www.palm.com/us/support/jvm/download.html and unpack it.
- Install the J9JavaVMMidp20.prc and JavaVMCheck_enUS.prc files from the JVM/ARM4T folder onto the Treo
- Install the fileconnect.prc, pimop.prc and PIMPrefs.prc files from the JSR75 folder (you can also install localized prcs if needed, but english speakers will not need to)
- Install both files from the JSR172 folder
- Sync your Treo with the computer, so that the prcs are copied on to it
- Reset your Treo, really, seriously, it doesn't make you but I found things work a lot better if you do
- Find and start the IBM Java VM from the Treo launcher
- Hit the install button
- Type in: http://www.gcalsync.com/gcalsync.jar for the URL and hit OK
- The gcalsync program will be downloaded and installed
- Run it and follow the instructions (see the gcalsync site for help here)
I hope the same is true for you.
Monday, September 04, 2006
jFlubber Reloaded
What a week - remind me to tell you about it sometime (when I can).Anyway, one of the really cool things that happened this week was I got an email from Romain Guy, Formerly of Swing Labs fame. He, along with others from Swing Labs (like Josh Marinacci and Richard Bair among others) do several sessions at JavaOne each year where they take an existing rather plain swing app and pimp it up to look spectacular, mainly as a demo of what swing can do (with the right people doing it :-) ).
Well, I was delighted when Romain told me in the email that he had given my jFlubber application an extreme makeover. jFlubber is a simple application that I use literally all the time for podcasting. I slung it together in a few short hours using Matisse, in essence it is a stopwatch with a multiple lap timer, you start the timer, and each time you hit flub it records the exact time. It also spits out an audacity formatted labels file. The upshot is that when recording a podcast, you start the flubber timer with the recording, then whenever someone makes a mistake you hit the button and it records a flub time. At the end of the recording session you save the file out and load it into audacity, and you instantly get a bookmark track of all the mistakes in the podcast recording - very useful and a great timesaver.
Of course, I am not really a GUI guy, so the UI was serviceable (and I even thought it was decent), but it certainly wasn't a looker - until now. The new UI has bitmap textures, anti-aliased fonts, non-rectangular buttons, shadowed timer label and a fantastic custom flub button.
I used the original project as one of my developer.com demo articles for how to use matisse and if you check that out you can see what the original UI looked like - certainly usable but not pretty. The results of what Romain did you can see in the screenshot included with this blog entry - quite striking. I am very proud that one of my apps got a GUI makeover - thanks Romain.
jFlubber is hosted out on google code hosting and soon Romain's changes will be put up there too (once we get all the logistic sorted out like adding Romain to the project membership). In the meantime, you can download the source (and a pre-build jar file which you can run with java -jar jFlubber.jar).
Saturday, August 26, 2006
Ubuntu Productivity Apps: Freemind
Ubuntu is a new experience for me (at least, new outside of the Mac). With previous Linux distros I was always fiddling or fixing some niggle, with Windows I still find myself either trying (usually in vain) to get something working the way I want it, or just trying to ignore the irritation. The Mac isn't particularly configurable but the defaults are good and usually what I would want anyway.But the big difference with Ubuntu is that it works so well out of the box that I can really concentrate on getting stuff done, while still being configurable enough to be personalized.
With this in mind I am going to start talking about some of the applications I use on a regular basis that give me a real productivity boost. Many of these applications will work not just on Linux but on Windows and Mac too (making them even more powerful in my opinion). The first of these is FreeMind.
If you are not familiar with the concept of mind-mapping, the idea is to capture thoughts, structures, outlines and so on in a semantic diagram - similar in many ways to outlining but more powerful (mainly because it is less strictly structured).
I really adopted the technique when I started writing articles for Developer.com a while back. I had used outlining and mind-mapping techniques a little before that, but the article writing was the real impetus behind making it part of my routine. That's when I discovered the Java application Freemind which is a completely free and open source solution for mind mapping.
The podcasting book I am currently writing was fully outlined in Freemind before I started the process of actually writing it, and it really helps keep the flow of writing going. Of course, things change during the writing process, but Freemind has some good features for re-arranging the maps easily with drag and drop, so it is not just a static item once created.
Freemind is not the only option - some related interesting applications include Conzilla which is closer to a diagramming organizational tool, and another one that I just can't remember the name of (used it for a little while then dropped it due to bugs) which was more like TheBrain from windows, but free and written in Java.
In truth though, FreeMind is the best of the options (at least for me). It is fast and easy to use and these days I don't write anything longer than a couple of pages without using it.
Subscribe to:
Posts (Atom)








