<?xml version="1.0"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Words</title>
    <link>http://words.davidhu.me</link>
    <atom:link href="http://words.davidhu.me/rss.xml" rel="self" type="application/rss+xml" />
    <description>Just some words by David Hu</description>
    <language>en-us</language>
    <pubDate>Mon, 23 Apr 2012 22:20:39 -0400</pubDate>
    <lastBuildDate>Mon, 23 Apr 2012 22:20:39 -0400</lastBuildDate>

    
    <item>
      <title>Well That Was Fun.</title>
      <link>http://words.davidhu.me/well-that-was-fun</link>
      <pubDate>Mon, 23 Apr 2012 22:17:54 -0400</pubDate>
      <author>David Hu</author>
      <description>&lt;p&gt;Protip&amp;#8212;Never put this in a Chrome extension.&lt;/p&gt;
&lt;div class='blockcode'&gt;&lt;pre&gt;chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
	chrome.tabs.create({});
});&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>The Three Numbers of Lumia: 900, 800, and 480</title>
      <link>http://words.davidhu.me/the-three-numbers-of-lumia-900-800-and-480</link>
      <pubDate>Wed, 04 Apr 2012 22:19:59 -0400</pubDate>
      <author>David Hu</author>
      <description>&lt;p&gt;The reviews for Nokia and Microsoft&amp;#8217;s Lumia 900 have been exploding online as the flagship phone sets to launch on April 8 and a media embargo on reviewing it got lifted at 9:00pm last night (TechCrunch called this &lt;a href='http://techcrunch.com/2012/04/03/nokia-lumia-900-review-initial-impressions-video/'&gt;&amp;#8220;awkwardly timed,&amp;#8221;&lt;/a&gt; but come on guys, it&amp;#8217;s the Lumia &lt;em&gt;900&lt;/em&gt;). They all mostly say the same thing: it&amp;#8217;s a beautiful and striking phone; a sure competitor at its $100 price point that includes an LTE radio; and perhaps most of all, how the 900 will be the two former giants&amp;#8217; &amp;#8220;make or break&amp;#8221; handheld device here in the States.&lt;/p&gt;

