<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4406312126065880273</id><updated>2011-08-02T18:28:55.696-07:00</updated><category term='alias'/><category term='cocoa'/><category term='akamanager.com'/><category term='iBoobs'/><category term='paris'/><category term='iPhone'/><category term='login'/><category term='java'/><category term='restaurant'/><category term='user name'/><category term='apple'/><category term='gof'/><category term='singleton'/><category term='app'/><category term='iStore'/><category term='review'/><category term='la rotonde des tuileries'/><category term='alias explosion'/><category term='elvis'/><title type='text'>alexp</title><subtitle type='html'>opinions, reviews, projects and general banter</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://alexpblogspot.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4406312126065880273/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://alexpblogspot.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>alexp</name><uri>http://www.blogger.com/profile/10777199127464373280</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4406312126065880273.post-3746953830688068728</id><published>2009-06-03T08:42:00.000-07:00</published><updated>2009-06-03T08:46:13.453-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='gof'/><category scheme='http://www.blogger.com/atom/ns#' term='singleton'/><category scheme='http://www.blogger.com/atom/ns#' term='elvis'/><title type='text'>A neater way to implement singleton pattern</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;public class Elvis()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  private static final Elvis INSTANCE = new Elvis();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  private Elvis() {}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  public static Elvis getInstance()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  { &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    return INSTANCE;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Only one single instance of Elvis is ever created. Since the attribute is static it is shared amongst all instances and since its final it can not be changed after the initial initialisation. The constructor being private ensures that no other instances are created. Moreover this implementation is automatically thread-safe and employs lazy instantiation since the static member is created the first time its accessed.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4406312126065880273-3746953830688068728?l=alexpblogspot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpblogspot.blogspot.com/feeds/3746953830688068728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alexpblogspot.blogspot.com/2009/06/neater-way-to-implement-singleton_03.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4406312126065880273/posts/default/3746953830688068728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4406312126065880273/posts/default/3746953830688068728'/><link rel='alternate' type='text/html' href='http://alexpblogspot.blogspot.com/2009/06/neater-way-to-implement-singleton_03.html' title='A neater way to implement singleton pattern'/><author><name>alexp</name><uri>http://www.blogger.com/profile/10777199127464373280</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4406312126065880273.post-1290118700519809947</id><published>2009-05-27T03:41:00.000-07:00</published><updated>2009-05-27T07:08:05.387-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='restaurant'/><category scheme='http://www.blogger.com/atom/ns#' term='paris'/><category scheme='http://www.blogger.com/atom/ns#' term='la rotonde des tuileries'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><title type='text'>La Rotonde des Tuileries‎ in Paris restaurant review</title><content type='html'>&lt;p class="MsoNormal"&gt;We arrived at this restaurant after a fantastic visit to the Louvre and we settled down for the worst lunch during our stay in &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Paris&lt;/st1:place&gt;&lt;/st1:city&gt;! &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Alarm bells should have rang when the couple next to us complained about their chicken being undercooked and another table questioned the extortionate 20% service charge! We also witnessed a waiter sneeze into his hands and proceed to bring cutlery to another table! I mean I've heard of onion soup, but swine flu soup is taking the biscuit! We should have left at this point really! However we did not... &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt;The food was absolutely shocking, the onion soup was foul and one of our cheese toasties had a hair in it amongst the stale veg! When we complained, the waiters were first ignorant, then accused us of planting the hair in our food and then finally turned extremely rude even threatening to call the police unless we paid the bill in full!&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;In summary avoid at all costs unless you want your day out ruined!&lt;/p&gt;&lt;p class="MsoNormal"&gt;Absolutely shocking service and food! How do you say in French "this sucks"?!&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4406312126065880273-1290118700519809947?l=alexpblogspot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpblogspot.blogspot.com/feeds/1290118700519809947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alexpblogspot.blogspot.com/2009/05/rotonde-des-tuileries-paris-restaurant.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4406312126065880273/posts/default/1290118700519809947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4406312126065880273/posts/default/1290118700519809947'/><link rel='alternate' type='text/html' href='http://alexpblogspot.blogspot.com/2009/05/rotonde-des-tuileries-paris-restaurant.html' title='La Rotonde des Tuileries‎ in Paris restaurant review'/><author><name>alexp</name><uri>http://www.blogger.com/profile/10777199127464373280</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4406312126065880273.post-7644673111423129544</id><published>2009-05-13T08:43:00.001-07:00</published><updated>2009-05-14T07:37:45.929-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iStore'/><category scheme='http://www.blogger.com/atom/ns#' term='app'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='iBoobs'/><category scheme='http://www.blogger.com/atom/ns#' term='cocoa'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>iPhone Developer Program</title><content type='html'>&lt;div&gt;The iPhone, isn't it cool? Apple have created a developer program where people can develop their own app and then sell it via the iStore. Create an app, test it, pick a price, distribute it then rake in 70% of revenue!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sounds simple enough! The only problem is what will your app do? That’s the hard part!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are quite a few snags onece you read the small print! The $99 fee for distribution for a start but you should be able to recover this once people start downloading your app! Apple also have to approve your app - so iBoobs is a no-no! You also have to learn objective-C for Mac OS X (aka Cocoa). Erm... oh yes, and you can only develop using Xcode on the Mac OS X platform! So you'll need a Macintosh or at least a Hackintosh!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However these things aside, creating an app that people can shake and poke is pretty cool. Facebook apps eat your heart out!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4406312126065880273-7644673111423129544?l=alexpblogspot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://developer.apple.com/iphone/program/develop.html' title='iPhone Developer Program'/><link rel='replies' type='application/atom+xml' href='http://alexpblogspot.blogspot.com/feeds/7644673111423129544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alexpblogspot.blogspot.com/2009/05/iphone-developer-program_13.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4406312126065880273/posts/default/7644673111423129544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4406312126065880273/posts/default/7644673111423129544'/><link rel='alternate' type='text/html' href='http://alexpblogspot.blogspot.com/2009/05/iphone-developer-program_13.html' title='iPhone Developer Program'/><author><name>alexp</name><uri>http://www.blogger.com/profile/10777199127464373280</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4406312126065880273.post-473266327659761875</id><published>2009-02-26T02:30:00.000-08:00</published><updated>2009-02-26T02:50:23.457-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='login'/><category scheme='http://www.blogger.com/atom/ns#' term='alias explosion'/><category scheme='http://www.blogger.com/atom/ns#' term='akamanager.com'/><category scheme='http://www.blogger.com/atom/ns#' term='alias'/><category scheme='http://www.blogger.com/atom/ns#' term='user name'/><title type='text'>Alias explosion</title><content type='html'>We all use multiple sites online - social networking, chat, email, forums, calendars and blogs! With millions of users online, it is inevitable that we are often unable to have the login we want - someone else has often got there first! This leads to what I call "alias explosion" where we have many aliases for different sites we use.&lt;br /&gt;&lt;br /&gt;How many aliases do you have? I counted mine and I had 31 - all tucked away in a text file on my PC at home. This worked fine, but if I traveled and forgot to take the text file with me on a USB stick I was stuck! This made me realise that it would be great to have a central online alias store. Here we could store all our aliases, user names and logins. We could access this site at any time, any place and best of all we would only need to remember one single alias! How great would that be?&lt;br /&gt;&lt;br /&gt;I developed &lt;a href="http://www.akamanager.com/"&gt;akamanager.com&lt;/a&gt; to try put this idea into reality. Currently still in beta, I would welcome any feedback.&lt;br /&gt;&lt;br /&gt;About &lt;a href="http://www.akamanager.com/"&gt;akamanager.com&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;akamanager means "also known as" manager. It is a free online utility that lets you manage all your different logins, accounts and aliases across many sites that you use daily.&lt;br /&gt;&lt;br /&gt;For example, you might be "joe_bloggs" on one site and "joeBloggs81" on another. This is fine for just two sites but with the explosion in the number of sites we use this becomes difficult to manage! Enter &lt;a href="http://www.akamanager.com/"&gt;akamanager.com&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4406312126065880273-473266327659761875?l=alexpblogspot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpblogspot.blogspot.com/feeds/473266327659761875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alexpblogspot.blogspot.com/2009/02/alias-explosion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4406312126065880273/posts/default/473266327659761875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4406312126065880273/posts/default/473266327659761875'/><link rel='alternate' type='text/html' href='http://alexpblogspot.blogspot.com/2009/02/alias-explosion.html' title='Alias explosion'/><author><name>alexp</name><uri>http://www.blogger.com/profile/10777199127464373280</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
