Saturday, April 10, 2010

Switching to Android: Part 1 - Introduction

The other day I was lucky enough to get a nexus one for gratis. Actually, strictly speaking it was for writing an application for Android called WikiNotes (I wrote it in my spare time while working for Google  as an Android Advocate - it was intended to demonstrate how intents and the android application lifecycle worked, but ended up being a pretty useful app). When I left Google, Dan Morrill kept up the development of the app and submitted it to the android marketplace where (from reports) it has done reasonably well. Anyway, just a few days ago I picked up my shiny new Nexus One - a nice, but unexpected, reward (maybe some karma catchup?).

I decided that I would write up my experiences of switching to it from the iPhone 3G that I have been using for the past 18 months, and I intend to be honest, both with praise and criticism, as I switch to the new device (which I will be doing - I have already decided that much).

The Nexus One came to me at a good time. I have been becoming less and less satisfied with the iPhone, primarily because I use it so much and the seemingly small limitations that Apple imposes on how I may use their device have grown over time into much more serious impediments. I will cover these limitations in detail as this series goes on, and discuss how Android improves on them (or in some cases doesn't! Life is  not perfect in the Android world either, but it is better).

So let's start with a few of the higher level niggles with the iPhone. Of course, top of the list is lack of background applications. For a multimedia device, inability to keep applications like pandora or last.fm running in the background is extremely irritating. I jailbroke my iPhone to get around some of this, and could after a fashion listen to Pandora when replying to an SMS for example, but it all relied on me enabling backgrounding for that app, and it was far from a smooth user experience. Apple just announced that backgrounding was being added to the 4.0 iPhone OS, which is great, but apparently not for older devices like mine because they can't do it. Ummm, yeah, actually they can on jailbroken devices, and I am sure apple could make it smooth if they wanted to, regardless - I am out of that scene now.

Another one is that my battery life is nowhere near where it used to be. This is not due to jailbreaking (it has been that way for over a year), but more to do with the service cycle of Li Ion batteries, and the fact that they don't hold their charge in the same way after a year or two. Not a problem in most phones, but of course I can't just take out the battery and replace it with a fresh one. That's just lame, and I didn't realize how annoying it is until now. I could take it into an apple store to get it changed, but really, why? Why can't I just put a new one in myself?

So - enough of the iPhone, for the rest of this blog posting I am going to stick to my first impressions of the Nexus One. More details will be in future postings.

The Nexus One is the first Android phone that (in my opinion) measures up to the build quality and overall slickness of the iPhone (don't get me wrong - control-obsession aside, Apple did put together a marvelous device). The Nexus One is what android devices should have been all along.

The device is slim, slick and feels well built. It has an easily replaced battery, easy access to the SIM card, and a micro SD card slot with a 4G card provided with the device (but capable of taking 16G or maybe even 32G in the future). Easily replaceable storage. A nice feature (especially for large or varied media collections).

The first stumbling block was the connector. I had expected the now-defacto standard mini-USB, but it was something different - what turned out to be a micro-USB. Apparently this is the wave of the future, but the future does not yet seem to be here - a check at Target for example shows a ton of mini-USB chargers and cables, but nothing micro-USB yet. It wasn't hard to find some inexpensive converters at amazon.com though: http://tinyurl.com/y8g7rxs so I ordered a couple for all of my power chargers and cables that already use mini-USB.

The battery life is, as everyone seems to say, pretty much the same as the iPhone. The gauge is a little more honest (my iPhone reported itself as fully charged for half of the day, then started dropping quickly, while the Nexus One seems a little more linear in its estimations). One nice thing is that road warriors or power users can put in a double capacity battery (with a bulging battery cover to match). This will spoil the sleek looks, but it's a flexibility that iPhones can only get with awkward external battery pack options.

Here are a few more high-level things I have noticed about the Nexus One compared to the iPhone:

  • Audio quality through the headphones is at least as good as the iPhone, the included headphones sound fine but are a bit less comfortable than the white iPhone standard ones - either way, much higher quality sounding headphones can be found (I like koss personally)
  • Mysteriously, the maximum output from the Nexus is lower than that possible on the iPhone - I am not sure if this is because of some kind of effort to prevent hearing damage. Several third party apps drive the volume much higher, so clearly it is not a hardware limitation
  • The speaker built into the nexus one sounds more tinny than the iPhone - this includes the ringer audio sadly
  • The mic is phenomenal, eliminating almost all background noise, and this translates to much more clarity when speaking to people, and might explain some of the eerily accurate speech recognition that the phone is capable of
  • The animations are slightly more jerky than the iPhone, for example list scrolling or app-starting, but not bad by any means. The overall speed seems much higher than my 3G (although the 3GS is probably as fast). It does feel nice and snappy in use
  • The screen is amazing - high resolution, smooth fonts, vivid colors
  • Multi-touch works well, and typing on the soft keyboard is familiar from the iPhone and just as easy
There is, of course, plenty more to say, but I think that's good for part 1. In the next blog posting, I will take a look at the applications I used most on the iPhone, and their equivalent (or lack thereof) for Android.

Thursday, April 01, 2010

The universe and many faces of the Doctor

I have been meaning to write this article for a while now, I was even going to do a lightning talk about it (or something related) at the recent Java Posse Roundup 2010 but I ended up giving up my slot because of the numerous other interesting talks in waiting there. Finally I will get my thoughts out there about Doctor Who. This is a timely blog post because the new Doctor is about to start his journey this weekend.

I initially had the idea to write this during the excellent Codemash conference earlier this year. One of the openspace sessions there was titled something like "Doctor Who: The End of Time - a.k.a. the saddest thing I have ever seen on TV". That got me thinking, there is some kind of disconnect here. Sure, it was sad to see David Tennant's Doctor regenerate, and the whole thing was handled tastefully and sympathetically, but I didn't find it that sad, in fact I look forward to what's next.

I believe the difference is that, being English, I grew up with the Doctor, and not just one Doctor, but many. David Tennant (who did a fantastic job playing the Doctor) is the tenth person to do so:

These are the (now 11) faces of the Doctor. I first started watching the series with Jon Pertwee (the third face here, sort of strict and matter of fact, slightly pompous and very clever) back when he was stranded on earth, the TARDIS couldn't travel, and he had a flying car (he was attached to UNIT as a special advisor during this period of Doctor history). He was replaced by Tom Baker (zany, long scarf and curly hair, and with a love of jelly babies), and for me Tom Baker will always have a special place as "the" doctor, since those were my most formative "doctor" years.

I remember the sadness when Tom Baker regenerated. Time Lords can escape death by regenerating when the damage to their bodies is too great. Regenerating brings a new physical form and a new personality for the Doctor, while retaining all the memories of the former incarnations. This allows the new actors to take the character in different directions, and play to their own strengths and personalities, without which I believe the role would get stale and unpopular with new actors.

Tom Baker though was replaced by Peter Davidson who took the role in a new direction, that of a "very English" cricket loving gentleman who was very caring and somewhat bumbling when it came to technology (like control of the TARDIS for example). It was then that I realized how the changing faces of the Doctor kept the role interesting and the series alive and new. It is not healthy for the same actor to play the Doctor for too long, however much you love their portrayal, because eventually it will harm the story telling.

After a few years, Peter Davidson gave way to Colin Baker, again there was sadness in the transformation, but this time for me there was also curiosity to see where the story would go next. At first I really didn't like Colin Baker in the role - he took a new approach to the doctor, very arrogant and blustering, but he won me over in time and has become a firm favorite (even now in the audio adventures - more on those later). His arrogance was nicely tempered with a tendency to be quite wrong about things, and this brought his portrayal back into the sphere of human fallibility, and made it accessible (yes, I know the Doctor is not human, but in some ways he is a model for the way I wish humanity was).

Colin Baker was then superseded by Silvester McCoy who played the role until (it looked like) the end of the series in 1989. Silvester's portrayal had elements of a kindly but strict wise old grandfather figure, and also a kind of "universe weariness" of seeing too much evil in the universe, but at the same time some incredible understated bravery and some pretty epic decision making.

In 1996, Fox, Universal and the BBC collaborated for a made for TV movie, where the baton was passed to Paul McGann. The TV movie it was hoped would pilot in a new series but this never happened, and most people assume that this was the only outing Paul McGann got in the role. To appeal to a more american audience, McGann's Doctor was a little less thought and a lot more action (at least in the movie), the action vs. thought side has been played down in the Big Finish audio productions, where McGann's Doctor has had some of the most epic adventures of any of the doctors and has been quite prolific. McGann's Doctor is perhaps one of the most admirable and heroic even so, willing to sacrifice everything for what is right, and both thoughtful and non-judgmental. One of my favorite performances.

When the series came back to TV in the mid 2000's, Christopher Eccleston had taken over (we never saw the regeneration of McGann to Eccleston - at least not yet). Chris Eccleston only did one season, but was very memorable and fun in the role. In the intervening time it was revealed that the Doctor had brought about the end of the great time war, eliminating the Daleks but also his own people (the Time Lords) in the process, leaving him with great sadness and personal demons, but continuing to fight the good fight. He made a good doctor, and even better, because we never saw the transition of 8 to 9th Doctors, there is ample chance to fill in that gap - something that is rumored for a big screen movie that may or may not happen - this would give both McGann and Eccleston another outing in the roles, and is something I would love to see).

Then Eccleston's Doctor sacrificed himself to save Rose and David Tennant's Doctor took the helm. Clever, knowledgeable, a bundle of crazy energy, and somewhat judgmental and  even dangerous at times (I was alarmed when, in the Waters of Mars, he proclaimed that he was the winner and could do no wrong, that is very scary to hear from a character that commands the kind of power over the currents of the universe that the Doctor has). David T. has done a brilliant job in moving the Doctor's story forward, and in some ways the end of his regeneration (with the likely path ahead of becoming corrupted from the power of being the last Time Lord standing) is good timing.

The reason for all this explanation, well I hope to convince American viewers who found the Regeneration of Tennant's Doctor as the saddest thing they have seen on TV that this is part of the cycle, and not so sad at all. The 11th Doctor will be taken over by Matt Smith, and I can't wait to see where the character and the story goes next. Another reason I am not sad though, is that the nature of the Doctor is that he lives on in all forms.

Nowhere is this clearer than in the excellent Big Finish Productions continuing audio stories of the Doctor. These currently feature the 5th (Peter Davidson), 6th (Colin Baker), 7th (Sylvester McCoy) and 8th (Paul McGann) and feature the original actors, along with most of the original actors for the various companions through the Doctor's story. These are excellent stories - I can't recommend them highly enough, and as a bonus you can listen to them while you commute, mow the lawn or do other stuff. It's great to hear even more adventures with these Doctors, all of whom seem even more unique and original when hearing their adventures interspersed with each other. It's also great that Paul McGann really got to bring his excellent potential to the role in something more than the one 90 minute outing he had before.

So, in closing, don't be sad for the old Doctor, be happy (and excited) to see what the new one does.

One more thing though - according to the lore of Doctor Who, the Doctor only gets 12 regenerations, so unless something changes, we are getting pretty close to the end of the line now.

Saturday, March 20, 2010

Java Posse Roundup 2010 - Day 4

The 4th and final day of the Java Posse Roundup 2010 went off very well. Sessions included several business oriented ones (which I skipped), tips for IDEs, Functional/OO hybrid languages and increasing adoption, happy programmers, version control options (git, mercurial, svn, etc.), code reviews and a lot more.

Afternoon I mixed and published episode 300 of the podcast (which we recorded on Thursday night). We had a lot of snow during the day and it was still snowing pretty hard in the afternoon, so after getting the podcast out, I went and joined the group watching Hitchcock's Vertigo in front of a warming fire and hacked with Tor on the ZenWriterFX application a bit more (as well as transitioning to Mercurial on Bitbucket in the hopes that it would be a bit more user-friendly than git with Github).

Last night we headed out for a pretty spectacular meal at Django's up at the resort. Lots of small taster dishes, and some amazing food (and wine too). Had fun riding back down on the town shuttle as well, where we had pretty much the entire bus singing 99 bottles of beer on the wall :-).

Thursday, March 18, 2010

Java Posse Roundup 2010 - Day 3

Wow - that was a hoot. So the three sessions this morning were fun, and a small departure for me (even one on business matters for session 2). We covered higher level concerns - definitely back to a bunch of nuts and bolts tomorrow (including a git/svn/mercurial etc. comparison and a session on increasing acceptance of functional languages).

In the afternoon I headed out with Jackie for some more cross country skiing - one of the intermediate trails (I fell down a couple of times, but I also got down some hills pretty well and even figured out how to turn the direction I wanted - I don't think I will be competing in the winter Olympics any time soon. We did find a mostly snow covered disc golf course on our travels though, so if I come out in the summer I will be bringing my discs.

We just got back from the recording of Java Posse episode 300 which was a ton of fun (I was worried it was too long, but people say that the time flew by). That episode will be up in the next day or so, in fact tomorrow afternoon I am planning on demonstrating the full process of mixing, editing and publishing a podcast for anyone interested.

Wednesday, March 17, 2010

Java Posse Roundup 2010 - Day 2

Day 2 update from the Java Posse Roundup 2010.

Three sessions this morning, there were some good choices but in the end I settled on my own proposal (about clouds, Amazon EC2, Google App Engine, etc.), then one about standardizing development across different application teams within a company, and finished up with what programming will look like in 25 years. All good, but I am looking for some more technical stuff tomorrow.

This afternoon, a bunch of us skipped the usual snow sports in favor of some extra technical discussions and demos. In the picture you can see the rigged up projection screen (a sheet over the fireplace in the house we are staying at. It worked pretty well. I led a study group on Scala, and I think picked up a few converts (people who had thought it was too complicated before now), and Fred Simon of JFrog led a discussion of build tools that improve on maven - the upshot is take a look at Gradle, and possible the Scala simple build tool (SBT).

More lightning talks tonight - last night's ones were a hoot, culminating in a fire eating demonstration (outside) by Bill Pugh - how many conferences can you say that you see a fire eating demonstration.

Tuesday, March 16, 2010

Day 1 of the Java Posse Roundup 2010

Today was the start of the conference proper - the traditional intro/meet and greet, and the first two sessions (I took non-SQL databases and a session on Scala, but all the sessions looked good and it was hard to pick (well, OK - not *that* hard :-) ).

Non-SQL databases was a lively discussion about key/value, document oriented, column oriented and connected graph databases, and where it makes sense to use them. Of course, there are not usually "right answers" at the end of these sessions any more than there are in real life, but the theme was that it makes sense to use not only SQL in some cases, but that relational DBs still bring a ton of value, and if anything the new kids on the block have a lot left to learn from the old guard too - in particular when it comes to reliability, maturity and APIs.

The Scala session was more of a "what's it all about" kind of thing - with some discussion about whether the Scala learning curve is too high (it's definitely manageable), how to get into it (scalatest and soon hopefully scala-koans), whether it's enterprise ready (we think so) and the importance of a language visionary to give a language direction, as well as the trade-off between always maintaining backwards compatibility versus the freedom of being able to make breaking changes to improve a language.

After that we christened the snow with some cross country skiing, man that's fun but hard work. Tonight we have lightning talks, where I will be doing 5 minutes on genetic calculation 101 (based on some of my work at Navigenics).

So far, as always, people seem to be loving the conference - at approximately 60 people it's our largest ever (and certainly feels like it - if we get much large we will need to change venue). People are also engaging with each other really well this year - about half the attendees are alumni, and half are new, which is a great mix for keeping the flow of the conference going but still getting an injection of new ideas - an essential part of a healthy conference and community.

Monday, March 15, 2010

Day 0 of the Java Posse Roundup 2010

The day finally arrived, and we had our (now traditional) day 0 of the Java Posse Roundup. This is the day before the conference officially starts, and is comprised of all day coding dojos and other fun events.

This year, Bruce Eckel organized an alternative business day as well - discussions around the issues of developing a business and moving it from a small startup to a larger concern without losing the spark of what makes it unique and fun among other things.

Another group went off to do a functional coding dojo covering multiple languages including Scala, Clojure, Fantom and others - including working on Koans (something close to my own heart and the subject of a future blog post).

The remaining two groups attempted to create the same application in two different environments. The application in question was based on ommwriter - a distraction free writing tool with a very nice user interface. One group got as far as they could with GWT to create an ommwriter-like tool, and hit some problems with interactions between HTML 5, database storage and the hosted mode in GWT - after working through those issues they came up with a pretty good result.

The group I was in did the same thing, but using JavaFX. You can see the results so far in the screenshot below (although there are background sounds and key clicks which don't come out in the screenshots of course :-) ). There is also a fade in panel of controls which doesn't have any icons in yet (soon).


We faced many of our own problems - some with JavaFX (Linux sound support is flaky at best, and crashes the JVM at work) and many more with github in a very active multi-developer environment, but all in all it was a pretty good day and it's always fun to do some buddy programming with Tor Norbye.

Thursday, March 11, 2010

More bike map resources

Yesterday I blogged about the new bicycle layer and routing feature in Google maps, which is excellent and very welcome. It's not the only option though, so I thought I would share a couple more options for finding bicycle routes.

The first is http://opencyclemap.org which is a fantastic resource for cyclists. Here is an example showing the coyote creek trail (part of the same trail I showed on Google maps yesterday):


Pretty isn't it - yes, and useful too. For those who don't know, opencyclemap.org and the site it is based on (openstreetmap.org) are the source of some amazing map data, more detailed than anything else I have seen in the US, and the data has some advantages over that available from Google maps right now, namely:

  • Available in other countries - someone responded to my blog post yesterday that they didn't have data in the EU yet, but openstreetmap (and consequently opencyclemap) data is pretty complete in many countries.
  • It has height contour data, very useful for planning your ride to see what kind of workout you are in for.
  • It is user-supported. OpenStreetMap and OpenCycleMap data is a bit like geospatial wiki data. If you know of a cycle (or other) path or road that is not on the map, you can add it. I have added a couple of paths I know of already, and it's pretty easy.
  • Off road (mountain bike) trails are on there as well, take a look at the following shot of part of Henry Coe park (near Morgan Hill) which has a lot of fire roads and single track:

Wonderfully detailed.

There are a few things Google maps does better though:
  • It's not always clear from opencyclemaps.org whether what you are looking at is a paved (road bike friendly) trail or a mountain bike track. If you want to do a road ride, the new cycle layer in Google maps is probably better. If you want to go mountain biking, OpenCycleMap has a lot more detail for that.
  • The OpenCycleMap servers are slower - naturally the Google maps server has a lot more performance and responsiveness.
  • At least on the OpenCycleMap site itself, there is no automatic routing option like there is on Google maps. You will have to figure out your own route from the data.
On the go, if you have an iPhone, I recommend checking out the OpenMaps application, which has both OpenStreetMap and OpenCycleMap data available. It is well worth the few bucks it costs on the app store. It has some really useful features on it like:
  • Download the street or cycle map data for offline usage (if you are going out into the wilds, this is probably a good idea). You can choose the detail and size of data to download when you ask for the tiles.
  • It has routing! You have to set a start and end pin, and maybe some route pins, but it will then find a nice route using bike paths and tracks - very useful in the wilderness.
  • You can carry it on your bike - on the handlebars even if you get the right kind of adapter.

If/when I move to Android, this is one of the must-have apps I am going to need to find an alternative for.

Wednesday, March 10, 2010

Bicycle routing now in Google Maps

I am rather excited about this feature, although it seems like it has been a long time coming. Google maps now has bicycle paths and bicycle routing, including estimated times.

Under the More… menu you can see the new bicycle layer. Turn that on and you can see recommended bike routes and bike paths. Better yet, maps will now route along these paths if you choose the bicycle routing option when you get directions, in fact it will favor them. Here is a snippet taken from my bike ride home:

mapbikeexample

Notice the coyote creek trail is highlighted and selected for the route. This is a longer ride than just following Monterey road, but is vastly preferable in terms of the quality of the ride and I was delighted that maps now knows it can route along those bike paths and does so.

The estimated time is a little higher than I know it to be (I can do the ride in about 55 minutes, Google estimates 1 hour 17), but that’s no worse than the driving estimates tend to be. This is fantastic news for cyclists.

Sunday, May 24, 2009

Cool (Laptop) Hack




I had to share the latest little hardware hack I did in the hope that it will be useful to others.

I have a laptop that, like many, gets a fairly warm hard drive with consistent (i.e. large build execution) utilization. Since I do a lot of that, I splurged on a targus laptop cooler like the one to the left.

http://www.targus.com/us/product_Details.asp?SKU=pa248u

The cooler is powered by USB, just plugs in and runs, and blows cold air over the bottom of the laptop. It works like a charm, bringing the temperature of both the HD and CPU way down to a very comfortable operating temperature even under extreme and consistent load. However, there were a couple of things I didn't like about it.

The primary one was the noise. Targus claims about 23 dB for the cooler - I am not sure if that is accurate, but either way it is still annoyingly loud when using it on your lap. Secondly it pumps out a lot of air, which is the point, but I wondered if it might be too much. Finally it does take its toll on the battery - driving 2 fans at full speed will do that. I appreciate the cooling, but not the fact that it appears to be taking more power than needed and turning it into noise. So I set about trying to hack it and fix the problems.

I thought about stepping down the voltage in a fairly efficient way, with some kind of clever electronic wizardry and even pulled an electronic engineer friend of mine into the problem, before I hit an embarrassingly simple solution.

Note: if you decide to try this for yourself, you are at the very least voiding your warranty on the cooling pad, reducing the cooling potential of the laptop cooler, and risking the whole thing not working at all afterwards. I point this out because I really don't want any messages along the lines of "I broke my laptop cooler and you owe me a new one" or worse "I broke my laptop when it overheated and now you owe me a new one". Assuming we have an accord, please read on.

So, what do you need for this hack?

You will need - a philips head screwdriver, a large flat head screwdriver, wire cutters/strippers, optionally a soldering iron, and some electricians tape. Also recommended is a multi-meter to make sure you have the right wires.

The principle (I warned you it was simple) is to re-wire the fans in series rather than in parallel. In the standard cooler, both fans are wired in parallel. This means both fans get 5v potential difference, running them at full speed, drawing twice the power of running just one fan, and making a fair amount of noise (including the occasional "fan mooing").

By connecting the fans in series, you are effectively changing the potential difference across each one to 2.5v. The eagle eyed among you will quickly note that the impedance of the fans might be different, resulting in one fan getting slightly higher voltage than the other when run in series, and I have no doubt that this is true - however for me at least they seem to spin at the same speed as each other after the hack, and the cooling is almost as effective as with both fans running at full speed. Also, the cooler is whisper quiet after the modification, and uses less power (approx half) as well.

Here are the steps:
  1. Peel off the 4 rubber spacers on the top side of the cooler. Under each you will find a philips screw.
  2. Unscrew all 4 of the screws, then use the large flat head screwdriver to gently prise apart the case. The top of the cooler is a little more reluctant to separate, so just work it gently on each side until it clicks apart.
  3. You will see two fans with black stickers in the center. Carefully remove the black stickers from each (be careful not to damage the delicate coil wires in the fan when you do this).
  4. When you peel off the stickers, you will see little solder points where the power comes into the fan. Grab the multimeter and work out on each fan which is +5v and which is common. In all likelihood the right contact (with the top of the cooler away from you) will be +5v and the left will be common on each fan, but it's a good idea to verify with a multimeter (if you don't have a multimeter, that's likely a sign that you should not be attempting this hack).
  5. Trace the common wire out from the fan on the left, and cut it about half way along its length to the switch.
  6. Trace the +5v wire from the fan on the right and cut it about half way along its length to the switch.
  7. Tuck the two cut wires from the switch safely out of the way inside the cooler case, You can cap them off with some electrical tape for extra safety, but most of all make sure they will not tangle in the fans.
  8. With the two cut wires from the fans, strip about half an inch at the end of each, twist them together and optionally solder them, then wrap them in electricians tape.
  9. Test the cooler - connect the USB power and both fans should spin. Hold your hand above each to make sure they are both blowing air upwards. If they are not both blowing, you have isolated and connected the wrong wires. Either try and find the right wires, or if this has scared you, reconnect them to the old wires running to the switch, put it all back together in the old configuration and pretend none of this ever happened.
  10. Assuming both fans are blowing upwards, you are done. Congratulations. Re-assemble the cooler taking care to route the wires internally so they won't tangle the fans or get trapped when you re-attach the top. You can choose to stick the black stickers back over the top of the fans, or leave them off like I did (I like the look, but now I have to be careful not to drop a staple or something in there that might cause a short). Stick the rubber separators back over the screws.
  11. Try it out.
I have found that the mod makes about 1-2 Celsius of difference only to the temperature at which it keeps the hard drive, and with a much quieter running noise and less power draw. It is unknown if there will be any long term damage to the cooler fans running at the lower voltage but I seriously doubt it. Overall my laptop is now quieter than without using the cooler, since the airflow stops the internal fan coming on under all but the most extreme load, and the cooler tray is almost silent.

Sunday, January 25, 2009

Saturday, January 17, 2009

Saturday, September 06, 2008

At the Morgan Hill music and movie night.

Band is great, playing lots of R&B covers. The movie tonight is Ferris
Bueller's Day Off. I love this town.

Monday, September 01, 2008

Anderson dam cycle ride

Jackie and I headed up to Anderson dam for a fun but strenuous bicycle
ride.

Tuesday, July 29, 2008

View from the Office


This is the view I had while I ate my lunch today. I really must get out here and work more often...

Saturday, May 10, 2008

Talking at the Google Technology User Group on Monday

I will be talking at the Google Technology User Group meeting on Monday 12th May, about Google App Engine. There is some room left, so if you are interested, please sign up and come and mingle - there is a lot more than just my talk to see at these meetings, and the community is great.

You can find the signup page at http://sv-gtug.org/event/2008-05-12.html. I hope to see you there.

Cheers

Dick

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.