&lt;p&gt;While different reviews have honed in on different critical flaws (many of which I disagree with: Engadget blames its &lt;a href='http://www.engadget.com/2012/04/03/nokia-lumia-900-review/'&gt;blandness&lt;/a&gt;, Pogue claims it&amp;#8217;s WP7&amp;#8217;s &lt;a href='http://www.nytimes.com/2012/04/05/technology/personaltech/lumia-900-a-beautiful-phone-from-nokia-and-microsoft.html'&gt;lack of apps&lt;/a&gt;, the Verge decrees the WP7 OS isn&amp;#8217;t &lt;a href='http://www.theverge.com/2012/4/3/2921472/lumia-900-review'&gt;quite up to snuff&lt;/a&gt;), each have mentioned in passing the same deficiency of its screen resolution: the merely-acceptable 800x480. When compared against the iPhone&amp;#8217;s retina display or some Android devices&amp;#8217; 720p resolution screens, the difference in the display quality will surely be grossly evident, making potential buyers question the &amp;#8220;flagship&amp;#8221; label of this device.&lt;/p&gt;

&lt;p&gt;This has always boggled me, and I&amp;#8217;m afraid &lt;em&gt;this&lt;/em&gt; is actually the biggest flaw of not only the 900, but Windows Phone 7 itself.&lt;/p&gt;

&lt;p&gt;According to the original Windows Phone 7 design guidelines, &lt;strong&gt;&amp;#8220;All Windows Phone 7 phones will have WVGA screens at 800 x 480 pixel resolution, &lt;a href='http://www.scribd.com/doc/49694993/UI-Design-and-Interaction-Guide-for-Windows-Phone-7-v2-0#page=9'&gt;no matter the screen size&lt;/a&gt;.&amp;#8221;&lt;/strong&gt; It seems that the operating system and SDKs were designed with this in mind, and I can think of no better way for a platform to shoot itself in the foot from the very beginning. Even after Microsoft refreshed their docs after the much-loved 7.5 &amp;#8220;Mango&amp;#8221; update, design guidelines still refer to &lt;a href='http://msdn.microsoft.com/en-us/library/hh202905.aspx'&gt;&amp;#8220;the full 480 x 800 pixels&amp;#8221;&lt;/a&gt; as the only real estate available for app developers.&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s easy to understand why the WP7 team may have chosen to lock the mobile operating system&amp;#8217;s resolution. On a system based so heavily on typography and small but charming details, more control over what is displayed means a better and more unified end-to-end user experience. I mean, isn&amp;#8217;t that the Apple Way? (And look at how successful they are at it.)&lt;/p&gt;

&lt;p&gt;But this analysis is missing perhaps the most critical component of the Apple Way: the hardware integration. iOS is not a platform that is licensed to many manufacturers, so it&amp;#8217;s okay that they restrict it to only a single (or two, depending on how far back you go in device history) resolution(s). On the other hand, Windows Phone 7 &lt;em&gt;is&lt;/em&gt; licensed to many manufacturers&amp;#8212;which, for better or worse, are very fond of producing many different phones with many different display sizes. Restricting your platform to a single screen resolution in this case makes it more difficult for manufacturers to have the freedom to choose display technologies and sizes, which makes it harder to make deals, and ultimately, satisfy the end user.&lt;/p&gt;

&lt;p&gt;I hope to see Windows Phone support more resolutions in the future.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Developer, Developer, Developer... Developers? Dev?</title>
      <link>http://words.davidhu.me/developer-developer-developer-developers-dev</link>
      <pubDate>Mon, 27 Feb 2012 02:17:26 -0500</pubDate>
      <author>David Hu</author>
      <description>&lt;p&gt;We can&amp;#8217;t even standardize a simple subdomain?&lt;/p&gt;

&lt;h3 id='developer'&gt;Developer&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://developer.apple.com'&gt;https://developer.apple.com&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href='http://developer.android.com'&gt;http://developer.android.com&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href='https://developer.mozilla.org'&gt;https://developer.mozilla.org&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href='https://developer.foursquare.com'&gt;https://developer.foursquare.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id='developers'&gt;Developers&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://developers.facebook.com'&gt;https://developers.facebook.com&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href='https://developers.google.com'&gt;https://developers.google.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id='dev'&gt;Dev&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://dev.twitter.com'&gt;https://dev.twitter.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And then there&amp;#8217;s this guy.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='http://msdn.microsoft.com'&gt;http://msdn.microsoft.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Can&amp;#8217;t we make all the subdomains for developer resources under &lt;strong&gt;http://developer.*&lt;/strong&gt;? All the non-&lt;code&gt;developer&lt;/code&gt; domains I listed above already redirect &lt;code&gt;http://developer.{&lt;/code&gt;&lt;a href='http://developer.facebook.com/'&gt;facebook&lt;/a&gt;&lt;code&gt;, &lt;/code&gt;&lt;a href='http://developer.google.com/'&gt;google&lt;/a&gt;&lt;code&gt;, &lt;/code&gt;&lt;a href='http://developer.twitter.com/'&gt;twitter&lt;/a&gt;&lt;code&gt;, &lt;/code&gt;&lt;a href='http://developer.microsoft.com/'&gt;microsoft&lt;/a&gt;&lt;code&gt;}.com&lt;/code&gt; to their respective subdomains. It doesn&amp;#8217;t quite work the other way around: &lt;code&gt;http://developers.{&lt;/code&gt;&lt;a href='http://developers.apple.com/'&gt;apple&lt;/a&gt;&lt;code&gt;, &lt;/code&gt;&lt;a href='http://developers.android.com/'&gt;android&lt;/a&gt;&lt;code&gt;, &lt;/code&gt;&lt;a href='http://developers.twitter.com/'&gt;twitter&lt;/a&gt;, &lt;a href='http://developers.mozilla.org/'&gt;mozilla&lt;/a&gt;&lt;code&gt;}.{com, org}&lt;/code&gt; all lead nowhere.&lt;/p&gt;

&lt;p&gt;This just cries out the fact that the &lt;code&gt;developer&lt;/code&gt; subdomain is pretty standard. A great parlor trick is to navigate to &lt;code&gt;http://developer.x.com&lt;/code&gt; when looking for developer resources because you&amp;#8217;ll probably end up finding what you were looking for, but a better way to address the issue is to standardize the subdomains themselves.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Milking It For What It's Worth: #linsanity Edition</title>
      <link>http://words.davidhu.me/milking-it-for-what-its-worth-linsanity-edition</link>
      <pubDate>Wed, 15 Feb 2012 19:42:30 -0500</pubDate>
      <author>David Hu</author>
      <description>&lt;p&gt;Because it&amp;#8217;s much more fun than doing an alternative analysis on quicksort and I found the &lt;a href='http://linwords.com/'&gt;current site&lt;/a&gt; devoted to Jeremy Lin puns a little abysmal, I decided to create my own.&lt;/p&gt;

&lt;p&gt;Behold: &lt;a href='http://davidhu.me/linify/'&gt;#linify it&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s actually a dead simple site that I threw together mostly during a class, and its &lt;a href='http://davidhu.me/linify/linify.js'&gt;core&lt;/a&gt; revolves around a few key regular expressions and replacing instances of them. Below are the ones I currently use&amp;#8212;do you have any suggestions?&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;td&gt;Pattern&lt;/td&gt;
			&lt;td&gt;Replacement&lt;/td&gt;
			&lt;td&gt;Example&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;code&gt;^in&lt;/code&gt;&lt;br /&gt;&lt;code&gt;^In&lt;/code&gt;&lt;/td&gt;
		&lt;td&gt;lin&lt;br /&gt;Lin&lt;/td&gt;
		&lt;td&gt;insanity &amp;rarr; linsanity&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;code&gt;^li&lt;/code&gt;&lt;br /&gt;&lt;code&gt;^Li&lt;/code&gt;&lt;/td&gt;
		&lt;td&gt;lin&lt;br /&gt;Lin&lt;/td&gt;
		&lt;td&gt;library &amp;rarr; linbrary&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;code&gt;^.in&lt;/code&gt;&lt;/td&gt;
		&lt;td&gt;lin&lt;/td&gt;
		&lt;td&gt;winning &amp;rarr; linning&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;code&gt;lin/i&lt;/code&gt;&lt;/td&gt;
		&lt;td&gt;LIN&lt;/td&gt;
		&lt;td&gt;slinky &amp;rarr; sLINky&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;code&gt;ling$&lt;/code&gt;&lt;/td&gt;
		&lt;td&gt;LIN'&lt;/td&gt;
		&lt;td&gt;styling &amp;rarr; styLIN'&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;code&gt;Lin&lt;/code&gt;&lt;/td&gt;
		&lt;td&gt;&lt;img src='http://davidhu.me/linify/l.png' alt='Lin' style='display:inline;margin:0;' /&gt;&lt;/td&gt;
		&lt;td&gt;Jeremy Lin &amp;rarr; Jeremy &lt;img src='http://davidhu.me/linify/l.png' alt='Lin' style='display:inline;margin:0;' /&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;br /&gt;</description>
    </item>
    
    <item>
      <title>Google Chrome: Bringing Fitts's Law To You</title>
      <link>http://words.davidhu.me/google-chrome-bringing-fittss-law-to-you</link>
      <pubDate>Tue, 07 Feb 2012 11:14:32 -0500</pubDate>
      <author>David Hu</author>
      <description>&lt;p&gt;Google has always had decent UX practices, notwithstanding their complete lack of Android UX guidelines before 4.0 and the occasional &lt;a href='http://www.google.com/doodles/125th-anniversary-of-the-largest-snowflake'&gt;dubious Doodle&lt;/a&gt;. Tabbed browsing can suck sometimes (and I&amp;#8217;ve tried to make it &lt;a href='http://davidhu.me/renamer/'&gt;suck less&lt;/a&gt; before), but this feature of Chrome has always made me happy:&lt;/p&gt;

&lt;p&gt;&lt;img src='/img/chrome1.png' alt='Year' /&gt;&lt;/p&gt;

&lt;p&gt;This image shows me in the middle of closing a bunch of tabs in Chrome by clicking the &amp;#8220;close&amp;#8221; button on one of the tabs on the left. Notice a few things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Generally when you close tabs, they will either resize 1) uniformly to a predetermined &amp;#8220;natural&amp;#8221; size or 2) to fill the tab bar, whichever property is satisfied first.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Here though, the tabs are &lt;em&gt;not&lt;/em&gt; resizing, or else they would have been resized to fill the tab bar (note the empty space on the right, indicating they&amp;#8217;re being forced to not resize)&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;This makes it easier for the user to close the tabs: I don&amp;#8217;t have to keep moving my mouse to hit another &amp;#8220;close&amp;#8221; button. I would be chasing &amp;#8220;close&amp;#8221; buttons if the tabs kept resizing.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This in and of itself is already pretty cool. But notice how I&amp;#8217;ve always been clicking &amp;#8220;close&amp;#8221; on the 4th tab from the left. What happens when there are, say, 3 tabs left? Because the tabs aren&amp;#8217;t resizing, my cursor would no longer be over a &amp;#8220;close&amp;#8221; button.&lt;/p&gt;

&lt;p&gt;Should the width of the tabs stay consistent until I indicate I&amp;#8217;m done clicking &amp;#8220;close&amp;#8221; buttons? Since I&amp;#8217;m no longer hovering over a &amp;#8220;close&amp;#8221; button, should the tabs go with option 1 above and reset to their &amp;#8220;natural&amp;#8221; sizes? No. What Chrome does here is downright genius:&lt;/p&gt;

&lt;p&gt;&lt;img src='/img/chrome2.png' alt='Year' /&gt;&lt;/p&gt;

&lt;p&gt;The tabs start resizing, but they resize so that the &amp;#8220;close&amp;#8221; button of a tab stops just under my mouse cursor&amp;#8212;ready to be clicked. I can keep clicking to close more tabs without moving my mouse at all. Note the difference between the image above and the one below, where I moved my cursor and caused the tabs to resize to their &amp;#8220;natural&amp;#8221; sizes.&lt;/p&gt;

&lt;p&gt;&lt;img src='/img/chrome3.png' alt='Year' /&gt;&lt;/p&gt;

&lt;p&gt;To paraphrase &lt;a href='http://en.wikipedia.org/wiki/Fitts&amp;apos;s_law'&gt;Fitts&amp;#8217;s Law&lt;/a&gt;, the further away a target is, the longer time it will take to acquire and act upon that target, and the more frustrated your users become. If you think about it, Google here is actually &lt;em&gt;bringing Fitts&amp;#8217;s Law to you&lt;/em&gt;. Instead of you moving your mouse to acquire a target, the target comes to you.&lt;/p&gt;

&lt;p&gt;There&amp;#8217;s an awful &amp;#8220;In Soviet Russia&amp;#8221; joke in here somewhere.&lt;/p&gt;
&lt;small&gt;&amp;#32;&lt;sup&gt;&amp;dagger;&lt;/sup&gt;In their defense though, Firefox for OS X does seem to behave this way as well. However, this &quot;resizing to the cursor&quot; feature seems to be missing in some other favorite apps with tabs, such as Safari, Sublime Text 2, and Terminal (well, it's not that I have &lt;em&gt;that&lt;/em&gt; many tabs open... I just have really small Terminal windows sometimes).&lt;/small&gt;</description>
    </item>
    
    <item>
      <title>Fuck It I Need To Study</title>
      <link>http://words.davidhu.me/fuck-it-i-need-to-study</link>
      <pubDate>Wed, 18 Jan 2012 00:44:20 -0500</pubDate>
      <author>David Hu</author>
      <description>&lt;p&gt;&lt;a href='http://online.wsj.com/article/SB10001424052970203735304577167261853938938.html?mod=googlenews_wsj'&gt;SOPA&lt;/a&gt; and its Senate cousin, PIPA, are &lt;a href='http://blog.reddit.com/2012/01/technical-examination-of-sopa-and.html'&gt;really&lt;/a&gt; &lt;a href='http://blog.reddit.com/2012/01/stopped-they-must-be-on-this-all.html'&gt;bad&lt;/a&gt; &lt;a href='http://en.wikipedia.org/wiki/Wikipedia:SOPA_initiative/Learn_more'&gt;things&lt;/a&gt;. Many &lt;a href='http://www.google.com'&gt;well-known&lt;/a&gt; &lt;a href='http://www.reddit.com'&gt;websites&lt;/a&gt; are participating in a demonstration against the two acts, including &lt;a href='http://en.wikipedia.org/wiki/Main_Page'&gt;Wikipedia English&lt;/a&gt;, which is blacking out its entire site.&lt;/p&gt;

&lt;p&gt;I do not support these bills, nor the intents behind them. Never have I appreciated Wikipedia and free information on the Internet more. But sometimes you&amp;#8217;re a kid in college and you just really have to study. If you&amp;#8217;re like me, you can use the bookmarklet below to uncensor any English Wikipedia page&lt;sup&gt;&amp;dagger;&lt;/sup&gt;.&lt;/p&gt;
&lt;h1 style='text-align:center;'&gt;&lt;a href='javascript:(function() { document.getElementById(&amp;apos;content&amp;apos;).style.display=&amp;apos;block&amp;apos;;document.getElementById(&amp;apos;mw-sopaOverlay&amp;apos;).style.display=&amp;apos;none&amp;apos;;if(Math.random()&lt;.2) {window.open(&amp;apos;http://americancensorship.org/&amp;apos;);} })();'&gt;Stop SOPA, Read Wiki&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;To use:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Drag the link to your bookmarks bar&lt;/li&gt;

&lt;li&gt;Navigate to a Wikipedia English page&lt;/li&gt;

&lt;li&gt;Click the bookmarklet&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You&amp;#8217;ll need to re-click the link again on every Wikipedia page, but hey, at least you can view them.&lt;/p&gt;

&lt;p&gt;Of course, you can always also view everything in &lt;a href='http://pl.wikipedia.org'&gt;Polish&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&amp;#32;&lt;sup&gt;&amp;dagger;&lt;/sup&gt;Sometimes each click will also open up a link to &lt;a href='http://americancensorship.org/'&gt;americancensorship.org&lt;/a&gt;. Take action.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>And Then There Was Bwog</title>
      <link>http://words.davidhu.me/and-then-there-was-bwog</link>
      <pubDate>Tue, 03 Jan 2012 17:33:44 -0500</pubDate>
      <author>David Hu</author>
      <description>&lt;p&gt;(Otherwise known as: Because I have a blog again and I&amp;#8217;m allowed to be narcissistic.)&lt;/p&gt;

&lt;p&gt;With Gmail yelling at me at least three times last semester &amp;#8220;you&amp;#8217;re maxing out your inbox!&amp;#8221; I thought it would be interesting to do some analytics and figure out some patterns in my 87,455 email messages. Using a handy Python script, &lt;a href='http://code.google.com/p/mail-trends/'&gt;mail-trends&lt;/a&gt;, I verified what pretty much everybody already knew: you get a shitton of email when you join a campus organization.&lt;/p&gt;

&lt;p&gt;Below is how my mail breaks down by year in terms of volume. I came to Columbia in Fall &amp;#8216;09 and joined Bwog that first semester.&lt;/p&gt;

&lt;p&gt;&lt;img src='/img/mail/year.png' alt='Year' /&gt;&lt;/p&gt;

&lt;p&gt;Because the exponential growth in mail could just be attributed to general college shenanigans, the breakdown of email recipients for 2009 (the &amp;#8220;To:&amp;#8221; field in an email) really verifies the Bwog Effect on mail:&lt;/p&gt;

&lt;p&gt;&lt;img src='/img/mail/2009-recipients.png' alt='2009 recipients' /&gt;&lt;/p&gt;

&lt;p&gt;(The blue &amp;#8220;David Hu&amp;#8221; is my Columbia email address, and there are multiple Bwog aliases for technical reasons. Other recipients are hidden for privacy reasons.)&lt;/p&gt;

&lt;p&gt;And by 2011, there were more emails addressed to tips@bwog.com than my email address in my own damn inbox:&lt;/p&gt;

&lt;p&gt;&lt;img src='/img/mail/2011-recipients.png' alt='2011 recipients' /&gt;&lt;/p&gt;

&lt;p&gt;However, just like how it&amp;#8217;s important to be reminded of friendships and friends when work for school or a campus group seems to take over your life, it&amp;#8217;s good to realize that in a sea of Bwog-related email threads (subjects hidden), sometimes conversations among friends still reign supreme.&lt;/p&gt;

&lt;p&gt;&lt;img src='/img/mail/friends.png' alt='Friends!' /&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Intensishot</title>
      <link>http://words.davidhu.me/intensishot</link>
      <pubDate>Sat, 31 Dec 2011 16:00:41 -0500</pubDate>
      <author>David Hu</author>
      <description>&lt;p&gt;I&amp;#8217;ll be working with Android as part of my new job at &lt;a href='http://kikin.com'&gt;kikin&lt;/a&gt; next semester, so what better way to familiarize myself with the platform than make a simple app? &lt;a href='http://davidhu.me/intensishot/'&gt;Check it out!&lt;/a&gt;&lt;/p&gt;

&lt;h2 id='thoughts_on_android'&gt;Thoughts on Android&lt;/h2&gt;

&lt;p&gt;While they&amp;#8217;re still fresh, a few thoughts on working with the platform for the first time.&lt;/p&gt;

&lt;h3 id='java'&gt;Java&lt;/h3&gt;

&lt;p&gt;Java is nice.&lt;/p&gt;

&lt;h3 id='android_ux_conventions'&gt;Android UX Conventions&lt;/h3&gt;

&lt;p&gt;I believe one of the more important things in app development is sticking to a platform&amp;#8217;s UI/UX conventions (otherwise known as &amp;#8220;visual language&amp;#8221; if you&amp;#8217;re a tool (jk (sorta))). One thing you immediately begin to realize is that the interaction paradigms of Android are &lt;em&gt;not&lt;/em&gt; the same as iOS, or even designed to be similar. iOS makes heavy use of bottom tabs; this pattern isn&amp;#8217;t even one of the default layouts for Android. There is no established meaning for a long-tap on iOS; it almost always brings up a contexual menu on Android. In general, &lt;a href='http://cvil.ly/2011/01/27/comparing-common-iphone-and-android-ui-conventions/'&gt;this blog post&lt;/a&gt; does a great job of breaking down the differences between Android and iOS UI conventions, and &lt;a href='http://www.androidpatterns.com/'&gt;Android Patterns&lt;/a&gt; has some great info on Android conventions specifically.&lt;/p&gt;

&lt;h3 id='supporting_multiple_screens'&gt;Supporting Multiple Screens&lt;/h3&gt;

&lt;p&gt;Lesson: &lt;a href='http://developer.android.com/guide/practices/screens_support.html#screen-independence'&gt;Do not use hard-coded pixel values in your application code&lt;/a&gt;. The need to support multiple screen resolution, densities, and physical sizes is a pain. I&amp;#8217;ve dealt with this somewhat with web development, but the concept of &lt;a href='http://developer.android.com/resources/dashboard/screens.html'&gt;densities&lt;/a&gt; was foreign to me. I currently solve the multi-screen problem by scaling a single set of graphics, but this can obviously be improved upon: on bigger screens, graphics deteriorate.&lt;/p&gt;

&lt;h3 id='the_developer_experience'&gt;The Developer Experience&lt;/h3&gt;

&lt;p&gt;When compared to the other dominant mobile platforms, iOS and Web (sorry WP7 &amp;#38; WebOS), setting up the Android dev environment was a little more painful than necessary. &lt;a href='http://developer.android.com/sdk/installing.html'&gt;Installing the SDK&lt;/a&gt; is a guide that needs an edit or two. Steps 2 and 3 sent me on an infinite loop because Step 2 never actually tells you to install the starter package.&lt;/p&gt;

&lt;p&gt;Eclipse is alright.&lt;/p&gt;

&lt;p&gt;Publishing was a breeze. It was possible to export my app to an APK and be in the Android Market within 30 minutes. The fact that I also have the freedom to distribute my app as a &lt;a href='http://davidhu.me/intensishot/Intensishot-0.1.apk'&gt;stand-alone APK download&lt;/a&gt; without being tied to a specific online marketplace is a big plus as well.&lt;/p&gt;

&lt;h3 id='logcat'&gt;LogCat&lt;/h3&gt;

&lt;p&gt;&lt;a href='http://code.google.com/p/android/issues/detail?id=20386'&gt;LogCat&lt;/a&gt; is my friend.&lt;/p&gt;

&lt;h2 id='continuation_of_the_app'&gt;Continuation of the App&lt;/h2&gt;

&lt;p&gt;The app is currently technically at version 0.1, and a few things I plan to do before officially calling it 1.0:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better support for multiple screen densities&lt;/li&gt;

&lt;li&gt;Add a &amp;#8220;history&amp;#8221; feature that tracks intensities throughout a night and resets every day at 6 pm&lt;/li&gt;

&lt;li&gt;Improved instructions label&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
    <item>
      <title>Hello Words</title>
      <link>http://words.davidhu.me/hello-words</link>
      <pubDate>Sat, 24 Dec 2011 23:49:49 -0500</pubDate>
      <author>David Hu</author>
      <description>&lt;p&gt;Yes, I&amp;#8217;m starting (another) blog. And there&amp;#8217;s nothing you can do about it.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve been meaning to start a blog for a while, and various things kept preventing me, but alas here we finally are. I hope that Words will be a little different than my previous &lt;a href='http://theblacktop.com'&gt;foray&lt;/a&gt; into personal blogging in a number of ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I hope to focus mainly on topics concerning the web, programming, CS, or any other issue relating &amp;#8220;technology&amp;#8221; or &amp;#8220;the industry.&amp;#8221; I guess it&amp;#8217;s broad by design.&lt;/li&gt;

&lt;li&gt;I hope this won&amp;#8217;t devolve into a personal blog in the style of a LiveJournal; I have Facebook already. Expect the occasional funny picture though.&lt;/li&gt;

&lt;li&gt;I hope to update this more often than I did my personal blog in the later years. I may eventually go back to updating that too.&lt;/li&gt;

&lt;li&gt;I hope this will be a steady creative outlet. As I stopped writing daily posts for my last &lt;a href='http://bwog.com'&gt;foray&lt;/a&gt; into non-personal blogging and started assuming other duties, I started missing the writing, and I hope this will help me scratch the itch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the end though, I just hope for this to be seen as merely my words, and nothing more. They really carry little weight if you think about it.&lt;/p&gt;

&lt;p&gt;But I hope you&amp;#8217;ll humor me and join me for the ride.&lt;/p&gt;</description>
    </item>
    

  </channel> 
</rss>
