<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
  <title>chrisblunt.com</title>
  
  <link href="http://chrisblunt.com" />
  <updated>2010-09-05T20:48:36+01:00</updated>
  <id>http://chrisblunt.com</id>
  <author>
    <name>Chris Blunt</name>
    <uri>http://chrisblunt.com</uri>
    <email>chris@chrisblunt.com</email>
  </author>

  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/chrisblunt" /><feedburner:info uri="chrisblunt" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>chrisblunt</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/chrisblunt" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fchrisblunt" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><entry>
    <author><name>Chris</name></author>
    <title>Business Startup Week 7: Use your own software</title>
    <id>http://chrisblunt.com/2010/09/05/business-startup-week-7-use-your-own-software</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/bgUIGjJhZL4/" />
    <published>2010-09-05T00:00:00+01:00</published>
    <updated>2010-09-05T00:00:00+01:00</updated>
    <content type="html">&lt;p&gt;It's hard to believe that nearly two months have passed since I formed &lt;a href="http://plymouthsoftware.com"&gt;Plymouth Software&lt;/a&gt;. A lot has happened in what has seemed a very short period of time! Here's a rundown of what went on in week seven.&lt;/p&gt;

&lt;h3&gt;Amberleaf&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://amberleafapp.com"&gt;Amberleaf&lt;/a&gt; has seen several minor updates released this week, including development on the public landing pages, and an important update to the sign up process.&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/2010/09/amberleaf-frontpage.jpg" title="Amberleaf Frontpage" alt="Amberleaf Front Page" /&gt;&lt;/p&gt;

&lt;p class="caption"&gt;Amberleaf's updated front page.&lt;/p&gt;


&lt;h4&gt;Legacy Decisions&lt;/h4&gt;

&lt;p&gt;The &lt;a href="/2010/09/01/is-your-sign-up-process-pushing-customers-away/"&gt;problem&lt;/a&gt; arose because I'd used a paid Spreedly plan for the free trial, delaying the first payment by 30-days. Users could cancel the account at any time before this, but they were asked to enter their payment card details before they'd even signed into the app. Understandably, this was a little off-putting.&lt;/p&gt;

&lt;p&gt;I created a new Spreedly "Free-Plan" for trial sign ups. People logging into Amberleaf for the first time are now automatically subscribed to the free plan. When the trial expires, they are prompted to subscribe to the paid plan.&lt;/p&gt;

&lt;p&gt;As well as removing the need for new subscribers to enter their payment card details upfront, the new approach also paves the way for the limited free account plan.&lt;/p&gt;

&lt;h4&gt;Invite Friends to Amberleaf&lt;/h4&gt;

&lt;p&gt;A new addition to the Amberleaf dashboard is an Invitation panel. This lets existing customers invite friends and coworkers to try out Amberleaf. In order to reduce interruption, the invitation requires only an email address; the app will create and send an invitation email. If you have an account, &lt;a href="https://amberleafapp.com/login"&gt;log in now&lt;/a&gt; to start inviting your friends, coworkers or customers to try out Amberleaf!&lt;/p&gt;

&lt;h4&gt;MailChimp Integration&lt;/h4&gt;

&lt;p&gt;As part of the new sign up process, and in an effort to improve communication with Amberleaf customers, I switched to &lt;a href="http://mailchimp.com"&gt;MailChimp&lt;/a&gt; to manage my mailing lists. Integrating MailChimp with Amberleaf's registration form was a painless process thanks to the &lt;a href="http://github.com/bgetting/hominid"&gt;Hominid&lt;/a&gt; gem.&lt;/p&gt;

&lt;h4&gt;Use your own software&lt;/h4&gt;

&lt;p&gt;On Friday evening, I got a few reports that the &lt;a href="https://amberleafapp.com"&gt;amberleafapp.com&lt;/a&gt; SSL certificate had expired. This came as a shock, not only because I couldn't believe a year had already passed, but also that I hadn't added the SSL certificate into my own Amberleaf account!&lt;/p&gt;

&lt;p&gt;Within a couple of hours, a new SSL certificate had been issued and installed on Amberleaf's server; the panic was over. Thanks to the &lt;a href="http://vps.net/"&gt;VPS.net&lt;/a&gt; support staff for their extremely quick replies and getting the SSL certificate generated.&lt;/p&gt;

&lt;p&gt;Needless to say, I've since updated Amberleaf to remind me when the certificates are due again!&lt;/p&gt;

&lt;h3&gt;Outlime Lite&lt;/h3&gt;

&lt;p&gt;A couple of weeks ago I released &lt;a href="http://plymouthsoftware.com/outlime"&gt;Outlime&lt;/a&gt; for Android. Whilst the app is paid, I wanted to offer a demo version for people to try it out.&lt;/p&gt;

&lt;p&gt;Android's market offers a 24 hour cooling-off period before charging for app downloads (just uninstall it within 24 hours of first installing), but this doesn't seem a well advertised or known feature. So with a &lt;a href="http://twitter.com/cblunt/status/22875512293"&gt;little Twitter fanfare&lt;/a&gt;, on Thursday I launched &lt;a href="http://plymouthsoftware.com/outlime"&gt;Outlime Lite&lt;/a&gt;. Outlime Lite lets you sketch draft ideas and designs just as Outlime does, but stops short of saving and sharing.&lt;/p&gt;

&lt;p&gt;Outlime Lite lets you see if the paid app would be useful to your own design process. You can check it out for free right now on &lt;a href="http://plymouthsoftware.com/outlime"&gt;Android Market&lt;/a&gt;!&lt;/p&gt;

&lt;h3&gt;What's Next&lt;/h3&gt;

&lt;p&gt;In the coming week, I should receive Plymouth Software business cards from &lt;a href="http://moo.com/"&gt;Moo&lt;/a&gt; complete with the final branding. I'll continue tuning Amberleaf's marketing to attract web designers and businesses looking to simplify their domain and hosting management.&lt;/p&gt;

&lt;p&gt;I hope to spend some more time working with &lt;a href="http://rubyonrails.com"&gt;Rails 3&lt;/a&gt; and the process of migrating Amberleaf. With Rails 3 released, tutorials are appearing across the web. Some of the best I've found so far are Ryan Bates' &lt;a href="http://railscasts.com"&gt;railscasts&lt;/a&gt; and &lt;a href="http://simonecarletti.com/"&gt;Simone Carletti's blog&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Changes to the site&lt;/h3&gt;

&lt;p&gt;I've been looking at &lt;a href="http://www.sinatrarb.com/"&gt;Sinatra&lt;/a&gt; for building fast, light apps such as this blog and &lt;a href="http://plymouthsoftware.com"&gt;plymouthsoftware.com&lt;/a&gt;. &lt;a href="http://github.com/mojombo/jekyll"&gt;Jekyll&lt;/a&gt; (the static site generator that builds these sites) has served me well, but the sites are missing some benefits given by server-side apps.&lt;/p&gt;

&lt;p&gt;I'm thinking of trying &lt;a href="http://github.com/karmi/marley"&gt;Marley&lt;/a&gt;, a Sinatra-based blog engine that offers the best of Jekyll and server-side software.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Emy0BVg0AApEM_woWba51Vg4Qgk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Emy0BVg0AApEM_woWba51Vg4Qgk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Emy0BVg0AApEM_woWba51Vg4Qgk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Emy0BVg0AApEM_woWba51Vg4Qgk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=bgUIGjJhZL4:JXwfylPJPrM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=bgUIGjJhZL4:JXwfylPJPrM:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=bgUIGjJhZL4:JXwfylPJPrM:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=bgUIGjJhZL4:JXwfylPJPrM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=bgUIGjJhZL4:JXwfylPJPrM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=bgUIGjJhZL4:JXwfylPJPrM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=bgUIGjJhZL4:JXwfylPJPrM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=bgUIGjJhZL4:JXwfylPJPrM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/bgUIGjJhZL4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/09/05/business-startup-week-7-use-your-own-software/</feedburner:origLink></entry>
  
  <entry>
    <author><name>Chris</name></author>
    <title>Is your sign up process pushing customers away?</title>
    <id>http://chrisblunt.com/2010/09/01/is-your-sign-up-process-pushing-customers-away</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/BMkNBPkRE6o/" />
    <published>2010-09-01T00:00:00+01:00</published>
    <updated>2010-09-01T00:00:00+01:00</updated>
    <content type="html">&lt;p&gt;The sign up process is one of the most important functions of your app. It's what converts potential customers into active and, hopefully, paying subscribers. Getting it right is essential, and you need to make sure it's not pushing customers away.&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/2010/09/signup-form-shot.jpg" alt="Amberleaf Sign Up Form Screenshot" /&gt;&lt;/p&gt;

&lt;p class="caption"&gt;Amberleaf's new price plan and sign up page&lt;/p&gt;


&lt;h3&gt;Spotting a problem&lt;/h3&gt;

&lt;p&gt;While analysing trends for &lt;a href="https://amberleafapp.com/"&gt;Amberleaf&lt;/a&gt;, I noticed that a number of people had signed up and verified their account, but never completed their first login. I'd already minimised capture fields to lower barriers, but something else was stopping people trying out their new account.&lt;/p&gt;

&lt;p&gt;Despite running through the sign up process countless times during testing, I'd missed one very big problem, and it was scaring people away.&lt;/p&gt;

&lt;h3&gt;Would you sign up to your site?&lt;/h3&gt;

&lt;p&gt;When I realised my mistake, I knew I wouldn't have signed up to my own app! Customers were being pushed away from even trying Amberleaf because of a poor decision I'd made early in development. So what was the problem?&lt;/p&gt;

&lt;p&gt;Just after signing in to start their 30 day trial, new users were asked to input their payment card details.&lt;/p&gt;

&lt;p&gt;This was a huge barrier that had stopped a lot of people from even trying Amberleaf. The sign up process was working as it should technically (payments were never taken until the 30 days free trial had passed), but that wasn't the impression given to new customers.&lt;/p&gt;

&lt;p&gt;At exactly the moment a new customer should be experiencing what Amberleaf offers, I was instead insisting they hand over payment details.&lt;/p&gt;

&lt;h3&gt;Improving the sign up process&lt;/h3&gt;

&lt;p&gt;When I realised what was going on, I immediately revised the sign up code. I implemented a separate 30 day free trial plan on &lt;a href="http://spreedly.com/"&gt;Spreedly&lt;/a&gt;, and tied Amberleaf into it. This had the added benefit of removing a step from the process. Not capturing payment details right away meant new users could be subscribed to the free 30 day plan automatically when they first logged in. This resulted in a smoother sign up process, and helps to build users' trust in the software.&lt;/p&gt;

&lt;p&gt;The new sign up process went live a few days ago. I took the opportunity to tidy up the sign up screens, bringing the registration and payment plan page together. I'll see how these changes affect conversion rates over the next few weeks. Either way, I've certainly learned a valuable lesson in designing the sign up process.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qjZPCbREqtXDD3ZhqIUyGMkcKFw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qjZPCbREqtXDD3ZhqIUyGMkcKFw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qjZPCbREqtXDD3ZhqIUyGMkcKFw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qjZPCbREqtXDD3ZhqIUyGMkcKFw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=BMkNBPkRE6o:pd1toiNAByg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=BMkNBPkRE6o:pd1toiNAByg:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=BMkNBPkRE6o:pd1toiNAByg:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=BMkNBPkRE6o:pd1toiNAByg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=BMkNBPkRE6o:pd1toiNAByg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=BMkNBPkRE6o:pd1toiNAByg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=BMkNBPkRE6o:pd1toiNAByg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=BMkNBPkRE6o:pd1toiNAByg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/BMkNBPkRE6o" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/09/01/is-your-sign-up-process-pushing-customers-away/</feedburner:origLink></entry>
  
  <entry>
    <author><name>Chris</name></author>
    <title>Business Startup Week 6: Outlime and a Crash Course in Marketing</title>
    <id>http://chrisblunt.com/2010/08/28/business-startup-week-6-outlime-and-a-crash-course-in-marketing</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/Z2on_gj9UTE/" />
    <published>2010-08-28T00:00:00+01:00</published>
    <updated>2010-08-28T00:00:00+01:00</updated>
    <content type="html">&lt;p&gt;Last week saw the launch of my first Android app, &lt;a href="http://plymouthsoftware.com/outlime"&gt;Outlime&lt;/a&gt; to Android Market. Outlime is built for designers to quickly sketch ideas and designs on their Android phones. It's intentionally minimalist, staying out of your way so you can just keep sketching ideas.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://plymouthsoftware.com/outlime"&gt;&lt;img src="/images/2010/08/outlime-shot-4.jpg" title="Interface Sketch on Outlime" alt="Outlime Screenshot" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p class="caption"&gt;Quick Interface Design Sketch in Outlime.&lt;/p&gt;


