<?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-8593505</id><updated>2011-12-20T11:39:50.248-10:00</updated><category term='mobile'/><category term='Python'/><category term='Twitter'/><category term='Microsoft'/><category term='DNS'/><category term='Email'/><category term='FUD'/><category term='Outlook'/><category term='HOSEF'/><category term='Photos'/><category term='Workarounds'/><category term='PFOSSCON'/><category term='Spamhaus'/><category term='GNU'/><category term='BIND'/><category term='Programming'/><category term='One'/><category term='Steve Jobs'/><category term='ubuntu linux netbook'/><category term='LinkedIn'/><category term='Marketing'/><category term='App Store'/><category term='DSLR'/><category term='Apache'/><category term='iOS'/><category term='Spam'/><category term='Android'/><category term='Facebook'/><category term='Spin'/><category term='MILC'/><category term='djbdns'/><category term='Google+'/><category term='HP'/><category term='Mirrorless'/><category term='Hacks'/><category term='CentOS'/><category term='Photography'/><category term='FreeBSD'/><category term='Google'/><category term='TouchPad'/><category term='Redis'/><category term='Nexus'/><category term='iPhone'/><category term='Linux'/><category term='Scams'/><category term='VSFTPD'/><category term='mercurial'/><category term='Blog'/><category term='OS'/><title type='text'>Julian's Blog</title><subtitle type='html'>I think I hate Blogger.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://julianyap.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>44</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8593505.post-1929319431962633175</id><published>2011-12-19T10:44:00.000-10:00</published><updated>2011-12-19T10:44:15.370-10:00</updated><title type='text'>THIS BLOG HAS MOVED</title><content type='html'>This blog has moved.&lt;br /&gt;&lt;br /&gt;Please check out: &lt;a href="http://julianyap.com/"&gt;http://julianyap.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Follow me on Twitter: &lt;a href="http://twitter.com/jyap"&gt;@jyap&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Subscribe via RSS: &lt;a href="http://feeds.julianyap.com/julianyap"&gt;http://feeds.julianyap.com/julianyap&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-1929319431962633175?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://julianyap.com' title='THIS BLOG HAS MOVED'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1929319431962633175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1929319431962633175'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/12/this-blog-has-moved.html' title='THIS BLOG HAS MOVED'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-3733559488312890286</id><published>2011-10-30T20:36:00.000-10:00</published><updated>2011-10-30T20:36:08.427-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='OS'/><category scheme='http://www.blogger.com/atom/ns#' term='Nexus'/><category scheme='http://www.blogger.com/atom/ns#' term='One'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Nexus One will not be receiving Android 4.0 Ice Cream Sandwich</title><content type='html'>Google recently announced that the&amp;nbsp;&lt;a href="http://techcrunch.com/2011/10/26/the-nexus-one-isnt-invited-to-the-ice-cream-sandwich-social/" target="_blank"&gt;Nexus One phone will not be upgraded to Android 4.0 Ice Cream Sandwich&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There have only been 2 flagship Google phones which fall under the trademark Nexus released to the public.&lt;br /&gt;&lt;br /&gt;From Wikipedia, the first Nexus phone, the Nexus One was released:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;US, UK, Hong Kong January 5, 2010; 21 months ago&lt;/li&gt;&lt;li&gt;Canada March 16, 2010&lt;/li&gt;&lt;li&gt;Singapore April 30, 2010&lt;/li&gt;&lt;li&gt;Germany May 25, 2010&lt;/li&gt;&lt;li&gt;Italy May 28, 2010&lt;/li&gt;&lt;li&gt;South Korea July 10, 2010&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Gabe Cohen from Google said that Android 4.0 Ice Cream Sandwich is &lt;a href="http://www.engadget.com/2011/10/19/google-confirms-nexus-s-will-get-ice-cream-sandwich-for-real/" rel="nofollow" target="_blank"&gt;"theoretically compatible"&lt;/a&gt; with any Android 2.3.x device currently in production.&lt;br /&gt;&lt;br /&gt;You would think that by buying a less than 2 year old phone in the Nexus One you would be somewhat future proof. And technically yes, you could load a 3rd party ROM but that's not the point. The average person isn't going to root their phone and go through forum instructions.&lt;br /&gt;&lt;br /&gt;The point is, Google officially does not care.&lt;br /&gt;&lt;br /&gt;Android fans may deny it but the Nexus phones represent the best case scenario in terms of receiving updates as they are officially endorsed by Google. But time will show that of the dozens upon dozens of Android phones currently in use, most will not see carriers/manufacturers push out a version of Ice Cream Sandwich to their phone.&lt;br /&gt;&lt;br /&gt;Android updates (except for the Nexus phones) require manufacturers and carriers to be on board.  Prior to the recent generation of smart phones, updates were unheard of.  Think back to 2005.  The phone you bought had the software that came with it.&lt;br /&gt;&lt;br /&gt;So Android through dealing with carriers is dealing with manufacturers and carriers accustomed to this old model aren't adapting to the reality that with new phones (smart phones with internet capabilities) software updates need to become a reality.  If not for security of internet connected devices then for customer satisfaction and long term brand loyalty.  The incentive should work this way.  Give customers a great experience now through the lifecycle of their phone contract so that they will want to buy the same brand next time.&lt;br /&gt;&lt;br /&gt;This model of 'just buy a new phone' may work some what with mobile phones where contracts are largely on a 2-year cycle but depending on where you fall on the purchase cycle, customers still fell burned (in this case your technical users will notice).&lt;br /&gt;&lt;br /&gt;The model of poor upgrade management works very poorly with tablets as users expect a longer life span. So when factoring in software upgrades, don't forget the dozens of tablets which run Android 2.x.&lt;br /&gt;&lt;br /&gt;The situation of fragmentation &lt;i&gt;may&lt;/i&gt; improve with the next release but in the meanwhile you burn a lifecycle of users who bought your product that at the end of the day didn't have a very long life span.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt;&amp;nbsp;&lt;a href="http://theunderstatement.com/post/11982112928/android-orphans-visualizing-a-sad-history-of-support" rel="nofollow" target="_blank"&gt;Here is a good infographic&lt;/a&gt;&amp;nbsp;which presents the update history for every Android &amp;amp; iPhone released in the US before July 2010.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-3733559488312890286?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/3733559488312890286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/3733559488312890286'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/10/nexus-one-will-not-be-receiving-android.html' title='Nexus One will not be receiving Android 4.0 Ice Cream Sandwich'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-1115482595008276583</id><published>2011-08-30T11:58:00.000-10:00</published><updated>2011-08-30T11:58:54.103-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TouchPad'/><category scheme='http://www.blogger.com/atom/ns#' term='HP'/><category scheme='http://www.blogger.com/atom/ns#' term='Spin'/><title type='text'>HP to produce final batch of TouchPads - Don't jump to any conclusions</title><content type='html'>HP put out some PR spin about a &lt;a href="http://h20435.www2.hp.com/t5/The-Next-Bench-Blog/More-TouchPads-on-the-Way/ba-p/68749"&gt;final batch of TouchPads&lt;/a&gt; being on the way.&lt;br /&gt;&lt;br /&gt;Here is there positive spin on their discontinued product:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;Since we announced the price drop, the number of inquiries about the  product and the speed at which it disappeared from inventory has been  stunning. I think it’s safe to say we were pleasantly surprised by the  response.&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Why would you be so pleasantly surprised?&amp;nbsp; Maybe if people bought them in the first place.&lt;br /&gt;&lt;br /&gt;As to why HP is bringing out a final batch, &lt;a href="http://news.ycombinator.com/item?id=2942918"&gt;a comment from Hacker News&lt;/a&gt; pretty much sums up my thoughts:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;I suspect this is just HP clearing out the supply chain of already purchased parts and units still at the factory. HP's cost is probably just a few dollars per unit to ship and possibly assemble them.&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;I find it hard to believe anyone approved an entirely new order of parts at $300 BOM just to sell them for $99.&lt;br /&gt;&lt;br /&gt;A quick search on eBay shows you that people are just flipping these $99 units.&amp;nbsp; And from the same article the question is posed "Q: Please limit stock to 1 per person: some people are getting 20 and then selling them on craigslist and eBay for a major profit."&lt;br /&gt;&lt;br /&gt;Guys, let's not jump to any conclusions.&amp;nbsp; The TouchPad is dead.&amp;nbsp; They are not going to suddenly resurrect it (even if they &lt;i&gt;could &lt;/i&gt;they'd be sued for unfair trade practices). Or as HP puts it:&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;&lt;i&gt;Q: Will HP continue to make more TouchPads with webOS to meet the demand?&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;HP is discontinuing the development of webOS devices and is winding  down device operations within our fourth fiscal quarter 2011.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-1115482595008276583?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://h20435.www2.hp.com/t5/The-Next-Bench-Blog/More-TouchPads-on-the-Way/ba-p/68749' title='HP to produce final batch of TouchPads - Don&apos;t jump to any conclusions'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1115482595008276583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1115482595008276583'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/08/hp-to-produce-final-batch-of-touchpads.html' title='HP to produce final batch of TouchPads - Don&apos;t jump to any conclusions'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-3250927467739269489</id><published>2011-08-28T22:07:00.003-10:00</published><updated>2011-09-27T13:39:55.907-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LinkedIn'/><category scheme='http://www.blogger.com/atom/ns#' term='Workarounds'/><category scheme='http://www.blogger.com/atom/ns#' term='Spam'/><category scheme='http://www.blogger.com/atom/ns#' term='Hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='Scams'/><title type='text'>LinkedIn sending LinkedIn Network Updates email spam despite turning off all email settings</title><content type='html'>Are you still receiving "LinkedIn Network Updates" spam emails despite having turned off all the relevant email settings?&amp;nbsp; I certainly am and it looks like &lt;a href="http://www.linkedin.com/answers/using-linkedIn/ULI/869601-91659380"&gt;I&lt;/a&gt; &lt;a href="http://www.linkedin.com/answers/using-linkedIn/ULI/878812-7711125"&gt;am&lt;/a&gt; &lt;a href="http://www.linkedin.com/answers/using-linkedIn/ULI/841754-11208751"&gt;not&lt;/a&gt; &lt;a href="http://www.linkedin.com/answers/using-linkedIn/ULI/885050-9382253"&gt;alone&lt;/a&gt;.&amp;nbsp; And yes, it's been in this state for while now.&lt;br /&gt;&lt;br /&gt;Personally, I think it's some kind of LinkedIn scam to get you to use their service by annoying you with emails that just happen to slip through their mail out system.&lt;br /&gt;&lt;br /&gt;Just today, I received another one with the subject "LinkedIn Network Updates, 8/29/2011".&lt;br /&gt;&lt;br /&gt;Solution?&amp;nbsp; There is none.&amp;nbsp; You can't turn them off since it's a "known issue".&lt;br /&gt;&lt;br /&gt;Instead try these alternatives:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Report the email as spam if you can.&amp;nbsp; Eg. If you use Gmail, or Yahoo! click on the Spam button.&lt;/li&gt;&lt;li&gt;Email LinkedIn customer support to complain: &lt;a href="mailto:cs@linkedin.com"&gt;&lt;span class="gI"&gt;cs@linkedin.com&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Create an email filter to automatically send emails from LinkedIn into your Trash&lt;/li&gt;&lt;li&gt;Delete your LinkedIn account&lt;/li&gt;&lt;/ul&gt;Here's what I wrote to LinkedIn customer support on Aug 17, 2011:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;I still get irregular "LinkedIn Network Updates" spam emails despite turning off all the email settings in my account.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;I think it's just a ploy of LinkedIn's to get people to use it.&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Here is the reply I received 3 days ago:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;Hi Julian,&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Thanks for contacting LinkedIn Customer Service. I truly apologize for the delay in my response.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Yes, in fact, you've encountered a known issue. I'm very sorry for the inconvenience. Our engineering team is working on it but there’s no estimate as to how long that might take. We’ll do our best to keep you posted.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;In the meantime, I’ll gladly help if you have any other questions.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Regards,&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Holly&lt;/i&gt;&lt;br /&gt;&lt;i&gt;LinkedIn Customer Service&lt;/i&gt;&lt;/blockquote&gt;Here's a SpamAssassin Rule I implemented:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;header CMN_LINKEDIN_NU&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; X-LinkedIn-Template =~ /network_update_digest_type/&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;describe CMN_LINKEDIN_NU&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LinkedIn Network Updates&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;score CMN_LINKEDIN_NU&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10 &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-3250927467739269489?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/3250927467739269489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/3250927467739269489'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/08/linked-in-sending-linkedin-network.html' title='LinkedIn sending LinkedIn Network Updates email spam despite turning off all email settings'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-6736787926285556664</id><published>2011-08-22T00:39:00.003-10:00</published><updated>2011-09-19T11:44:52.516-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workarounds'/><category scheme='http://www.blogger.com/atom/ns#' term='Hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>How turn off update notifications in the Android Market 3.0</title><content type='html'>&lt;b&gt;Quick Answer:&lt;/b&gt; You can't. Voice your opinion &lt;a href="http://www.google.com/support/forum/p/Android+Market/thread?tid=6806621b09f868cf&amp;amp;hl=en"&gt;here&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;The other day I upgraded the Android Market to version 3.0 (currently 3.0.27) on my HTC Droid Incredible.&amp;nbsp; It's quite a bit different from the previous version with the main thing being it has screens with more featured apps and so forth.&amp;nbsp; Apart from that, the Android app market generally sucks.&lt;br /&gt;&lt;br /&gt;So after I upgraded the Android Market, I noticed that I started to receive notifications of updates of apps I currently had installed.&amp;nbsp; I remember turning off that setting previously since it's really annoying especially since some Android apps like to update frequently.&lt;br /&gt;&lt;br /&gt;So after a little digging, it seemed like there wasn't a setting to turn off update notifications in Android Market 3.0.&amp;nbsp; Here is a link to a &lt;a href="http://www.google.com/support/forum/p/Android+Market/thread?tid=6806621b09f868cf&amp;amp;hl=en"&gt;forum post&lt;/a&gt; which discusses the change (there are many related forum posts).&lt;br /&gt;&lt;br /&gt;Among the reasons why this change sucks:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; User want to chose to not be notified about updates&lt;/li&gt;&lt;li&gt;Users don't want to update some apps (&lt;a href="http://www.google.com/support/forum/p/Android+Market/thread?tid=4f9162eac9a24eef&amp;amp;hl=en"&gt;there are many reasons why&lt;/a&gt;) and don't want to be notified of updates&lt;/li&gt;&lt;li&gt;Users report poor battery life because of update notifications&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I followed &lt;a href="http://www.addictivetips.com/mobile/how-to-downgrade-android-market-3-0-26-to-old-market-tip/"&gt;these steps&lt;/a&gt; to downgrade to the factory version the Android Market which shipped with my phone:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The first step is to launch Settings from your home screen.&lt;/li&gt;&lt;li&gt;Once you are in the settings menu, tap on Applications then Manage Applications.&lt;/li&gt;&lt;li&gt;Now tap on the All tab at top and scroll down to Market app.&lt;/li&gt;&lt;li&gt;Once you can see the Market app, tap to select.&lt;/li&gt;&lt;li&gt;From the resulting options menu, tap on uninstall updates.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I now have Android Market version 1.82 and I have turned off update notifications and I feel great.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPDATE September 19, 2011:&lt;/b&gt; My HTC Droid Incredible was recently upgraded to Android version 2.3.4.&amp;nbsp; Unfortunately the Android Market version remains at 3.0.27.&amp;nbsp; I followed the same steps as specified and now I am running Android Market version 2.3.4 with update notifications turned off.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-6736787926285556664?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.google.com/support/forum/p/Android+Market/thread?tid=6806621b09f868cf&amp;hl=en' title='How turn off update notifications in the Android Market 3.0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/6736787926285556664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/6736787926285556664'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/08/how-turn-off-update-notifications-in.html' title='How turn off update notifications in the Android Market 3.0'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-878081282966990875</id><published>2011-08-12T23:17:00.001-10:00</published><updated>2011-08-12T23:29:15.906-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google+'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Sudoku Puzzles for Google+ Games. It does not make sense.</title><content type='html'>&lt;a href="http://googleblog.blogspot.com/2011/08/games-in-google-fun-that-fits-your.html"&gt;Google+ Games launched yesterday&lt;/a&gt; with 16 games.&lt;br /&gt;&lt;br /&gt;I tried out Sudoku Puzzles today and it did not make sense.&lt;br /&gt;&lt;br /&gt;It does not make sense in the way that only Google could provide.&lt;br /&gt;&lt;br /&gt;Here are the main issues:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The Easy level is way too hard. &amp;nbsp;On a scale of 1 to 10 in terms of the normal difficulty levels you find on other Sudoku games, it's a 6.5 when 'Easy' should be a 2.&lt;/li&gt;&lt;li&gt;The game offers no way of putting in notations or pencil marks. &amp;nbsp;Now I can finish a typical Sudoku game with a difficult level of 1 to 3 (out of 10) without pencil marks but 4+ and you need to start using notations to cover the possibilities. &amp;nbsp;So a Sudoku puzzle with a difficulty of 6.5 is basically impossible to finish without notations.&lt;/li&gt;&lt;/ul&gt;An Easy game on Google+ Games looks like this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-q--S1l8TMLQ/TkZDJA3t6iI/AAAAAAAAAhM/8bFHk_NZG7c/s1600/screenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-q--S1l8TMLQ/TkZDJA3t6iI/AAAAAAAAAhM/8bFHk_NZG7c/s320/screenshot.png" width="299" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A 5-star difficulty game on Yahoo! Games looks like this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-1Cuc2yt5xKE/TkZDbGWYQpI/AAAAAAAAAhQ/E3We2Ih1v4k/s1600/screenshot2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="238" src="http://4.bp.blogspot.com/-1Cuc2yt5xKE/TkZDbGWYQpI/AAAAAAAAAhQ/E3We2Ih1v4k/s320/screenshot2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Hmm, so the most difficult 5-star game on Yahoo! Games is actually easier than Easy on Google+?&lt;br /&gt;&lt;br /&gt;From a developer's perspective it makes you think:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Did the person who created this version for Google+ Games actually play Sudoku?&lt;/li&gt;&lt;li&gt;Was there actually any game usability testing?&lt;/li&gt;&lt;li&gt;Did the person who created this version of Sudoku just port the code over from an open source version of Sudoku and think that's all you needed to do because they don't actually play Sudoku?&lt;/li&gt;&lt;li&gt;Was the notation code feature just not added because it required extra programming (eg. Hold down Shift to make a notation!) that again the developer didn't worry about or feel was necessary because they don't actually play Sudoko?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;To actually finish a game at the Easy level, I needed to bust out a pen and piece of paper to note down the notations I would have added in the first place had their been a notations feature in the game. &amp;nbsp;I wanted to finish one to see what would happen on the conclusion of a successfully solved game and it was a really strange feeling because there is no leader board. &amp;nbsp;So nothing was achieved. In a strange way, I thought, is this Google's version of a cruel joke.&lt;br /&gt;&lt;br /&gt;The thing is, when you put out a games launch, it's meant to not have these kinds of issues. &amp;nbsp;Google paid for these other high profile titles for launch day such as Angry Birds and Zynga Poker and you tarnish the initial line up with a half baked version of Sudoku that does not make any sense to play.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-878081282966990875?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://googleblog.blogspot.com/2011/08/games-in-google-fun-that-fits-your.html' title='Sudoku Puzzles for Google+ Games. It does not make sense.'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/878081282966990875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/878081282966990875'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/08/sudoku-puzzles-for-google-games-it-does.html' title='Sudoku Puzzles for Google+ Games. It does not make sense.'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-q--S1l8TMLQ/TkZDJA3t6iI/AAAAAAAAAhM/8bFHk_NZG7c/s72-c/screenshot.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-1818442194654455830</id><published>2011-08-10T11:18:00.011-10:00</published><updated>2011-09-07T14:10:44.686-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CentOS'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>CentOS 6 minimal install CD. You may not want to bother with it.</title><content type='html'>I tried out the &lt;a href="http://lists.centos.org/pipermail/centos-announce/2011-July/017660.html"&gt;CentOS 6 minimal install CD&lt;/a&gt; yesterday when installing CentOS 6 for the first time on a virtual server. &amp;nbsp;Just a precaution: It is really minimal.&amp;nbsp; There are no package selection options during the install process and lots of things &lt;span class="Apple-style-span" style="font-family: inherit;"&gt;which I thought would be on a minimal install (you know based on past releases, that kind of thing) were missing which was frustrating.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;I think I'll use the Netinstall or "&lt;span class="Apple-style-span" style="white-space: pre;"&gt;LightWeightServer (LWS) CD" (or will the LWS bite me in the ass too?) &lt;/span&gt;in future (Why does CentOS 6 span over 2 DVD's? A lot of my servers don't have DVD drives). &amp;nbsp;Now previously, I only needed the first CentOS CD out of the multiple CD set to get my previous 'minimal' install working.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For example, CentOS 6 minimal install doesn't ship with Perl, Cron or a MTA.&lt;br /&gt;&lt;br /&gt;So here are some other things I needed:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;yum install perl&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;yum install crontabs&lt;/div&gt;&lt;div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;yum install postfix&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;yum install sudo&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;yum install wget&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;yum install vim-enhanced&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;yum install git&lt;br /&gt;yum install bind-utils &lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;If you install a service (such as crond), you will most likely need to then enable that service:&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span class="Apple-style-span"&gt;chkconfig crond on&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;And then start up the service:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/etc/init.d/crond start&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Why didn't I just start again?&amp;nbsp; You know the scenario. &amp;nbsp;It's a busy work day so you take a gamble and go with the minimal install CD... &amp;nbsp;Then you start setting up your server and it's all like "OK, where the hell is Perl?" &amp;nbsp;Then 30 minutes later, "OK, why is there no /etc/crontab?" &amp;nbsp;And sooner or later you've reached the point in time where you've spent so much time with the server, you can't go back and perform a reinstall. &amp;nbsp;You may as well keep going.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Just today after work I thought to myself "You know, I don't recall receiving a Logwatch email over night".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPDATE:&lt;/b&gt; August 22 @ 12:53am.&amp;nbsp; This blog post seems to have received a lot of hits. Has the CentOS minimal install CD all bitten you in the ass?&amp;nbsp; Has this blog post saved you some time?&amp;nbsp; Let me know in the comments below!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPDATE: &lt;/b&gt;September 7 @ 1:59pm.&amp;nbsp; As a commenter points out you can install the Base group of packages by running "yum groupinstall base".&amp;nbsp; You will probably be surprised to see what is missing.&amp;nbsp; I was surprised that I was missing some more essentials such as: at, lsof, man-pages, tcpdump, time.&amp;nbsp; IMHO (and others who have reached this page) any  'minimal install CD' should have the base group installed at a minimum. It is what we have come to expect and know when we have selected a 'minimal install' in the past.&amp;nbsp; It  may increase the CD download size slightly but it makes sense.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-1818442194654455830?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://lists.centos.org/pipermail/centos-announce/2011-July/017660.html' title='CentOS 6 minimal install CD. You may not want to bother with it.'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1818442194654455830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1818442194654455830'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/08/centos-6-minimal-install.html' title='CentOS 6 minimal install CD. You may not want to bother with it.'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-4640659100037183948</id><published>2011-07-19T23:25:00.000-10:00</published><updated>2011-08-31T23:52:02.798-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='App Store'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><title type='text'>A quick survey of the App Store on my iPad - Market size, strategy and audience matter</title><content type='html'>I was doing some market research for an upcoming app that I'm mentally planning out and I did a quick survey on my iPad.&amp;nbsp; There are currently 105,233 apps that can be installed for the iPad.&lt;br /&gt;&lt;br /&gt;This includes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;iPad only Apps&lt;/li&gt;&lt;li&gt;Apps that are built for iPhone and iPad (Universal)&lt;/li&gt;&lt;li&gt;Apps that are built for iPhone but also can run on iPad&lt;/li&gt;&lt;/ul&gt;I'm not totally sure where the other 300,000 apps are.&amp;nbsp; Are they apps which are built for iPhone but specifically exclude the iPad/iPod touch?&amp;nbsp; Nonetheless &lt;a href="http://148apps.biz/app-store-metrics/"&gt;this site has more stats&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here is the break down of apps per category: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Books - 20028&lt;/li&gt;&lt;li&gt;Business - 4195&lt;/li&gt;&lt;li&gt;Education - 12557&lt;/li&gt;&lt;li&gt;Entertainment - 8377&lt;/li&gt;&lt;li&gt;Finance - 1666&lt;/li&gt;&lt;li&gt;Games - 15728&lt;/li&gt;&lt;li&gt;Healthcare &amp;amp; Fitness - 1936&lt;/li&gt;&lt;li&gt;Lifestyle - 6717&lt;/li&gt;&lt;li&gt;Medical - 2054&lt;/li&gt;&lt;li&gt;Music - 3558&lt;/li&gt;&lt;li&gt;Navigation - 1929&lt;/li&gt;&lt;li&gt;News - 3385&lt;/li&gt;&lt;li&gt;Photography - 2372&lt;/li&gt;&lt;li&gt;Productivity - 3099&lt;/li&gt;&lt;li&gt;References - 4533&lt;/li&gt;&lt;li&gt;Social Networking - 1179&lt;/li&gt;&lt;li&gt;Sports - 2238&lt;/li&gt;&lt;li&gt;Travel - 4930&lt;/li&gt;&lt;li&gt;Utilities - 4326&lt;/li&gt;&lt;li&gt;Weather - 424&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;It's pretty interesting because it's kind of like the Dewey Decimal system where books are divided up into 10 main classes.&amp;nbsp; It's a system which felt strange to me growing up because you would have a disproportionate amount of books dedicated to different classes and numbers.&amp;nbsp; I remember section on computers because there were always crammed at the start of the series from 000 to 006.&amp;nbsp; It meant that you were always wedged at the outer limits and usually the corners of the library.&amp;nbsp; So when you break it down and define categories you will always have disproportionate sample set sizes.&lt;br /&gt;&lt;br /&gt;Anyway, what interests me is the concept of 'market' size.&amp;nbsp; In business you have industries and markets.&amp;nbsp; For example, I learned early on in my career working for the transportation industry that being an industry that's based around the price of fuel that profits come from heavy efficiencies and cost cutting.&amp;nbsp; But generally it's a low margin industry.&amp;nbsp; Eventually if a market has low margins and players become established there will be consolidation as the market can't sustain so many companies.&lt;br /&gt;&lt;br /&gt;It's the same with apps.&amp;nbsp; Market size makes a difference.&amp;nbsp; What is the current size of an app store category vs. average sell price vs. users who will buy an app?&amp;nbsp; Is an undersized market just an undersized category or is it an under served market where your app will stand out with less competition?&lt;br /&gt;&lt;br /&gt;The largest overall category on the App Store is Games which is so big it's the only category on the iPad App Store application which is broken out into sub-categories.&amp;nbsp; By recent count there are 71,114 active games in the App Store.&amp;nbsp; If you decide to step into such a well established market you need do your research.&amp;nbsp; It's like deciding to put out a restaurant in a food court at the shopping mall.&lt;br /&gt;&lt;br /&gt;If we tackle games, the questions you need to ask yourself when even planning to make a game are:&lt;br /&gt;&amp;nbsp;- What is the current landscape for my potential game?&amp;nbsp; Are there similar competing games?&lt;br /&gt;&amp;nbsp;- Is the market for this type of game saturated (Angry Birds clones)?&lt;br /&gt;&amp;nbsp;- If the market is not saturated then is there a pre-established audience?&lt;br /&gt;&amp;nbsp;- If there is no pre-established audience then does my game have instant widespread appeal?&lt;br /&gt;&lt;br /&gt;To put out a game, you need to understand the App Store game.&amp;nbsp; I liken it to the music industry which has charts.&amp;nbsp; You can work months and years to make an album but if your trends are wrong then all your up front costs will never have a chance to recoup.&amp;nbsp; If you fail to rank and gather air play in the first few weeks, you may never have a hit on your hands.&lt;br /&gt;&lt;br /&gt;The consequences of not doing your research are you may end up submitting your app into an over saturated market hitting all the wrong selling points.&amp;nbsp;&amp;nbsp; You may end up scrambling to build a strategy when it's too late.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-4640659100037183948?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/4640659100037183948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/4640659100037183948'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/07/quick-survey-of-app-store-on-my-ipad.html' title='A quick survey of the App Store on my iPad - Market size, strategy and audience matter'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-7028365647601029518</id><published>2011-07-19T10:19:00.006-10:00</published><updated>2011-11-02T15:13:40.361-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='App Store'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google+ and their poor app submission to the iTunes App Store</title><content type='html'>This is funny.&amp;nbsp; So the Google+ App is now live on the iTunes App Store and &lt;a href="https://plus.google.com/111499908439497508351/posts/dESepcDjBZi"&gt;Punit Soni the Lead Product Manager, Google+ Mobile writes&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;When we launched, the App Store started serving a previous test version of the App which didn't have the stability and fixes that the latest version had. It started serving the correct version a little later.&lt;/blockquote&gt;&lt;br /&gt;And then this comment from +Jim Thorpe which is right on the money:&lt;br /&gt;&lt;blockquote&gt;&lt;span class="a-f-i-W-p"&gt;That's some pretty cautiously worded spin, there, &lt;span class="proflinkWrapper"&gt;&lt;span class="proflinkPrefix"&gt;+&lt;/span&gt;&lt;a class="proflink" href="https://plus.google.com/111499908439497508351"&gt;Punit Soni&lt;/a&gt;&lt;/span&gt;.  You know full well that you (Google) submitted a broken version. It's  your screw-up. The AppStore doesn't have access to your pre-release  builds. You submit a binary, and if it's the wrong one, it's your fault.  You're blaming the screw-up on Apple, and your commenters are running  with it. Correct them.&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span class="a-f-i-W-p"&gt;Punit Soni, how about thanking Apple for fast track approving your update for the the mistake that your team made in the submission process?&amp;nbsp; Man, I wish I had that kind of 1 hour and 40 minute turn around when I submit Apps and updates.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="a-f-i-W-p"&gt;On top of that, I understand that you don't have iPad support which would benefit from a new App design how about these obvious issues:&lt;/span&gt;&lt;br /&gt;&lt;span class="a-f-i-W-p"&gt;&amp;nbsp;- No iPod compatibility&lt;/span&gt;&lt;br /&gt;&lt;span class="a-f-i-W-p"&gt;&amp;nbsp;- &lt;/span&gt;&lt;span class="a-f-i-W-p"&gt;Doesn't work with iOS5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="a-f-i-W-p"&gt;In the comments to the post, Punit writes:&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="a-f-i-W-p"&gt;Please give us time. We will have support for all those devices soon :)&lt;/span&gt;&lt;/i&gt;&lt;span class="a-f-i-W-p"&gt;&lt;i&gt; &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="a-f-i-W-p"&gt;Seriously, you have a team working on Google+ Mobile.&amp;nbsp; In future, take 1 day to work on the iPod compatibility issues.&amp;nbsp; Take 1 day to work on the iOS 5 compatibility issues.&amp;nbsp; And then submit your App properly as it gives a very bad initial impression when you're trying to build your social network.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-7028365647601029518?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/7028365647601029518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/7028365647601029518'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/07/google-and-their-poor-app-submission-to.html' title='Google+ and their poor app submission to the iTunes App Store'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-4161578600565253599</id><published>2011-07-13T23:24:00.001-10:00</published><updated>2011-08-31T23:52:02.760-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='DSLR'/><category scheme='http://www.blogger.com/atom/ns#' term='App Store'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><title type='text'>My experience so far with the App Store as in independent developer - Some tips for new iOS developers</title><content type='html'>It has been around a month and a half since my app &lt;a href="http://itunes.apple.com/us/app/mirrorless-lenses/id428755110?mt=8&amp;amp;ls=1"&gt;Mirrorless Lenses&lt;/a&gt; was launched on the App Store.&amp;nbsp; This was my first app and my second app was submitted last night.&amp;nbsp; A lot of the reasons for writing my second app were based on what I had learned from my first app.&amp;nbsp; This post covers some things...&amp;nbsp; Quickly.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Just do it&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you're sitting on the fence about writing apps (for the Mac App Store, iPhone/iPad App Store, Android Market, etc...) then just do it.&amp;nbsp; Put out your first app.&amp;nbsp; Putting out your first app makes you learn the rules of the game such as building your app, working with designers, coming up with feature lists, seeing how iTunes Connect works, gathering your official work documents, signing up as an iOS developer and getting early access to stuff such as iOS 5, etc...&amp;nbsp; Basically there's a lot of stuff that goes on before you have finished your first app and hit Upload to iTunes Connect.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Check out the charts and download lot of apps&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Do your research.&amp;nbsp; Don't just look at the Top 10 apps.&amp;nbsp; Look at the Top 200.&amp;nbsp; Read descriptions and take notes along the way.&amp;nbsp; Read the reviews.&lt;br /&gt;&lt;br /&gt;If you see an app that looks like something you'd like to make then think to yourself 'How can I improve on this?'&amp;nbsp; A lot of reviews apps point out features that users would love to see added.&amp;nbsp; 'This app would be perfect if it just did...'&amp;nbsp; Perhaps the developer of the app doesn't want to take the app in that direction or it would require a big rewrite and interface redesign to implement.&amp;nbsp; Take that as a suggestion for something you should implement.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Make something you actually want to make&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you're an independent developer then a lot of the time you're either working for yourself or programming while maintaining a day job.&amp;nbsp; From experience programming at night after a long day at work is pretty difficult.&amp;nbsp; Your brain is mud after 10pm and complex logical thoughts don't come as easily.&amp;nbsp; You need to have passion and commitment.&amp;nbsp; It's hard to have passion and commitment when you're working on something you're not excited or interested in.&lt;br /&gt;&lt;br /&gt;If you don't like Games then don't make a game.&amp;nbsp; It will show in your work.&amp;nbsp; Or if you don't like games, then challenge yourself and make a game that you (and you're pretty sure others) will enjoy.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Make your app 'sticky'&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A lot of apps lose their appeal straight away and never get opened up ever again.&amp;nbsp; Think of features which will get your user coming back and reusing it.&amp;nbsp; Think 'What would make a user come back and use this everyday?'&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pace yourself and set achievable goals&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;When working on something on your spare time it's easy to get distracted by things at 11pm.&amp;nbsp; There's feeds to catch up on, Facebook status updates to check up on, Tweets to re-Tweet, etc...&amp;nbsp; It's easy to look at your overall goal of writing an app and get overwhelmed into doing nothing.&lt;br /&gt;&lt;br /&gt;Set small goals for yourself each programming session.&amp;nbsp; At the start of every programming session, I open up a text document and write down achievable items just for that session.&amp;nbsp; I always add a little bit more so I have a harder goal to work towards.&lt;br /&gt;&lt;br /&gt;Here are some example work items from my first app:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create Favorites model&lt;/li&gt;&lt;ul&gt;&lt;li&gt;One to many relationship with lenses&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Create linking plist files and functions&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Create functions to return BrandMount and Lens objects&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Add Four Thirds lenses (about 26 of them)&lt;/li&gt;&lt;li&gt;Implement&lt;/li&gt;&lt;ul&gt;&lt;li&gt;(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Add Launch Images&lt;/li&gt;&lt;li&gt;Create iPhone and iPad screen shots for App Store&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Think of monetization and experiment&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I first launched my app as a free and left it like that for a little over month.&amp;nbsp; If this is your first app then I'd recommend doing that as it gives you a good user base and depending on your app you should be able to gather a few thousand installs.&lt;br /&gt;&lt;br /&gt;The iOS App Store allows to switch your app from free to paid pretty easily.&amp;nbsp; Note that if you do that you will lose your rankings.&amp;nbsp; For my second app, I'm starting it out as paid from the get go.&lt;br /&gt;&lt;br /&gt;Experiment with price to see if it effects downloads.&lt;br /&gt;&lt;br /&gt;Another thing to ask is 'What do I need to add to my app to make people download it?'&amp;nbsp; Would I spend $x on my app.&lt;br /&gt;&lt;br /&gt;Start thinking of future apps and the different models for monetization.&amp;nbsp; Are you interested in displaying Ads?&amp;nbsp; If your app has wide appeal, the potential for hundreds of thousands of downloads, lots of re-use then I think Ads sounds good.&amp;nbsp; If you're thinking about In App purchases then this effects your app and how it functions and is designed.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Push out an update&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;You should receive some feedback on your first app or your users may report bugs (and crashes).&amp;nbsp; So get coding and push out an update.&amp;nbsp; Again, putting out an update teaches you a lot about the process.&amp;nbsp; For me, my second update took longer for Apple to approve as it was stuck in 'Upload Received' for over 24 hours. Normally this status clears in just minutes. I contacted Apple as this is something only they can fix and my update was reviewed and approved a few days later.&lt;br /&gt;&lt;br /&gt;I've put out 2 updates and I've been amazed at the speed of which people download updates.&amp;nbsp; I would say 50% of your users update within the first 2 days and 90% of your users update within a week.&amp;nbsp; You will also notice that your app reviews only show the reviews for the latest update on the front page of the App's page.&amp;nbsp; So that is something to consider.&amp;nbsp; Also if someone reviewed your app at an earlier version, and then reviews it again, it will only show up in the latest update so there is only one review permitted per user.&lt;br /&gt;&lt;br /&gt;Since 90% of your users will update in the first week, I would recommend waiting at least 2 weeks before putting out an update.&amp;nbsp; Both of my updates have been quite substantial in that they added new major features each time.&amp;nbsp; So consider what you want to package up into an update since it needs to go through the review process and users will read your notes on what is new.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-4161578600565253599?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://itunes.apple.com/us/app/mirrorless-lenses/id428755110?mt=8&amp;ls=1' title='My experience so far with the App Store as in independent developer - Some tips for new iOS developers'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/4161578600565253599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/4161578600565253599'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/07/my-experience-so-far-with-app-store-as.html' title='My experience so far with the App Store as in independent developer - Some tips for new iOS developers'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-1778739114394190082</id><published>2011-06-24T01:04:00.000-10:00</published><updated>2011-09-01T00:04:36.400-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><category scheme='http://www.blogger.com/atom/ns#' term='MILC'/><category scheme='http://www.blogger.com/atom/ns#' term='DSLR'/><category scheme='http://www.blogger.com/atom/ns#' term='Mirrorless'/><title type='text'>Thinking ahead to the future of consumer mirrorless and DSLR cameras</title><content type='html'>Thinking ahead and as a DSLR owner as well as a cell phone owner, 2 things dawn on you once you own your first DSLR:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Holy crap, the image quality of my DSLR kicks ass.&amp;nbsp; I will never go back to point and shoot sensors ever again.&lt;/li&gt;&lt;li&gt; Holy crap, this whole size and weight thing is inconvenient.&lt;/li&gt;&lt;/ul&gt;Which is why I think &lt;a href="http://itunes.apple.com/us/app/mirrorless-lenses/id428755110?mt=8&amp;amp;ls=1"&gt;mirrorless lens cameras&lt;/a&gt; are the future.&lt;br /&gt;&lt;br /&gt;The future meaning, I think they will take significant marketshare from DSLR's.&amp;nbsp; Cell phone cameras will continue to improve which will eat into the lower end point and shoot market.&amp;nbsp; Costs in turn will come down for mirrorless cameras and technology will improve.&amp;nbsp; With the latest generation of Panasonic micro four thirds cameras, mirrorless cameras now have auto-focus speeds which rival DSLR's.&lt;br /&gt;&lt;br /&gt;The opening paragraph to &lt;a href="http://www.digital-photography-school.com/sony-nex-5-review-2"&gt;this review of the Sony NEX 5&lt;/a&gt; I just read pretty much sums it up:&lt;br /&gt;&lt;b&gt;Here was my dilemma&lt;/b&gt;: I love photography and want to  have a camera with me as often as possible, but carrying a DSLR at all  times is less than practical.  But I want better image quality than most  cellphones and point-and-shoots are capable of.  Thankfully, a new  segment of cameras has appeared on the market that bridges the gap  between these two types of cameras…  small enough to fit in your pocket,  but no sacrifice in image quality.  With large image sensors and  interchangeable lenses, these cameras offer much of a DSLR’s  functionality but with a much smaller physical footprint.&lt;br /&gt;&lt;div style="background-color: transparent; border: medium none; color: black; overflow: hidden; text-align: left; text-decoration: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-1778739114394190082?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://itunes.apple.com/us/app/mirrorless-lenses/id428755110?mt=8&amp;ls=1' title='Thinking ahead to the future of consumer mirrorless and DSLR cameras'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1778739114394190082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1778739114394190082'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/06/thinking-ahead.html' title='Thinking ahead to the future of consumer mirrorless and DSLR cameras'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-4863897630248019890</id><published>2011-06-10T15:47:00.000-10:00</published><updated>2011-06-10T15:53:41.383-10:00</updated><title type='text'>Simply run a script at start up on FreeBSD or Linux using cron</title><content type='html'>I had the scenario where a particular program would leave a lock file if it failed to complete the job after a reboot.&lt;br /&gt;&lt;br /&gt;So the fix was to remove the lock file after a reboot... Very tedious.&lt;br /&gt;&lt;br /&gt;I found the easiest way to remove the lock file on start up was to use cron.&lt;br /&gt;&lt;br /&gt;cron has a special built in string which allows you to run something once at start up (from 'man 5 cron'):&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Instead of the first five fields, one of eight special strings may&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;appear:&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;string          meaning&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;------          -------&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;@reboot         Run once, at startup.&lt;/div&gt;&lt;br /&gt;You can test this out by running a test which creates a test file (add this to /etc/crontab):&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;@reboot                                 cricket   touch /tmp/testfile&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-4863897630248019890?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/4863897630248019890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/4863897630248019890'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/06/simply-run-script-at-start-up-on.html' title='Simply run a script at start up on FreeBSD or Linux using cron'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-2053211504452347561</id><published>2011-06-03T12:05:00.001-10:00</published><updated>2011-07-13T23:57:01.928-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><title type='text'>cp: the --reply option is deprecated; use -i or -f instead</title><content type='html'>When copying a file in a script, you usually don't want any unexpected prompts.&lt;br /&gt;&lt;br /&gt;For example, the copy command:&lt;br /&gt;&lt;pre name="code" class="bash"&gt;$ cp foo bar&lt;br /&gt;cp: overwrite `bar'? n&lt;/pre&gt;&lt;br /&gt;In older versions of the cp command we could use add '--reply=yes'.&amp;nbsp; This isn't the case anymore:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ cp --reply=yes foo bar&lt;br /&gt;cp: the --reply option is deprecated; use -i or -f instead&lt;/div&gt;&lt;br /&gt;Except -f still prompts for interaction.&lt;br /&gt;&lt;br /&gt;The solution is to use rsync instead:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ rsync --ignore-existing foo bar&lt;/div&gt;&lt;br /&gt;From: &lt;a href="http://groups.google.com/group/gnu.bash.bug/browse_thread/thread/8fba23b56728cd8c/f991ace450e82fb4?pli=1"&gt;Here&amp;nbsp;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-2053211504452347561?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/2053211504452347561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/2053211504452347561'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/06/cp-reply-option-is-deprecated-use-i-or.html' title='cp: the --reply option is deprecated; use -i or -f instead'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-8479039447347046868</id><published>2011-05-27T00:32:00.000-10:00</published><updated>2011-06-10T15:53:13.887-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App Store'/><title type='text'></title><content type='html'>What I consider 'good' Apps are ones that serve some function.&amp;nbsp; Well to elaborate, it has a &lt;i&gt;stickiness&lt;/i&gt; which keeps you coming back.&lt;br /&gt;&lt;br /&gt;One feature someone mentioned was to add a Depth of Field calculator to the Mirrorless Lenses App.&lt;br /&gt;&lt;br /&gt;I like that idea because it takes my App from a simple reference tool to on that could be used on a daily basis.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-8479039447347046868?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/8479039447347046868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/8479039447347046868'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/05/what-i-consider-good-apps-are-ones-that.html' title=''/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-4171576616405087482</id><published>2011-05-27T00:03:00.000-10:00</published><updated>2011-08-31T23:52:02.777-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='App Store'/><title type='text'></title><content type='html'>My first App &lt;a href="http://julianyap.com/mirrorless"&gt;Mirrorless Lenses&lt;/a&gt; just launched on the App Store.&lt;br /&gt;&lt;br /&gt;I received an email from a guy Ed Turner:&lt;br /&gt;&lt;blockquote&gt;Julian,&lt;br /&gt;&lt;br /&gt;I was just checking out your  app in the App Store.  Found it among the New Releases.  Congrats, looks pretty good.&lt;br /&gt;&lt;br /&gt;Happy with the amount of downloads so far?&lt;br /&gt;&lt;br /&gt;I've worked with a few app developers over the last few months, and  I've learned that there's two aspects that you need to focus on to be  really successful promoting apps in the App Store.  I'd be happy to  share what I've learned if you're interested?  Just let me know and I'll  send you over a quick overview.  (I'm not trying to sell you  information, just don't want to bother you if you're not interested in  what I have to share.)&lt;br /&gt;&lt;br /&gt;Best of luck,&lt;br /&gt;Ed Turner&lt;/blockquote&gt;&lt;br /&gt;Anyway, as you can see, Ed's technique is to check out the newly released Apps, look up the contact details for the developer(s) and send them one of these emails.&lt;br /&gt;&lt;br /&gt;I &lt;a href="http://www.mobile-app-marketing-makeover.com/about.html"&gt;looked him up&lt;/a&gt; and he has a site.&amp;nbsp; His service comes in 2 parts, to rewrite your App Description and to send out a press release to people.&lt;br /&gt;&lt;br /&gt;It sounds like a pretty useful service that he provides from what I gather from his site.&amp;nbsp; Things such as SEO on the other hand is something I'd consider unethical and a waste of energy.&lt;br /&gt;&lt;br /&gt;Getting an App out there teaches you a lot.&amp;nbsp; Just that initial impact of learning how the game works.&lt;br /&gt;&lt;br /&gt;So this is the part of Ed's site that I thought was interesting about App Descriptions:&lt;br /&gt;&lt;i&gt;... paid Apps will trigger the buyer to read the description. &amp;nbsp;Would you spend money on an app just because it had a pretty icon, or would you read to find out if it had a specific feature you needed?&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;It was pretty insightful reading the sample descriptions on his site and thinking about future Apps I'll put out and also thinking back to Apps I've bought in the past.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-4171576616405087482?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/4171576616405087482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/4171576616405087482'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/05/my-first-app-mirrorless-lenses-just.html' title=''/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-7664432768223330047</id><published>2011-05-10T09:38:00.000-10:00</published><updated>2011-05-10T09:38:19.980-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outlook'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>How To Disable Junk Mail Filter in Outlook 2010</title><content type='html'>This took a while to find since Microsoft likes to change their menu system every chance they get.&lt;br /&gt;&lt;br /&gt;Here are the details.&lt;br /&gt;&lt;br /&gt;Step 1 - Home Tab, Delete Section, Click Junk Button, Click Junk Email Options.&lt;br /&gt;Step 2 - Click Options Tab, Click No Automatic Filtering&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-7664432768223330047?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/7664432768223330047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/7664432768223330047'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/05/how-to-disable-junk-mail-filter-in.html' title='How To Disable Junk Mail Filter in Outlook 2010'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-6872233014337001466</id><published>2011-05-04T10:00:00.003-10:00</published><updated>2011-07-13T23:50:26.438-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Apache log rotation with FreeBSD</title><content type='html'>You know I wish that log rotation on FreeBSD came built in.&amp;nbsp; For example, install Apache, and the default log rotation is set up for you and ready to go...&amp;nbsp; A bit like Linux.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;FreeBSD uses NewSysLog to rotate log files.&lt;br /&gt;&lt;br /&gt;NewSysLog is installed and running by default on FreeBSD servers, so  what you need to do is add your log files to  /etc/newsyslog.conf&lt;br /&gt;&lt;br /&gt;To rotate Apache log, add following files to end of /etc/newsyslog.conf&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Apache&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/var/log/httpd-access.log&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 644&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; @T00&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /var/run/httpd.pid 30 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/var/log/httpd-error.log&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 644&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; @T00&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /var/run/httpd.pid 30&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To check out the options of this file:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;man 5 newsyslog.conf&lt;/div&gt;&lt;br /&gt;Run this to check everything is set up OK:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sudo newsyslog -v&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You should then see: &lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/var/log/httpd-access.log &amp;lt;7&amp;gt;: --&amp;gt; will trim at Thu May&amp;nbsp; 5 00:00:00 2011&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/var/log/httpd-error.log &amp;lt;7&amp;gt;: --&amp;gt; will trim at Thu May&amp;nbsp; 5 00:00:00 2011&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mostly from here: http://blog.hostonnet.com/freebsd-log-file-rotation-with-newsyslog&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-6872233014337001466?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/6872233014337001466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/6872233014337001466'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/05/apache-log-rotation-with-freebsd.html' title='Apache log rotation with FreeBSD'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-1062683705335080799</id><published>2011-04-26T23:43:00.002-10:00</published><updated>2011-07-13T23:27:25.051-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><category scheme='http://www.blogger.com/atom/ns#' term='FUD'/><title type='text'>O'Reilly media researchers spreading Anti-Apple FUD...  Right in time for the O'Reilly Where 2.0 conference</title><content type='html'>I  have inspected the SQLite database file that contains this Location data that has recently been in the news.&lt;br /&gt;&lt;br /&gt;If you have ever sync'd up and backed up your iOS device you can find the backups here:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/Users/[YOUR USER NAME]/Library/Application Support/MobileSync/Backup/&lt;/div&gt;&lt;br /&gt;To find the database file run the command:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;grep -R CellLocation *&lt;/div&gt;&lt;br /&gt;You can then run the SQLite database through SQLite and check it out for yourself:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ sqlite3 [FILE NAME]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SQLite version 3.6.12&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Enter ".help" for instructions&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Enter SQL statements terminated with a ";"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sqlite&amp;gt; .tables&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CdmaCellLocation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CellLocationCounts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CdmaCellLocationBoxes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CellLocationHarvest&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CdmaCellLocationBoxes_node&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CellLocationHarvestCounts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CdmaCellLocationBoxes_parent&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CellLocationLocal&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CdmaCellLocationBoxes_rowid&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CellLocationLocalBoxes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CdmaCellLocationCounts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CellLocationLocalBoxes_node&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CdmaCellLocationHarvest&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CellLocationLocalBoxes_parent&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CdmaCellLocationHarvestCounts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CellLocationLocalBoxes_rowid&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CdmaCellLocationLocal&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CellLocationLocalCounts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CdmaCellLocationLocalBoxes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CompassCalibration&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CdmaCellLocationLocalBoxes_node&amp;nbsp;&amp;nbsp;&amp;nbsp; Fences&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CdmaCellLocationLocalBoxes_parent&amp;nbsp; Location&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CdmaCellLocationLocalBoxes_rowid&amp;nbsp;&amp;nbsp; LocationHarvest&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CdmaCellLocationLocalCounts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LocationHarvestCounts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Cell&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TableInfo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CellLocation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wifi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CellLocationBoxes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WifiLocation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CellLocationBoxes_node&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WifiLocationCounts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CellLocationBoxes_parent&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WifiLocationHarvest&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CellLocationBoxes_rowid&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WifiLocationHarvestCounts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Yes,  it contains cell location data in the CellLocation table and yes, it  does also contain Wifi location data in the WifiLocation table but all  this is old news.&amp;nbsp; This location data has always been around and has  been available via the Core Location API's.&amp;nbsp; What we are looking at  nothing more than log files.&amp;nbsp; My guess is that Apple is preparing up a  formal statement and will put out an iOS update which will increase the  purge time of this data so that fewer records are kept as well as fully  turn off this logging if you choose to disable Location data in your iOS  device settings.&amp;nbsp; But there is no evidence that Apple is collecting  this data and submitting it to themselves (let alone any 3rd party).&lt;br /&gt;&lt;br /&gt;I  found &lt;a _mce_href="https://alexlevinson.wordpress.com/2011/04/21/3-major-issues-with-the-latest-iphone-tracking-discovery/" href="https://alexlevinson.wordpress.com/2011/04/21/3-major-issues-with-the-latest-iphone-tracking-discovery/"&gt;a great write up from an expert in the field&lt;/a&gt;  who has written a book on iOS Forensic Analysis prior to this recent  research 'announcement.'&amp;nbsp; This is mostly anti-Apple FUD campaign.  The   'announcement' of this 'discovery' by this particular group was timed   for the Where 2.0 conference.  Just a big publicity stunt by O'Reilly  media that was blown totally out of  proportion.&amp;nbsp; I wouldn't be  surprised if Apple sued O'Reilly media for defamation.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;UPDATE, April 27th at 11:08am: &lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Well, it looks like I was right and &lt;span id="goog_870347262"&gt;&lt;/span&gt;&lt;a href="http://www.apple.com/pr/library/2011/04/27location_qa.html"&gt;Apple did just release a press release&lt;span id="goog_870347263"&gt;&lt;/span&gt;&lt;/a&gt;.&amp;nbsp; In their press release, they do refer to this database as just a cache...&amp;nbsp; And like I guessed, they're putting out a quick update to iOS that will:&lt;br /&gt;&lt;br /&gt;&lt;ul class="square"&gt;&lt;li&gt;reduces the size of the crowd-sourced Wi-Fi hotspot and cell tower database cached on the iPhone,&lt;/li&gt;&lt;li&gt;ceases backing up this cache, and&lt;/li&gt;&lt;li&gt;deletes this cache entirely when Location Services is turned off.&lt;/li&gt;&lt;/ul&gt;And in the next major iOS software release the cache will also be encrypted on the iPhone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-1062683705335080799?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1062683705335080799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1062683705335080799'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/04/oreilly-media-researchers-spreading.html' title='O&apos;Reilly media researchers spreading Anti-Apple FUD...  Right in time for the O&apos;Reilly Where 2.0 conference'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-7582596674521161168</id><published>2011-04-23T21:51:00.000-10:00</published><updated>2011-08-22T00:43:40.887-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hacks'/><title type='text'>Work around for Cinavia on PS3 by changing the time settings</title><content type='html'>Here are 2 work arounds for Cinavia. &amp;nbsp;Both use the same method of changing the time settings.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Method 1 (longer but preserves time settings):&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Play until the Cinavia banner kicks in (after about 20mins).&lt;/li&gt;&lt;li&gt;Quit the movie, and go to date/time settings.&lt;/li&gt;&lt;li&gt;Set the time one hour back.&lt;/li&gt;&lt;li&gt;Resume playback and the&amp;nbsp;Cinavia&amp;nbsp;banner will kick in again.&lt;/li&gt;&lt;li&gt;Quit movie again and go back to date/time.&lt;/li&gt;&lt;li&gt;Correct the time by moving the hour forward.&lt;/li&gt;&lt;li&gt;Resume playback and you’ll get another 20 mins.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Method 2:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Play until the Cinavia banner kicks in (after about 20mins).&lt;/li&gt;&lt;li&gt;Quit the movie, and go to date/time settings.&lt;/li&gt;&lt;li&gt;Change the time zone to any other and change the date to a different date (say 2042)&lt;/li&gt;&lt;li&gt;Resume playback and you’ll get another 20 mins.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-7582596674521161168?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/7582596674521161168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/7582596674521161168'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/04/work-around-for-cinavia-on-ps3-by.html' title='Work around for Cinavia on PS3 by changing the time settings'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-4968225132937965103</id><published>2011-04-07T09:35:00.003-10:00</published><updated>2011-07-13T23:49:45.196-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VSFTPD'/><category scheme='http://www.blogger.com/atom/ns#' term='CentOS'/><title type='text'>VSFTPD logging incorrect timestamp</title><content type='html'>By default, the Very Secure FTP Daemon (VSFTPD) logs to /var/log/xferlog in "wu-ftpd style, parseable by standard tools".  VSFTPD can be found in distributions such as CentOS.&lt;br /&gt;&lt;br /&gt;As a result, the time stamps are set using GMT.  Presumably this is for "wu-ftpd style" which can then use other programs to parse the logs for statistics.&lt;br /&gt;&lt;br /&gt;To change the logging to use the local server time, set the following in /etc/vsftpd.conf and restart VSFTPD.&lt;br /&gt;&lt;code&gt;use_localtime=YES&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-4968225132937965103?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/4968225132937965103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/4968225132937965103'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/04/vsftpd-logging-incorrect-timestamp.html' title='VSFTPD logging incorrect timestamp'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-1915424173113088630</id><published>2011-01-24T20:46:00.000-10:00</published><updated>2011-01-24T20:46:08.358-10:00</updated><title type='text'>Google is broken - How does a parked domain reach the first page in search results?</title><content type='html'>Is Google broken?&amp;nbsp; Does it give you relevant results?&lt;br /&gt;&lt;br /&gt;Here's an example.&lt;br /&gt;&lt;br /&gt;I searched for 'reddit down' since Reddit is currently down.&lt;br /&gt;&lt;br /&gt;The 5th hit is for the domain 'isredditdown.com'.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_fSJngmxMUQk/TT5woaZOw2I/AAAAAAAAAT4/yPP5nvwMSQM/s1600/reddit_down_search.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="361" src="http://2.bp.blogspot.com/_fSJngmxMUQk/TT5woaZOw2I/AAAAAAAAAT4/yPP5nvwMSQM/s640/reddit_down_search.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Now if we visit that site, it just goes to a parked domain:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_fSJngmxMUQk/TT5w1Hff0rI/AAAAAAAAAT8/aJ9GJtWXJ5g/s1600/reddit_down_search2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="483" src="http://2.bp.blogspot.com/_fSJngmxMUQk/TT5w1Hff0rI/AAAAAAAAAT8/aJ9GJtWXJ5g/s640/reddit_down_search2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Perhaps we can forgive Google since the domain expired...&amp;nbsp; Except when we look up the domain records, we see that the domain expired 18 days ago on January 6th (probably around the time the parked domain page showed up).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ whois isredditdown.com&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[Querying whois.verisign-grs.com]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[Redirected to whois.dynadot.com]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[Querying whois.dynadot.com]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[whois.dynadot.com]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Domain Name: isredditdown.com&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Registered at http://www.dynadot.com&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Registrant:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Pending Renewal or Deletion&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PO Box 701&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;San Mateo, CA 94401&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;United States&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Administrative Contact:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Pending Renewal or Deletion&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PO Box 701&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;San Mateo, CA 94401&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;United States&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;expired@dynadot.com&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;1-650-585-1961&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Technical Contact:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Pending Renewal or Deletion&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PO Box 701&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;San Mateo, CA 94401&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;United States&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;expired@dynadot.com&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;1-650-585-1961&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Record expires on 2011/01/06 UTC&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Record created on 2010/01/06 UTC&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Domain servers in listed order: &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ns1.dynadot.com&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ns2.dynadot.com&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;gt;&amp;gt;&amp;gt; Last update of whois database: 2011/01/24 22:32:58 PST &amp;lt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-1915424173113088630?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1915424173113088630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1915424173113088630'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2011/01/google-is-broken-how-does-parked-domain.html' title='Google is broken - How does a parked domain reach the first page in search results?'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fSJngmxMUQk/TT5woaZOw2I/AAAAAAAAAT4/yPP5nvwMSQM/s72-c/reddit_down_search.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-2792880557516875423</id><published>2010-11-26T21:16:00.001-10:00</published><updated>2011-08-31T23:54:00.614-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Spamhaus'/><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='Spam'/><category scheme='http://www.blogger.com/atom/ns#' term='Email'/><title type='text'>Facebook's new email service uses Spamhaus</title><content type='html'>&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ host -t mx facebook.com&lt;br /&gt;facebook.com mail is handled by 10 smtpin.mx.facebook.com.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# So then I ran a quick telnet to port 25 from my home laptop on home RoadRunner internet service&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ telnet smtpin.mx.facebook.com 25&lt;br /&gt;Trying 66.220.155.13...&lt;br /&gt;Connected to smtpin.mx.facebook.com.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;554 5.7.1 POL-P1 http://www.spamhaus.org/query/bl?ip=&lt;my allocated="" currently="" from="" ip="" pool="" roadrunner="" the=""&gt;&lt;br /&gt;Connection closed by foreign host.&lt;br /&gt;&lt;/my&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-2792880557516875423?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/2792880557516875423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/2792880557516875423'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2010/11/facebooks-new-email-service-uses.html' title='Facebook&apos;s new email service uses Spamhaus'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-5196934657364265051</id><published>2010-06-03T17:06:00.003-10:00</published><updated>2011-07-13T23:53:49.589-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Steve Jobs'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Emails From Steve Jobs web site</title><content type='html'>Steve Jobs seems to have turned a new leaf and is sending more emails.&lt;br /&gt;&lt;br /&gt;I theorize that he has a personal assistant who releases him a few select emails a day to reply back to.&lt;br /&gt;&lt;br /&gt;And so it's another way for Apple to disseminate information to the world.&amp;nbsp; The thing is, it works really well for them as it shows that even for one of the world's biggest technology companies that they are able to maintain a strong company focus (and ecosystem) where one man can speak freely on behalf of the whole company.&lt;br /&gt;&lt;br /&gt;This is a good blog to follow --&amp;gt; &lt;a href="http://www.emailsfromstevejobs.com/"&gt;Emails From Steve Jobs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-5196934657364265051?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.emailsfromstevejobs.com' title='Emails From Steve Jobs web site'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/5196934657364265051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/5196934657364265051'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2010/06/emails-from-steve-jobs-web-site.html' title='Emails From Steve Jobs web site'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-2048956554376881795</id><published>2010-03-14T01:15:00.000-10:00</published><updated>2011-07-13T23:49:06.895-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>NoSQL and other stuff</title><content type='html'>Today I was reading some blog entries from the Reddit blog.&lt;br /&gt;&lt;br /&gt;This led me to read about RabbitMQ and some more about message queuing.&lt;br /&gt;&lt;br /&gt;Then led me to read more about NoSQL.&amp;nbsp; &lt;a href="http://www.pgexperts.com/document.html?id=40" title="pgexperts.com"&gt;These slides&lt;/a&gt; present a balanced and comprehensive overview of the current state of free databases.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This led me to read about the graph database &lt;a href="http://www.slideshare.net/emileifrem/neo4j-presentation-at-qcon-sf-2008-presentation"&gt;Neo4j&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;All very interesting and thought provoking stuff.&amp;nbsp; It makes you think about how you could reapply different solutions in new ways to existing code and solutions you currently have running...&amp;nbsp; It also makes you think of new ideas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-2048956554376881795?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/2048956554376881795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/2048956554376881795'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2010/03/nosql-and-other-stuff.html' title='NoSQL and other stuff'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-7876850639676405657</id><published>2009-10-12T23:42:00.004-10:00</published><updated>2011-07-13T23:52:26.383-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='Redis'/><title type='text'>Hacking with Redis</title><content type='html'>I hacked up a Twitter clone which works on the micro-browser of Polycom phones on the weekend.&lt;br /&gt;&lt;br /&gt;One annoying part of the microbrowser in Polycom phones is that it re-posts forms without any requested confirmation...  so the 'Back' button would cause a repost.  I fixed that by implementing a quick cookie.&lt;br /&gt;&lt;br /&gt;One motivation in writing the app was working with the no-SQL database &lt;a href="http://code.google.com/p/redis/"&gt;Redis&lt;/a&gt;.  The best description for Redis is memcached+disk storage.  It also has some unique features sets and lists.&lt;br /&gt;&lt;br /&gt;It's really a great way to hack and test out some code as you can just start up the Redis server, import the client library and go.  There no need to think too hard about schema (XML feels like this too)....  It feels like a natural extension from the programmatic datatypes that you are accustomed to hacking with.&lt;br /&gt;&lt;br /&gt;Working with a no-SQL database also makes you think differently.  You find yourself thinking less about the potential impact/overhead you would have on a database if you performed a particular operation.  Again that leads to more hacking fun as you just quit to the chase and hack away at your brand new persistent storage friend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-7876850639676405657?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://code.google.com/p/redis/' title='Hacking with Redis'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/7876850639676405657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/7876850639676405657'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2009/10/hacking-with-redis.html' title='Hacking with Redis'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-4304793776902296077</id><published>2009-08-15T17:22:00.008-10:00</published><updated>2011-07-13T23:50:59.875-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='BIND'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='djbdns'/><title type='text'>I replaced BIND 9 with djbdns on FreeBSD</title><content type='html'>BIND 9 has been bugging me for a while now.  We have an anti-spam email system which performs a ton of DNS lookups (we're talking 4.2 million queries a day) and works primarily as a caching name server.&lt;br /&gt;&lt;br /&gt;In the past year or so, I've been upgrading the system from FreeBSD 6.2 to FreeBSD 7.2.  Everything's been going well except for BIND which has suffered from general instability along the way as well as security issues.  The biggest pain is that it crashes on occasion.  It rarely crashes but you'd think that software gets more stable as it goes along.  It's frustrating when you upgrade something and things get worse.  It makes you question why you upgraded in the first place and in extreme cases to look for alternatives.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.rh.edu/%7Erhb/cs_seminar_2005/SessionA2/steniger.pdf"&gt;This whitepaper which compares BIND to djbdns&lt;/a&gt; led me to try out djbdns.&lt;br /&gt;&lt;br /&gt;One thing which bothered me is that BIND takes up a crap load of memory...  We're talking 600Mb+ and on a system with 4Gb of RAM, that's significant.  I never bothered looking up how to decrease the memory usage.&lt;br /&gt;&lt;br /&gt;Below are my instructions (mostly from &lt;a href="http://www.howtoforge.com/dns_cache_with_djbdns"&gt;here&lt;/a&gt;) for installing djbdns on FreeBSD.  You'll notice that at the end I increase cache size to 100Mb.  This is necessary as djbdns allocates RAM at start up and by default uses around 5Mb of RAM.&lt;br /&gt;&lt;br /&gt;All in all, things looks promising for my djbdns testing and in summary BIND DNS is a memory hog, has security issues from time to time and can sometimes crash.  That is annoying.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Install djbdns on FreeBSD&lt;/span&gt;&lt;br /&gt;&lt;div class="line874"&gt;Install the port &lt;span class="anchor" id="line-4"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-5"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-6"&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre&gt;sudo portinstall djbdns&lt;/pre&gt;&lt;span class="anchor" id="line-7"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-8"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-9"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="line874"&gt;Stop  BIND &lt;span class="anchor" id="line-10"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-11"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-12"&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre&gt;sudo /etc/rc.d/named stop&lt;/pre&gt;&lt;span class="anchor" id="line-13"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-14"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="line874"&gt;Disable BIND and enable djbdns: &lt;span class="anchor" id="line-15"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-16"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-17"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-18"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-19"&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre&gt;sudo vi /etc/rc.conf&lt;br /&gt;--&amp;gt; Remove: named_enable="YES"&lt;br /&gt;--&amp;gt; Add:    svscan_enable="YES"&lt;/pre&gt;&lt;span class="anchor" id="line-20"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-21"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="line874"&gt;Add relevant users: &lt;span class="anchor" id="line-22"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-23"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-24"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-25"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-26"&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre&gt;sudo pw groupadd nofiles -g 800&lt;br /&gt;sudo pw useradd dnslog   -g nofiles -u 810 -d /nonexistent -s /sbin/nologin&lt;br /&gt;sudo pw useradd dnscache -g nofiles -u 811 -d /nonexistent -s /sbin/nologin&lt;/pre&gt;&lt;span class="anchor" id="line-27"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-28"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="line874"&gt;Add local DNS caching: &lt;span class="anchor" id="line-29"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-30"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-31"&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre&gt;sudo dnscache-conf dnscache dnslog /data/dnscache 127.0.0.1&lt;/pre&gt;&lt;span class="anchor" id="line-32"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-33"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="line874"&gt;Tell svscan about the new service: &lt;span class="anchor" id="line-34"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-35"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-36"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-37"&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre&gt;sudo mkdir /var/service&lt;br /&gt;sudo ln -s /data/dnscache /var/service&lt;/pre&gt;&lt;span class="anchor" id="line-38"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-39"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="line874"&gt;Start up svscan: &lt;span class="anchor" id="line-40"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-41"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-42"&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre&gt;sudo /usr/local/etc/rc.d/svscan.sh start&lt;/pre&gt;&lt;span class="anchor" id="line-43"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-44"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="line874"&gt;Increase the cache size to 100Mb: &lt;span class="anchor" id="line-45"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-46"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-47"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-48"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-49"&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre&gt;sudo sh -c "echo 100000000 &amp;gt; /var/service/dnscache/env/CACHESIZE"&lt;br /&gt;sudo sh -c "echo 104857600 &amp;gt; /var/service/dnscache/env/DATALIMIT"&lt;br /&gt;sudo svc -t /var/service/dnscache&lt;/pre&gt;&lt;br /&gt;&lt;span class="anchor" id="line-2"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-3"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-4304793776902296077?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/4304793776902296077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/4304793776902296077'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2009/08/i-replaced-bind-9-with-djbdns-on.html' title='I replaced BIND 9 with djbdns on FreeBSD'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-7131854165051766900</id><published>2009-04-04T12:08:00.004-10:00</published><updated>2009-04-04T12:56:00.011-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu linux netbook'/><title type='text'>Ubuntu Netbook Remix 9.04 Beta on an Asus EEE 1000HA</title><content type='html'>For work purposes I now have an &lt;a href="http://www.amazon.com/gp/product/B001GIPSAC?tag=fdb-20"&gt;Asus EEE 1000HA&lt;/a&gt; at my disposal.  The earliest netbooks had very small hard drives that were solid state.  The man difference in the netbook is that you could call it a 2nd generation one.  The main spec differences are it has been upgraded to 2GB of RAM and it has a 160 GB hard disk drive.&lt;br /&gt;&lt;br /&gt;Last night I installed Ubuntu Netbook Remix 9.04 Beta via a USB flash drive.&lt;br /&gt;&lt;br /&gt;I must say I'm very impressed.  The main differences I see with the stock Ubuntu distribution is that things work 'out of the box' such as the Atheros wireless card, sound, webcam, fancy touch pad, etc...  It also has a slick navigation/environment that's designed specifically for Netbooks with smaller screens.  All in all, it works really well.&lt;br /&gt;&lt;br /&gt;For example, there's a feature of the Elantech touchpad which allows you to scroll up and down by using 2 of your fingers.  Impressively that works out of the box with Ubuntu.  It's really handy when browsing the web since the keyboard requires the Fn key to Page Up and Page Down.  Another thing to note is that this behavior is consistent in Ubuntu.  Under Windows, the touchpad scrolling does not work under Firefox but works under Internet Explorer...  That's really annoying.&lt;br /&gt;&lt;br /&gt;Windows XP Home is the OS that the netbook came with.  It comes with a proprietary Asus app called "Eee Super Hybrid Engine" which does a good job power management.  Microsoft didn't produce a special environment for the netbooks but Windows XP was released back in 2001 when screens were smaller...  So it tends to work fine.&lt;br /&gt;&lt;br /&gt;I made some changes to give myself some more screen real estate:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Enable Auto-Hide of the task bar&lt;/li&gt;&lt;li&gt;Use small icons in the Navigation toolbar of Firefox&lt;/li&gt;&lt;li&gt;Disable the Bookmarks toolbar of Firefox&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;... A few bugs/peeves with the UNR install that I should mention:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It resizes your NTFS partition really aggressively.  For example, it shrank my NTFS partition down to 12 GB.  There's no options to resize it differently...  I mean, can I allocate 40 GB to Windows?&lt;/li&gt;&lt;li&gt;There is no progress indication that the resize of the NTFS partition is in progress.  The graffic just hangs at 0%.  I had to fire up a terminal to see that the ntfsresize process was running...  I'm thinking this could potentially hose someone's system if they restarted their PC in the middle of this process.  &lt;span style="font-weight: bold;"&gt;UPDATE:&lt;/span&gt; I think this is the VERY old &lt;a href="https://bugs.launchpad.net/ubuntu/+source/partman-partitioning/+bug/14100"&gt;Bug 14100&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I experienced this bug too: &lt;a class="interwiki" title="Bug" href="https://bugs.launchpad.net/bugs/347916"&gt;347916&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-7131854165051766900?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.amazon.com/gp/product/B001GIPSAC?tag=fdb-20' title='Ubuntu Netbook Remix 9.04 Beta on an Asus EEE 1000HA'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/7131854165051766900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/7131854165051766900'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2009/04/ubuntu-netbook-remix-904-beta-on-asus.html' title='Ubuntu Netbook Remix 9.04 Beta on an Asus EEE 1000HA'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-41996577012832455</id><published>2009-03-29T13:39:00.002-10:00</published><updated>2011-08-31T23:52:45.868-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='mercurial'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Mercurial - Recap</title><content type='html'>&lt;a href="http://julianyap.blogspot.com/2005/08/mercurial-its-distributed-scm-that.html"&gt;Back in August 2005, I wrote about liking Mercurial...&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I wish I could buy stock in that project because since then its popularity has soared and it has become a fully fledged project.&lt;br /&gt;&lt;br /&gt;In terms of distributed version control, people tend to mention either &lt;a href="http://www.selenic.com/mercurial/"&gt;Mercurial&lt;/a&gt; or &lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Both project use roughly the same commands but Git has a crap load more binaries.  &lt;a href="http://www.infoq.com/articles/dvcs-guide"&gt;More than 150&lt;/a&gt;, is that correct?&lt;br /&gt;&lt;br /&gt;So the main pro's I see for Mercurial:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Lack of dependence on Unix concepts (ie. Good Windows support)&lt;/li&gt;&lt;li&gt;Simplicity (you'll find the code base is a lot smaller)&lt;/li&gt;&lt;/ul&gt;If cross-platform support is important to your project, then choose Mercurial over Git.&lt;br /&gt;&lt;br /&gt;Also, check out Bryan O'Sullivan's book, &lt;a href="http://hgbook.red-bean.com/"&gt;Mercurial: The Definitive Guide&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-41996577012832455?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/41996577012832455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/41996577012832455'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2009/03/mercurial-recap.html' title='Mercurial - Recap'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-7855513285294009640</id><published>2009-01-19T22:52:00.004-10:00</published><updated>2009-01-19T23:09:09.760-10:00</updated><title type='text'>Web 2.0 = Die</title><content type='html'>Google recently announced that they were &lt;a href="http://searchengineland.com/google-ends-google-video-uploads-shutters-notebook-catalog-search-dodgeball-jaiku-16166"&gt;cl&lt;/a&gt;&lt;a href="http://searchengineland.com/google-ends-google-video-uploads-shutters-notebook-catalog-search-dodgeball-jaiku-16166"&gt;osing down some services&lt;/a&gt;.  By closing down, it means that they won't be allocating resources to them any more.&lt;br /&gt;&lt;br /&gt;...  It just seems all too fickle.&lt;br /&gt;&lt;br /&gt;Like data and what we produce means nothing.&lt;br /&gt;&lt;br /&gt;Maybe I'm thinking of things like Twitter and &lt;a href="http://ascii.textfiles.com/archives/1717"&gt;another blog post I recently read&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But it seems like the the whole 'Web 2.0' formula was/is:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Make a site&lt;/li&gt;&lt;li&gt;Get users&lt;/li&gt;&lt;li&gt;?&lt;/li&gt;&lt;li&gt;Profit&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fSJngmxMUQk/SXWTZdTvQmI/AAAAAAAAADA/m8awB6mZW_o/s1600-h/799892681_5ef1b6b855.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 242px;" src="http://4.bp.blogspot.com/_fSJngmxMUQk/SXWTZdTvQmI/AAAAAAAAADA/m8awB6mZW_o/s320/799892681_5ef1b6b855.jpg" alt="" id="BLOGGER_PHOTO_ID_5293299002617315938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But what if the users never come.  By 'users' we mean a crap load of users to be viable.&lt;br /&gt;&lt;br /&gt;Perhaps then you &lt;a href="http://pownce.com/"&gt;shut up shop&lt;/a&gt;?  I mean it goes &lt;a href="http://www.sixapart.com/blog/2008/12/welcome-pownce-team.html"&gt;like this&lt;/a&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Launch: June 2007&lt;/li&gt;&lt;li&gt;Open to public: 2008&lt;/li&gt;&lt;li&gt;Shut up shop: December 15, 2008&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;What happens to your users?  Couldn't you have just transitioned/merged the service over to your new owners?  If it's so cheap to set up a Web 2.0 site, can't you just keep it running?&lt;br /&gt;&lt;br /&gt;Our Facebooks our fickle lives.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-7855513285294009640?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/7855513285294009640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/7855513285294009640'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2009/01/web-20-die.html' title='Web 2.0 = Die'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fSJngmxMUQk/SXWTZdTvQmI/AAAAAAAAADA/m8awB6mZW_o/s72-c/799892681_5ef1b6b855.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-1222862644769050026</id><published>2008-09-27T15:13:00.003-10:00</published><updated>2011-06-10T15:52:26.676-10:00</updated><title type='text'>Playing Grid with the Logitech Driving Force GT Racing Wheel</title><content type='html'>I bought a &lt;a href="http://www.amazon.com/gp/product/B0015HYPOO?tag=fdb-20"&gt;Logitech Driving Force GT Racing Wheel&lt;/a&gt; which came in last week.  At first it was pretty difficult to use but once you get used to it, the game really feels intense.&lt;br /&gt;&lt;br /&gt;I main gripe is that it seems like you can only play with the "bumper" view.  When I played with the standard controller, I'd play it in "chase" view.&lt;br /&gt;&lt;br /&gt;I'm using the &lt;a href="http://www.amazon.com/gp/product/B0015HYPOO?tag=fdb-20"&gt;wheel&lt;/a&gt; with the PS3 game &lt;a href="http://www.amazon.com/GRID-Playstation-3/dp/B00149V3CU?tag=fdb-20"&gt;Grid&lt;/a&gt;.  I don't think I can justify buying &lt;a href="http://www.amazon.com/Gran-Turismo-5-Prologue-Playstation-3/dp/B000FPOJOS?tag=fdb-20"&gt;Gran Turismo 5 Prologue&lt;/a&gt; because it generally feels like it's a cut down version of a full game.  I'm wondering if the wheel will feel any different running &lt;a href="http://www.amazon.com/Gran-Turismo-5-Prologue-Playstation-3/dp/B000FPOJOS?tag=fdb-20"&gt;Gran Turismo 5 Prologue&lt;/a&gt; vs. &lt;a href="http://www.amazon.com/GRID-Playstation-3/dp/B00149V3CU?tag=fdb-20"&gt;Grid&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Another thing is that the default force feedback settings are all at 50%.  I'd recommend setting it at 0% to start off with and then bumping up the settings slowly if you're having difficulty.  Another tip is to start off with the slower cars such as the muscle cars.  They tend to have heavy steering as well.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://www.amazon.com/gp/product/B0015HYPOO?ie=UTF8&amp;amp;tag=fdb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B0015HYPOO"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41C9F0cmegL._SL160_.jpg" border="0" /&gt;&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=fdb-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B0015HYPOO" alt="" style="border: medium none  ! important; margin: 0px ! important; display: none;" border="0" height="1" width="1" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://www.amazon.com/gp/product/B00149V3CU?ie=UTF8&amp;amp;tag=fdb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B00149V3CU"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51h%2B%2B7wZz6L._SL160_.jpg" border="0" /&gt;&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=fdb-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B00149V3CU" alt="" style="border: medium none  ! important; margin: 0px ! important; display: none;" border="0" height="1" width="1" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://www.amazon.com/gp/product/B000FPOJOS?ie=UTF8&amp;amp;tag=fdb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B000FPOJOS"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51yiu871-rL._SL160_.jpg" border="0" /&gt;&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=fdb-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B000FPOJOS" alt="" style="border: medium none  ! important; margin: 0px ! important; display: none;" border="0" height="1" width="1" /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-1222862644769050026?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1222862644769050026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1222862644769050026'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2008/09/playing-grid-and-logitech-driving-force.html' title='Playing Grid with the Logitech Driving Force GT Racing Wheel'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-5816227172510848747</id><published>2007-01-30T22:38:00.002-10:00</published><updated>2011-07-13T23:58:36.727-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HOSEF'/><category scheme='http://www.blogger.com/atom/ns#' term='PFOSSCON'/><title type='text'>PFOSSCON 2007</title><content type='html'>I had the pleasure of helping to organize this year's &lt;a href="http://www.pfosscon.org/"&gt;Pacific Free and Open Source Software Conference&lt;/a&gt;.  I did the website which is based off of Wordpress.  The registration system is implemented in Drupal and links back to &lt;a href="http://www.hosef.org/"&gt;HOSEF's web site&lt;/a&gt;.  I also tried to get the word out to several groups.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hosef.org/"&gt;HOSEF&lt;/a&gt; incidentally is a non-profit organization with the mission to spread Free Software through education by repurposing donated hardware.  I like being involved with them because I've always believed in the concept of '&lt;a href="http://capita.wustl.edu/ME567_Informatics/concepts/global.html"&gt;think globally, act locally&lt;/a&gt;'.&lt;br /&gt;&lt;br /&gt;We were fortunate to have 3 really good speakers.  Richard Stallman from the FSF, Dave Roberts from Vyatta and Barton George from Sun Microsystems (who were also nice enough to sponsor lunch).&lt;br /&gt;&lt;br /&gt;We made the event $0 admission and it was really great to have a well attended event with students, business folk and the general public in attendance.  &lt;a href="http://www.byuh.edu/"&gt;BYUH&lt;/a&gt; did well and made an excursion of the event.  More effort was put into trying to get University of Hawaii students and faculty to attend but there were fewer of them than BYUH.  I must remember to try and get HPU students for next time.&lt;br /&gt;&lt;br /&gt;In case you were not able to attend the event or would like a re-cap, audio for the conference is &lt;a href="http://www.hosef.org/wiki/PFOSSCON_2007_media"&gt;now online&lt;/a&gt; in Ogg Vorbis format.&lt;br /&gt;&lt;br /&gt;I'm really looking forward to building upon this event for the future.&lt;br /&gt;&lt;br /&gt;Here are &lt;a href="http://hosef.org/gallery2/v/exhibitions/PFOSSCON2007/"&gt;some pictures&lt;/a&gt; as well that were mostly taken by myself without much care for composition. :P&lt;br /&gt;&lt;br /&gt;&lt;a href="http://opensourcejuicer.blogspot.com/2007/01/upcoming-vyatta-speaking-events.html"&gt;Some&lt;/a&gt; &lt;a href="http://wansuree.blogspot.com/2007/01/psoffcon-2007.html"&gt;links&lt;/a&gt; to &lt;a href="http://blogs.sun.com/barton808/entry/rms_uh"&gt;other&lt;/a&gt; reports of the conference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-5816227172510848747?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.pfosscon.org/2007/' title='PFOSSCON 2007'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/5816227172510848747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/5816227172510848747'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2007/01/pfosscon-2007.html' title='PFOSSCON 2007'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-6547692465761568478</id><published>2007-01-24T23:35:00.002-10:00</published><updated>2011-07-13T23:59:24.147-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photos'/><title type='text'>Scott, me and rms</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_fSJngmxMUQk/Rbh7YTAaGtI/AAAAAAAAAAY/kG5hhB-rJe8/s1600-h/IMG_0604.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5023901041680849618" src="http://2.bp.blogspot.com/_fSJngmxMUQk/Rbh7YTAaGtI/AAAAAAAAAAY/kG5hhB-rJe8/s400/IMG_0604.JPG" style="cursor: pointer; margin: 0pt 10px 10px 0pt;" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-6547692465761568478?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/6547692465761568478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/6547692465761568478'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2007/01/scott-me-and-rms.html' title='Scott, me and rms'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fSJngmxMUQk/Rbh7YTAaGtI/AAAAAAAAAAY/kG5hhB-rJe8/s72-c/IMG_0604.JPG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-6888097472111546370</id><published>2007-01-22T22:48:00.000-10:00</published><updated>2007-01-22T22:48:10.666-10:00</updated><title type='text'>Some quick words on Gentoo GNU/Linux</title><content type='html'>Last year I had my first real look at the FreeBSD Ports system.  It was pretty interesting and brought me back to the days of Slackware and compilation.  Since Slackware, it's mostly been a GNU/Linux packaging affair, be it RPM/Yum or DEB/Apt.&lt;br /&gt;&lt;br /&gt;Looking at FreeBSD led me to the source based GNU/Linux distribution, Gentoo.&lt;br /&gt;&lt;br /&gt;Preconceptions I had heard about Gentoo were that it was difficult to maintain and it broke easily.  What I did like about it was the Gentoo wiki.  It has great documentation, IMHO.  Some people say that Gentoo is a fast system.&lt;br /&gt;&lt;br /&gt;So I downloaded the latest install ISO and loaded up Gentoo in a virtual machine.&lt;br /&gt;&lt;br /&gt;It is similar to FreeBSD in that when you upgrade, you first synchronize the repository data.  In FreeBSD you use &lt;span style="font-style: italic;"&gt;cvsup&lt;/span&gt; or there was some other command in FreeBSD 6.x that I used that I forget..  Anyway, with Gentoo the whole upgrade process is more integrated using the &lt;span style="font-style: italic;"&gt;emerge&lt;/span&gt; command.&lt;br /&gt;&lt;br /&gt;..  I led to the conclusion that Gentoo could only really work for hobbyists but is really good if you want to learn about a system.&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;Most of the reasons are covered in &lt;a href="http://xaprb.com/blog/2006/11/21/to-gentoo-or-not-to-gentoo/"&gt;this post&lt;/a&gt; that I agree with so read it you want a full blown explanation.&lt;br /&gt;&lt;br /&gt;My main point is that using Gentoo does not give you a baseline to test against.  This also means that you can't certify against a moving target.  It also means it is difficult to support (at least on a large scale).  The variability of package versions and combinations means stability pays a price.  How on earth would you write a Bugzilla bug?  The first question people would ask is, is your system up-to-date?  What are your USE flags?&lt;br /&gt;&lt;br /&gt;Hypothetically, you could produce a standardized Gentoo...  But then you may as well be another distribution that's already there.  Standardized components then allows you to further tune and optimize.  Packages (especially larger ones) could possibly run a lot slower.  It just has not been tested against!&lt;br /&gt;&lt;br /&gt;That severly limits the audience for Gentoo.  You could use Gentoo for embedded (simple and known setup) and non-critical systems (desktops).  But like I said, it's a great system for learning the internals.&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;&lt;br /&gt;One thing that did interest me was the perpetual update potential of the system.  That is not having to re-install.&lt;br /&gt;&lt;br /&gt;In reality, you need to patch and diff config files which is a real pain.&lt;br /&gt;&lt;br /&gt;Having a distribution release cycle also gives you goals that engineers can work towards.  For example, with the latest Fedora Core 6, allows engineers and users to test against the goal of using X.org 7.1.&lt;br /&gt;&lt;br /&gt;This is a lot more difficult with Gentoo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-6888097472111546370?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.playingwithwire.com/2007/01/why-gentoo-shouldnt-be-on-your-server.html' title='Some quick words on Gentoo GNU/Linux'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/6888097472111546370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/6888097472111546370'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2007/01/some-quick-words-on-gentoo-gnulinux.html' title='Some quick words on Gentoo GNU/Linux'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-1029057256581743469</id><published>2007-01-05T22:31:00.000-10:00</published><updated>2011-06-10T15:53:41.399-10:00</updated><title type='text'>2006 Linux and Free Software timeline</title><content type='html'>2006 was a year in which I got more involved with Free Software.  I'm checking out the article &lt;a href="http://lwn.net/Articles/214964/"&gt;The 2006 Linux and free software &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;timeline&lt;/span&gt;&lt;/a&gt; and here are some notable highlights.&lt;br /&gt;&lt;br /&gt;The first &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;GPLv&lt;/span&gt;3 draft is released which contains provisions for &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;DRM&lt;/span&gt; (Digital Restrictions Management) and software patents.&lt;br /&gt;&lt;br /&gt;The &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Ubuntu&lt;/span&gt; "Dapper Drake" release is delayed six weeks to make way for its first &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;LTS&lt;/span&gt; (Long Term Support) release.&lt;br /&gt;&lt;br /&gt;Fedora Core 5 is released and is the release where I switched to using Fedora on my work computer and personal notebook.&lt;br /&gt;&lt;br /&gt;Oracle &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;rebrands&lt;/span&gt; &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;RHEL&lt;/span&gt;...  Much hype, not a lot of substance.&lt;br /&gt;&lt;br /&gt;Fedora Core 6 is released..  I upgrade my work machine and laptop.&lt;br /&gt;&lt;br /&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Novell&lt;/span&gt; and Microsoft shake hands of cross-licensing of patents.  &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Novell&lt;/span&gt; then says a lot of stuff.  Their latest term is calling &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;them selves&lt;/span&gt; a 'mixed-source' company.&lt;br /&gt;&lt;br /&gt;Sun announces it plans to release Java under the... &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;GPL&lt;/span&gt;!  Wow!&lt;br /&gt;&lt;br /&gt;Some quotes:&lt;br /&gt;&lt;br /&gt;"Linus Torvalds never supported the Free Software movement.  He sort of accidentally drifted into making a contribution to the Free Software community, but not because he ever supported our goals.  And so he has actually said that he is against our aims of defending freedom for all users.  What can you do?" &lt;a href="http://fsfeurope.org/projects/gplv3/bangalore-rms-transcript.en.html#linux-linus"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;rms&lt;/span&gt; on Linus's vocal objections to &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;GPLv&lt;/span&gt;3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lwn.net/Articles/177293/"&gt;US Federal Judge John Daniel Tinder, dismissed the Sherman Act antitrust claims brought against the Free Software Foundation:&lt;/a&gt; "[The &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;GPL&lt;/span&gt;] acts as a means by which certain software may be copied, modified and redistributed without violating the software's copyright protection. As such, the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;GPL&lt;/span&gt; encourages, rather than discourages, free competition and the distribution of computer operating systems, the benefits of which directly pass to consumers. These benefits include lower prices, better access and more innovation."&lt;br /&gt;&lt;br /&gt;"I'll have that son of a bitch eating out of dumpsters in less than two years" &lt;a href="http://blog.lobby4linux.com/index.php?/archives/91-OK,-Heads-Up-Linux,-Youre-on-in-5..4..3..2-cue-music....html"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;allegedly&lt;/span&gt; Steve &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Baller&lt;/span&gt; referring to Red Hat, CEO, Matt &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;Sluzik&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-1029057256581743469?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://lwn.net/Articles/214964/' title='2006 Linux and Free Software timeline'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1029057256581743469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/1029057256581743469'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2007/01/2006-linux-and-free-software-timeline.html' title='2006 Linux and Free Software timeline'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-114207457052405916</id><published>2006-03-11T00:31:00.000-10:00</published><updated>2011-06-10T15:53:41.404-10:00</updated><title type='text'>Winning Zope 3 book, starting work in Hawaii and Linux rocks</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2624/588/1600/zope3_dev_handbook_cover.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/2624/588/320/zope3_dev_handbook_cover.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This week I a copy of the &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0672326175/falundafabook-20"&gt;Zope 3 Developer's Handbook&lt;/a&gt;&lt;br /&gt;arrived in the mail.  I won this from a competition put out by the people at &lt;a href="http://www.freesoftwaremagazine.com/"&gt;Free Software Magazine.&lt;/a&gt;  Ironically, it's also one of the few books that was on my Amazon.com wish list.&lt;br /&gt;&lt;br /&gt;The first thing Ann noticed about the book was that the front cover had a picture of &lt;a href="http://www.sacredsites.com/asia/tibet/potala_palace.html"&gt;The Potala Palace in Lhasa, Tibet&lt;/a&gt;.  It was amusing because we have a Maltese x Lhasa Apso dog.&lt;br /&gt;&lt;br /&gt;In other news, I'm now working full time in Hawaii.&lt;br /&gt;&lt;br /&gt;Everyone at my new work place is running either a Mac or Windows machine.  The main problem or application dependency is that we run a specialized software package that is dependent on Filemaker Pro 5.0.  We do a lot of Secure Shell stuff so the Windows users are mostly using PuTTY and TeraTerm.  Yesterday I installed Cygwin on my pre-installed Windows machine but hopefully working with that and Windows won't last for long.&lt;br /&gt;&lt;br /&gt;Today I installed &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu 5.10&lt;/a&gt; and I'm making the transition over to a more sanitary environment.  Since I got &lt;a href="http://julianyap.com/wiki/Ubuntu_5.10_%22Breezy_Badger%22_on_a_Dell_Inspiron_6000"&gt;my laptop late last year and started using Linux full time&lt;/a&gt;, I've reached the point where I can't go back to using Windows without feeling uneasy.&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;br /&gt;I checked out the Wine Application Database and &lt;a href="http://appdb.winehq.org/appview.php?appId=337"&gt;Filemaker Pro may or may not work for me&lt;/a&gt;.  If not, I'll probably run the application off Windows and log in on Linux via a Terminal Server Client.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-114207457052405916?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/114207457052405916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/114207457052405916'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2006/03/winning-zope-3-book-starting-work-in.html' title='Winning Zope 3 book, starting work in Hawaii and Linux rocks'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-114081198475658545</id><published>2006-02-24T09:06:00.000-10:00</published><updated>2006-02-24T10:20:23.830-10:00</updated><title type='text'>Broken iPod 40GB 4th Generation with Sad Face demonstration, that angry Korean from Lost and learning to live again</title><content type='html'>&lt;center&gt;&lt;embed style="width: 400px; height: 326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DpgAAAMmQ5YPxC_1j1dq34I0zsbqj_4id9f2-E3PZ6RdBSXACWWEDseIr3FUT5AirwhNuVcal-c3bBD2JOl67Y9D7fgzNG1RJmzH-_cT-7tPCbMLJDi_2EPIHbamKQCqE3qOOc6pyFpM0kTlrgq4yul-PbhRb1Y8v3zHezcaQjSf7XoG8N8QIct8AIM6wMbQDjbucujtzUqBF3QWm7HRUMCiuU2aOt1D6PpZZw9rJM5DbVMBm%26sigh%3D51FV8gXyoQ8g00HS6-ZQPyyGIDA%26begin%3D0%26len%3D39039%26docid%3D2114752375789488865&amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer%3Fcontentid%3D965d48ad8e00fd3f%26second%3D5%26itag%3Dw320%26urlcreated%3D1140807629%26sigh%3DXmLz95e1JNiylRsMZH8kDH29OLQ&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;playerId=2114752375789488865&amp;playerMode=embedded" allowscriptaccess="sameDomain" quality="best" bgcolor="#ffffff" scale="noScale" wmode="window" salign="TL" align="middle"&gt;&lt;/embed&gt;&lt;/center&gt;&lt;br /&gt;We got this 40GB iPod in March 2005 for our 1st wedding anniversary.  It died Feb 2006.  We barely used it.&lt;br /&gt;&lt;br /&gt;Unfortunately we misplaced the receipt as we moved housed and the "Genius" at the Apple store at Ala Moana shopping center told me it was out of warranty.  You can use their online support page to look up your serial number and it spat back at me the estimated sold date as: October, 9th 2004&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.macintouch.com/readerreports/ipod/topic3481.html"&gt;Even if it was bought then, NO CONSUMER ELECTRONICS PRODUCT SHOULD BREAK AFTER BARELY A YEAR!  You can tell I'm angry, frustrated and very disappointed.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The "Genius" went on to say that you can send it in for "repair" for $250 where they may or may not replace it or give you a new one with a 90 day warranty.&lt;br /&gt;&lt;br /&gt;When I was at the Genius bar or whatever they condescendingly call it, &lt;a href="http://www.danieldaekim.org/"&gt;Jin from Lost&lt;/a&gt; was also seeking support.  I didn't really see what his problem was but I overheard him say something like "I'll probably be back here to ask you about iTunes" and "Is there any Lost discount?"  His face definitely does not look as chiseled as it does on television.  I guess it must be the make up.&lt;br /&gt;&lt;br /&gt;There was some teenage kid there who had a new iPod video and said that the battery only lasted 30 minutes so they were going to send it in for swapping...  oh, I mean "testing".  Boy did he love his iPod like it was his new born fledgeling.  He brought it in inside the original box and it even had the plastic wrap around the thing.&lt;br /&gt;&lt;br /&gt;...  Back to my rant.  Basically, you're looking at a $399 paper weight.  How would you feel?  &lt;a href="http://www.consumeraffairs.com/computers/apple_ipod.html"&gt;Caveat Emptor.  Let the buyer beware.&lt;/a&gt;  Apple sacrifices build quality for aesthetics.  Wait until you need to get a new battery or your hard drives breaks and you'll know what I mean.&lt;br /&gt;&lt;br /&gt;I pretty certain it's the hard disk drive since on the day it died, I could hear some grinding for a while when I turned it on.  Then it came on and all songs and data were lost.  I'm guessing it went into some "recovery" mode and formatted the hard disk drive.  But then it just died with the sinister Apple smiley face.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://flickr.com/photos/joelwashing/69247756/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px;" src="http://static.flickr.com/9/69247756_0b66c35967.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;About all I can do now is use the internet here to express my disgust and sell my burnt out shell of an iPod on eBay.&lt;br /&gt;&lt;br /&gt;Last night I put my order in for a &lt;a href="http://www.amazon.com/exec/obidos/redirect?link_code=as2&amp;path=ASIN/B0007Y6ALM&amp;amp;amp;amp;amp;tag=falundafabook-20&amp;camp=1789&amp;amp;creative=9325"&gt;Sony MZ-RH910 Hi-MD Walkman Digital Music Player&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://www.amazon.com/exec/obidos/redirect?link_code=as2&amp;path=ASIN/B0007Y6ALM&amp;amp;amp;amp;amp;tag=falundafabook-20&amp;camp=1789&amp;amp;creative=9325"&gt;&lt;img src="http://images.amazon.com/images/P/B0007Y6ALM.01._SCMZZZZZZZ_.jpg" alt="Sony MZ-RH910 Hi-MD Walkman Digital Music Player" border="0"/&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr width="50%"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sci-fi.lovetoknow.com/wiki/Mad_Max_2:_Road_Warrior"&gt;&lt;span style="font-style: italic;"&gt;"In the roar of an engine, he lost everything and became a shell of a man, a burnt out, desolate man, a man haunted by the demons of his past. A man who wandered out into the wasteland. And it was here in this blighted place that he learned to live again..."&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-114081198475658545?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/114081198475658545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/114081198475658545'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2006/02/broken-ipod-40gb-4th-generation-with.html' title='Broken iPod 40GB 4th Generation with Sad Face demonstration, that angry Korean from Lost and learning to live again'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-112314892759158447</id><published>2005-08-03T23:48:00.001-10:00</published><updated>2011-07-13T23:52:26.389-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Mercurial. It's a Distributed SCM that happens to be written in Python. I like it.</title><content type='html'>I've been playing around with Mercurial for the past 2 days and I'm very impressed. In my previous post, I explained that I was currently using Subversion for my personal source control management requirements. The main (and big) shortcoming is the lack of decentralisation.&lt;br /&gt;&lt;br /&gt;A lot of focus has been put on the "next generation" of source control management tools since the development of the Linux kernel ceased to use BitKeeper because of changes in licensing.&lt;br /&gt;&lt;br /&gt;Anyway, &lt;a href="http://www.selenic.com/mercurial/"&gt;Mercurial&lt;/a&gt; is a project that has got me very interested.  It does a lot of things right.&lt;br /&gt;&lt;br /&gt;Instead of going through it all, &lt;a href="http://www.serpentine.com/blog/software/mercurial.html"&gt;here's a post&lt;/a&gt; which pretty much sums what I'd say anyway about &lt;a href="http://www.selenic.com/mercurial/"&gt;Mercurial&lt;/a&gt;. Except, that I've also tried out &lt;a href="http://darcs.net/"&gt;Darcs&lt;/a&gt; and &lt;a href="http://svk.elixus.org/"&gt;SVK&lt;/a&gt;. For Darcs I installed it and pulled down the Darcs main repository. Darn, it took a long time. The same thing with SVK. I tried to pull down a small Subversion repository and fuck it took so long the Subversion server cut me off.&lt;br /&gt;&lt;br /&gt;It's still early days for Mecurial but it's &lt;a href="http://www.selenic.com/pipermail/mercurial/2005-August/003050.html"&gt;actively developed&lt;/a&gt; so check it out some time.  It works right now but you may like to wait for more software maturity.&lt;br /&gt;&lt;br /&gt;In other Python news, &lt;a href="http://sourceforge.net/mailarchive/forum.php?thread_id=7868051&amp;amp;forum_id=34314"&gt;Plone has release version 2.1 RC1&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here's what's new:&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;ul&gt;   &lt;li&gt;Archetypes 1.3.4&lt;/li&gt;   &lt;li&gt;ATContentTypes 1.0 as default content types&lt;/li&gt;   &lt;li&gt;GroupUserFolder 3.3&lt;/li&gt;   &lt;li&gt;CMF 1.5.2&lt;/li&gt;   &lt;li&gt;Kupu visual editor&lt;/li&gt;   &lt;li&gt;Local role blocking (PLIP16)&lt;/li&gt;   &lt;li&gt;Right-to-left language support&lt;/li&gt;   &lt;li&gt;100% performance improvement over Plone 2.0.5&lt;/li&gt;   &lt;li&gt;1400+ Unit and regression tests&lt;/li&gt;   &lt;li&gt;And much more&lt;/li&gt; &lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;UPDATE:&lt;/span&gt; 20090329 - Updated link to Darcs&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-112314892759158447?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.selenic.com/mercurial/' title='Mercurial. It&apos;s a Distributed SCM that happens to be written in Python. I like it.'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/112314892759158447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/112314892759158447'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2005/08/mercurial-its-distributed-scm-that.html' title='Mercurial. It&apos;s a Distributed SCM that happens to be written in Python. I like it.'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-112295773263370054</id><published>2005-08-01T18:42:00.000-10:00</published><updated>2005-08-01T18:42:12.666-10:00</updated><title type='text'>CVS and SVN; Web-based revision control?; Decentralized revision control ala Arch and Dumb repositories</title><content type='html'>The scenario is that I write a lot of scripts.  Not only for work but for myself.&lt;br /&gt;&lt;br /&gt;It came a time when I needed some simple revision control so I set myself up with CVS, running a separate CVS server on all my machines.  In this case I was just running the simple &lt;a href="http://www.tortoisecvs.org/"&gt;TortoiseCVS&lt;/a&gt; which works a treat (I've sinced moved to &lt;a href="http://tortoisesvn.tigris.org/"&gt;TortoiseSVN&lt;/a&gt; but you get the point).  I'm not sure if there is a GUI type utility for CVS that runs on Linux/Unix but if there is, I haven't seen it.&lt;br /&gt;&lt;br /&gt;This works really well.  For work at least.  The problem is centralisation.  I don't have access to my CVS repository from home, or on my work laptop, etc...&lt;br /&gt;&lt;br /&gt;..  This begs another question.  Why hasn't someone developed some kind of PHP package or something which acts as a CVS server but does not require server access or binary executables.  I mean, why hasn't someone ported CVS to PHP or created some kind of Open Source web-based revision control system?  I'm sure it would take off.&lt;br /&gt;&lt;br /&gt;Anyway, I have a package with one of those commodity web hosting providers.  You know the ones which let you have 5 MySQL database, PHP, Perl, etc... access.&lt;br /&gt;&lt;br /&gt;The answer is decentralisation.  &lt;a href="http://migo.sixbit.org/papers/Revision_Control_Systems/all-in-one.html"&gt;This is presentation&lt;/a&gt; which outlines what I mean.&lt;br /&gt;&lt;br /&gt;The killer feature for me is ""Dumb" repositories that hold data and may be accessed using regular protocols like ssh/http/ftp, with no special servers involved".&lt;br /&gt;&lt;br /&gt;Yes!  Put all the logic and processing in the client!  Thank you!&lt;br /&gt;&lt;br /&gt;I've been looking at &lt;a href="http://en.wikipedia.org/wiki/List_of_revision_control_software#Software_using_a_distributed_approach"&gt;decentralised revision control software&lt;/a&gt; lately.&lt;br /&gt;&lt;br /&gt;My prerequisites are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Free or Open Source.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Uses "dumb" repositories.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Simple to use.  (A criticism of &lt;a href="http://www.gnu.org/software/gnu-arch/"&gt;Arch&lt;/a&gt;)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Compatible with Windows.  (Lack of portability)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I'm still looking around and trying different packages.  Can anyone give me any recommentations on what they use?  Especially if they use "dumb" repositories and mirror their work on different clients.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-112295773263370054?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/112295773263370054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/112295773263370054'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2005/08/cvs-and-svn-web-based-revision-control.html' title='CVS and SVN; Web-based revision control?; Decentralized revision control ala Arch and Dumb repositories'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-112229797054638750</id><published>2005-07-25T03:26:00.001-10:00</published><updated>2011-07-13T00:48:24.565-10:00</updated><title type='text'>The Night They Drove Old Dixie Down</title><content type='html'>&lt;div align="right"&gt;&lt;table align="right" border="0" bordercolor="#111111" cellpadding="10" cellspacing="0" id="AutoNumber1" style="border-collapse: collapse;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%"&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/B00018YCIM/falundafabook-20"&gt;&lt;img align="right" border="0" src="http://images.amazon.com/images/P/B00018YCIM.01.MZZZZZZZ.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;I saw the very first episode of &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/B00018YCIM/falundafabook-20"&gt;Chappelle's Show&lt;/a&gt; tonight because the 5-day Ashes test match ended a day early.&lt;br /&gt;&lt;br /&gt;It's a fact that for the success of an African American comedian they must break through boundaries and appeal to the white male middle class.  Chappelle's Show isn't subversive with it's comedy but explicit.  That's the secret.&lt;br /&gt;&lt;br /&gt;In this way Dave Chappelle has another contemporary in Ali G (unlike Chris Rock who also likes to re-iterate the message he's trying to bring across, "Ain't talking about rich, I'm talking about wealth!").  Both comedians break down stereotypes by portraying them to an extent that is so over the top that it is funny.  Why is it funny?  Well, naturally, there's an element of truth to all comedy and humour.&lt;br /&gt;&lt;br /&gt;In the same way that they are confronting prejudices through humour, aren't they are also confronting the races that they are sending up?  But on this occasion by making them questioning their image and pretensions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-112229797054638750?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://wesclark.com/jw/the_band.html' title='The Night They Drove Old Dixie Down'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/112229797054638750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/112229797054638750'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2005/07/night-they-drove-old-dixie-down.html' title='The Night They Drove Old Dixie Down'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-112151267882305942</id><published>2005-07-16T01:17:00.000-10:00</published><updated>2011-07-13T23:52:26.392-10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Django knows.  First impressions.</title><content type='html'>I mentioned that I'd been playing around with Zope/Plone (for the last month I haven't had time to due to workplace absentism (not mine)). Well, that might change with &lt;a href="http://www.djangoproject.com/"&gt;Django&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Before using Zope, I had been checking out other Python frameworks and templating systems. CherryPy, Woven, Nevow, Cheetah, HTMLTemplate, Twisted, Myghty, PyMeld, Clearsilver... You name it, I tried it.&lt;br /&gt;&lt;br /&gt;For my first project, developed from the ground up, I used Pymeld (templating) and SQLObject (object-relational mapping). This was a small project and I only worked on it during a fortnight.&lt;br /&gt;&lt;br /&gt;The latest project requires something more. It requires user authentication, access levels, etc... I started working on it with Plone and most of the 2 weeks I have spent on it so far has been reading up on Zope/Plone and the implementation ideology.&lt;br /&gt;&lt;br /&gt;My main problem with Python and the current web frameworks is that they suck. It's a big call but they all feel very cumbersome and all encompassing. They seem to disregard everything out there and the reasons why PHP has become so popular. The main reason why PHP is so popular is that they are by in large designed for &lt;a href="http://www.top10webhosting.com/"&gt;commodity web hosting providers&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Most Python frameworks don't even run in CGI mode and require installation. They assume that you host the web site and administer the web server. How is a Python project meant to gain popularity and a critical mass when common people can't install it?&lt;br /&gt;&lt;br /&gt;Well, I don't have that problem because I'm developing for work on a standalone Linux box. Still, I hate bloated frameworks. Why can't the minimum requirements just be Python, Apache (and MySQL)? And for good measure, optionally &lt;a href="http://www.onlamp.com/pub/a/python/2003/10/02/mod_python.html"&gt;support mod_python for killer speed&lt;/a&gt; (most commodity web hosting don't and won't support mod_python or mod_php because of security implications)?&lt;br /&gt;&lt;br /&gt;Django looks to be &lt;a href="http://www.djangoproject.com/documentation/faq/"&gt;on the right track&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;&lt;b&gt;What are Django's prerequisites?&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Django requires Python 2.3 or later, Apache2, and mod_python. You'll also need a database engine; PostgreSQL is recommended, and MySQL is supported.&lt;br /&gt;&lt;br /&gt;We're currently working on expanding those options: WSGI support is in the works (which will allow Django to run under CGI, FCGI, etc.), as is support for a number of other database backends.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;They are also using &lt;a href="http://www.edgewall.com/trac/"&gt;Trac&lt;/a&gt; (although Trac uses the &lt;a href="http://www.clearsilver.net/"&gt;Clearsilver&lt;/a&gt; template system which requires a binary compile.  I do like Clearsilver though) which gives me more confidence.&lt;br /&gt;&lt;br /&gt;As a background, Django powers the &lt;a href="http://code.djangoproject.com/wiki/WorldOnline"&gt;sites created by World Online&lt;/a&gt;.  There is a &lt;a href="http://www.itconversations.com/shows/detail550.html"&gt;good talk here&lt;/a&gt; about those web sites.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-112151267882305942?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.djangoproject.com/' title='Django knows.  First impressions.'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/112151267882305942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/112151267882305942'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2005/07/django-knows.html' title='Django knows.  First impressions.'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-112091028297526220</id><published>2005-07-09T01:58:00.000-10:00</published><updated>2005-08-15T20:05:28.800-10:00</updated><title type='text'>Tagging, TagCloud, the Yahoo! Term Extraction API and search engines</title><content type='html'>I've been researching and experimenting up a bit about categorisation or more specifically &lt;a href="http://en.wikipedia.org/wiki/Folksonomy"&gt;folksonomy&lt;/a&gt;.  The buzz these days is about "tagging".  One of the bigger sites is &lt;a href="http://del.icio.us/"&gt;del.icio.us&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Can we just establish that "tags", "terms", "keywords" are basically the same thing?&lt;br /&gt;&lt;br /&gt;The other day I checked out &lt;a href="http://tagcloud.com/"&gt;TagCloud&lt;/a&gt; (from what I can tell, I think &lt;a href="http://tagcloud.com/"&gt;TagCloud &lt;/a&gt; only grabs the terms from the post titles which is not too good in my opinion). Basically, the site spiders your RSS feed and creates a pretty "Tag Cloud" for you. What's different about it is that is uses &lt;a href="http://developer.yahoo.net/search/content/V1/termExtraction.html"&gt;Yahoo!'s Term Extraction API&lt;/a&gt; to get the tags for you. &lt;br /&gt;&lt;br /&gt;I'll show you what I mean.&lt;br /&gt;&lt;br /&gt;For &lt;a href="http://julianyap.blogspot.com/2005/06/itunes-49-and-odeo.html"&gt;my 2nd last post&lt;/a&gt;, I added it to del.icio.us and manually gave it the tags:&lt;br /&gt;itunes, odeo, podcast&lt;br /&gt;&lt;br /&gt;Running it through &lt;a href="http://developer.yahoo.net/search/content/V1/termExtraction.html"&gt;Yahoo!'s Term Extraction API&lt;/a&gt; and I got the tags or "terms":&lt;br /&gt;odeo, itunes, ipodder, conversations, blogger, common man, podcasts, podcast, blogging, guess, decent, case, download, man, main&lt;br /&gt;&lt;br /&gt;This got me thinking? Folksonomy is the act of people manually categorising content. My manual categorisation of my previous post was a subset of what search engines have been doing for the past 10 years.&lt;br /&gt;&lt;br /&gt;Here, I whipped this form up.  Give my &lt;a href="http://developer.yahoo.net/"&gt;Yahoo! powered&lt;/a&gt; Term Extraction form a shot.  Just enter in something into the text box and hit submit.&lt;br /&gt;&lt;br /&gt;&lt;form name="form1" method="post" action="http://api.search.yahoo.com/ContentAnalysisService/V1/termExtraction"&gt;&lt;br /&gt;&lt;b&gt;Julian's Blog Term Extraction tool&lt;/b&gt;&lt;br /&gt;&lt;input name="appid" id="appid" value="julian_blogger" type="hidden"&gt;&lt;br /&gt;&lt;textarea name="context" cols="60" rows="10" id="context"&gt;&lt;/textarea&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   &lt;input name="Submit" value="Submit" type="submit"&gt;&lt;br /&gt;&lt;/form&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-112091028297526220?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/112091028297526220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/112091028297526220'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2005/07/tagging-tagcloud-yahoo-term-extraction.html' title='Tagging, TagCloud, the Yahoo! Term Extraction API and search engines'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-112001546432931352</id><published>2005-06-28T17:20:00.000-10:00</published><updated>2005-07-13T14:01:03.603-10:00</updated><title type='text'>iTunes 4.9 and Odeo</title><content type='html'>I've tried Odeo and most recently iTunes.&lt;br /&gt;&lt;br /&gt;I was excited about Odeo because thus far there haven't been any decent ways of finding podcasts. How wrong I could be. Odeo is equally as difficult. The only thing going for it is the potential ability for common man to create podcasts. ie. Do what Blogger did to blogging.&lt;br /&gt;&lt;br /&gt;I've also tried &lt;a href="http://ipodder.sourceforge.net/"&gt;iPodder&lt;/a&gt; but that was poor too.&lt;br /&gt;&lt;br /&gt;I guess my main concern is that I want download individual shows. I don't want to "Subscribe" to shows just yet unless I really like the show. Also, with the case of the podcast I listen to most, &lt;a href="http://itconversations.com/"&gt;IT Conversations&lt;/a&gt;, I only ever get individual shows.&lt;br /&gt;&lt;br /&gt;iTunes 4.9 does that.  I can "Get" individual shows.&lt;br /&gt;&lt;br /&gt;Here's a screen shot of what I mean. Here I have downloaded the latest 2600 podcast and I have the choice to get whichever show I like from IT Conversations.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2624/588/1600/itunes4.9screen1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/2624/588/400/itunes4.9screen1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;iTunes 4.9 also have an excellent system for finding podcasts.  Thank UI very much.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPDATE (14/July/2005 @ 10am):&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In response and clarification to comments from Ed.&lt;br /&gt;&lt;br /&gt; - True, Odeo does allow you to download individual episodes.  You go to that channel page, and queue up the show for download or click on the individual show to download it.  When you are "Subscribed" to a show, it does not allow you to specify which individual show to download.  There are only global "Syncr" settings.  With iTunes, my global settings for my subscriptions are to check for new episodes every day.  But when new episodes are available, to do nothing so that I can "Get" whichever one I like.&lt;br /&gt;&lt;br /&gt; - Yes, iTunes does have organisation.  Just click on "Podcasts", "Podcast Directory".  If you want to delve deeper, there are categories on the left hand side of that page.  Also, for tags to be effective, they must also support nesting, the same way that del.icio.us does.  It's a very messy implementation.&lt;br /&gt;&lt;br /&gt;- True, iTunes lacks community.  Thank you for your solitary point.  &lt;br /&gt;&lt;br /&gt;As is the democracy of the internet, if I like the Odeo community, I can participate and use it to find podcasts.  I will however, continue to use iTunes to organise my feeds unless Odeo offers me a better UI experience.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-112001546432931352?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/112001546432931352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/112001546432931352'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2005/06/itunes-49-and-odeo.html' title='iTunes 4.9 and Odeo'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-111599008927488512</id><published>2005-05-13T03:14:00.000-10:00</published><updated>2005-07-22T02:06:57.180-10:00</updated><title type='text'>Installshield headaches and error 1722 when installing Java runtime environment build 1.5.0_03-b07</title><content type='html'>&lt;p&gt;For the longest time (well 6 months at least) I’ve had problems with Installshield and installing applications. Finally, I think I may have come up with solution (well, on this particular occasion at least).&lt;/p&gt;&lt;p&gt;Check the root directory (c:\) for a FILE called "Program" if this file exists delete it, apparently it often causes problems for windows installers, it may reappear later so if you have problems with another installer, check this file again.&lt;/p&gt;&lt;p&gt;I found that this file was created by BeSweet, a program I installed about a year ago. Why couldn’t Installshield just fix this problem? Half the hits on my blog are from people researching Installshield errors!&lt;br /&gt;&lt;/p&gt;If this solution works for you, please consider making a small donation by clicking below.  I suggest $2.00.  Thank you!&lt;br /&gt;&lt;form action="https://www.paypal.com/cgi-bin/webscr" method="post"&gt;&lt;br /&gt;&lt;input name="cmd" value="_s-xclick" type="hidden"&gt;&lt;br /&gt;&lt;input src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" border="0" type="image"&gt;&lt;br /&gt;&lt;input name="encrypted" value="-----BEGIN PKCS7-----MIIHNwYJKoZIhvcNAQcEoIIHKDCCByQCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYALy4QhZg434GUy9ruVoJx908SB8CsZgcifLz3Pmpq317HQZkKNcN6Q9jXjCivhbjNxgVVaUwWOgwCv8AJ/0JRFILDTMnqv73+K1GGPAsKzYPHHOWnLhB7ivUMf7lnosHXaOJh8GSp8IfU6JXpWhgg2XF21KGAnD1QFf6LbgYlYMzELMAkGBSsOAwIaBQAwgbQGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIsDSy5mKw4gqAgZCQAP1Ga+r4InFihw0XR4pH0qav1qQWOgVqOT5a3rKVEsmYF5w7Eo1n8SqMJe9E9LkKNVghD6LwZ8wBXv+aWdXfJT8qE7fnAjY92MLRsxkcQxQ0GgGCevJ70QEV0FVnnXz1QQ8M7QmsnFp3imMjsP0kAmH2N+nf7dw89UgAoKb5hYfHFTCmr+/jnUcec7DicPugggOHMIIDgzCCAuygAwIBAgIBADANBgkqhkiG9w0BAQUFADCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wHhcNMDQwMjEzMTAxMzE1WhcNMzUwMjEzMTAxMzE1WjCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMFHTt38RMxLXJyO2SmS+Ndl72T7oKJ4u4uw+6awntALWh03PewmIJuzbALScsTS4sZoS1fKciBGoh11gIfHzylvkdNe/hJl66/RGqrj5rFb08sAABNTzDTiqqNpJeBsYs/c2aiGozptX2RlnBktH+SUNpAajW724Nv2Wvhif6sFAgMBAAGjge4wgeswHQYDVR0OBBYEFJaffLvGbxe9WT9S1wob7BDWZJRrMIG7BgNVHSMEgbMwgbCAFJaffLvGbxe9WT9S1wob7BDWZJRroYGUpIGRMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbYIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAIFfOlaagFrl71+jq6OKidbWFSE+Q4FqROvdgIONth+8kSK//Y/4ihuE4Ymvzn5ceE3S/iBSQQMjyvb+s2TWbQYDwcp129OPIbD9epdr4tJOUNiSojw7BHwYRiPh58S1xGlFgHFXwrEBb3dgNbMUa+u4qectsMAXpVHnD9wIyfmHMYIBmjCCAZYCAQEwgZQwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tAgEAMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wNTA3MjIxMjAxMTJaMCMGCSqGSIb3DQEJBDEWBBTUccDpqjFETlS5cPJEIh/Wc2U8STANBgkqhkiG9w0BAQEFAASBgG3dr/XKFE//wN1CDnLBzpO5PlfaLSrem9jeCAtlIWivpYSAljMnN36KqPdHksWjWMYrXkHG7pzC063jNKwND/a57xcvu00SO2WIWU3GR/Pkt1gFfzfB05pevZ17tmm3lUsy03Fn6OTQY22ET3cqqfTqlxKi9PjohZZ5t11JJNKM-----END PKCS7----- " type="hidden"&gt;&lt;br /&gt;&lt;/form&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-111599008927488512?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/111599008927488512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/111599008927488512'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2005/05/installshield-headaches-and-error-1722.html' title='Installshield headaches and error 1722 when installing Java runtime environment build 1.5.0_03-b07'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-8593505.post-109711867320431045</id><published>2004-08-09T15:37:00.000-10:00</published><updated>2004-10-06T17:23:58.013-10:00</updated><title type='text'>MUSIC: Wedding songs - unsorted</title><content type='html'>They all fit nicely onto 2 CDs :P&lt;br /&gt;&lt;br /&gt;   * Beach Boys - Don't Worry Baby&lt;br /&gt;   * Coldplay - Clocks&lt;br /&gt;   * Coldplay - Yellow&lt;br /&gt;   * Crowded House - Weather With You&lt;br /&gt;   * Dido - Thank You&lt;br /&gt;   * David Gray - Be Mine&lt;br /&gt;   * Gersey - Motorway (Radio Edit)&lt;br /&gt;   * Everything But The Girl - The Only Living Boy In New York&lt;br /&gt;   * Cure - A Letter To Elise&lt;br /&gt;   * Roots - Seed 2.0, The (featuring Cody&lt;br /&gt;   * Wilco - How to Fight Loneliness&lt;br /&gt;   * KCI and JoJo - All My Life&lt;br /&gt;   * Keane - Somewhere Only We Know&lt;br /&gt;   * Maroon 5 - She Will Be Loved&lt;br /&gt;   * Modest Mouse - Float On&lt;br /&gt;   * My Morning Jacket - Lowdown&lt;br /&gt;   * nada surf - inside of love&lt;br /&gt;   * Nina Simone - My Baby Just Cares for Me&lt;br /&gt;   * Norah Jones - Sunrise&lt;br /&gt;   * Radiohead - Stop Whispering [US Version]&lt;br /&gt;   * Supertramp - Give A Little Bit&lt;br /&gt;   * The Flaming Lips - Do You Realize??&lt;br /&gt;   * The Flaming Lips - Fight Test&lt;br /&gt;   * the rolling stones - beasts of burden&lt;br /&gt;   * The Smashing Pumpkins - To Sheila&lt;br /&gt;   * The Smiths - Ask&lt;br /&gt;   * The Thrills - Big Sur&lt;br /&gt;   * The Verve - Lucky Man&lt;br /&gt;   * The Verve - Sonnet&lt;br /&gt;   * Thunderclap Newman - Something In The Air&lt;br /&gt;   * Travis - Be My Baby&lt;br /&gt;   * Travis - Somewhere Else&lt;br /&gt;   * Travis - Turn&lt;br /&gt;   * U2 - U2 (Original Version) - Sweetest Thing&lt;br /&gt;   * Van Morrison - Astral Weeks&lt;br /&gt;   * Van Morrison - Sweet Thing&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8593505-109711867320431045?l=julianyap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/109711867320431045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8593505/posts/default/109711867320431045'/><link rel='alternate' type='text/html' href='http://julianyap.blogspot.com/2004/08/music-wedding-songs-unsorted.html' title='MUSIC: Wedding songs - unsorted'/><author><name>Julian Yap</name><uri>http://www.blogger.com/profile/06295414916608242540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.julianyap.com/images/aloha_tux.png'/></author></entry></feed>
