<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sam Lu - goSammy</title>
	<atom:link href="http://www.gosammy.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gosammy.com</link>
	<description>A Blog on Web Development, Design and the Occasional Rant</description>
	<lastBuildDate>Mon, 31 Oct 2011 06:48:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Commute Logger</title>
		<link>http://www.gosammy.com/2011/10/19/commute-logger/</link>
		<comments>http://www.gosammy.com/2011/10/19/commute-logger/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 02:23:30 +0000</pubDate>
		<dc:creator>Sam Lu</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Works]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[Calgary]]></category>
		<category><![CDATA[data collection]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[transit]]></category>

		<guid isPermaLink="false">http://www.gosammy.com/?p=1082</guid>
		<description><![CDATA[For one of my computer science courses this semester, I embarked on an info visualization project that required me to collect the times during the different parts of my commute by Calgary Transit. At first I was collecting all my times with the use of a stopwatch and notebook -- but I was a computer science student for crying out loud! So I made an iPhone app to streamline my data collection process of these timings. In case anyone might find this code useful, I've open sourced it and made the code available on <a href="https://github.com/senmu/Commute-Logger" title="Fork my Commute Logger iPhone Xcode Project on Github">Github</a>.]]></description>
				<content:encoded><![CDATA[<p>This semester I enrolled in an info visualization course which required us to submit three visualization projects over the course of the semester to be programmed in <a href="http://processing.org" title="Processing.org">Processing</a>. For one of my projects, I chose to log the timings of my commute by Calgary Transit as data to visualize.</p>
<p>Since the course started in the fall and is to last until the end of this year, I felt that it would be pretty interesting to see how the timings would change once winter rolls around as it can cold and a lot of snow can hit the city during the winter, <a href="http://www.canada.com/edmontonjournal/news/story.html?id=17f58099-e817-480e-9861-8e6195ab4b93" title="Calgary snowfall breaks 88-year-old record">or not</a>.</p>
<p>When I first began collecting my data, I began logging my times in a notebook.</p>
<p><a href="http://www.gosammy.com/wp-content/uploads/2011/10/IMG_1440.jpg"><img src="http://www.gosammy.com/wp-content/uploads/2011/10/IMG_1440-590x393.jpg" alt="Commute Timing Logs in Notebook" title="Commute Timing Logs in Notebook" class="alignleft size-large wp-image-1086" /></a></p>
<p>However, since I intended for this one to be my final project, I wasn&#8217;t keen on doing it this way for the long haul. Having to fiddle around with a notebook during transfers and a stopwatch at the same time was not ideal. I was a computer science student for crying out loud&#8230;so I programmed an app.</p>
<p><div id="attachment_1087" class="wp-caption center" style="width: 330px"><a href="https://github.com/senmu/Commute-Logger"><img src="http://www.gosammy.com/wp-content/uploads/2011/10/Screen-shot-2011-10-19-at-2.55.25-AM.png" alt="My iPhone app for logging my commute: Commute Logger" title="Screen shot 2011-10-19 at 2.55.25 AM" class="wp-image-1087" /></a><p class="wp-caption-text">My iPhone app for logging my commute: Commute Logger</p></div></p>
<p>The app streamlines how I log my time by providing me with five buttons I need to push at each point in my commute. Beyond needing less interaction on my part to log my time, having produced an app such as this actually benefits my data collection process in three ways:</p>
<ol>
<li>The timing points are more accurate compared to the stopwatch I was using.</li>
<li>Duration calculations between the different timing points are automated.</li>
<li>All my data gets collected in a format (CSV) I need for when I have to visualize it. No more transcribing from my notebook at the end of the day!</li>
</ol>
<p>I programmed it over the course of one evening so the code is less than ideal, however in the case that someone might find code for an app like this useful and want to repurpose it for something else, I&#8217;ve <a href="https://github.com/senmu/Commute-Logger" title="Fork Commute Logger on Github">made it available on Github</a> &#8211; so feel free to fork it!</p>
<h3>Related Post</h3><ul class="related_post"><li><a href="http://www.gosammy.com/2010/11/18/next-stop-an-iphone-app-for-calgary-transit/" title="Next Stop: An iPhone App for Calgary Transit">Next Stop: An iPhone App for Calgary Transit</a></li><li><a href="http://www.gosammy.com/2010/09/12/iphone-has-a-huge-market-share-in-canada/" title="iPhone has a Huge Market Share in Canada">iPhone has a Huge Market Share in Canada</a></li><li><a href="http://www.gosammy.com/2009/02/04/iphone-specific-favicon/" title="iPhone Specific Favicon">iPhone Specific Favicon</a></li><li><a href="http://www.gosammy.com/2008/09/11/jailbreaking-unlocking-1st-gen-iphone-on-202/" title="Jailbreaking &#038; Unlocking 1st Gen iPhone on 2.0.2">Jailbreaking &#038; Unlocking 1st Gen iPhone on 2.0.2</a></li><li><a href="http://www.gosammy.com/2007/08/15/iphone-web-concept-kit/" title="iPhone Web Concept Kit">iPhone Web Concept Kit</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.gosammy.com/2011/10/19/commute-logger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Batman Trilogy Poster Wallpaper</title>
		<link>http://www.gosammy.com/2011/07/19/batman-trilogy-poster-wallpaper/</link>
		<comments>http://www.gosammy.com/2011/07/19/batman-trilogy-poster-wallpaper/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 04:54:41 +0000</pubDate>
		<dc:creator>Sam Lu</dc:creator>
				<category><![CDATA[Works]]></category>
		<category><![CDATA[batman]]></category>
		<category><![CDATA[dark knight]]></category>
		<category><![CDATA[poster]]></category>
		<category><![CDATA[trilogy]]></category>
		<category><![CDATA[wallpaper]]></category>

		<guid isPermaLink="false">http://www.gosammy.com/?p=1052</guid>
		<description><![CDATA[There's a <a href="http://andrewss7.deviantart.com/art/Batman-Trilogy-poster-238845157" title="Batman Trilogy Poster by AndrewSS7">fan-made poster</a> making its rounds on the internet that you might have seen. It incorporates elements from the posters of Batman Begins, The Dark Knight and The Dark Knight Rises, put together, to display the bat logo. Read more for a couple of downloadable wallpapers for your desktop and iPhone.]]></description>
				<content:encoded><![CDATA[<p>There&#8217;s a <a href="http://andrewss7.deviantart.com/art/Batman-Trilogy-poster-238845157" title="Batman Trilogy Poster by AndrewSS7">fan-made poster</a> making its rounds on the internet that you might have seen. It incorporates elements from the posters of Batman Begins, The Dark Knight and The Dark Knight Rises, put together, to display the bat logo. </p>
<div class="center">
<a href="http://www.gosammy.com/wp-content/uploads/2011/07/batman_trilogy___poster_by_andrewss7-d3y7a3p.jpg"><img src="http://www.gosammy.com/wp-content/uploads/2011/07/batman_trilogy___poster_by_andrewss7-d3y7a3p-433x600.jpg" alt="" title="batman trilogy - poster by andrewss7" class="aligncenter size-large wp-image-1061" /><br />
Batman Trilogy &#8211; poster</a> by ~<a class="u" href="http://andrewss7.deviantart.com/">AndrewSS7</a> on <a href="http://www.deviantart.com">deviant</a><a href="http://www.deviantart.com">ART<br />
</a>
</div>
<p>I originally came across this poster on <a href="http://reddit.com">my favourite internet news site</a>, and in the comments section there was a request for a wallpaper. Coincidentally, I was having a slow day thought it&#8217;d be fun to redo the concept as a larger image for a wallpaper. However, I altered it a bit by making the bat logo overall a little more centered and removing any type as I like my wallpapers simple.</p>
<p>Below are versions for your desktop (1920&#215;1200). I made a version which mimics the original and another which blends the three posters a little more. Click the image to view in full resolution.</p>
<p><a href="http://i.imgur.com/WgJxm.jpg" title="Hosted by imgur.com"><img src="/wp-content/uploads/2011/07/WgJxm-590x368.jpg" alt="Batman Trilogy Poster Wallpaper (Version 1)" title="Batman Trilogy Poster Wallpaper (Version 1)" class="aligncenter size-large wp-image-1053" /></a></p>
<p><a href="http://i.imgur.com/QuHJw.jpg" title="Hosted by imgur.com"><img src="/wp-content/uploads/2011/07/QuHJw-590x368.jpg" alt="Batman Trilogy Poster Wallpaper (Version 2)" title="Batman Trilogy Poster Wallpaper (Version 2)" class="aligncenter size-large wp-image-1058" /></a></p>
<p>You can also download it for your iPhone:<br />
<a href="http://i.imgur.com/jE1RS.jpg"><img src="/wp-content/uploads/2011/07/jE1RS-200x300.jpg" alt="Batman Trilogy Poster iPhone Wallpaper (Version 1)" title="Batman Trilogy Poster iPhone Wallpaper (Version 1)" class="alignleft size-medium wp-image-1064" /></a> <a href="http://i.imgur.com/Kk1Rb.jpg"><img src="/wp-content/uploads/2011/07/Kk1Rb-200x300.jpg" alt="Batman Trilogy Poster iPhone Wallpaper (Version 2)" title="Batman Trilogy Poster iPhone Wallpaper (Version 2)" class="alignleft size-medium wp-image-1065" /></a></p>
<p><br class="clear" /></p>
<h3>Related Post</h3><ul class="related_post"><li><a href="http://www.gosammy.com/2008/11/15/old-snake/" title="Old Snake">Old Snake</a></li><li><a href="http://www.gosammy.com/2007/05/11/meteora/" title="Meteora">Meteora</a></li><li><a href="http://www.gosammy.com/2007/04/09/fire-of-the-fox-collision/" title="Fire of the Fox &#038; Collision Wallpapers">Fire of the Fox &#038; Collision Wallpapers</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.gosammy.com/2011/07/19/batman-trilogy-poster-wallpaper/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A New Portfolio</title>
		<link>http://www.gosammy.com/2011/07/15/a-new-portfolio/</link>
		<comments>http://www.gosammy.com/2011/07/15/a-new-portfolio/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 15:58:59 +0000</pubDate>
		<dc:creator>Sam Lu</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[1140]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[media queries]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[stacey]]></category>

		<guid isPermaLink="false">http://www.gosammy.com/?p=1005</guid>
		<description><![CDATA[The last time I redesigned my portfolio was in June of 2007. A little over <em>four years ago</em>...that's a long time. Since then, a lot has changed in the web sphere. There's been a larger shift towards the mobile space, the browsers have changed, and my old portfolio was definitely showing its age.]]></description>
				<content:encoded><![CDATA[<p>The last time I redesigned my portfolio was in <a href="/2007/06/12/new-portfolio/">June of 2007</a>. A little over <em>four years ago</em>&#8230;that&#8217;s a long time.</p>
<p>A couple months ago, the thought of updating it crossed my mind and although I designed a few mockups in Photoshop, I never got around to sitting down and developing it. One of the earlier ideas I toyed around with was this one:</p>
<p><div id="attachment_1007" class="wp-caption center" style="width: 219px"><a href="http://www.gosammy.com/wp-content/uploads/2011/07/silly_portfolio_mockup.jpg"><img src="http://www.gosammy.com/wp-content/uploads/2011/07/silly_portfolio_mockup-209x300.jpg" alt="" title="Early Portfolio Mockup" width="209" height="300" class="size-medium wp-image-1007" /></a><p class="wp-caption-text">Please excuse the silly copy. It was a late night when I made this one.</p></div></p>
<p>Eventually I fell out of love with it and designed the following one which is the design that made it into the final product.</p>
<p><div id="attachment_1015" class="wp-caption center" style="width: 310px"><a href="http://www.gosammy.com/wp-content/uploads/2011/07/Screen-shot-2011-07-14-at-11.41.36-PM.png"><img src="http://www.gosammy.com/wp-content/uploads/2011/07/Screen-shot-2011-07-14-at-11.41.36-PM-300x197.png" alt="" title="Final Portfolio Design" width="300" height="197" class="size-medium wp-image-1015" /></a><p class="wp-caption-text">It&#039;s simple</p></div></p>
<p>The final design was very much influenced by two key frameworks/libraries which drive the site. For the layout and CSS, I used the <a href="http://cssgrid.net/" title="The 1140px Grid">1140px Grid</a> and for content management, I used <a href="http://staceyapp.com/" title="Stacey, The Lightweight Content Management System">Stacey</a>.</p>
<p><iframe src="http://player.vimeo.com/video/26462085?title=0&#038;byline=0&#038;portrait=0" width="398" height="249" frameborder="0" style="width:398px;height:249px;"></iframe>The 1140px Grid is a fantastic CSS framework for creating a website that can adapt itself for different devices (as long as you keep this in mind during the design). If you <a href="http://samlu.ca" title="Check out my new portfolio!">visit the site</a> and resize the window to a shorter width you can see the framework in action as the site adapts for the shorter width. </p>
<p>This allows for a more friendlier layout when viewing it on a mobile device. The CSS framework also allows for the use of higher resolution images for devices which have a high density display. (eg. the iPhone 4)</p>
<p><div id="attachment_1024" class="wp-caption center" style="width: 210px"><a href="http://www.gosammy.com/wp-content/uploads/2011/07/photo.png"><img src="http://www.gosammy.com/wp-content/uploads/2011/07/photo-200x300.png" alt="" title="Screenshot of portfolio viewed on an iPhone 4" width="200" height="300" class="size-medium wp-image-1024" /></a><p class="wp-caption-text">Screenshot of portfolio viewed on an iPhone 4</p></div></p>
<p>In regards to Stacey, the CMS I used, it&#8217;s really great for portfolio situations. As is described on its site, it&#8217;s also very lean since it does not require a database. However, it still supports RSS feeds and editing content is a pleasure as each project ended up being contained in its own folder with all the content contained in one text file. With no database involved, I&#8217;m able to make updates to my portfolio locally and when ready, push up all my changes with git with ease (<a href="http://toroid.org/ams/git-website-howto">using this method</a>).</p>
<p>I went a bit experimental with some of the aesthetic implementations, like choosing to use CSS3 stylings for the About and Contact buttons. They look great in Firefox and Chrome but not as intended in IE 8, and definitely not IE 7. In IE 6 the site blows up. I made the decision not to support IE 6 like with most of the other recent sites I developed as the marketshare is no longer significant. Plus it&#8217;s 2011, if you&#8217;re still using IE 6, <em>you&#8217;re three versions behind</em>. Even Microsoft <a href="http://www.ie6countdown.com/">doesn&#8217;t want you using it anymore</a>.</p>
<h3>Related Post</h3><ul class="related_post"><li><a href="http://www.gosammy.com/2011/06/14/using-git-between-mac-and-windows/" title="Using Git Between Mac and Windows">Using Git Between Mac and Windows</a></li><li><a href="http://www.gosammy.com/2010/11/18/next-stop-an-iphone-app-for-calgary-transit/" title="Next Stop: An iPhone App for Calgary Transit">Next Stop: An iPhone App for Calgary Transit</a></li><li><a href="http://www.gosammy.com/2010/07/23/six-tips-for-optimizing-your-websiteweb-application/" title="Six Tips for Optimizing Your Website/Web Application">Six Tips for Optimizing Your Website/Web Application</a></li><li><a href="http://www.gosammy.com/2010/07/18/a-new-stint-with-mediumrare-a-new-theme/" title="A New Stint With Mediumrare, A New Theme">A New Stint With Mediumrare, A New Theme</a></li><li><a href="http://www.gosammy.com/2009/02/04/iphone-specific-favicon/" title="iPhone Specific Favicon">iPhone Specific Favicon</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.gosammy.com/2011/07/15/a-new-portfolio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Git Between Mac and Windows</title>
		<link>http://www.gosammy.com/2011/06/14/using-git-between-mac-and-windows/</link>
		<comments>http://www.gosammy.com/2011/06/14/using-git-between-mac-and-windows/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 08:48:27 +0000</pubDate>
		<dc:creator>Sam Lu</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://www.gosammy.com/?p=974</guid>
		<description><![CDATA[In the past I've been mostly a Subversion guy when it came to version control, but recently I decided to try Git on a project. After going through an <a href="http://library.edgecase.com/git_immersion/index.html" title="Git Immersion">awesome intro guide to Git</a>, I can definitely see the appeal of Git, especially when it comes to small personal projects. Inside are a few cases where I ended up scratching my head trying to clone and pull between a Mac and Windows because the support for Git on Windows isn't as great on OSX or Linux.
]]></description>
				<content:encoded><![CDATA[<p>In the past I&#8217;ve been mostly a Subversion guy when it came to version control, but recently I decided to try Git on a project. After going through an <a href="http://library.edgecase.com/git_immersion/index.html" title="Git Immersion">awesome intro guide to Git</a>, I can definitely see the appeal of Git, especially when it comes to small personal projects. Below are a few cases where I ended up scratching my head trying to clone and pull between a Mac and Windows because the support for Git on Windows isn&#8217;t as great on OSX or Linux.</p>
<div id="readmore" class="warning"><strong>Warning:</strong> The following has worked for me on Windows 7. <acronym title="Your mileage may vary">YMMV</acronym> when it comes to previous versions of Windows. I also prefer the command line when working with Git and Cygwin is a requirement.</div>
<h3>Cloning a repository from Mac to Windows</h3>
<p>To clone a repository from a location on my Mac to Windows, I had to install ssh and git for <a href="http://www.cygwin.com/" title="Cygwin">Cygwin</a> through its installer. After that, the standard &#8216;git clone&#8217; worked:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">$ git clone your.macs.ip.address:<span class="sy0">/</span>path<span class="sy0">/</span>to<span class="sy0">/</span>files</div>
</div>
<p>You will need to turn on <strong>Remote Login</strong> in your System Preferences to open up port 22 needed to create the SSH connection between your Mac and Windows PC:<br />
<a href="http://www.gosammy.com/wp-content/uploads/2011/06/System-PreferencesScreenSnapz001.jpg"><img src="http://www.gosammy.com/wp-content/uploads/2011/06/System-PreferencesScreenSnapz001-590x483.jpg" alt="" title="Remote Login - OSX System Preferences" width="590" height="483" class="aligncenter size-large wp-image-992" /></a></p>
<h3>Pulling changes from Windows to Mac</h3>
<p>This problem was the more challenging one. Perhaps it was because my mindset was used to the centralized philosophies of CVS and Subversion, but for a couple of hours, I thought that I had to figure out a way to issue a &#8216;git pull&#8217; from Windows to my Mac <i>and through SSH</i>. Googling the issue with the terms I had in mind didn&#8217;t help either and it looks like quite a few people out there ran into the same issue. I struggled installing different SSH servers onto my PC, generating and importing public keys, and running the git daemon. Eventually I managed to get a working SSH connection from my Mac to my PC, but then the pull didn&#8217;t work &#8211; I couldn&#8217;t provide a proper path to the files since Windows has its paths with opposite slashes (eg. &#8216;/Users/samlu/repo&#8217; wouldn&#8217;t work because it would have to be &#8216;\Users\samlu\repo&#8217;) and I was unable to enter those slashes properly in the command line.</p>
<p>Then I figured out a solution that was simple and got the job done by mounting my user folder from my Windows box as a samba share on my Mac.<br />
<a href="http://www.gosammy.com/wp-content/uploads/2011/06/ScreenSnapz.jpg"><img src="http://www.gosammy.com/wp-content/uploads/2011/06/ScreenSnapz.jpg" alt="" title="OSX Connect to Server - Samba share" width="486" height="231" class="aligncenter size-full wp-image-998" /></a></p>
<p>Once that network share gets mounted, you can access it directly as a drive. You should be able to find it if you navigate to /Volumes.</p>
<p>After that, you can issue a git pull easily.</p>
<h3>Related Post</h3><ul class="related_post"><li><a href="http://www.gosammy.com/2011/07/15/a-new-portfolio/" title="A New Portfolio">A New Portfolio</a></li><li><a href="http://www.gosammy.com/2010/11/18/next-stop-an-iphone-app-for-calgary-transit/" title="Next Stop: An iPhone App for Calgary Transit">Next Stop: An iPhone App for Calgary Transit</a></li><li><a href="http://www.gosammy.com/2010/07/23/six-tips-for-optimizing-your-websiteweb-application/" title="Six Tips for Optimizing Your Website/Web Application">Six Tips for Optimizing Your Website/Web Application</a></li><li><a href="http://www.gosammy.com/2010/07/18/a-new-stint-with-mediumrare-a-new-theme/" title="A New Stint With Mediumrare, A New Theme">A New Stint With Mediumrare, A New Theme</a></li><li><a href="http://www.gosammy.com/2009/02/04/iphone-specific-favicon/" title="iPhone Specific Favicon">iPhone Specific Favicon</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.gosammy.com/2011/06/14/using-git-between-mac-and-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Next Stop: An iPhone App for Calgary Transit</title>
		<link>http://www.gosammy.com/2010/11/18/next-stop-an-iphone-app-for-calgary-transit/</link>
		<comments>http://www.gosammy.com/2010/11/18/next-stop-an-iphone-app-for-calgary-transit/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 03:52:06 +0000</pubDate>
		<dc:creator>Sam Lu</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Calgary Transit]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[Mediumrare]]></category>
		<category><![CDATA[Next Stop]]></category>

		<guid isPermaLink="false">http://www.gosammy.com/?p=854</guid>
		<description><![CDATA[For many months now, I've been working with the guys at <a href="http://mrare.ca" title="Calgary Web Design &#038; iPhone Apps by Mediumrare Inc.">Mediumrare</a> on an iPhone app to help look up upcoming bus and train times. It's been a long journey and we left Calgarians <a href="http://mrare.ca/blog/2010/09/next-stop-calgarys-first-public-transit-application/">a little taste</a> of what's to come on our company blog, as well as a little demo at <a href="http://barcampcalgary.com/2010/10/13/scenes-from-democamp-calgary-18/" title="Scenes from DemoCamp Calgary 18">DemoCamp</a>. However, last week we finally wrapped things up and submitted version 1.0 to Apple. While the app is waiting to be reviewed for approval, I thought I could give a peek into what it was like to develop my first iPhone app.]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.gosammy.com/wp-content/uploads/2010/11/next_stop_blog_graphic.jpg"><img src="http://www.gosammy.com/wp-content/uploads/2010/11/next_stop_blog_graphic-590x295.jpg" alt="" title="next_stop_blog_graphic" class="aligncenter size-large wp-image-855" /></a></p>
<p>For many months now, I&#8217;ve been working with the guys at <a href="http://mrare.ca" title="Calgary Web Design &#038; iPhone Apps by Mediumrare Inc.">Mediumrare</a> on an iPhone app to help look up upcoming bus and train times. It&#8217;s been a long journey and we left Calgarians <a href="http://mrare.ca/blog/2010/09/next-stop-calgarys-first-public-transit-application/">a little taste</a> of what&#8217;s to come on our company blog, as well as a little demo at <a href="http://barcampcalgary.com/2010/10/13/scenes-from-democamp-calgary-18/" title="Scenes from DemoCamp Calgary 18">DemoCamp</a>. However, last week we finally wrapped things up and submitted version 1.0 to Apple. While the app is waiting to be reviewed for approval, I thought I could give a peek into what it was like to develop my first iPhone app.</p>
<h2 id="readmore">A Functional Prototype Goes A Long Way</h2>
<p><a href="http://www.gosammy.com/wp-content/uploads/2010/11/photo-2.jpg"><img src="http://www.gosammy.com/wp-content/uploads/2010/11/photo-2-200x300.jpg" alt="" title="photo 2" width="200" height="300" class="alignleft size-medium wp-image-865" /></a> <a href="http://www.gosammy.com/wp-content/uploads/2010/11/photo-3.jpg"><img src="http://www.gosammy.com/wp-content/uploads/2010/11/photo-3-200x300.jpg" alt="" title="photo 3" width="200" height="300" class="alignleft size-medium wp-image-866" /></a></p>
<p><br class="clear" /></p>
<p>This summer, I decided to try my hand at iPhone app development. An opportunity arose when we were playing around with the idea to make a more friendlier website to look up bus times. Although creating a website could have been translated into a mobile version, I thought it would be fun to experiment and see if I could come up with a native iPhone app.</p>
<p>I spent <del>a couple</del> many hours delving into Objective-C. I had some basic experience working with C++ in a 1st year computer science course at the U of C, but coming from that and mostly working with Java in other courses, I have to say that the syntax initially comes off as quirky. Eventually though, it was just another language that you get used to (although it helps if you have a background in working with C++). </p>
<p>After a little over a month, I had a functioning prototype. Although it had some rough spots, the prototype did what it was supposed to do by essentially doing the equivalent of filling out the Next Bus/CTrain form on the front page of the <a href="http://calgarytransit.com/" title="Calgary Transit">Calgary Transit website</a>, grabbing the responding web page&#8217;s HTML, parsing it to grab the needed data and displaying it to you.</p>
<p><a href="http://www.gosammy.com/wp-content/uploads/2010/11/photo-4.jpg"><img src="http://www.gosammy.com/wp-content/uploads/2010/11/photo-4-200x300.jpg" alt="" title="photo 4" width="200" height="300" class="alignleft size-medium wp-image-867" /></a> <a href="http://www.gosammy.com/wp-content/uploads/2010/11/photo-5.jpg"><img src="http://www.gosammy.com/wp-content/uploads/2010/11/photo-5-200x300.jpg" alt="" title="photo 5" width="200" height="300" class="alignleft size-medium wp-image-868" /></a></p>
<p><br class="clear" /></p>
<p>After getting in touch with the right people, I was able to demo the prototype to some employees of Calgary Transit and the City of Calgary. At the time, a public feed of Calgary Transit&#8217;s bus times data was not available and the methods in which I got the data for the prototype went against the terms of service on Calgary Transit&#8217;s website. Thankfully after meeting with them and waiting it out, Calgary Transit finally exported their data in the Google Transit Feed Specification which we were able to use legitimately in an iPhone application.</p>
<h2>A Re-do</h2>
<p><a href="http://www.gosammy.com/wp-content/uploads/2010/11/mzl.yvfpxuaj.png"><img src="http://www.gosammy.com/wp-content/uploads/2010/11/mzl.yvfpxuaj-200x300.png" alt="" title="mzl.yvfpxuaj" width="200" height="300" class="alignleft size-medium wp-image-877" /></a> Although we could have easily just changed the methods in the application on how it grabbed the data to the new stuff, <a href="http://mrare.ca/about/leigh-mcdonald" title="Mediumrare - About Leigh McDonald">Leigh</a> and <a href="http://mrare.ca/about/bryan-maniotakis" title="Mediumrare - About Bryan Maniotakis">Bryan</a> proposed some fantastic redesigns which made the app look much more polished.</p>
<p>I too decided to re-do things by rewriting the entire application. The prototype was mostly mashed up pieces of sample code I found from Apple&#8217;s developer resources and other various iPhone tutorial sites. I started with a new direction, leveraging the <a href="http://three20.info/" title="Three20 - An open-source library for iOS applications">Three20 framework</a> — the same framework which powers Facebook&#8217;s iPhone app.</p>
<p>By basing the app on the Three20 framework, I was able to utilize some neat features such as:</p>
<ul>
<li>An inline browser (so that clicking on a link in the twitter feed wouldn&#8217;t kick you out of the app)</li>
<li>URL based navigation (this feature made transitioning between controllers feel more like a webapp — even allowing you to pass parameters in the URL)</li>
<li>A global stylesheet (you&#8217;re able to define styles such as colours and fonts in one file, much like the way CSS works)</li>
<li>A JSON library (parsing JSON for the twitter feed and bus times was made easier because of this)</li>
</ul>
<p><a href="http://www.gosammy.com/wp-content/uploads/2010/11/mzl.eadphqpl.png"><img src="http://www.gosammy.com/wp-content/uploads/2010/11/mzl.eadphqpl-200x300.png" alt="" title="mzl.eadphqpl" width="200" height="300" class="alignleft size-medium wp-image-879" /></a> <a href="http://www.gosammy.com/wp-content/uploads/2010/11/mzl.yalycxwu.png"><img src="http://www.gosammy.com/wp-content/uploads/2010/11/mzl.yalycxwu-200x300.png" alt="" title="mzl.yalycxwu" width="200" height="300" class="alignleft size-medium wp-image-880" /></a><br />
<br class="clear" /></p>
<h2>Current Status</h2>
<p>As of this post, the app has already been submitted and is going through Apple&#8217;s app review process. In the version which we submitted, you will be able to:</p>
<ul>
<li>Look up upcoming bus/train times using the 4-digit stop number</li>
<li>See the last 5 recent tweets from Calgary Transit&#8217;s twitter account (makes it easy to see delays, especially in the recent snowy weather we&#8217;ve gotten these past two days)</li>
<li>Add a stop to your favourites</li>
<li>Rename a favourited stop</li>
<li>Reorder your list of favourite stops</li>
</ul>
<p><a href="http://www.gosammy.com/wp-content/uploads/2010/11/reorder_favorites.jpg"><img src="http://www.gosammy.com/wp-content/uploads/2010/11/reorder_favorites-200x300.jpg" alt="" title="reorder_favorites" width="200" height="300" class="alignleft size-medium wp-image-893" /></a> <a href="http://www.gosammy.com/wp-content/uploads/2010/11/rename_favorites.jpg"><img src="http://www.gosammy.com/wp-content/uploads/2010/11/rename_favorites-200x300.jpg" alt="" title="rename_favorites" width="200" height="300" class="alignleft size-medium wp-image-892" /></a></p>
<p><br class="clear" /><br />
Based on other developer&#8217;s experiences, our app should be hitting the app store in about a week now. If you&#8217;d like to be notified via email as soon as it shows up, sign up on our mailing list at <a href="http://calgarytransitschedule.com/">http://calgarytransitschedule.com</a>.</p>
<h3>Related Post</h3><ul class="related_post"><li><a href="http://www.gosammy.com/2010/07/18/a-new-stint-with-mediumrare-a-new-theme/" title="A New Stint With Mediumrare, A New Theme">A New Stint With Mediumrare, A New Theme</a></li><li><a href="http://www.gosammy.com/2009/02/04/iphone-specific-favicon/" title="iPhone Specific Favicon">iPhone Specific Favicon</a></li><li><a href="http://www.gosammy.com/2007/08/15/iphone-web-concept-kit/" title="iPhone Web Concept Kit">iPhone Web Concept Kit</a></li><li><a href="http://www.gosammy.com/2011/10/19/commute-logger/" title="Commute Logger">Commute Logger</a></li><li><a href="http://www.gosammy.com/2011/07/15/a-new-portfolio/" title="A New Portfolio">A New Portfolio</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.gosammy.com/2010/11/18/next-stop-an-iphone-app-for-calgary-transit/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>iPhone has a Huge Market Share in Canada</title>
		<link>http://www.gosammy.com/2010/09/12/iphone-has-a-huge-market-share-in-canada/</link>
		<comments>http://www.gosammy.com/2010/09/12/iphone-has-a-huge-market-share-in-canada/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 03:34:47 +0000</pubDate>
		<dc:creator>Sam Lu</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Canada]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Market Share]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.gosammy.com/?p=843</guid>
		<description><![CDATA[I came across an interesting presentation titled <b>Rethinking the mobile web</b>. It brings up points that we shouldn't disregard other mobile devices just because the iPhone has taken North America by storm. The presentation states that globally the iPhone has <4% of market share. However, I was taken aback when I came across a map which laid out the distribution of different mobile operating systems per country when it was shown that the iPhone/iPod touch has an 86% market share in Canada.]]></description>
				<content:encoded><![CDATA[<p>While working at <a href="http://mrare.ca" title="Mediumrare">Mediumrare</a>, we toyed around with some ideas of mobile apps and most of the time, it would be an idea for the iPhone. Now, as a developer, I loved the <abbr title="Software development kit">SDK</abbr> that Apple prepared for Developers in order to create apps for iOS. However, it&#8217;s also important to understand your audience. Although Apple boasts about having a huge chunk of the pie in regards to mobile device market share, it shouldn&#8217;t be accepted at face value.</p>
<p>Today I came across a very interesting presentation titled <b>Rethinking the mobile web</b>. It brings up points that we shouldn&#8217;t disregard other mobile devices just because the iPhone has taken North America by storm. The presentation states that globally the iPhone has <4% of market share.</p>
<p>However, I was taken aback when I came across a map which laid out the distribution of different mobile operating systems per country:</p>
<p><a href="http://www.flickr.com/photos/icrossing_uk/4342659861/" title="Mobile Browser Market Share 2010 from iCrossing by iCrossing_UK, on Flickr"><img src="http://farm3.static.flickr.com/2784/4342659861_ef6b2d9389.jpg" width="500" height="302" alt="Mobile Browser Market Share 2010 from iCrossing" /></a></p>
<p>If you&#8217;re developing mobile apps in Canada, then it seems the device to develop for is the iPhone/iPod touch. Data from <a href="http://gs.statcounter.com/" title="StatCounter Global Stats">StatCounter Global Stats</a> indicates that the device has an <i>86% market share in Canada</i>. The accuracy of the data is unknown but it does help put things in perspective and it&#8217;s not hard to believe that the iPhone has that much dominance in Canada. At my university, I have observed that a lot of students own an iPhone or iPod touch.</p>
<p>If you&#8217;re involved with developing for mobile devices or interested in the topic, I&#8217;ve embedded slides from the presentation below:</p>
<p><img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyODQzNDcyMTgyNTEmcHQ9MTI4NDM*NzI1MDQ3MSZwPTEwMTkxJmQ9c3NfZW1iZWQmZz*yJm89Y2Y4M2M4OWM3YjQ1/NDk1MGI1ZDAzMTNmM2ZkNzljOGImb2Y9MA==.gif" />
<div style="width:425px" id="__ss_5172436"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu" title="Rethinking the Mobile Web by Yiibu">Rethinking the Mobile Web by Yiibu</a></strong><object id="__sse5172436" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=yiibu-rethinkingthemobileweb-100910074556-phpapp01&#038;stripped_title=rethinking-the-mobile-web-by-yiibu" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse5172436" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=yiibu-rethinkingthemobileweb-100910074556-phpapp01&#038;stripped_title=rethinking-the-mobile-web-by-yiibu" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/bryanrieger">Bryan Rieger</a>.</div>
</div>
<p><br class="clear" /></p>
<h3>Related Post</h3><ul class="related_post"><li><a href="http://www.gosammy.com/2007/08/15/iphone-web-concept-kit/" title="iPhone Web Concept Kit">iPhone Web Concept Kit</a></li><li><a href="http://www.gosammy.com/2011/10/19/commute-logger/" title="Commute Logger">Commute Logger</a></li><li><a href="http://www.gosammy.com/2010/11/18/next-stop-an-iphone-app-for-calgary-transit/" title="Next Stop: An iPhone App for Calgary Transit">Next Stop: An iPhone App for Calgary Transit</a></li><li><a href="http://www.gosammy.com/2009/02/04/iphone-specific-favicon/" title="iPhone Specific Favicon">iPhone Specific Favicon</a></li><li><a href="http://www.gosammy.com/2008/09/11/jailbreaking-unlocking-1st-gen-iphone-on-202/" title="Jailbreaking &#038; Unlocking 1st Gen iPhone on 2.0.2">Jailbreaking &#038; Unlocking 1st Gen iPhone on 2.0.2</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.gosammy.com/2010/09/12/iphone-has-a-huge-market-share-in-canada/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Six Tips for Optimizing Your Website/Web Application</title>
		<link>http://www.gosammy.com/2010/07/23/six-tips-for-optimizing-your-websiteweb-application/</link>
		<comments>http://www.gosammy.com/2010/07/23/six-tips-for-optimizing-your-websiteweb-application/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 15:09:42 +0000</pubDate>
		<dc:creator>Sam Lu</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[scaling]]></category>

		<guid isPermaLink="false">http://www.gosammy.com/?p=786</guid>
		<description><![CDATA[Ever since I started moving on from just developing websites to more complex web applications, I've learned different ways of optimizing your web application for speed and efficiency. It's important to keep your web application running snappy, because as LinkedIn has found out: the likeliness at which visitors bounce is directly related to the performance of your web application. Inside you will read about six optimization tips that I commonly apply to my websites and web applications. These tips involve saving on HTTP requests as well as techniques on optimizing code.]]></description>
				<content:encoded><![CDATA[<p>Ever since I started moving on from just developing websites to more complex web applications, I&#8217;ve learned different ways of optimizing your web application for speed and efficiency. It&#8217;s important to keep your web application running snappy, because as LinkedIn has found out: the likeliness at which visitors bounce is directly related to the performance of your web application. You can find out more about their story with how they kept their Bumper Sticker application running snappy by watching <a href="http://www.joyent.com/customers/linkedin/" title="Watch a video on how LinkedIn scaled a Rails app to 1 billion page views" class="qtiplink">this video hosted on Joyent</a>:</p>
<p><a href="http://www.joyent.com/customers/linkedin/" title="Watch LinkedIn&#039;s Story on Scaling Their Facebook Application: Bumper Sticker"><img src="http://www.gosammy.com/wp-content/uploads/2010/07/joyent_video_cap.jpg" alt="Watch LinkedIn&#039;s Story on Scaling Their Facebook Application: Bumper Sticker" title="Watch LinkedIn&#039;s Story on Scaling Their Facebook Application: Bumper Sticker" width="549" height="326" class="size-full wp-image-808" /></a></p>
<blockquote class="rightquote"><p>&#8220;&#8230;the likeliness at which visitors bounce is directly related to the performance of your web application.&#8221;</p></blockquote>
<p>Although most of these tips are geared more towards web applications, there is nothing stopping you from applying this to a website. Applying these tips in practice towards any sort of web development will see immediate payoffs during a sudden burst of traffic. Those with slightly slower internet connections or using outdated browsers will also unknowingly appreciate these extra steps you take as these older browsers have javascript engines that perform much slower than what we&#8217;re used to with the blazing fast engines implemented in Google Chrome, Safari 4, Firefox 3, etc.</p>
<h3>Tip 1: Use Image Sprites Whenever Possible, Especially On Common Graphics</h3>
<p><div id="attachment_814" class="wp-caption aligncenter" style="width: 600px"><img src="http://www.gosammy.com/wp-content/uploads/2010/07/globalnavbg-590x91.png" alt="Apple&#039;s Navigation Sprite" title="Apple&#039;s Navigation Sprite" width="590" height="91" class="size-large wp-image-814" /><p class="wp-caption-text">Apple's usage of a sprite for their navigation menu</p></div></p>
<p>This has been advised many times in blog articles but for those who do not know, utilizing one larger image file instead of multiple image files is better. Of course, there is always a point when the benefit can become lost if you go overboard with it, but the rule of thumb is: <em>if a graphic is used multiple times across a sprite, especially in the use of a CSS background, add it into a common sprite</em>.</p>
<p>Why is it more efficient? The bottom line is that you save on the amount of HTTP requests that have to be made between the client and the server. For more information on sprites and how to implement them, check out the awesome <a href="http://css-tricks.com/css-sprites/" title="CSS Sprites: What They Are, Why They’re Cool, and How To Use Them">&#8220;how-to&#8221; article over at CSS-Tricks</a>.</p>
<h3>Tip 2: Keep Your External Javascript and CSS Tidy</h3>
<blockquote class="leftquote"><p>&#8220;Why is it more efficient? The bottom line is that you save on the amount of HTTP requests that have to be made between the client and the server.&#8221;</p></blockquote>
<p>As a follow-up to the first tip and how saving on HTTP requests can help your web application; the same can be said about external javascript and CSS. By minimizing the amount of external files that have to be referenced, you save on HTTP requests. This results in the scripts getting to the client (browser) quicker and having it execute faster. As mentioned in the introduction of this post, I said that those using older browsers with slower javascript engines would unknowingly appreciate some of these extra steps you take to optimize your web app &#8211; this tip is one large part of it.</p>
<p>To help see which files can be combined, <a href="http://developer.yahoo.com/yslow/" title="Yahoo! YSlow for Firebug">YSlow for Firebug</a> is a great extension for <a href="http://getfirebug.com/" title="Firebug - The most popular and powerful web development tool">Firebug</a> that analyzes page loads and script execution to see where your website/web application is performing slowly.</p>
<p>In fact, these first two tips are outlined in <a href="http://developer.yahoo.com/performance/rules.html">Yahoo&#8217;s Best Practices for Speeding Up Your Web Site</a>. They also advise that you move references to javascript to the bottom of your page (just before the ending &lt;/body&gt; tag) so that your page loads first, and then your javascript.</p>
<h3>Tip 3: Compress Your Javascript</h3>
<p>This tip is meant more for web applications that utilize a lot of javascript. By compressing your javascript with a tool like <a href="http://developer.yahoo.com/yui/compressor/" title="Download YUI Compressor to compress your javascript">YUI Compressor</a>, you can cut down on the size of your javascript files so that they can be downloaded to the client quicker, resulting in earlier execution.</p>
<h3>Tip 4: Optimize Your Algorithms</h3>
<p>This tip is also meant more for web applications as building websites typically do not require the use of algorithms. As I&#8217;ve learned with the development of <a href="http://www.gosammy.com/2007/07/06/wii-friend-number-facebook-app-released/">my facebook application</a>, the use of a very inefficient algorithm can break your application.</p>
<p>Long story short, I created my facebook application in PHP and deployed it on a very powerful Joyent server that I was able to use for free for a year as part of a promotion. I created a very inefficient algorithm during a lookup which performed fine on the Joyent server. However, when the year of free service came to an end, I moved the application over to my personal server and saw the application break. The use of unnecessary nested loops was later rewritten into one loop and then the application came back to life.</p>
<h3>Tip 5: Cache Dynamic Content on the Server When Possible</h3>
<p>Codeigniter is one of my favourite PHP frameworks to work with. I&#8217;ve used it a ton for its great performance and ease of use. On one of my projects I used it for, I noticed that it was having to constantly look-up data from the database when I knew that it didn&#8217;t necessarily have to. I knew that there were caching plugins for WordPress which worked by saving static pages of dynamic content. If something liked this existed for WordPress, then surely it must for CodeIgniter since it had such a strong community.</p>
<p>Lo and behold the core installation of Codeigniter already included <a href="http://codeigniter.com/user_guide/general/caching.html" title="Read the CodeIgniter user guide on caching" class="qtiplink">methods of caching dynamic content</a>. After implementing it, less database calls were made which resulted in a more efficient application.</p>
<p>There are also some modules for PHP which can be installed to help give an even better boost with server side caching such as <a href="http://xcache.lighttpd.net/">XCache</a>. Installing this alongside with smartly utilizing cache methods in CodeIgniter can make your web app perform almost as fast as if it were a static web page.</p>
<h3>Tip 6: Tweak Your Server Set-up</h3>
<p>For the longest time I was a user of Apache. Of course, when I started out making websites, I really had no idea what a web server consisted of so I was using it without knowing.</p>
<p>When I set out to set up my own VPS for the first time, I went with an installation that used Apache. When I found that it was constantly eating up memory, I did more research on how to optimize it. It turned out that Apache was a bit hungry on memory.</p>
<p><div id="attachment_826" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.joeandmotorboat.com/2008/02/28/apache-vs-nginx-web-server-performance-deathmatch/"><img src="http://www.gosammy.com/wp-content/uploads/2010/07/apache_vs_nginx.jpg" alt="Apache vs. Nginx Response Time" title="Apache vs. Nginx Response Time" width="500" height="331" class="size-full wp-image-826" /></a><p class="wp-caption-text">A graph of Apache vs. Nginx Response Time. Apache is represented in blue.</p></div></p>
<p>In the above graph that was taken from <a href="http://www.joeandmotorboat.com/2008/02/28/apache-vs-nginx-web-server-performance-deathmatch/">Joe&#8217;s Blog</a>, it&#8217;s easy to see that Apache isn&#8217;t the most efficient server out there. There are things you can do however to optimize Apache so it performs better, but I ended up switching to using Nginx since it used up less memory. You could also see performance gains by using Nginx as a reverse proxy alongside Apache to get the best of both worlds. More about my Nginx experiences at another time though.</p>
<h3>Related Post</h3><ul class="related_post"><li><a href="http://www.gosammy.com/2008/04/08/how-to-create-your-very-own-archive-navigator/" title="How to Create Your Very Own &#8220;Archive Navigator&#8221;">How to Create Your Very Own &#8220;Archive Navigator&#8221;</a></li><li><a href="http://www.gosammy.com/2007/08/30/integrating-flickr-into-your-wordpress-theme/" title="Integrating Flickr Into Your Wordpress Theme">Integrating Flickr Into Your Wordpress Theme</a></li><li><a href="http://www.gosammy.com/2008/06/11/improving-the-archive-navigator-graceful-degradation/" title="Improving the Archive Navigator; Graceful Degradation">Improving the Archive Navigator; Graceful Degradation</a></li><li><a href="http://www.gosammy.com/2011/07/15/a-new-portfolio/" title="A New Portfolio">A New Portfolio</a></li><li><a href="http://www.gosammy.com/2011/06/14/using-git-between-mac-and-windows/" title="Using Git Between Mac and Windows">Using Git Between Mac and Windows</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.gosammy.com/2010/07/23/six-tips-for-optimizing-your-websiteweb-application/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>A New Stint With Mediumrare, A New Theme</title>
		<link>http://www.gosammy.com/2010/07/18/a-new-stint-with-mediumrare-a-new-theme/</link>
		<comments>http://www.gosammy.com/2010/07/18/a-new-stint-with-mediumrare-a-new-theme/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 23:11:50 +0000</pubDate>
		<dc:creator>Sam Lu</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[Mediumrare]]></category>

		<guid isPermaLink="false">http://www.gosammy.com/?p=774</guid>
		<description><![CDATA[It's definitely been a long time since I've updated the blog but when I decided to go about updating it, I also wanted to change up the theme because frankly, it was no longer to my liking.

Besides the new theme, I've been working a new job at <a href="http://mrare.ca" title="Mediumrare - Calgary Web Design that's a Cut Above">Mediumrare</a> as a <a href="http://mrare.ca/about/sam-lu" title="Read my team profile on Mediumrare's website">web developer</a>...]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s definitely been a long time since I&#8217;ve updated the blog but when I decided to go about updating it, I also wanted to change up the theme because frankly, it was no longer to my liking.</p>
<p>Besides the new theme, I&#8217;ve been working a new job at <a href="http://mrare.ca" title="Mediumrare - Calgary Web Design that's a Cut Above">Mediumrare</a> as a <a href="http://mrare.ca/about/sam-lu" title="Read my team profile on Mediumrare's website">web developer</a>. Mediumrare is a new startup in Calgary that provides web design and development services as well as some print work on the side. It was partially started up by some of my friends I met through <a href="/2008/06/25/what-its-like-to-work-for-critical-mass/" title="Read my post on what it was like to work at Critical Mass">Critical Mass</a> and when I was out looking for some full time work over the summer, I was glad to join a company with old friends. </p>
<p>Since joining, I have taken on a lot more responsibilities than just a web developer. It wasn&#8217;t too hard to adjust working with such a small team since I had my roots in freelancing. Besides filling a web developer role, I&#8217;ve done quite a few tasks in regards to server administration which was a welcome challenge.</p>
<p>Beyond that, I&#8217;ve also gotten involved in some other interesting application development projects &mdash; namely iPhone app development which I hope to blog about later on when production nears finalization.</p>
<h3>Related Post</h3><ul class="related_post"><li><a href="http://www.gosammy.com/2010/11/18/next-stop-an-iphone-app-for-calgary-transit/" title="Next Stop: An iPhone App for Calgary Transit">Next Stop: An iPhone App for Calgary Transit</a></li><li><a href="http://www.gosammy.com/2011/07/15/a-new-portfolio/" title="A New Portfolio">A New Portfolio</a></li><li><a href="http://www.gosammy.com/2011/06/14/using-git-between-mac-and-windows/" title="Using Git Between Mac and Windows">Using Git Between Mac and Windows</a></li><li><a href="http://www.gosammy.com/2010/07/23/six-tips-for-optimizing-your-websiteweb-application/" title="Six Tips for Optimizing Your Website/Web Application">Six Tips for Optimizing Your Website/Web Application</a></li><li><a href="http://www.gosammy.com/2009/02/04/iphone-specific-favicon/" title="iPhone Specific Favicon">iPhone Specific Favicon</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.gosammy.com/2010/07/18/a-new-stint-with-mediumrare-a-new-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Do You Remember the Days of Dial-up?</title>
		<link>http://www.gosammy.com/2009/05/17/do-you-remember-the-days-of-dial-up/</link>
		<comments>http://www.gosammy.com/2009/05/17/do-you-remember-the-days-of-dial-up/#comments</comments>
		<pubDate>Sun, 17 May 2009 08:28:48 +0000</pubDate>
		<dc:creator>Sam Lu</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[dial-up]]></category>
		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://www.gosammy.com/?p=768</guid>
		<description><![CDATA[When I woke up to find that the router was busted, I went ahead and tethered my laptop to my N95 so that I could get onto the internet. I then started reminiscing about the good old days of dial-up internet.]]></description>
				<content:encoded><![CDATA[<p>This morning I woke up and found that the router in the house was busted. Any attempts to connect through it would result in it rebooting itself. No problem, I tethered my laptop to my <a href="http://en.wikipedia.org/wiki/Nokia_N95" title="Nokia N95">N95</a> and was back going about my <a href="http://lifestream.gosammy.com/" title="My lifestream">daily internet activities</a>. While I was surfing, I found a link to <a href="http://lrlrl.coldplay.com/leftright.html" title="Left Right Left Right Left - free Coldplay live album">Left Right Left Right Left</a>, a free live album Coldplay released, and went ahead to download it. I forgot that I was tethered to my phone until my connection unexpectedly hung up (I guess Rogers doesn&#8217;t want me downloading large files like that over their 3G network). Regardless, during the download, I was sitting there for a good 5 minutes watching it, averaging about 80kb/s. Then it occurred to me, <b>it&#8217;s quite amazing that a phone is able to connect to the internet over cellular towers and achieve speeds that are 16x faster than the good old days of dial-up</b>.</p>
<p>One fond memory I had when I was using dial-up many years ago was when I tried to download the brand new demo of Mortal Kombat II. It was 30mb and Netscape calculated that it would take about 2 hours to download. I was real hyped to try it out for some reason so I sat there waiting. I even intervened when I saw that my mom was going to pick up the phone with the worry that it might ruin the connection. Alas, the download died 45 minutes in. I still wanted to try out that demo so I proceeded to download it again and was successful the second time after letting it download overnight.</p>
<p>What memories do you have of using dial-up?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gosammy.com/2009/05/17/do-you-remember-the-days-of-dial-up/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Recap of Recent Updates to Wii Friend Number Facebook App</title>
		<link>http://www.gosammy.com/2009/03/23/recap-of-recent-updates-to-wii-friend-number-facebook-app/</link>
		<comments>http://www.gosammy.com/2009/03/23/recap-of-recent-updates-to-wii-friend-number-facebook-app/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 03:35:46 +0000</pubDate>
		<dc:creator>Sam Lu</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[wii]]></category>
		<category><![CDATA[wii friend number]]></category>

		<guid isPermaLink="false">http://www.gosammy.com/?p=708</guid>
		<description><![CDATA[A recap of some significant updates to the Wii Friend Number Facebook App - Public Directory &#38; Public Directory Searching!]]></description>
				<content:encoded><![CDATA[<p>A few weeks back I updated the Wii Friend Number Facebook App with some significant features. It didn&#8217;t get much fanfare as I released it somewhat quietly so here&#8217;s a recap of the changes made:</p>
<h3>Public Directory</h3>
<p>On the application&#8217;s discussion boards, there were threads upon threads of people sharing their friend codes for different games. These threads extended to multiple pages and it was clear that some sort of area on the site should host your numbers publicly beyond your friends on Facebook. I also paired this up with Facebook&#8217;s messaging system to make it easier to share numbers. I recorded a screencast which outlines how the Public Directory works and it&#8217;s the best way to grasp how it works:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/2UN1zab1MnQ&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/2UN1zab1MnQ&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<h3>Searching the Public Directory</h3>
<p>Shortly after releasing the Public Directory, the listings became crowded and I made it possible to search up random people based on a game they own.</p>
<p><img src="http://wiifacebookapp.files.wordpress.com/2009/03/public_search.jpg?w=491&#038;h=299" width="491" height="299" alt="Search the Public Directory on Wii Friend Number" /></p>
<h3>What&#8217;s Next?</h3>
<p>The Public Directory is gaining more and more entries and I&#8217;m thinking of setting up a top 10 list of sorts to show what games are popular and find people based on that game. Just a few days ago I also emailed Nintendo asking if there were any APIs I could use for my application such as online statuses, etc. but it turns out they do not endorse these sort of &#8220;sharing sites&#8221; and did not wish to help me. <img src='http://www.gosammy.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Anyways, if you&#8217;d like to keep up with the progress and updates for the app, subscribe to the blog I set up just for it: <a href="http://wiifacebookapp.wordpress.com/" title="Wii Friend Number Facebook App Blog">http://wiifacebookapp.wordpress.com/</a></p>
<h3>Related Post</h3><ul class="related_post"><li><a href="http://www.gosammy.com/2008/06/06/what-ive-been-up-to-wii-friend-number-facebook-app-2/" title="What I&#8217;ve Been Up To: Wii Friend Number Facebook App 2">What I&#8217;ve Been Up To: Wii Friend Number Facebook App 2</a></li><li><a href="http://www.gosammy.com/2007/07/06/wii-friend-number-facebook-app-released/" title="Wii Friend Number Facebook App Released">Wii Friend Number Facebook App Released</a></li><li><a href="http://www.gosammy.com/2007/07/03/my-first-facebook-app-wii-friend-number/" title="My First Facebook App &#8211; Wii Friend Number">My First Facebook App &#8211; Wii Friend Number</a></li><li><a href="http://www.gosammy.com/2008/04/26/creating-a-facebook-application-getting-started/" title="Creating a Facebook Application: Getting Started">Creating a Facebook Application: Getting Started</a></li><li><a href="http://www.gosammy.com/2007/01/30/wii/" title="Wii!">Wii!</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.gosammy.com/2009/03/23/recap-of-recent-updates-to-wii-friend-number-facebook-app/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 34.031 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2013-06-03 00:22:32 -->