&lt;p&gt;Outlime can load your camera snaps so you can sketch right on them! This is great if, for example, you want to sketch some ideas on a website design - just snap it on your phone, sketch the changes, and share to your co-workers.&lt;/p&gt;

&lt;p&gt;Thanks to Android's built-in technologies, your sketches can be shared instantly with friends and co-workers through any appropriate app installed on your phone (GMail, MMS, Bluetooth, Facebook, Twitter, etc.).&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/2010/08/outlime-on-market.jpg" title="Outlime in Android Market" alt="Outlime in Android Market" /&gt;&lt;/p&gt;

&lt;p class="caption"&gt;Outlime published in Android Market&lt;/p&gt;


&lt;p&gt;Outlime was inspired by 37Signal's &lt;a href="http://37signals.com/draft"&gt;Draft&lt;/a&gt; for iPad. Before launching, I contacted 37Signals (in the spirit of good coding karma!) to let them know about Outlime. I got a great, positive response, and was very pleased to &lt;a href="/2010/08/24/introducing-outlime-rapid-sketching-for-android/"&gt;release Outlime to the market&lt;/a&gt; last Tuesday. Depending on demand, I may release an ad-supported, limited free version. I was disappointed to discover that &lt;a href="http://www.google.com/mobileads/publisher_getstarted.html"&gt;Google's AdSense for Apps&lt;/a&gt; isn't yet available to UK developers.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://plymouthsoftware.com/outlime"&gt;Outlime&lt;/a&gt; costs just &amp;pound;1.29, and is available now from &lt;a href="market://search?q=pname:com.plymouthsoftware.android.outlime"&gt;Android Market&lt;/a&gt;. If you have &lt;a href="http://code.google.com/p/zxing/"&gt;Barcode Scanner&lt;/a&gt; installed, just scan the QR code below to go straight to Outlime&lt;/p&gt;

&lt;p&gt;&lt;a href="market://search?q=pname:com.plymouthsoftware.android.outlime"&gt;&lt;img src="/images/2010/08/outlime-qr.png" title="Scan to install Outlime via Android Market" alt="Outlime QR Code" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p class="caption"&gt;Scan the QR code with your Android device to install Outlime via Android Market&lt;/p&gt;


&lt;h3&gt;Marketing 101&lt;/h3&gt;

&lt;p&gt;One thing that's become apparent with the release of both &lt;a href="https://amberleafapp.com/"&gt;Amberleaf&lt;/a&gt; and Outlime is the need for better marketing. A great book that was suggested to me is Rob Walling's &lt;a href="http://startupbook.net"&gt;Start Small, Stay Small&lt;/a&gt;, which I bought after being recommended to &lt;a href="http://www.softwarebyrob.com"&gt;Rob's site&lt;/a&gt; through Twitter.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Start Small, Stay Small&lt;/em&gt; is full of useful and (most importantly) practical tips for building good marketing behind web apps. It's aimed specifically at small, startup software developers, and after the first few pages I was hooked, finishing the book in a couple of hours.&lt;/p&gt;

&lt;p&gt;At the back of my mind, I've been aware of falling into the &lt;em&gt;trap&lt;/em&gt; - building an app; launching it; and completely missing the marketing. Before reading Rob's book, I'd found little practical guidance on marketing software apps. The advice from &lt;em&gt;Start Small, Stay Small&lt;/em&gt;, and other resources I'm discovering, has been a great eye-opener.&lt;/p&gt;

&lt;p&gt;Inspired by Rob's advice, I've made a few changes this week. I signed up to &lt;a href="http://mailchimp.com"&gt;MailChimp&lt;/a&gt; for managing my mailing list, and began making some changes to the Amberleaf site. Switching to a dedicated mailing list provider was a relief, as I'd previously relied on a woefully inefficient combination of Google Mail and a spreadsheet! You can sign up right now here:&lt;/p&gt;

&lt;!-- Begin MailChimp Signup Form --&gt;


&lt;div id="mc_embed_signup"&gt;
  &lt;form action="http://plymouthsoftware.us2.list-manage.com/subscribe/post?u=6f072c8e0ff36260e3c1d8edb&amp;amp;id=13c92fd55e" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" target="_blank"&gt;
    &lt;fieldset&gt;
      &lt;ol class="mc-field-group"&gt;
        &lt;li&gt;
          &lt;input type="text" value="" name="EMAIL" class="required email" placeholder="Your Email Address" id="mce-EMAIL"/&gt;
          &lt;input type="submit" value="Subscribe now" name="subscribe" id="mc-embedded-subscribe" class="btn"/&gt;
        &lt;/li&gt;
      &lt;/ol&gt;
    &lt;/fieldset&gt; 
  &lt;/form&gt;

  &lt;p id="signup_tagline"&gt;Sign up to get Plymouth Software's latest news, products updates, special offers, and more.&lt;/p&gt;
&lt;/div&gt;




&lt;div class="clear"&gt;&lt;/div&gt;


&lt;!--End mc_embed_signup--&gt;


&lt;p&gt;I'm looking forward to trying out some new marketing approaches for Plymouth Software, and getting Amberleaf better known to the web developers for whom it was originally designed. I'll also be submitting Amberleaf's upcoming new page designs to Rob's &lt;a href="http://startuplens.com"&gt;Startup Lens&lt;/a&gt; site for feedback.&lt;/p&gt;

&lt;h3&gt;What's Next&lt;/h3&gt;

&lt;p&gt;With Outlime out in the wild, this week's plan is to focus on Amberleaf's updates and continue developing its marketing. I was also pleased to read that &lt;a href="http://weblog.rubyonrails.org/2010/8/29/rails-3-0-it-s-done"&gt;Rails 3.0&lt;/a&gt; has been released. I've been working on a smaller project to learn Rails 3 in preparation for upgrading Amberleaf to the new framework.&lt;/p&gt;

&lt;h4&gt;About Amberleaf&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://amberleafapp.com/"&gt;Amberleaf&lt;/a&gt; is a tool for web designers and developers to manage their domains and hosting accounts. &lt;a href="https://amberleafapp.com/"&gt;Signing up&lt;/a&gt; takes a few seconds, and includes a 30 day free trial. After that, it's just £4.95 a month with no minimum term contract. Check it out today at &lt;a href="https://amberleafapp.com/"&gt;amberleafapp.com/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wy4WPKTIfc7vuoTQT6bQ4msjdxk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wy4WPKTIfc7vuoTQT6bQ4msjdxk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wy4WPKTIfc7vuoTQT6bQ4msjdxk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wy4WPKTIfc7vuoTQT6bQ4msjdxk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=Z2on_gj9UTE:HGBesY8dzHE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=Z2on_gj9UTE:HGBesY8dzHE:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=Z2on_gj9UTE:HGBesY8dzHE:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=Z2on_gj9UTE:HGBesY8dzHE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=Z2on_gj9UTE:HGBesY8dzHE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=Z2on_gj9UTE:HGBesY8dzHE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=Z2on_gj9UTE:HGBesY8dzHE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=Z2on_gj9UTE:HGBesY8dzHE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/Z2on_gj9UTE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/08/28/business-startup-week-6-outlime-and-a-crash-course-in-marketing/</feedburner:origLink></entry>
  
  <entry>
    <author><name>Chris</name></author>
    <title>Introducing Outlime: Quick Sketches for Android</title>
    <id>http://chrisblunt.com/2010/08/24/introducing-outlime-rapid-sketching-for-android</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/84wDuKEDOzc/" />
    <published>2010-08-24T00:00:00+01:00</published>
    <updated>2010-08-24T00:00:00+01:00</updated>
    <content type="html">

&lt;p class="notice"&gt;&lt;strong&gt;Update 26 August 2010&lt;/strong&gt;: The &lt;a href="http://bit.ly/aQvaI8" title="Outlime"&gt;Outlime&lt;/a&gt; product page is now live at &lt;a href="http://bit.ly/aQvaI8" title="Outlime"&gt;plymouthsoftware.com/outlime&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;I'm pleased to announce the publication of my first app for Android: &lt;strong&gt;Outlime&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Outlime is a very minimalist sketching app for Android that lets you quickly commit ideas and concepts from your head to your phone. Outlime costs just &amp;pound;1.29 and is available from the &lt;a href="#qr-code"&gt;Android Market&lt;/a&gt;. You can find out more about &lt;a href="http://bit.ly/aQvaI8"&gt;Outlime&lt;/a&gt; at on the &lt;a href="http://bit.ly/aQvaI8"&gt;product page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/2010/08/outlime-1.jpg" title="Outlime Screenshots" alt="Outlime Screenshots" /&gt;&lt;/p&gt;

&lt;p class="caption"&gt;Example sketches in Outlime&lt;/p&gt;


&lt;p&gt;Outlime is inspired by 37Signals' &lt;a href="http://37signals.com/draft"&gt;Draft&lt;/a&gt; for iPad. A couple of weeks ago, lots of ideas were spinning round my head for new &lt;a href="http://bit.ly/5C5iL9"&gt;Amberleaf&lt;/a&gt; screens. I was on the verge of buying (another) whiteboard, but resisted cluttering and instead kept scribbling on endless piles of sticky notes.&lt;/p&gt;

&lt;p&gt;Just at that time, I stumbled across Draft and hoped that such a minimalist app existed on Android. I couldn't find one, so instead set about creating the app for myself.&lt;/p&gt;

&lt;p&gt;The result is Outlime. Following the extremely minimal concepts that inspired it, Outlime offers two pens (white and green) and an eraser. Sketches are automatically saved when you load another sketch, or exit the app.&lt;/p&gt;

&lt;h3&gt;Built for Android&lt;/h3&gt;

&lt;p&gt;Outlime takes advantages of Android technologies, like Intents for sharing Outlime sketches with any registered image app on your phone. This makes it simple to send sketches via any appropriate app installed on your phone, such as Gmail, Facebook, Picasa, and so on. Outlime also leverages the Android MediaStore, so your sketches show up in your phone's Gallery app.&lt;/p&gt;

&lt;p&gt;Outlime benefits from larger screens, although I've found it pretty handy for sketching quick layouts on my phone. Although it was developed on a 3" &lt;a href="http://www.t-mobile.co.uk/shop/pay-as-you-go/t-mobile-pulse-payg/"&gt;Pulse&lt;/a&gt;, some of the newer Android devices are sporting 4", 5" and larger screens.&lt;/p&gt;

&lt;p&gt;Writing Outlime has been a great learning experience for me in dealing with the intricacies of the Android SDK (although I have suffered serious ruby-withdrawal!), and in preparing an app for the Market. I've got some ideas how I'd like to develop Outlime. If you try out, let me know what you think by tweeting &lt;a href="http://twitter.com/"&gt;@cblunt&lt;/a&gt; or &lt;a href="http://twitter.com/plymsoftware"&gt;@plymsoftware&lt;/a&gt;, or commenting below.&lt;/p&gt;

&lt;h3&gt;Get Outlime from Android Market&lt;/h3&gt;

&lt;p&gt;Outlime costs just &amp;pound;1.29 and is available now from Android Market. You can scan the QR code below with your Android Device to view Outlime in the Market (use &lt;a href="http://code.google.com/p/zxing/downloads/list"&gt;Barcode Scanner&lt;/a&gt; or similar).&lt;/p&gt;

&lt;p&gt;&lt;a id="qr-code"&gt;&lt;/a&gt;
&lt;a href="market://search?q=pname:com.plymouthsoftware.android.outlime"&gt;&lt;img src="/images/2010/08/outlime-qr.png" title="Scan to install Outlime via Android Market" alt="Outlime QR Code" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p class="caption"&gt;Scan the QR code with your Android device to install Outlime via Android Market&lt;/p&gt;




&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pm9_JTJez_X_30EjpD0HVNpL6X4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pm9_JTJez_X_30EjpD0HVNpL6X4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pm9_JTJez_X_30EjpD0HVNpL6X4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pm9_JTJez_X_30EjpD0HVNpL6X4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=84wDuKEDOzc:8WgTJ07-bj4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=84wDuKEDOzc:8WgTJ07-bj4:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=84wDuKEDOzc:8WgTJ07-bj4:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=84wDuKEDOzc:8WgTJ07-bj4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=84wDuKEDOzc:8WgTJ07-bj4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=84wDuKEDOzc:8WgTJ07-bj4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=84wDuKEDOzc:8WgTJ07-bj4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=84wDuKEDOzc:8WgTJ07-bj4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/84wDuKEDOzc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/08/24/introducing-outlime-rapid-sketching-for-android/</feedburner:origLink></entry>
  
  <entry>
    <author><name>Chris</name></author>
    <title>Business Startup Week 5: A New Look</title>
    <id>http://chrisblunt.com/2010/08/22/business-startup-week-5</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/pPitlgy2r18/" />
    <published>2010-08-22T00:00:00+01:00</published>
    <updated>2010-08-22T00:00:00+01:00</updated>
    <content type="html">&lt;p&gt;Last week I spent several days working with Android, putting finishing touches to a small app I plan to release to the Market. I also started revising some of the interface screens in &lt;a href="http://bit.ly/5C5iL9"&gt;Amberleaf&lt;/a&gt; after posting for feedback on &lt;a href="http://forum.freelanceswitch.com/topic.php?id=9814"&gt;Freelance Switch&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What started out as small revisions turned into completely redesigning the general theme of the site. As a result, Amberleaf will soon be sporting a brand new look, which should make the site more pleasant to use. For now, here's a sneak preview of the development builds:&lt;/p&gt;

&lt;p class="centre"&gt;
&lt;object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0' width='560' height='345'&gt;&lt;param name='movie' value='http://screenr.com/Content/assets/screenr_1116090935.swf' /&gt;&lt;param name='flashvars' value='i=99202' /&gt;&lt;param name='allowFullScreen' value='true' /&gt;&lt;embed src='http://screenr.com/Content/assets/screenr_1116090935.swf' flashvars='i=99202' allowFullScreen='true' width='560' height='345' pluginspage='http://www.macromedia.com/go/getflashplayer'&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;


&lt;p&gt;The new pages present important account and hosting information more clearly, but it was the form screens that were most in need of a revamp. Currently, forms are built using Rails' default helpers and some basic styles which, whilst functional, don't offer a clear and intuitive process for people to follow.&lt;/p&gt;

&lt;p&gt;The new forms are much clearer and being designed for fast data entry. The screencast shows an in-development preview; the next step is to get rid of the date dropdowns and implement a nice datepicker UI element. Many of the new overview screens (such as the domains list in the preview video) now offer inline AJAX entry to further speed up record management.&lt;/p&gt;

&lt;h3&gt;Coming Soon: Branding Decision&lt;/h3&gt;

&lt;p&gt;I'm still undecided on the chocolate or white/mint theme for &lt;a href="http://plymouthsoftware.com"&gt;Plymouth Software&lt;/a&gt;'s branding. If I find some spare moments this week, I'll spend some time on &lt;a href="http://plymouthsoftware.com"&gt;the website&lt;/a&gt; to see how things looks. As predicted, Claire hijacked a couple of hours this week to work on some designs for &lt;a href="http://expressvaservices.co.uk"&gt;ExpressVA Services&lt;/a&gt; business cards!&lt;/p&gt;

&lt;p&gt;On Wednesday, I had a long-overdue catch-up with Craig at &lt;a href="http://stasismedia.com"&gt;StasisMedia&lt;/a&gt;. It's always great to hear how other businesses are getting on, and hearing of Craig's success and plans for StasisMedia is a great motivator. He's now at the stage of expanding the business to take on a PHP developer which is excellent news. You can find out more about his work at &lt;a href="http://stasismedia.com"&gt;stasismedia.com&lt;/a&gt;. Craig also offered some excellent suggestions for Amberleaf's API development, and how it might tie into third-party services such as Freshbooks, as well as custom apps.&lt;/p&gt;

&lt;h3&gt;Plymouth Flavour Festival&lt;/h3&gt;

&lt;p&gt;Not strictly business related, Claire and I headed into Plymouth's Flavour Festival last weekend. It was a lovely sunny morning and again, inspiring to see such a variety of small, local businesses at the festival, a couple of highlights being &lt;a href="http://devonshiretea.co.uk"&gt;Devonshire Tea&lt;/a&gt; (an obvious choice :) and &lt;a href="http://www.brownes.co.uk"&gt;Browne's&lt;/a&gt;, whose clotted-cream fudge we sampled on the day - Claire was hooked. Of course, the day wouldn't be complete without our first &lt;a href="http://wcrowe.com/"&gt;Rowe's&lt;/a&gt; pasty since we got back home.&lt;/p&gt;

&lt;h3&gt;What's Next&lt;/h3&gt;

&lt;p&gt;I'm excited about what's planned this week. First on the list is getting my Android app published on the Market after it's undergone some final testing. I signed up for an &lt;a href="http://developer.android.com"&gt;Android Market Developer&lt;/a&gt; account this week ($25 one-time signup - take note Apple). You can watch out for it on the Market, or follow &lt;a href="http://twitter.com/plymsoftware"&gt;Plymouth Software&lt;/a&gt; for announcements on Twitter. I'll also be continuing to develop the new Amberleaf screens, although these are likely to take some time as I'm using the opportunity to pull in a lot of oft-requested functionality.&lt;/p&gt;

&lt;h4&gt;About Amberleaf&lt;/h4&gt;

&lt;p&gt;&lt;a href="http://bit.ly/5C5iL9"&gt;Amberleaf&lt;/a&gt; is a tool for web designers and developers to manage their domains and hosting accounts. &lt;a href="http://bit.ly/5C5iL9"&gt;Signing up&lt;/a&gt; takes a few seconds, and includes a 30 day free trial. After that, it's just £4.95 a month with no minimum term contract. Check it out today at &lt;a href="http://bit.ly/5C5iL9"&gt;https://amberleafapp.com/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gtdrbQFf-tR9_OjcjQ6KixlQb6I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gtdrbQFf-tR9_OjcjQ6KixlQb6I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gtdrbQFf-tR9_OjcjQ6KixlQb6I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gtdrbQFf-tR9_OjcjQ6KixlQb6I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=pPitlgy2r18:ok_N9XPbwpo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=pPitlgy2r18:ok_N9XPbwpo:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=pPitlgy2r18:ok_N9XPbwpo:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=pPitlgy2r18:ok_N9XPbwpo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=pPitlgy2r18:ok_N9XPbwpo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=pPitlgy2r18:ok_N9XPbwpo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=pPitlgy2r18:ok_N9XPbwpo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=pPitlgy2r18:ok_N9XPbwpo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/pPitlgy2r18" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/08/22/business-startup-week-5/</feedburner:origLink></entry>
  
  <entry>
    <author><name>Chris</name></author>
    <title>Business Startup Week 4: Moo Cards and Rails 3</title>
    <id>http://chrisblunt.com/2010/08/14/business-startup-week-4</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/itrXg4yZwy0/" />
    <published>2010-08-14T00:00:00+01:00</published>
    <updated>2010-08-14T00:00:00+01:00</updated>
    <content type="html">&lt;p&gt;After working with Android/Java last week, I decided to spend some time this week checking out the Rails 3 release candidate. With the final release due soon, I hoped to gain an insight into what I'll need to do when the time comes to upgrade &lt;a href="http://bit.ly/5C5iL9"&gt;Amberleaf&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Despite some massive changes to the framework, everything went fairly well and it wasn't long before I had an app up and running, complete with &lt;a href="http://eigenclass.org/hiki.rb?rcov"&gt;RCov&lt;/a&gt; and &lt;a href="http://github.com/rspec/rspec"&gt;RSpec 2&lt;/a&gt;. The recently updated beta of &lt;a href="http://www.pragprog.com/titles/achbd/the-rspec-book"&gt;The RSpec Book&lt;/a&gt; has been updated to reflect the latest changes. As always, Ryan Bates' excellent &lt;a href="http://railscasts.com"&gt;Railscasts&lt;/a&gt; also came in very handy for showing how to use some of Rails' new functionality.&lt;/p&gt;

&lt;p&gt;In developing the test app, I stumbled upon the &lt;a href="http://github.com/thoughtbot/flutie"&gt;Flutie&lt;/a&gt; gem from &lt;a href="http://thoughtbot.com/community/"&gt;Thoughtbot&lt;/a&gt;. Flutie gives you a nice set of default css styles for your app during its development, great for helping to get an app off the ground. With Rails 3's new generators and agnostic-approach, I'm sure there'll be plenty more&lt;/p&gt;

&lt;h3&gt;Business Cards: Branding Plymouth Software&lt;/h3&gt;

&lt;p&gt;Last week, it was recommended I try &lt;a href="http://moo.com"&gt;Moo&lt;/a&gt; for business cards, so I sent off for a sample pack. Moo's samples are great as they let you upload your design for the cards, which allowed me a preview of what my final print would look like.&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/2010/08/business_cards.jpg" title="Business card samples" alt="Business card samples" /&gt;&lt;/p&gt;

&lt;p&gt;I ordered the &lt;a href="http://uk.moo.com/about/paper.html"&gt;Moo Green&lt;/a&gt; recycled paper cards. They arrived on Wednesday, and have a great feel and quality. Just as impressive was Moo's quirky order process, and the tongue-in-cheeky Buzzword Bingo" card they supplied in the pack. It's well worth ordering a sample pack from them just to grab one of these!&lt;/p&gt;

&lt;p&gt;I'm thinking of colour schemes for &lt;a href="http://plymouthsoftware.com/"&gt;Plymouth Software's&lt;/a&gt; brand, using a chocolate/coffee colour scheme. The colours I'd chosen for the samples, though, were far too dark for print. I'm unsure whether to work on this, or instead opt for a light, white/mint colour scheme. Something to ponder on whilst I work on upcoming projects - although I'd like to give the &lt;a href="http://plymouthsoftware.com/"&gt;website&lt;/a&gt; its proper branding as quickly as possible.&lt;/p&gt;

&lt;h3&gt;Amberleaf Updates&lt;/h3&gt;

&lt;p&gt;With some sign-ups to Amberleaf, I've been receiving some great ideas and feedback. This week, I pushed a few updates, including additional fields for client records. There are interface changes on the way too, as some of the screens are in need of a tweak.&lt;/p&gt;

&lt;p&gt;I've also watched the stats for Amberleaf rise quite considerably according to Google Analytics. I now need to focus on converting those into sign ups for the &lt;a href="http://bit.ly/5C5iL9"&gt;30 day free trial&lt;/a&gt;! I'll be taking a look at the front page again, with a view to cutting down the amount of text and de-cluttering the page.&lt;/p&gt;

&lt;h3&gt;What's Next&lt;/h3&gt;

&lt;p&gt;This week, I'll be working on couple of projects for customers. On Friday, I met up with &lt;a href="http://caddology.com"&gt;Caddology&lt;/a&gt; with a view to building a fresh new site. I'll also be heading back to Java to work on my Android app, which I hope to release in beta to the Market.&lt;/p&gt;

&lt;p&gt;Finally, as I've been pretty convinced by Moo, I hope to get a final design together and printed up - although I have a feeling a certain &lt;a href="http://bit.ly/9DhbJh"&gt;ExpressVA Services&lt;/a&gt; may be demanding I design their business cards as well!&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/y_dzKZo7E-JGXx2aHlRrfmlxTTg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y_dzKZo7E-JGXx2aHlRrfmlxTTg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/y_dzKZo7E-JGXx2aHlRrfmlxTTg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y_dzKZo7E-JGXx2aHlRrfmlxTTg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=itrXg4yZwy0:-Dytuhzznws:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=itrXg4yZwy0:-Dytuhzznws:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=itrXg4yZwy0:-Dytuhzznws:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=itrXg4yZwy0:-Dytuhzznws:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=itrXg4yZwy0:-Dytuhzznws:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=itrXg4yZwy0:-Dytuhzznws:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=itrXg4yZwy0:-Dytuhzznws:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=itrXg4yZwy0:-Dytuhzznws:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/itrXg4yZwy0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/08/14/business-startup-week-4/</feedburner:origLink></entry>
  
  <entry>
    <author><name>Chris</name></author>
    <title>Android: Double Taps on a MapView with Overlays</title>
    <id>http://chrisblunt.com/2010/08/12/android-map-view-double-taps-and-overlay-markers</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/TZzEVFyQlRw/" />
    <published>2010-08-12T00:00:00+01:00</published>
    <updated>2010-08-12T00:00:00+01:00</updated>
    <content type="html">

&lt;p class="sourcecode_notice"&gt;
  Download the source code for this post &lt;a href="/media/2010/08/PushPin.tar.gz" rel="download" title="PushPin.tar.gz"&gt;PushPin.tar.gz&lt;/a&gt;, &lt;a href="/media/2010/08/PushPin.zip" rel="download" title="PushPin.zip"&gt;PushPin.zip&lt;/a&gt;.
&lt;/p&gt;


&lt;p&gt;For the past few days, I've been struggling with the &lt;a href="http://developer.android.com"&gt;Android SDK&lt;/a&gt; to detect double-taps on a &lt;em&gt;MapView&lt;/em&gt; with overlays. I'm working on &lt;a href="http://plymouthsoftware.com"&gt;Plymouth Software's&lt;/a&gt; first Android app, which makes use of Google's MapView class. The requirements are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The map can have several pushpin markers overlaid onto it.&lt;/li&gt;
&lt;li&gt;When the user double-taps an empty part of the map, a new pushpin is added at the tapped location.&lt;/li&gt;
&lt;li&gt;When the user taps on an existing pushpin, they see a popup (or similar); no new marker is added.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Despite scouring the SDK and web for tutorials, I could only find examples of either detecting double taps (using primitive timers) or adding a list of markers which could be tapped. After several hours, I finally managed to get somewhere. Check out the &lt;a href="#call_for_help"&gt;call for help&lt;/a&gt; at the end of the post though!&lt;/p&gt;

&lt;h3&gt;Creating the Maps Activity&lt;/h3&gt;

&lt;p&gt;After creating a new Android project in the SDK, switch it to extend &lt;em&gt;MapActivity&lt;/em&gt; and add a &lt;em&gt;MapView&lt;/em&gt; to the layout. I've also setup the &lt;em&gt;MapView&lt;/em&gt; with things like built-in zoom controls in the &lt;em&gt;initialiseMapView()&lt;/em&gt; method:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c"&gt;&amp;lt;!-- /AndroidManifest.xml --&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;manifest&lt;/span&gt; &lt;span class="na"&gt;xmlns:android=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;/span&gt;
    &lt;span class="na"&gt;package=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;com.example&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;android:versionCode=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;android:versionName=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;application&lt;/span&gt; &lt;span class="na"&gt;android:icon=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;@drawable/icon&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;android:label=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;@string/app_name&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;activity&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;.PushPinActivity&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;android:label=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;@string/app_name&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;intent-filter&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;action&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;android.intent.action.MAIN&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;category&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;android.intent.category.LAUNCHER&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/intent-filter&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/activity&amp;gt;&lt;/span&gt;

    &lt;span class="c"&gt;&amp;lt;!-- Required to use the Google Maps library --&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;uses-library&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;com.google.android.maps&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/application&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;uses-sdk&lt;/span&gt; &lt;span class="na"&gt;android:minSdkVersion=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;4&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;android:targetSdkVersion=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;4&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

  &lt;span class="c"&gt;&amp;lt;!-- Request permissions to access location and the internet --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;uses-permission&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;android.permission.ACCESS_COARSE_LOCATION&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;uses-permission&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;uses-permission&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;android.permission.INTERNET&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/manifest&amp;gt;&lt;/span&gt; 
&lt;/pre&gt;
&lt;/div&gt;




&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cm"&gt;/* /src/com/example/PushPinActivity.java */&lt;/span&gt;
&lt;span class="kn"&gt;package&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;example&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;android.graphics.drawable.Drawable&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;android.os.Bundle&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.google.android.maps.GeoPoint&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.google.android.maps.MapActivity&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.google.android.maps.MapController&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.google.android.maps.MapView&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.google.android.maps.OverlayItem&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PushPinActivity&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;MapActivity&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="n"&gt;MapView&lt;/span&gt; &lt;span class="n"&gt;mapView&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="n"&gt;MapController&lt;/span&gt; &lt;span class="n"&gt;mapController&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

  &lt;span class="nd"&gt;@Override&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;onCreate&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Bundle&lt;/span&gt; &lt;span class="n"&gt;savedInstanceState&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;super&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;onCreate&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;savedInstanceState&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;setContentView&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;layout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;main&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

    &lt;span class="n"&gt;initialiseMapView&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@Override&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="nf"&gt;isRouteDisplayed&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;initialiseMapView&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;mapView&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MapView&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="n"&gt;findViewById&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;mapView&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;mapController&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;mapView&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getController&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

    &lt;span class="n"&gt;mapView&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setBuiltInZoomControls&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;mapView&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setSatellite&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

    &lt;span class="n"&gt;GeoPoint&lt;/span&gt; &lt;span class="n"&gt;startPoint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;GeoPoint&lt;/span&gt;&lt;span class="o"&gt;((&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)(&lt;/span&gt;&lt;span class="mf"&gt;40.7575&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;E6&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)(-&lt;/span&gt;&lt;span class="mf"&gt;73.9785&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;E6&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
    &lt;span class="n"&gt;mapController&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setCenter&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;startPoint&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

    &lt;span class="n"&gt;mapController&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setZoom&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;




&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c"&gt;&amp;lt;!-- /res/layout/main.xml --&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;LinearLayout&lt;/span&gt; 
  &lt;span class="na"&gt;xmlns:android=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;/span&gt;
  &lt;span class="na"&gt;android:orientation=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;vertical&amp;quot;&lt;/span&gt;
  &lt;span class="na"&gt;android:layout_width=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;fill_parent&amp;quot;&lt;/span&gt;
  &lt;span class="na"&gt;android:layout_height=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;fill_parent&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;com.google.android.maps.MapView&lt;/span&gt;
    &lt;span class="na"&gt;android:id=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;@+id/mapView&amp;quot;&lt;/span&gt;
    &lt;span class="na"&gt;android:layout_width=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;fill_parent&amp;quot;&lt;/span&gt;
    &lt;span class="na"&gt;android:layout_height=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;fill_parent&amp;quot;&lt;/span&gt;
    &lt;span class="na"&gt;android:clickable=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;
    &lt;span class="na"&gt;android:apiKey=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;YOUR_MAPS_API_KEY_HERE&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/LinearLayout&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;h3&gt;Adding Overlays&lt;/h3&gt;

&lt;p&gt;Next, I'll add an array of &lt;em&gt;Overlay&lt;/em&gt; markers to the map. I couldn't find much high-level documentation on overlays, but from what I could figure out, the &lt;em&gt;ItemizedOverlay&lt;/em&gt; class allows you to store a &lt;em&gt;List&lt;/em&gt; of &lt;em&gt;OverlayItems&lt;/em&gt;. Each &lt;em&gt;OverlayItem&lt;/em&gt; is a marker on the map.&lt;/p&gt;

&lt;p&gt;For this example, I've just used the default Android application icon as a marker. Let's add a few &lt;em&gt;Overlays&lt;/em&gt; in the &lt;em&gt;initialiseOverlays()&lt;/em&gt; method, which is called from &lt;em&gt;onStart()&lt;/em&gt; (not &lt;em&gt;onCreate()&lt;/em&gt;). Note that I've also declared a property, &lt;em&gt;placesItemizedOverlay&lt;/em&gt; which is a sub-class of &lt;em&gt;ItemizedOverlay&lt;/em&gt;. The &lt;em&gt;GeoPoint&lt;/em&gt; locations are from another tutorial I found during my research!&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cm"&gt;/* /src/com/example/PushPinActivity.java */&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PushPinActivity&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;MapActivity&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="n"&gt;PlacesItemizedOverlay&lt;/span&gt; &lt;span class="n"&gt;placesItemizedOverlay&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

  &lt;span class="c1"&gt;// ...&lt;/span&gt;

  &lt;span class="nd"&gt;@Override&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;onStart&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;super&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;onStart&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;initialiseOverlays&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;initialiseOverlays&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Create an ItemizedOverlay to display a list of markers&lt;/span&gt;
    &lt;span class="n"&gt;Drawable&lt;/span&gt; &lt;span class="n"&gt;defaultMarker&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;getResources&lt;/span&gt;&lt;span class="o"&gt;().&lt;/span&gt;&lt;span class="na"&gt;getDrawable&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;drawable&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;placesItemizedOverlay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;PlacesItemizedOverlay&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;defaultMarker&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

    &lt;span class="n"&gt;placesItemizedOverlay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addOverlayItem&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;OverlayItem&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;GeoPoint&lt;/span&gt;&lt;span class="o"&gt;((&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;40.748963847316034&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;E6&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
            &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(-&lt;/span&gt;&lt;span class="mf"&gt;73.96807193756104&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;E6&lt;/span&gt;&lt;span class="o"&gt;)),&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;UN&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;United Nations&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
    &lt;span class="n"&gt;placesItemizedOverlay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addOverlayItem&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;OverlayItem&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;GeoPoint&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;40.76866299974387&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;E6&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(-&lt;/span&gt;&lt;span class="mf"&gt;73.98268461227417&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;E6&lt;/span&gt;&lt;span class="o"&gt;)),&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Lincoln Center&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
        &lt;span class="s"&gt;&amp;quot;Home of Jazz at Lincoln Center&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
    &lt;span class="n"&gt;placesItemizedOverlay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addOverlayItem&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;OverlayItem&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;GeoPoint&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;40.765136435316755&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;E6&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(-&lt;/span&gt;&lt;span class="mf"&gt;73.97989511489868&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;E6&lt;/span&gt;&lt;span class="o"&gt;)),&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Carnegie Hall&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
        &lt;span class="s"&gt;&amp;quot;Where you go with practice, practice, practice&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
    &lt;span class="n"&gt;placesItemizedOverlay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addOverlayItem&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;OverlayItem&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;GeoPoint&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;40.70686417491799&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;E6&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(-&lt;/span&gt;&lt;span class="mf"&gt;74.01572942733765&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;E6&lt;/span&gt;&lt;span class="o"&gt;)),&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;The Downtown Club&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
        &lt;span class="s"&gt;&amp;quot;Original home of the Heisman Trophy&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;

    &lt;span class="c1"&gt;// Add the overlays to the map&lt;/span&gt;
    &lt;span class="n"&gt;mapView&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getOverlays&lt;/span&gt;&lt;span class="o"&gt;().&lt;/span&gt;&lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;placesItemizedOverlay&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;




&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cm"&gt;/* /src/com/example/PlacesItemizedOverlay.java */&lt;/span&gt;
&lt;span class="kn"&gt;package&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;example&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;java.util.ArrayList&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;android.app.AlertDialog&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;android.content.Context&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;android.graphics.drawable.Drawable&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.google.android.maps.ItemizedOverlay&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.google.android.maps.OverlayItem&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PlacesItemizedOverlay&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;ItemizedOverlay&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;OverlayItem&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="n"&gt;Context&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="n"&gt;ArrayList&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;OverlayItem&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;ArrayList&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;OverlayItem&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;();&lt;/span&gt;

  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nf"&gt;PlacesItemizedOverlay&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Context&lt;/span&gt; &lt;span class="n"&gt;aContext&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Drawable&lt;/span&gt; &lt;span class="n"&gt;marker&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;super&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;boundCenterBottom&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;marker&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
    &lt;span class="n"&gt;context&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;aContext&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;addOverlayItem&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OverlayItem&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;populate&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="nd"&gt;@Override&lt;/span&gt;
    &lt;span class="kd"&gt;protected&lt;/span&gt; &lt;span class="n"&gt;OverlayItem&lt;/span&gt; &lt;span class="nf"&gt;createItem&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;get&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="nd"&gt;@Override&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;size&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;size&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="nd"&gt;@Override&lt;/span&gt;
    &lt;span class="kd"&gt;protected&lt;/span&gt; &lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="nf"&gt;onTap&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;OverlayItem&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;get&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
      &lt;span class="n"&gt;AlertDialog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Builder&lt;/span&gt; &lt;span class="n"&gt;dialog&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;AlertDialog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Builder&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
      &lt;span class="n"&gt;dialog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setTitle&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getTitle&lt;/span&gt;&lt;span class="o"&gt;());&lt;/span&gt;
      &lt;span class="n"&gt;dialog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setMessage&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getSnippet&lt;/span&gt;&lt;span class="o"&gt;());&lt;/span&gt;
      &lt;span class="n"&gt;dialog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;show&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
      
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;If you save and run the code now, you'll see a map centred on Manhattan with several Android-esque markers scattered around. Tapping on one of the markers will popup an &lt;em&gt;AlertDialog&lt;/em&gt; with the marker's title and description. This is nothing more advanced than the standard Google reference documentation:&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/2010/08/android_markers.jpg" title="Android Markers" alt="Android Markers" /&gt;&lt;/p&gt;

&lt;h3&gt;Detecting Double Taps&lt;/h3&gt;

&lt;p&gt;For my app, I needed to detect a double-tap anywhere else on the &lt;em&gt;MapView&lt;/em&gt;, except where a Marker was displayed. To do this, I started to look at the &lt;em&gt;GestureDetector&lt;/em&gt; class, and set about extending &lt;em&gt;MapView&lt;/em&gt; to detect double-taps.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cm"&gt;/* /src/com/example/PushPinMapView.java */&lt;/span&gt;
&lt;span class="kn"&gt;package&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;example&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;android.content.Context&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;android.util.AttributeSet&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;android.view.GestureDetector&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;android.view.MotionEvent&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;android.view.GestureDetector.OnGestureListener&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.google.android.maps.MapView&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PushPinMapView&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;MapView&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="n"&gt;Context&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="n"&gt;GestureDetector&lt;/span&gt; &lt;span class="n"&gt;gestureDetector&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nf"&gt;PushPinMapView&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Context&lt;/span&gt; &lt;span class="n"&gt;aContext&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AttributeSet&lt;/span&gt; &lt;span class="n"&gt;attrs&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;super&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;aContext&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;attrs&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;context&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;aContext&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    
    &lt;span class="n"&gt;gestureDetector&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;GestureDetector&lt;/span&gt;&lt;span class="o"&gt;((&lt;/span&gt;&lt;span class="n"&gt;OnGestureListener&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;gestureDetector&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setOnDoubleTapListener&lt;/span&gt;&lt;span class="o"&gt;((&lt;/span&gt;&lt;span class="n"&gt;OnDoubleTapListener&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
  
  &lt;span class="c1"&gt;// Override the onTouchEvent() method to intercept events and pass them&lt;/span&gt;
  &lt;span class="c1"&gt;// to the GestureDetector. If the GestureDetector doesn&amp;#39;t handle the event,&lt;/span&gt;
  &lt;span class="c1"&gt;// propagate it up to the MapView.&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="nf"&gt;onTouchEvent&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MotionEvent&lt;/span&gt; &lt;span class="n"&gt;ev&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;gestureDetector&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;onTouchEvent&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ev&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;
       &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kd"&gt;super&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;onTouchEvent&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ev&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;




&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cm"&gt;/* /src/com/example/PushPinActivity.java */&lt;/span&gt;

&lt;span class="c1"&gt;// ...&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;android.view.GestureDetector.OnGestureListener&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;android.view.GestureDetector.OnDoubleTapListener&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PushPinActivity&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;MapActivity&lt;/span&gt; &lt;span class="kd"&gt;implements&lt;/span&gt; &lt;span class="n"&gt;OnGestureListener&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;OnDoubleTapListener&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// ...&lt;/span&gt;

  &lt;span class="cm"&gt;/**&lt;/span&gt;
&lt;span class="cm"&gt;   * Methods required by OnDoubleTapListener&lt;/span&gt;
&lt;span class="cm"&gt;   **/&lt;/span&gt;
  &lt;span class="nd"&gt;@Override&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="nf"&gt;onDoubleTap&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MotionEvent&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;GeoPoint&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;mapView&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getProjection&lt;/span&gt;&lt;span class="o"&gt;().&lt;/span&gt;&lt;span class="na"&gt;fromPixels&lt;/span&gt;&lt;span class="o"&gt;((&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getX&lt;/span&gt;&lt;span class="o"&gt;(),&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getY&lt;/span&gt;&lt;span class="o"&gt;());&lt;/span&gt;
    
    &lt;span class="n"&gt;AlertDialog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Builder&lt;/span&gt; &lt;span class="n"&gt;dialog&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;AlertDialog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Builder&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;dialog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setTitle&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Double Tap&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;dialog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setMessage&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Location: &amp;quot;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getLatitudeE6&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;, &amp;quot;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getLongitudeE6&lt;/span&gt;&lt;span class="o"&gt;());&lt;/span&gt;
    &lt;span class="n"&gt;dialog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;show&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@Override&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="nf"&gt;onDoubleTapEvent&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MotionEvent&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@Override&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="nf"&gt;onSingleTapConfirmed&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MotionEvent&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="cm"&gt;/**&lt;/span&gt;
&lt;span class="cm"&gt;   * Methods required by OnGestureListener&lt;/span&gt;
&lt;span class="cm"&gt;   **/&lt;/span&gt;
  &lt;span class="nd"&gt;@Override&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="nf"&gt;onDown&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MotionEvent&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@Override&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="nf"&gt;onFling&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MotionEvent&lt;/span&gt; &lt;span class="n"&gt;e1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;MotionEvent&lt;/span&gt; &lt;span class="n"&gt;e2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;velocityX&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;velocityY&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@Override&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;onLongPress&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MotionEvent&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@Override&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="nf"&gt;onScroll&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MotionEvent&lt;/span&gt; &lt;span class="n"&gt;e1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;MotionEvent&lt;/span&gt; &lt;span class="n"&gt;e2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;distanceX&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;distanceY&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@Override&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;onShowPress&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MotionEvent&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@Override&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="nf"&gt;onSingleTapUp&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MotionEvent&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Finally, make sure you change your &lt;em&gt;main.xml&lt;/em&gt; layout file to use the &lt;em&gt;com.example.PushPinMapView&lt;/em&gt; instead of the original Google version. This one caught me out whilst writing this post!&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c"&gt;&amp;lt;!-- /res/layout/main.xml --&amp;gt;&lt;/span&gt;
  &lt;span class="c"&gt;&amp;lt;!-- .... --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;com.example.PushPinMapView&lt;/span&gt;
    &lt;span class="na"&gt;android:id=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;@+id/mapView&amp;quot;&lt;/span&gt;
    &lt;span class="na"&gt;android:layout_width=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;fill_parent&amp;quot;&lt;/span&gt;
    &lt;span class="na"&gt;android:layout_height=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;fill_parent&amp;quot;&lt;/span&gt;
    &lt;span class="na"&gt;android:clickable=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;
    &lt;span class="na"&gt;android:apiKey=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;YOUR_MAPS_API_KEY_HERE&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="c"&gt;&amp;lt;!-- .... --&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;


&lt;h4&gt;What's going on?&lt;/h4&gt;

&lt;p&gt;The custom &lt;em&gt;PushPinMapView&lt;/em&gt; creates an instance of &lt;em&gt;GestureDetector&lt;/em&gt; and dispatches any touch events (&lt;em&gt;onTouchEvent()&lt;/em&gt;) to the designated &lt;em&gt;OnGestureListener&lt;/em&gt;. In this code, that is the &lt;em&gt;context&lt;/em&gt; instance of &lt;em&gt;PushPinActivity&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;If the listener handles the gesture (it's a double-tap), it shouldn't not propagate any further (see below). For any gestures that aren't handled, the &lt;em&gt;GestureDetector&lt;/em&gt; propagates the gesture up to other listeners. In this case, it would be handled by the parent &lt;em&gt;MapView&lt;/em&gt; gesture handling, which means we don't have to override things like dragging the map.&lt;/p&gt;

&lt;p&gt;Also be sure that your &lt;em&gt;OnGestureListener&lt;/em&gt; class imports from the &lt;em&gt;android.view.GestureDetector&lt;/em&gt; package.&lt;/p&gt;

&lt;h3&gt;Call for help...&lt;a id="call_for_help"&gt;&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;Whilst functional, the code is still not quite perfect. According to the documentation I've found on &lt;em&gt;OnGestureListener&lt;/em&gt;, if a method returns &lt;em&gt;true&lt;/em&gt;, then the event should not be propagated to any other listeners. However, despite &lt;em&gt;onDoubleTap()&lt;/em&gt; returning &lt;em&gt;true&lt;/em&gt; in the code above, you'll find that if you double-tap on one of the &lt;em&gt;OverlayItem&lt;/em&gt; markers, both the double-tap dialog and the marker's dialog are displayed. It seems the &lt;em&gt;MapView&lt;/em&gt; is detecting both a single and double-tap.&lt;/p&gt;

&lt;p&gt;If you figure out how to stop double-taps on an &lt;em&gt;OverlayItem&lt;/em&gt; from triggering a single tap event, please leave a comment and I'll update the code in the post...Thanks!&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2UktG2z_ZBPYk03NzCycmsy_dFU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2UktG2z_ZBPYk03NzCycmsy_dFU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2UktG2z_ZBPYk03NzCycmsy_dFU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2UktG2z_ZBPYk03NzCycmsy_dFU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=TZzEVFyQlRw:lT63Zv_0RfM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=TZzEVFyQlRw:lT63Zv_0RfM:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=TZzEVFyQlRw:lT63Zv_0RfM:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=TZzEVFyQlRw:lT63Zv_0RfM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=TZzEVFyQlRw:lT63Zv_0RfM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=TZzEVFyQlRw:lT63Zv_0RfM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=TZzEVFyQlRw:lT63Zv_0RfM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=TZzEVFyQlRw:lT63Zv_0RfM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/TZzEVFyQlRw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/08/12/android-map-view-double-taps-and-overlay-markers/</feedburner:origLink></entry>
  
  <entry>
    <author><name>Chris</name></author>
    <title>Business Startup Week 3: Android</title>
    <id>http://chrisblunt.com/2010/08/07/business-startup-week-3-android</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/IeRKaU64BKA/" />
    <published>2010-08-07T00:00:00+01:00</published>
    <updated>2010-08-07T00:00:00+01:00</updated>
    <content type="html">&lt;p&gt;After launching &lt;a href="http://bit.ly/5C5iL9"&gt;Amberleaf&lt;/a&gt; live last week, this week has been eventful as I continued work on the first Android app to be released through &lt;a href="http://bit.ly/bNggyV"&gt;Plymouth Software&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://android.com"&gt;Android&lt;/a&gt; platform uses Java, and after indulging in the purity of &lt;a href="http://ruby-lang.org"&gt;Ruby&lt;/a&gt; for the past couple of years, switching back to Java was a fairly &lt;a href="http://twitter.com/cblunt/status/20294600533"&gt;painful process&lt;/a&gt;. Nevertheless, after &lt;a href="http://twitter.com/cblunt/status/20394319181"&gt;countless brews&lt;/a&gt;, I eventually figured out how to get the framework doing what I needed, and began putting together the first parts of my app.&lt;/p&gt;

&lt;p&gt;In an upcoming post, I'll describe how I achieved double-tap detection on a MapView with multiple overlay markers - something I struggled to find much information about online.&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/2010/08/brew.jpg" title="Surviving Java" alt="Cup of tea and biscuit" /&gt;&lt;/p&gt;

&lt;p class="caption"&gt;Surviving Java&lt;/p&gt;


&lt;h3&gt;Amberleaf Developments&lt;/h3&gt;

&lt;p&gt;In the meantime, Amberleaf has been enjoying its first full release week. A number of subscribers have joined from the beta, and there are people trying out the app for the first time thanks to the 30 day free trial.&lt;/p&gt;

&lt;p&gt;Visitors to the Amberleaf site have risen quite sharply since launch, increasing by over 300% according to Google Analytics. One problem that this has highlighted is people landing on the registration page (the 2nd most popular entry after the homepage) and leaving after 30 seconds or so.&lt;/p&gt;

&lt;p&gt;A friend checking out the site noticed that nowhere on the registration page is the subscription plan (and, importantly, price) mentioned - certainly a barrier to entering registration information! Sometimes it takes a fresh pair of eyes to see what should be obvious! I'll be revising the registration page accordingly in the coming week.&lt;/p&gt;

&lt;h3&gt;Explay 2010&lt;/h3&gt;

&lt;p&gt;On Friday, I headed to &lt;a href="http://explay.co.uk"&gt;Extended Play 2010&lt;/a&gt;, Plymouth's first games event organised by &lt;a href="http://designedindevon.co.uk"&gt;Designed in Devon&lt;/a&gt;. Interesting speakers and a panel interview, a great recently redeveloped venue, and seeing a few familiar faces made for a great event. I was also pleasantly surprised to learn of several new resources for startup businesses in the area, including &lt;a href="http://www.formationzone.co.uk/"&gt;Formation Zone&lt;/a&gt;, office spaces designated at the &lt;a href="http://plymouth.ac.uk"&gt;University&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/2010/08/explay.jpg" title="Explay 2010" alt="Lecturn at Explay 2010" /&gt;&lt;/p&gt;

&lt;p class="caption"&gt;Waiting for Explay 2010 to start&lt;/p&gt;


&lt;p&gt;More inspiring, though, was seeing how much energy there was to see Plymouth recognised as a hub for digital creative excellence. After several years away from that community, I was excited and inspired by what's happening within local businesses and the University to build a vibrant creative community in the city and its surrounding area.&lt;/p&gt;

&lt;p&gt;Overall, what started as a frustrating week reminding myself about Java ended very well. Next week will be exciting as I get my business card designs off to &lt;a href="http://solopress.com/"&gt;Solopress&lt;/a&gt;, and I'll be working with a couple of customers on their own new projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FpKryvpucICg0K-hxAKSbJFrSHo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FpKryvpucICg0K-hxAKSbJFrSHo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FpKryvpucICg0K-hxAKSbJFrSHo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FpKryvpucICg0K-hxAKSbJFrSHo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=IeRKaU64BKA:Ox-IVWGG33I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=IeRKaU64BKA:Ox-IVWGG33I:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=IeRKaU64BKA:Ox-IVWGG33I:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=IeRKaU64BKA:Ox-IVWGG33I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=IeRKaU64BKA:Ox-IVWGG33I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=IeRKaU64BKA:Ox-IVWGG33I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=IeRKaU64BKA:Ox-IVWGG33I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=IeRKaU64BKA:Ox-IVWGG33I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/IeRKaU64BKA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/08/07/business-startup-week-3-android/</feedburner:origLink></entry>
  
  <entry>
    <author><name>Chris</name></author>
    <title>Business Startup Week 2: Launch</title>
    <id>http://chrisblunt.com/2010/07/31/business-startup-week-2-launch</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/LKILOvQ2YqY/" />
    <published>2010-07-31T00:00:00+01:00</published>
    <updated>2010-07-31T00:00:00+01:00</updated>
    <content type="html">&lt;p&gt;After diving into setting up business last week, I got on with preparing &lt;a href="http://bit.ly/5C5iL9"&gt;Amberleaf&lt;/a&gt; for its live launch. This meant ironing out a few last minute issues, and tidying up parts of the interface.&lt;/p&gt;

&lt;p&gt;Some of the biggest changes were to the new user screens. Despite their relatively low visibility (only being shown to new users), these welcome screens are arguably some of the most important in any application. The screens needed to give clearer direction to new users.&lt;/p&gt;

&lt;h3&gt;Welcoming New Users&lt;/h3&gt;

&lt;p&gt;The previous welcome screens had been rough placeholders, a couple of notes and instructions about what you were looking at. As well as being bland, they weren't that useful in guiding people around the software. For the revamp, I chose to make the new screens a series of actions appropriate for new users right after logging in.&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/2010/07/new_users_screenshot.jpg" alt="New Users Screen in Amberleaf" /&gt;&lt;/p&gt;

&lt;p class="caption"&gt;New user welcome screen in Amberleaf&lt;/p&gt;


&lt;p&gt;I also got rid of unnecessary interface elements, such as sorting links and search boxes which were meaningless to an empty account. Every new user screen now also displays a prominent help link, giving a clear point of contact for support.&lt;/p&gt;

&lt;h3&gt;Launch!&lt;/h3&gt;

&lt;p&gt;My PayPal approval came through, and I linked it with the business bank account. After a quick switch on &lt;a href="http://spreedly.com"&gt;Spreedly&lt;/a&gt;, the subscription payments were active and I &lt;a href="http://twitter.com/cblunt/status/19807901866"&gt;finally launched&lt;/a&gt; Amberleaf on 29th July.&lt;/p&gt;

&lt;p&gt;I can't emphasise enough how great Spreedly is for managing recurring billing, and how quick and helpful their team are at responding to questions. Integration with Rails was a breeze.&lt;/p&gt;

&lt;p&gt;Away from coding and refactoring a lot of legacy code, I formalised the business, registering with HMRC and arranging suitable insurance on the car. I'm still puzzled by how the insurance company can justify its &lt;a href="http://twitter.com/cblunt/status/19815998898"&gt;administration fee&lt;/a&gt; though!&lt;/p&gt;

&lt;p&gt;Nevertheless, I made some tweaks to the &lt;a href="http://plymouthsoftware.com/"&gt;Plymouth Software&lt;/a&gt; web site, and started thinking about business cards. I've previously used &lt;a href="http://solopress.com"&gt;Solopress&lt;/a&gt; who were excellent, so ordered a sample pack of their latest recycled business cards. Next, it looks like I'll be spending some time getting handy with &lt;a href="http://inkscape.org"&gt;Inkscape&lt;/a&gt;, and heading the &lt;a href="http://explay.co.uk"&gt;ExPlay&lt;/a&gt;, Plymouth's first gaming event.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gcUIkPQQxQHr-8Piv7nvbmx2K1Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gcUIkPQQxQHr-8Piv7nvbmx2K1Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gcUIkPQQxQHr-8Piv7nvbmx2K1Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gcUIkPQQxQHr-8Piv7nvbmx2K1Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=LKILOvQ2YqY:7soVbsYFfEg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=LKILOvQ2YqY:7soVbsYFfEg:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=LKILOvQ2YqY:7soVbsYFfEg:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=LKILOvQ2YqY:7soVbsYFfEg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=LKILOvQ2YqY:7soVbsYFfEg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=LKILOvQ2YqY:7soVbsYFfEg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=LKILOvQ2YqY:7soVbsYFfEg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=LKILOvQ2YqY:7soVbsYFfEg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/LKILOvQ2YqY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/07/31/business-startup-week-2-launch/</feedburner:origLink></entry>
  
  <entry>
    <author><name>Chris</name></author>
    <title>Business Startup Week 1: Plymouth Software</title>
    <id>http://chrisblunt.com/2010/07/26/business-startup-week-1-plymouth-software</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/VTmhNE_EUSk/" />
    <published>2010-07-26T00:00:00+01:00</published>
    <updated>2010-07-26T00:00:00+01:00</updated>
    <content type="html">&lt;p&gt;Last week, after &lt;a href="/2010/07/22/short-notes-on-a-long-trip/"&gt;nearly 4 months travelling&lt;/a&gt;, I got back home and started up my new business. After a few years away from self-employment, I was pretty excited, but still felt the nerves that go hand-in-hand with setting up by yourself.&lt;/p&gt;

&lt;p&gt;Things were made easier, though, as Claire has also spent the week setting up her first business, &lt;a href="http://expressvaservices.co.uk"&gt;ExpressVA Services&lt;/a&gt;, so we're working through the process together. Unsurprisingly to those who know her, Claire is a lot better organised than me!&lt;/p&gt;

&lt;h3&gt;Does what it says...&lt;/h3&gt;

&lt;p&gt;To get started, I set off in search of a name. I spent ages working through all the crazy/funky/web/tech/company names I could think of, before deciding just to keep it simple. After a couple of clicks to register a domain, I knocked up a quick logo and website, and &lt;a href="http://plymouthsoftware.com"&gt;Plymouth Software&lt;/a&gt; was born.&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/2010/07/plymouth-software-shot.jpg" alt="Plymouth Software Screenshot" /&gt;&lt;/p&gt;

&lt;h3&gt;Meeting the bank manager&lt;/h3&gt;

&lt;p&gt;Next up was a business bank account. Although not strictly necessary, but I found it made accounting and tax returns much simpler last time. Whatsmore, HSBC still offered their excellent &lt;a href="http://www.business.hsbc.co.uk/1/2/business-banking/business-bank-accounts/business-direct-account;jsessionid=0000GGEU9ddKU6R4f6P1ShS0GYG:12c5gt82o"&gt;Business Direct&lt;/a&gt; account, which is as good as free to businesses that don't handle much cash.&lt;/p&gt;

&lt;p&gt;I had a great experience with HSBC during my freelance days, so didn't hesitate in walking into my local branch and stepping out an hour or so later with a shiny new account. I was beginning to wonder if things were going a little to smoothly!&lt;/p&gt;

&lt;p&gt;The main reason I needed a business account was so I could setup &lt;a href="https://www.paypal-business.co.uk/"&gt;PayPal Pro&lt;/a&gt;, the gateway I'll be using to take &lt;a href="http://bit.ly/5C5iL9"&gt;Amberleaf&lt;/a&gt; subscription payments. Again, I setup the account online - with a &lt;a href="http://twitter.com/cblunt/status/19081909322"&gt;minor hiccup&lt;/a&gt;, which was easily corrected - and waited to get approved.&lt;/p&gt;

&lt;h3&gt;Switching on Amberleaf&lt;/h3&gt;

&lt;p&gt;In the meantime, I've been tidying up &lt;a href="http://bit.ly/5C5iL9"&gt;Amberleaf&lt;/a&gt;, fixing little bugs and niggles that had surfaced. All in all, though, it seems to have stood up pretty well during my absence. It continued to get a steady stream of subscribers to try out the beta, and the feedback has been very positive.&lt;/p&gt;

&lt;p&gt;Yesterday, my PayPal Pro approval came through, so I've been working away to implement a live &lt;a href="http://spreedly.com"&gt;Spreedly&lt;/a&gt; account. Over the coming days, I'll be switching off the beta plan and making Amberleaf live! Existing users will just need to subscribe to the new plan when they log in. I'll be sending out an email giving detailed instructions. Everyone gets a 30 day free trial.&lt;/p&gt;

&lt;p&gt;I'm really looking forward to finally launching Amberleaf, and developing its features. In the pipeline are big improvements to some of the UI, and mobile device integration.&lt;/p&gt;

&lt;p&gt;If you're a web developer, domain reseller, hosting provider, or do anything remotely domain-related, why not check out &lt;a href="http://bit.ly/5C5iL9"&gt;Amberleaf&lt;/a&gt; to see how it can help your business.  I'd love to hear your feedback and experiences with the software. You can &lt;a href="http://twitter.com/cblunt"&gt;tweet me&lt;/a&gt;, or you can send through Amberleaf itself.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NOncpUtR4mtUZhNO677_o-Iyf78/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NOncpUtR4mtUZhNO677_o-Iyf78/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NOncpUtR4mtUZhNO677_o-Iyf78/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NOncpUtR4mtUZhNO677_o-Iyf78/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=VTmhNE_EUSk:1Wm4hV7mFW0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=VTmhNE_EUSk:1Wm4hV7mFW0:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=VTmhNE_EUSk:1Wm4hV7mFW0:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=VTmhNE_EUSk:1Wm4hV7mFW0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=VTmhNE_EUSk:1Wm4hV7mFW0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=VTmhNE_EUSk:1Wm4hV7mFW0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=VTmhNE_EUSk:1Wm4hV7mFW0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=VTmhNE_EUSk:1Wm4hV7mFW0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/VTmhNE_EUSk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/07/26/business-startup-week-1-plymouth-software/</feedburner:origLink></entry>
  
  <entry>
    <author><name>Chris</name></author>
    <title>Short notes on a Long Trip</title>
    <id>http://chrisblunt.com/2010/07/22/short-notes-on-a-long-trip</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/q-G0vVezPsI/" />
    <published>2010-07-22T00:00:00+01:00</published>
    <updated>2010-07-22T00:00:00+01:00</updated>
    <content type="html">&lt;p&gt;Arriving into London Heathrow Terminal 5 after nearly 4 months away, everything started to feel a bit strange. Our flight from New York had done nothing for my nerves, turbulent from start to finish. We both got no sleep on the overnight flight, so were set for a pretty long day. As we walked into the arrivals hall - somewhat light, as our bags were following us on the next flight - the past several months suddenly seemed a lifetime ago.&lt;/p&gt;

&lt;h3&gt;The Trip&lt;/h3&gt;

&lt;p&gt;After leaving &lt;a href="/2010/04/21/short-notes-on-hong-kong/"&gt;Hong Kong&lt;/a&gt;, Claire and I had endured another sleepless flight down to Sydney, several hours wait, and then a final flight back up to Cairns where we would start our tour of the East Coast.&lt;/p&gt;

&lt;h4&gt;Australia&lt;/h4&gt;

&lt;p&gt;We both loved Cairns; warm sunshine, and the friendly, laid-back attitude hit us the moment we landed - as did the heat! After a couple of day tours to explore up to Cape Tribulation, and Kuranda (where we were pleasantly surprised to see Devonshire Cream Teas on offer!), we spent the next 5 weeks travelling down the coast on the Greyhound.&lt;/p&gt;

&lt;p&gt;Every stop was memorable - from the quiet eeriness of Magnetic Island; the calm tranquility of &lt;a href="http://www.coolbananas.net.au/"&gt;Cool Bananas&lt;/a&gt; in Agnes Water; and the stunning city of Brisbane right through to Australia Zoo (we stopped at Caloundra); our 11 mile walk around Port Macquarie; and our visit to the
&lt;a href="http://www.koalahospital.org.au/"&gt;Koala Hospital&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/cblunt/4637941044/"&gt;&lt;img src="http://farm5.static.flickr.com/4026/4637941044_14beb39178_m.jpg" title="Joey in tree" alt="Joey at Koala Hospital" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's not until you see the distinctive sails of Sydney Opera House that it feels like you're truly in Australia, though. We spent a few days in the city, and took an awesome trip out to the Blue Mountains with Jimmy at the &lt;a href="http://www.happycoach.net.au/"&gt;Happy Coach Company&lt;/a&gt;. This was a hilarious day, and I'd highly recommend their tours.&lt;/p&gt;

&lt;p&gt;We stopped off at Canberra for a night, and then travelled through to Melbourne. We both loved Melbourne's very different, European style that set it apart from the other Australian cities we'd visited.&lt;/p&gt;

&lt;h4&gt;New Zealand&lt;/h4&gt;

&lt;p&gt;From Melbourne, we flew across to Christchurch, New Zealand. Hiring a car for just NZ$1 a day, we travelled the South Island for a couple of weeks, our jaws dropping at the incredible scenery. Thankfully there was barely a car on the road, as our little DollarMobile struggled its away across vast mountains, up to Milford Sound, across the Cardrona Range (with a cheeky stop at the &lt;a href="http://www.cardronahotel.co.nz/"&gt;Cardrona&lt;/a&gt; hotel for a fantastic cream tea!) and down to Wanaka and Hawea.&lt;/p&gt;

&lt;p&gt;Travelling the West Coast, we stopped at the powder-blue Fox and Franz Josef glaciers, and also one of my favourite spots - &lt;a href="http://maps.google.co.uk/maps?client=ubuntu&amp;amp;channel=cs&amp;amp;q=Punakaiki,+West+Coast,+New+Zealand&amp;amp;ie=UTF8&amp;amp;ei=7VlMTPv6CoKQjAe4y-DXDA&amp;amp;ved=0CBMQ_AU&amp;amp;hl=en&amp;amp;cd=1&amp;amp;geocode=FdF5ff0drGE2Cg&amp;amp;split=0&amp;amp;sll=53.800651,-4.064941&amp;amp;sspn=6.881357,14.941406&amp;amp;hq=&amp;amp;hnear=Punakaiki,+West+Coast,+New+Zealand&amp;amp;t=h&amp;amp;z=12"&gt;Punakaiki&lt;/a&gt;. There's plenty of trails here, as well as the mysterious Pancake rocks and blow holes. It was the &lt;a href="http://www.tenikauretreat.co.nz"&gt;Te Nikau accommodation&lt;/a&gt;, though, that made the stay. A friendly and homely cottage atmosphere; a log fire burning away in the corner of the lounge area; free fresh-leaf tea; and freshly baked muffins and bread every day. Like so many others who had written in the guest book, I was sad to have only stayed one night.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/cblunt/4640882045"&gt;&lt;img src="http://farm5.static.flickr.com/4042/4640882045_de45b0b11d_m.jpg" alt="Lakeside" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We headed up to Nelson and Picton (&lt;a href="http://www.sequoialodge.co.nz/"&gt;Sequoia Lodge&lt;/a&gt; does great, fresh and free chocolate pudding every night!) before catching the stomach-churning ferry across to the North Island. Crossing the Cook Strait is renowned as one of the most picturesque sailings in the world, but the weather was against us and we had high swells and low visibility.&lt;/p&gt;

&lt;p&gt;A short and painfully cold stopover in Wellington started our trip around the North Island, where we would head to Napier, Taupo, Rotorua and Hamilton, resuming our Australian-trait of walking miles around the towns, and discovering more strange natural phenomena - the &lt;a href="http://www.waiotapu.co.nz/"&gt;Wai-O-Tapu geothermal parks&lt;/a&gt; are like something from a science fiction movie.&lt;/p&gt;

&lt;h4&gt;Fiji &amp;amp; The USA&lt;/h4&gt;

&lt;p&gt;After 5 weeks in New Zealand, and exploring Auckland and a few stops in the Northland, we flew out to Fiji's Coral Coast. Our stay here was perfect. During our week here, Claire would finally try eating fish - and liked it! - thanks to the awesome chef at the Hideaway Resort. Amongst lots of relaxing, I decided to give SCUBA diving a go with &lt;a href="http://diveaway-fiji.com"&gt;Diveaway Fiji&lt;/a&gt;, and instantly regretted leaving it until the last day. If you go there, make sure you leave enough time to book a second dive - it's incredible!&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/cblunt/4823585728"&gt;&lt;img src="http://farm5.static.flickr.com/4119/4823585728_2fb7de10ba_m.jpg" alt="Fiji Sunset" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After a full week of serene relaxation in Fiji, we flew up to Waikiki, Hawaii with a stopover in Christmas Island. Crossing the dateline was very strange - we experienced two Tuesday 23rd Junes. Claire summed up the craziness when she pointed out we'd landed in Christmas Island (for a stopover) tomorrow. It was easy to see where inspiration for &lt;em&gt;Lost&lt;/em&gt; might have come from (I've still not seen the finale, though!).&lt;/p&gt;

&lt;p&gt;Hawaii was great, and although Claire spent the first day suffering from extremely bad insect bites, they were soon sorted out and we enjoyed a few days exploring the city and visiting Pearl Harbour.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/cblunt/4823598814"&gt;&lt;img src="http://farm5.static.flickr.com/4136/4823598814_4504f6287e_m.jpg" alt="Hawaii Night" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As our trip's end grew closer, we stopped for a few nights in San Francisco, which was like walking around a movie set! It all looked strangely familiar, and we loved the Bay area spending every day walking and exploring new parts. We were also lucky enough to be there for July 4th, and watched the fireworks display from Ghirardelli Square.&lt;/p&gt;

&lt;p&gt;We caught a short flight to Las Vegas, where we finally picked up our marriage certificate from Christmas; and then travelled on to New York to arrive in the middle of a heatwave. Unfortunately, the air conditioning in our room had packed up, but the guys at &lt;a href="http://www.starhotelny.com/"&gt;Chelsea Star&lt;/a&gt; were quick to fix it though, and New York was as incredible as expected. On our final night, Claire fulfilled her dream of going to the top of the Empire State Building, from where the sunset views across the city were truly stunning.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/cblunt/4823631376"&gt;&lt;img src="http://farm5.static.flickr.com/4074/4823631376_dfc0f5b1c4_m.jpg" alt="Cabs in Times Square" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;What's Next&lt;/h3&gt;

&lt;p&gt;So it was with a bump we came back to reality, and two weeks on I'm not sure being home has sunk in yet. We're both starting up businesses, Claire racing ahead with &lt;a href="http://expressvaservices.co.uk"&gt;ExpressVA Services&lt;/a&gt;, and me frantically remembering &lt;a href="http://rubyonrails.org"&gt;Rails&lt;/a&gt; code to develop &lt;a href="https://amberleafapp.com"&gt;Amberleaf&lt;/a&gt;. I'm also setting up &lt;a href="http://bit.ly/bNggyV"&gt;Plymouth Software&lt;/a&gt; to carry Amberleaf and Android app ideas I've been thinking about.&lt;/p&gt;

&lt;p&gt;To squeeze our experience this short post is impossible. We learned so much and met great people who we'd love to &lt;a href="http://twitter.com/cblunt"&gt;stay in&lt;/a&gt; &lt;a href="http://facebook.com/cbluntuk"&gt;touch with&lt;/a&gt;. We've seen and experienced things that we couldn't even have imagined.&lt;/p&gt;

&lt;p&gt;Claire and I both kept daily journals, which we'll be typing up and publishing as EBooks shortly. We've also jotted down the places we stayed, the sights we've seen and places we would recommend - but you'll have to check out the ebook to find the best rated tea!&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2opfHhhAqI19seixzw56N_ohitU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2opfHhhAqI19seixzw56N_ohitU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2opfHhhAqI19seixzw56N_ohitU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2opfHhhAqI19seixzw56N_ohitU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=q-G0vVezPsI:UY3Vjq1D1d8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=q-G0vVezPsI:UY3Vjq1D1d8:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=q-G0vVezPsI:UY3Vjq1D1d8:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=q-G0vVezPsI:UY3Vjq1D1d8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=q-G0vVezPsI:UY3Vjq1D1d8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=q-G0vVezPsI:UY3Vjq1D1d8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=q-G0vVezPsI:UY3Vjq1D1d8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=q-G0vVezPsI:UY3Vjq1D1d8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/q-G0vVezPsI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/07/22/short-notes-on-a-long-trip/</feedburner:origLink></entry>
  
  <entry>
    <author><name>Chris</name></author>
    <title>Short notes on Hong Kong</title>
    <id>http://chrisblunt.com/2010/04/21/short-notes-on-hong-kong</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/wSMcVh6St6Q/" />
    <published>2010-04-21T00:00:00+01:00</published>
    <updated>2010-04-21T00:00:00+01:00</updated>
    <content type="html">&lt;p&gt;After 3 weeks of travel, I'm finally finding time to write something for
this blog! Although such a short amount of time, a lot has happened since we
left Heathrow on our 12 hour flight to Hong Kong.&lt;/p&gt;

&lt;p&gt;When Claire and I landed, the rain was pouring! We managed to get a bus into
the city, but with no idea where to get off, we relied on photos from
Google! Thankfully, it  paid off, and we were soon at the Oriental Lander, a
compact hotel in the north of Kowloon.&lt;/p&gt;

&lt;p&gt;We strolled down Nathan Road, something we would do a lot over the next few
days as we bounced between Kowloon and Hong Kong aboard the Star Ferry.
Excellent value at just HK$2.40 (about 24p) each!&lt;/p&gt;

&lt;p&gt;The city is an amazing clash of eastern and western cultures - whilst
Starbucks and Burger King straddle one side of the road, traditional Chinese
medicine stalls and dried fish cover the opposite streets. Language wasn't
too much of an issue either, which was a relief, as almost everything was
written in English...&lt;/p&gt;

&lt;p&gt;We sampled some tradional Chinese food, and whilst still unsure of some of
the things we were eating, it all tasted very nice!&lt;/p&gt;

&lt;p&gt;We headed up to the Peak for views across the harbour, but although the rain
had long gone, cloud still hung heavy in the air, so we could barely make
out any buildings. Undeterred, we walked around some of the tracks across
the Peak, and got some good photos!&lt;/p&gt;

&lt;p&gt;At night, the view across to Hong Kong harbour from Kowloon is incredible,
and we made sure to get plenty of pics. The buildings here are on a scale
you have to see to believe-we were both very impressed!&lt;/p&gt;

&lt;p&gt;On our last full day in Hong Kong, we travelled to Lantau island to see the
famed 'Big Buddah'. He is indeed big, and the surrounding countryside is
breathtaking. After climbing the steps and exploring the neighbouring
monastery, we hopped on a bus to the fishing village of Tai O.&lt;/p&gt;

&lt;p&gt;Here, we walked through the bustling fish markets and through the village
houses to a lookout across the ocean where we could see Chinese White
dolphins breaking the waves. Again, the landscape was like something out of
a book, with lush green mountains surrounding us, and the Big Buddah
emerging every so often through the mists that passed over their peaks.&lt;/p&gt;

&lt;p&gt;Our final day in Hong Kong was spent exploring more of the city and Hong
Kong island. As recommended by our travel guide, we seeked out the Luk Yu
tea house (along Stanley Street) for a well deserved brew.&lt;/p&gt;

&lt;p&gt;Whilst Claire was initially concerned we might be spending a fortune on Dim
Sum, her fears were alleieved by the lovely green tea, and - more
importantly - endless refills of the teapot on offer.&lt;/p&gt;

&lt;p&gt;Hong Kong is a truly amazing place, and we both enjoyed our short stay
there. We sampled plenty of tea and famed Hong Kong cakes, and were very
surprised by the seemingly slow pace of the main streets.&lt;/p&gt;

&lt;p&gt;Being a huge financial and business centre, we'd expected streets rammed
like London's Oxford street, but instead everyone along Nathan Road seemed
to stroll along at a pleasant and relaxed pace.&lt;/p&gt;

&lt;p&gt;We left Hong Kong for the next leg of our journey to Australia, happy to
have finally seen that world-famous skyline and sampled some very new foods.&lt;/p&gt;

&lt;p&gt;During our travels, we are keeping journals that we'll eventually write up
on our return. It would also be great to get some photos up, but finding
free (or even cheap!) Internet in Australia, and somewhere that can read
SDHC cards, is proving nearly impossible.&lt;/p&gt;

&lt;p&gt;Hopefully we'll be able to find somewhere as we travel down the East Coast.
In the meantime, you can follow us on &lt;a href="http://facebook.com/"&gt;Facebook&lt;/a&gt; and &lt;a href="http://twitter.com/cblunt"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ah-PmU_7c-M95NsuGXFYLLmz1qI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ah-PmU_7c-M95NsuGXFYLLmz1qI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ah-PmU_7c-M95NsuGXFYLLmz1qI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ah-PmU_7c-M95NsuGXFYLLmz1qI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=wSMcVh6St6Q:-QKcIMPbLTA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=wSMcVh6St6Q:-QKcIMPbLTA:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=wSMcVh6St6Q:-QKcIMPbLTA:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=wSMcVh6St6Q:-QKcIMPbLTA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=wSMcVh6St6Q:-QKcIMPbLTA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=wSMcVh6St6Q:-QKcIMPbLTA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=wSMcVh6St6Q:-QKcIMPbLTA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=wSMcVh6St6Q:-QKcIMPbLTA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/wSMcVh6St6Q" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/04/21/short-notes-on-hong-kong/</feedburner:origLink></entry>
  
  <entry>
    <author><name>Chris</name></author>
    <title>Lanyon: An Email and Web Interface to Jekyll</title>
    <id>http://chrisblunt.com/2010/04/01/lanyon-an-email-and-web-interface-to-jekyll</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/mzvYScyrE3g/" />
    <published>2010-04-01T00:00:00+01:00</published>
    <updated>2010-04-01T00:00:00+01:00</updated>
    <content type="html">&lt;p&gt;I really like the idea of sites like
&lt;a href="http://posterous.com"&gt;posterous&lt;/a&gt; which use email as an interface for
publishing content. However, I just moved this site to use static content built by Jekyll, and didn't want to maintain multiple blogs.&lt;/p&gt;

&lt;p&gt;So I created &lt;a href="http://github.com/cblunt/lanyon"&gt;Lanyon&lt;/a&gt;, a quick Rails 3 app I built in an attempt to bridge the simplicity of
Jekyll with the accessibility of email/web publishing systems like
Wordpress. Lanyon polls an email account for posts and, when detected,
automatically publishes them. It can also automatically commit and
deploy your blog using Jekyll, so posts appear without the need for
manual intervention.&lt;/p&gt;

&lt;p&gt;Lanyon also provides a rudimentary web interface to your blog, so you
can create, edit and delete posts.&lt;/p&gt;

&lt;p&gt;Lanyon gives you the advantage of being able to publish from anywhere,
but still maintain the simplicity of static content created by Jekyll.&lt;/p&gt;

&lt;p&gt;I wrote Lanyon to allow me to post to this site as I'm travelling (we
leave for Hong Kong tomorrow!). If all goes to plan, I should be able
to post entries without the awkwardness of vim and SSH on a mobile
phone.&lt;/p&gt;

&lt;p&gt;So here's the first test...&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pfNxIvFTnHC_GZ5QHt0OJUanP0A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pfNxIvFTnHC_GZ5QHt0OJUanP0A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pfNxIvFTnHC_GZ5QHt0OJUanP0A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pfNxIvFTnHC_GZ5QHt0OJUanP0A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=mzvYScyrE3g:IeQECIqD-ag:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=mzvYScyrE3g:IeQECIqD-ag:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=mzvYScyrE3g:IeQECIqD-ag:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=mzvYScyrE3g:IeQECIqD-ag:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=mzvYScyrE3g:IeQECIqD-ag:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=mzvYScyrE3g:IeQECIqD-ag:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=mzvYScyrE3g:IeQECIqD-ag:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=mzvYScyrE3g:IeQECIqD-ag:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/mzvYScyrE3g" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/04/01/lanyon-an-email-and-web-interface-to-jekyll/</feedburner:origLink></entry>
  
  <entry>
    <author><name>Chris</name></author>
    <title>Amberleaf: Pricing Announced</title>
    <id>http://chrisblunt.com/2010/03/17/amberleaf-pricing-announced</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/YPNxVXyItXU/" />
    <published>2010-03-17T00:00:00+00:00</published>
    <updated>2010-03-17T00:00:00+00:00</updated>
    <content type="html">&lt;p&gt;&lt;a href="http://bit.ly/5C5iL9" title="Amberleaf"&gt;&lt;img src="/images/2010/03/amberleaf_plans.jpg" title="Amberleaf Price Plans Screenshot" alt="Amberleaf Price Plan" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Today I released a small update to &lt;a href="http://bit.ly/5C5iL9"&gt;Amberleaf&lt;/a&gt; that includes details of the pricing and subscription plan. To keep things simple, Amberleaf only has one price plan, at just &amp;pound;4.95 per month. That gets you everything the software has to offer - there are no artificial limits in place.&lt;/p&gt;

&lt;p&gt;I'm happy to say, though, that for the duration of the public beta test, all accounts are &lt;strong&gt;still completely free!&lt;/strong&gt; &lt;a href="http://bit.ly/6rfiOQ"&gt;Sign up now&lt;/a&gt; and try out Amberleaf's &lt;a href="http://chrisblunt.com/2010/03/11/amberleaf-update-bill-tracking-for-domains-and-hosting/"&gt;new billing features&lt;/a&gt;! By taking part in the beta, you'll also have the opportunity to help shape Amberleaf's development to meet your needs.&lt;/p&gt;

&lt;p&gt;Amberleaf manages domains and hosting accounts for you and your customers. &lt;a href="http://bit.ly/6rfiOQ"&gt;Sign up now&lt;/a&gt; for an account, or &lt;a href="http://bit.ly/5C5iL9" title="Amberleaf"&gt;find out more&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VdbgzOGNXVLHjkduFxOQvVJm-sc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VdbgzOGNXVLHjkduFxOQvVJm-sc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VdbgzOGNXVLHjkduFxOQvVJm-sc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VdbgzOGNXVLHjkduFxOQvVJm-sc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=YPNxVXyItXU:7Oc5IMwXCr4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=YPNxVXyItXU:7Oc5IMwXCr4:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=YPNxVXyItXU:7Oc5IMwXCr4:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=YPNxVXyItXU:7Oc5IMwXCr4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=YPNxVXyItXU:7Oc5IMwXCr4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=YPNxVXyItXU:7Oc5IMwXCr4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=YPNxVXyItXU:7Oc5IMwXCr4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=YPNxVXyItXU:7Oc5IMwXCr4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/YPNxVXyItXU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/03/17/amberleaf-pricing-announced/</feedburner:origLink></entry>
  
  <entry>
    <author><name>Chris</name></author>
    <title>Amberleaf Update: Bill Tracking for Domains and Hosting</title>
    <id>http://chrisblunt.com/2010/03/11/amberleaf-update-bill-tracking-for-domains-and-hosting</id>
    <link href="http://feedproxy.google.com/~r/chrisblunt/~3/h7iW1-7319c/" />
    <published>2010-03-11T00:00:00+00:00</published>
    <updated>2010-03-11T00:00:00+00:00</updated>
    <content type="html">&lt;p&gt;&lt;a href="http://bit.ly/5C5iL9" title="Amberleaf"&gt;&lt;img src="/images/2010/03/amberleaf_bills.jpg" title="Billing in Amberleaf" alt="Amberleaf Billing" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's been a long time coming, but today finally saw the launch of &lt;a href="http://bit.ly/5C5iL9"&gt;Amberleaf's&lt;/a&gt; bill tracking for domains and hosting accounts. How to implement billing had been troubling me for a while, but I finally decided to &lt;strong&gt;keep it simple&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So, I spun a branch in &lt;em&gt;git&lt;/em&gt; and started coding. I gave myself a time limit of 3 days to get something built and released. This proved a useful tool in keeping me focussed. Despite the inevitable "if only it just did this..." going through my mind, &lt;a href="http://twitter.com/cblunt/status/10314004217"&gt;pledging my deadline in public&lt;/a&gt; helped me to stick to it!&lt;/p&gt;

&lt;p&gt;I designed the billing system to simply track income and bills that were due to be paid. No complex invoice generation or sending invoices to clients - that's better left to specialist tools like &lt;a href="http://www.freshbooks.com"&gt;Freshbooks&lt;/a&gt; or &lt;a href="http://invoicemachine.com/"&gt;Invoice Machine&lt;/a&gt;. The plan is to eventually let Amberleaf interact with these services to generate invoices.&lt;/p&gt;

&lt;p&gt;If you've got an Amberleaf account, just &lt;a href="http://bit.ly/5C5iL9"&gt;sign in&lt;/a&gt; to see the new billing functionality. If you've not yet signed up, Amberleaf is completely free during the beta, so why not &lt;a href="http://bit.ly/6rfiOQ"&gt;register an account&lt;/a&gt; to check out the new features? There'll also be a limited free account once Amberleaf goes live!&lt;/p&gt;

&lt;p&gt;I'd love to hear your feedback if you're using Amberleaf to manage your domains and hosting accounts - you can send feedback directly from Amberleaf using the Send Feedback tab, or &lt;a href="http://twitter.com/cblunt"&gt;tweet @cblunt&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IaYVum_niYmj5BQBGAXgjvq89tk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IaYVum_niYmj5BQBGAXgjvq89tk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IaYVum_niYmj5BQBGAXgjvq89tk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IaYVum_niYmj5BQBGAXgjvq89tk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=h7iW1-7319c:-E8GOh-Gcaw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=h7iW1-7319c:-E8GOh-Gcaw:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=h7iW1-7319c:-E8GOh-Gcaw:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=h7iW1-7319c:-E8GOh-Gcaw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=h7iW1-7319c:-E8GOh-Gcaw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=h7iW1-7319c:-E8GOh-Gcaw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chrisblunt?a=h7iW1-7319c:-E8GOh-Gcaw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chrisblunt?i=h7iW1-7319c:-E8GOh-Gcaw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chrisblunt/~4/h7iW1-7319c" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://chrisblunt.com//2010/03/11/amberleaf-update-bill-tracking-for-domains-and-hosting/</feedburner:origLink></entry>
  
</feed>
