<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description></description><title>tip.top.blog</title><generator>Tumblr (3.0; @rathboma)</generator><link>http://blog.matthewrathbone.com/</link><item><title>http://droidblimp.com/2012/05/13/pool-review-for-android/</title><description>&lt;a href="http://droidblimp.com/2012/05/13/pool-review-for-android/"&gt;http://droidblimp.com/2012/05/13/pool-review-for-android/&lt;/a&gt;: &lt;p&gt;This pool game is really awesome. I can’t believe it’s not more well-known.&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/23041291885</link><guid>http://blog.matthewrathbone.com/post/23041291885</guid><pubDate>Mon, 14 May 2012 11:54:28 -0400</pubDate></item><item><title>Simple Check-in 'Unknown Error' bug is fixed!</title><description>&lt;p&gt;I just pushed a fix to the hated &amp;#8216;unknown error&amp;#8217; bugs that have been plaguing a minority of &lt;a href="https://play.google.com/store/apps/details?id=com.matthewrathbone.simplecheckin"&gt;Simple Check-in&lt;/a&gt; users. This fix is available in versions 1.3 and above.&lt;/p&gt;
&lt;p&gt;The error was due to number formatting differences between US and European devices.&lt;/p&gt;
&lt;p&gt;For future reference, on many european Locale phones, formatting a string with the double 46.1234 will actually be written out as 46,1234. See the difference? The european formatting uses a comma instead of the US-standard decimal place.&lt;/p&gt;
&lt;p&gt;This caused errors when calling the foursquare API as this is not a valid way to represent Lat/Long coordinates.&lt;/p&gt;
&lt;p&gt;So if you were frustrated because Simple Check-in wasn&amp;#8217;t working for you then &lt;a href="https://play.google.com/store/apps/details?id=com.matthewrathbone.simplecheckin"&gt;download the new version and give it a try!&lt;/a&gt;&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/21959640805</link><guid>http://blog.matthewrathbone.com/post/21959640805</guid><pubDate>Sat, 28 Apr 2012 00:28:01 -0400</pubDate></item><item><title>So I'm a spammer now?</title><description>&lt;p&gt;Last night I got the following email, which is a notice that google has removed my &lt;a href="http://blog.matthewrathbone.com/post/21120214991/one-touch-check-ins-for-foursquare" target="_blank"&gt;Simple Check-in android app&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;This is a notification that your application, Simple Check-In, with package ID com.matthewrathbone.&lt;/span&gt;&lt;span&gt;simplecheckin, has been removed from the Google Play Store.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;REASON FOR REMOVAL&lt;/strong&gt;&lt;span&gt;: Violation of the &lt;/span&gt;&lt;a href="http://www.android.com/us/developer-content-policy.html#spam" target="_blank"&gt;spam&lt;/a&gt;&lt;span&gt; provisions of the Content Policy&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;All violations are tracked. Serious or repeated violations of any nature will result in the termination of your developer account, and investigation and possible termination of related Google accounts.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;If your developer account is still in good standing, you may revise and upload a new instance of the application that is compliant with the developer terms. Before uploading any new applications, please review the &lt;/span&gt;&lt;a href="http://www.android.com/us/developer-distribution-agreement.html" target="_blank"&gt;Developer Distribution Agreement&lt;/a&gt;&lt;span&gt; and &lt;/span&gt;&lt;a href="http://www.android.com/us/developer-content-policy.html" target="_blank"&gt;Content Policy&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;If you feel we have made this determination in error, you can visit the &lt;/span&gt;&lt;a href="http://support.google.com/googleplay/android-developer/bin/answer.py?answer=2477981" target="_blank"&gt;Google Play Help Center article&lt;/a&gt;&lt;span&gt; for additional information regarding this removal.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;The Google Play Team&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;span&gt;This is totally bogus, in no way does my app meet any of the criteria for being spam. (see the link above for those conditions). I work for foursquare, so why on earth would I make a spam application disguised as a check-in app!?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I find it amazing that genuine developers have to suffer through this kind of thing when all they want to do is make an app.&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/21324266876</link><guid>http://blog.matthewrathbone.com/post/21324266876</guid><pubDate>Wed, 18 Apr 2012 10:17:00 -0400</pubDate></item><item><title>One touch check-ins for foursquare</title><description>&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.matthewrathbone.simplecheckin"&gt;&lt;img src="http://media.tumblr.com/tumblr_m2hzzgnix71qar0o4.png"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sometimes you just want to check-in to foursquare as quickly as possible. Well now you can!&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m happy to introduce &amp;#8220;Simple Check-in&amp;#8221;, a one touch check-in app for foursquare. It&amp;#8217;s fast, free, and there are no ads (and never will be).&lt;/p&gt;
&lt;p&gt;I built the app because sometimes I want to avoid being rude, or because I&amp;#8217;m checking in somewhere mundane like the supermarket. This app allows me the best of both worlds, I can check-in so fast no-one knows I even did it.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.matthewrathbone.simplecheckin" title="Simple check-in"&gt;You can download the app here, from the android market (sorry I mean from &amp;#8216;google play&amp;#8217;)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.matthewrathbone.simplecheckin"&gt;&lt;img src="http://media.tumblr.com/tumblr_m2i01kMocR1qar0o4.png"/&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/21120214991</link><guid>http://blog.matthewrathbone.com/post/21120214991</guid><pubDate>Sat, 14 Apr 2012 21:58:01 -0400</pubDate></item><item><title>Scrolling past the end of a file in Sublime Text 2</title><description>&lt;p&gt;If you hate looking at the bottom of the screen when you&amp;#8217;re editing the last few lines of a file, add this line to your sublime text 2 user settings (Preferences -&amp;gt; Settings - user):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;#8220;scroll_past_end&amp;#8221;: true&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And you&amp;#8217;ll be able to scroll past the end of a file!&lt;/p&gt;
&lt;p&gt;Look, now I can edit line 139 in the middle of the screen! Success!&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m139qqEGc51qar0o4.png"/&gt;&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/19517484943</link><guid>http://blog.matthewrathbone.com/post/19517484943</guid><pubDate>Sun, 18 Mar 2012 12:28:47 -0400</pubDate></item><item><title>Tips for using CDH's Hadoop Distribution with Amazon's S3</title><description>&lt;ol&gt;&lt;li&gt;Hive doesn&amp;#8217;t play well with extension-less files in s3. Make sure each file has an extension (eg by default it can&amp;#8217;t read file-00000, but it can read file-0000.tar.gz).&lt;/li&gt;
&lt;li&gt;If you&amp;#8217;re using Oozie, no file/folder actions performed in the &amp;lt;prepare&amp;gt; block will work for s3 files. Oozie helpers are hard-coded to use HDFS paths only.&lt;/li&gt;
&lt;li&gt;Also with oozie, workflow.xml files cannot be stored in s3 (only hdfs) for the same reason. [hard coded dependencies]&lt;/li&gt;
&lt;li&gt;Remember that s3 credentials added to core-site.xml are available for ANY job, no matter who runs it, so make sure those credentials have strict enough permissions to stop users deleting production data.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;UPDATE&lt;/p&gt;
&lt;p&gt;There&amp;#8217;s actually a fix for (1) &amp;#8212; do this:&lt;/p&gt;
&lt;p&gt;SET hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;&lt;/p&gt;
&lt;p&gt;Now it can read any files!&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/19026228697</link><guid>http://blog.matthewrathbone.com/post/19026228697</guid><pubDate>Fri, 09 Mar 2012 19:00:00 -0500</pubDate></item><item><title>Android Game Reviews</title><description>&lt;p&gt;When I had an iphone there were at least 10 game review sites that I could hit up on a daily basis to find a good game to buy, but that&amp;#8217;s not true for android. There are a couple, but two good websites is not enough for me to form an opinion on what to buy next.&lt;/p&gt;
&lt;p&gt;So instead of waiting for someone to launch their own version, I&amp;#8217;ve made one myself.&lt;/p&gt;
&lt;p&gt;Say hello to &lt;a href="http://droidblimp.com/" target="_blank"&gt;Droid Blimp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lwobzyABEy1qar0o4.png"/&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll be updating the site about once per week to start with, so stay tuned!&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/14684487487</link><guid>http://blog.matthewrathbone.com/post/14684487487</guid><pubDate>Fri, 23 Dec 2011 15:39:19 -0500</pubDate><category>games</category><category>android</category><category>blog</category></item><item><title>Slicer - Now the best window manager for the Mac.</title><description>&lt;p&gt;&lt;img height="75" src="http://a4.mzstatic.com/us/r1000/066/Purple/7d/05/b1/mzi.fmlrbwla.175x175-75.png" width="75"/&gt;&lt;/p&gt;
&lt;p&gt;I was always a big fan of the shift-it and size-up window managers for the mac, but they were never quite flexible enough.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://itunes.apple.com/us/app/slicer/id487999732?mt=12" target="_blank"&gt;Enter Slicer&lt;/a&gt;. It&amp;#8217;s seriously awesome. You should buy it now because it&amp;#8217;s only $3.99 and it&amp;#8217;s better than competition costing $15.&lt;/p&gt;
&lt;p&gt;Here is a screenshot of my desktop organized by slicer, notice the top two windows are 1/3 and 2/3 width. Awesome:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lwm7zoUmRN1qar0o4.png"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://itunes.apple.com/us/app/slicer/id487999732?mt=12"&gt;BUY IT NOW&lt;/a&gt; (&lt;a href="http://allsystemsgrow.com/slicer/" target="_blank"&gt;or use the free trial if you&amp;#8217;re not convinced&lt;/a&gt;)&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/14622155147</link><guid>http://blog.matthewrathbone.com/post/14622155147</guid><pubDate>Thu, 22 Dec 2011 12:19:00 -0500</pubDate></item><item><title>How to have page numbers start on page 3 using MS Word 2011 for Mac</title><description>&lt;p&gt;This works if you want your page numbers to start anywhere after page 1. In my example I want to start numbering on page 3, but this would work even if you wanted page numbering to start on page 57 (for example).&lt;/p&gt;
&lt;p&gt;We do this by breaking the document into sections. In this example I am using the following structure:&lt;/p&gt;
&lt;p&gt;Page 1 - title page&lt;/p&gt;
&lt;p&gt;Page 2 - contents page&lt;/p&gt;
&lt;p&gt;Page 3 - real document starts &lt;strong&gt;&amp;lt;= I want this to be labelled page 1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1: Insert a section break at the end of the title page, and the end of the contents page.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Put your cursor at the END of your title page, then click Insert =&amp;gt; Break =&amp;gt; Section Break (next page)&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lwbdy7Z6uy1qar0o4.png"/&gt;&lt;/p&gt;
&lt;p&gt;Do the same thing for the contents page. Now your document has 3 sections and when we insert page numbering it will only number that section.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2: Insert the Page Numbers&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Navigate to the first page you want numbered (page 3 in my example).&lt;/p&gt;
&lt;p&gt;Click Insert =&amp;gt; Page Numbers&lt;/p&gt;
&lt;p&gt;Ensure &amp;#8216;show number on first page&amp;#8217; is checked&lt;/p&gt;
&lt;p&gt;Click Format&amp;#8230;&lt;/p&gt;
&lt;p&gt;Under &amp;#8216;page numbering&amp;#8217;, select Start At and enter &amp;#8220;1&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lwbe9opXnO1qar0o4.png"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;That&amp;#8217;s it!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can now update your contents page and it will refer to your shiny new page number format.&lt;/p&gt;
&lt;p&gt;This took me a long time to work out. I&amp;#8217;m writing this primarily for my awesome wife who writes way more essays than I do. :-)&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/14321006569</link><guid>http://blog.matthewrathbone.com/post/14321006569</guid><pubDate>Fri, 16 Dec 2011 16:02:00 -0500</pubDate></item><item><title>Android game download stats for GeoPop, 7 days after launch</title><description>&lt;p&gt;I&amp;#8217;ve always found download statistics articles by other app developers extremely interesting and useful when trying to get insight into download and revenue rates for mobile applications. I thought I&amp;#8217;d share the love with some stats on my &lt;a href="https://market.android.com/details?id=com.rathboma.geopop" target="_blank"&gt;very first android game GeoPop&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;GeoPop&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The game is very simple: tap shapes in the order specified as fast as you can within the time limit. The more shapes you match, the higher your score will be. The challenge comes from beating your own high-score and placing top of the leader-board.&lt;/p&gt;
&lt;p&gt;The simplicity of the game mechanic was ideal for learning android development, and the mechanics of game development in general. Being a server-side developer by trade, it was a big leap having to work with UI vs game threads and handling time based animation, rendering and object movement in a frame rate independent way.&lt;/p&gt;
&lt;p&gt;Equally, because the mechanic is fairly simple, and the game has only a single game mode, my expectations as to download numbers are very conservative.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Stats&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I released the game on November 26th.&lt;/p&gt;
&lt;p&gt;Today (December 4th). I have a total of &lt;span&gt;183 installs.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Here is my google analytics chart for the number of app launches per day:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lvp2q3H2do1qar0o4.png"/&gt;&lt;/p&gt;
&lt;p&gt;This represents a total of 108 absolute unique users.&lt;/p&gt;
&lt;p&gt;My total revenue from admob so far is $0.06, so any dreams of a &lt;a href="http://1.bp.blogspot.com/-t9oBaOX5ZA8/TaIhMq0GXYI/AAAAAAAAVc8/6RHY05hfAvg/s1600/scrooge_mcduck.jpg" target="_blank"&gt;giant money vault&lt;/a&gt; are still a long way from fruition.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Take Away&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m happy at my 180 downloads so far, its more than I expected (0) from my first android project.&lt;/p&gt;
&lt;p&gt;Interestingly, I released a bug-fix on December 3rd along with a new application icon, and this increased both downloads and active sessions drastically (about 70 downloads happened on that day). The same was not true for a bug fix released 2 days after launch.&lt;/p&gt;
&lt;p&gt;Hope this is interesting to the internetz in the same way other posts were useful to me.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Shout Out&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve found the following blogs very interesting in this regard:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.ziggysgames.com/" target="_blank"&gt;Ziggy&amp;#8217;s Games&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://mikamobile.blogspot.com/"&gt;Mika Mobile&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://droid-blog.net/"&gt;Droid-blog&lt;/a&gt;&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/13740634070</link><guid>http://blog.matthewrathbone.com/post/13740634070</guid><pubDate>Sun, 04 Dec 2011 14:54:44 -0500</pubDate><category>android</category><category>revenue</category><category>geopop</category><category>games</category><category>admob</category><category>analytics</category></item><item><title>Santa Says? An xmas game that doesn't suck</title><description>&lt;p&gt;&lt;a href="https://market.android.com/details?id=com.rathboma.santafree"&gt;&lt;img src="http://media.tumblr.com/tumblr_lvl3pavtjQ1qar0o4.png"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Last weekend I found myself drawing Christmas characters, so to capitalize on the idea I built a game:&lt;/p&gt;
&lt;p&gt;Santa Says? is a simon-says style memory game where the goal is to repeat the pattern shown to you on screen. It gets really hard (my highscore is 19), and it&amp;#8217;s really fun.&lt;/p&gt;
&lt;p&gt;To go along with the hand-drawn graphics I also added funny voices to each of the characters (it&amp;#8217;s more fun than a *beep* noise!).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://market.android.com/details?id=com.rathboma.santafree" title="Santa Says"&gt;Check it out on the market&lt;/a&gt;&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/13636686968</link><guid>http://blog.matthewrathbone.com/post/13636686968</guid><pubDate>Fri, 02 Dec 2011 11:13:00 -0500</pubDate><category>game</category><category>android</category><category>santa</category><category>christmas</category><category>xmax</category><category>free</category></item><item><title>GeoPop - My First Android Game</title><description>&lt;p&gt;I just clicked publish on &amp;#8216;GeoPop&amp;#8217;, my first Android project.&lt;/p&gt;
&lt;p&gt;GeoPop is a puzzle game where you have to pop geometric shapes as fast as possible before the timer runs out. It gets pretty frantic pretty quickly, so you need to have quick fingers to reach that elusive high-score :-).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://market.android.com/details?id=com.rathboma.geopop"&gt;Click here to download it from the android market&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://market.android.com/details?id=com.rathboma.geopop"&gt;&lt;img src="http://media.tumblr.com/tumblr_lvaedzqCgr1qar0o4.png"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;PS - I would really appreciate any feedback, so please &lt;a href="http://twitter.com/rathboma"&gt;tweet me&lt;/a&gt; with anything at all, even to just tell me why it sucks!&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/13364834917</link><guid>http://blog.matthewrathbone.com/post/13364834917</guid><pubDate>Sat, 26 Nov 2011 16:33:20 -0500</pubDate><category>game</category><category>android</category><category>GeoPop</category><category>software</category></item><item><title>[link] Beginning Android Game Development Book</title><description>&lt;a href="http://www.amazon.com/Beginning-Android-Games-Mario-Zechner/dp/1430230428/ref=sr_1_1?ie=UTF8&amp;qid=1319730012&amp;sr=8-1"&gt;[link] Beginning Android Game Development Book&lt;/a&gt;: &lt;p&gt;I totally recommend this book, which I read over the weekend. I went from fumbling around without being able to accomplish anything, to approaching game development in a totally new way (which is much better).&lt;/p&gt;
&lt;p&gt;Kudos to &lt;a title="Mario" target="_blank" href="https://twitter.com/#!/badlogicgames"&gt;@badlogicgames&lt;/a&gt;&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/11992897332</link><guid>http://blog.matthewrathbone.com/post/11992897332</guid><pubDate>Thu, 27 Oct 2011 11:42:00 -0400</pubDate></item><item><title>Adding JARS to hive without using ADD JAR</title><description>&lt;p&gt;Say you&amp;#8217;ve built some library you want to use in Hive, or even in Hadoop. If this library is a UDF for use in hive queries you can load it like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ADD JAR &amp;#8216;s3n://matthewsbucket/superudf.jar&amp;#8217;;&lt;/p&gt;
&lt;p&gt;CREATE TEMPORARY FUNCTION super as &amp;#8216;com.matthewrathbone.SuperFunction&amp;#8217;;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you&amp;#8217;re creating a bunch of these you don&amp;#8217;t want to have to &amp;#8216;ADD JAR&amp;#8217; _every_single_time_ you want the function, you want it to be in the library already.&lt;/p&gt;
&lt;p&gt;To do that either put it in hive/lib, or hadoop/lib on all the nodes. If you&amp;#8217;re using &lt;a title="emr" target="_blank" href="http://aws.amazon.com/elasticmapreduce/"&gt;Elastic Mapreduce&lt;/a&gt; you can do this in a bootstrap script:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;sudo apt-get install wget&lt;/p&gt;
&lt;p&gt;wget -o /home/hadoop/lib/super.jar &lt;a href="http://somewhere.com/superudf.jar"&gt;http://somewhere.com/superudf.jar&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now you can skip the ADD JAR step in function creation (which is much faster by the way):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;CREATE TEMPORARY FUNCTION super as &amp;#8216;com.matthewrathbone.SuperFunction&amp;#8217;;&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://blog.matthewrathbone.com/post/11699206873</link><guid>http://blog.matthewrathbone.com/post/11699206873</guid><pubDate>Thu, 20 Oct 2011 14:19:15 -0400</pubDate></item><item><title>The start of an online puzzle community?</title><description>&lt;p&gt;&lt;a href="http://themastertheorem.com"&gt;&lt;img src="http://media.tumblr.com/tumblr_lsjty2Hgnz1qar0o4.png"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m a long-time fan of &lt;a title="puzzles" target="_blank" href="http://themastertheorem.com"&gt;The Master Theorem&lt;/a&gt;. The puzzle-master (M) posts pretty difficult to solve puzzles on a weekly basis, but lately something interesting has happened, user submitted puzzles have started being posted.&lt;/p&gt;
&lt;p&gt;Is it just me, or does this look like the start of a really interesting (and self-regulating) community for puzzle fanatics (makers AND solvers)?&lt;/p&gt;
&lt;p&gt;I hope so!&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/11023088897</link><guid>http://blog.matthewrathbone.com/post/11023088897</guid><pubDate>Tue, 04 Oct 2011 12:06:00 -0400</pubDate></item><item><title>Some fun Hadoop and Hive Bugs</title><description>&lt;p&gt;If you&amp;#8217;re running Hadoop 0.20 with Hive 0.7 here are a couple of bugs that it&amp;#8217;s useful to know about:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NullPointerException&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you have an external partitioned table, this could mean you forgot to recover the partitions before running the query:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ALTER TABLE sample RECOVER PARTITIONS;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;MR jobs hanging on 0/0 completed map tasks&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Creating an external table that points to an empty location will cause hive to generate mapreduce jobs that hang *forever*. It&amp;#8217;s because the map tasks stay at 0% complete (0/0 completed).&lt;/p&gt;
&lt;p&gt;There is a &lt;a href="https://issues.apache.org/jira/browse/HADOOP-5850"&gt;Hadoop patch for this&lt;/a&gt; (so long as you have the ability to patch your cluster), and it should already be integrated into hadoop version 0.21.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bonus:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you have some sort of delimited data (eg, tab delimited) in a Hive external table, and you want to find all records where a particular string field is non-existent,  you need to test for empty string and not NULL:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;select * from events where venue IS NULL &amp;lt;= Won&amp;#8217;t work&lt;/p&gt;
&lt;p&gt;select * from events where venue = &amp;#8220;&amp;#8221; &amp;lt;= Will work&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://blog.matthewrathbone.com/post/10456525488</link><guid>http://blog.matthewrathbone.com/post/10456525488</guid><pubDate>Tue, 20 Sep 2011 18:23:00 -0400</pubDate></item><item><title>"regular expressions are “WYSIWYG” - the language described is the language that gets matched—whereas..."</title><description>“regular expressions are “WYSIWYG” - the language described is the language that gets matched—whereas parser-generators are WYSIWYGIYULR(k) - “what you see is what you get if you understand LR(k).””&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;p&gt;&lt;a title='Matthew Might and David Darais : "Yacc Is Dead"' href="http://arxiv.org/PS_cache/arxiv/pdf/1010/1010.5023v1.pdf"&gt;Matthew Might and David Darais : “Yacc Is Dead”&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(I know it’s a very dorky quote, but it really is awesome)&lt;/p&gt;&lt;/em&gt;</description><link>http://blog.matthewrathbone.com/post/5348660756</link><guid>http://blog.matthewrathbone.com/post/5348660756</guid><pubDate>Mon, 09 May 2011 21:49:00 -0400</pubDate><category>quote</category><category>compilers</category></item><item><title>Google should buy this website</title><description>&lt;a href="http://workflowy.com"&gt;Google should buy this website&lt;/a&gt;: &lt;p&gt;This is the missing tool in google-docs, I use it everyday. Its the sweet spot between a full on document and a piece of paper.&lt;/p&gt;
&lt;p&gt;If they added their collaboration features it would be an amazing product that I would happily pay for.&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/4780752872</link><guid>http://blog.matthewrathbone.com/post/4780752872</guid><pubDate>Wed, 20 Apr 2011 13:46:07 -0400</pubDate></item><item><title>A Warning About Apache Thrift's Asynchronous Clients</title><description>&lt;p&gt;By default if you use the asynchronous client for &lt;a href="https://github.com/apache/thrift"&gt;thrift&lt;/a&gt; it will be using a FRAMED transport layer, even though there is no mention of this in the code / docs.&lt;/p&gt;
&lt;p&gt;You&amp;#8217;ll know this is happening because your server will give you the following error message when it receives an rpc:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;org.apache.thrift.protocol.TProtocolException: Missing version in readMessageBegin, old client?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you have no control over the server code (eg, if you&amp;#8217;re using &lt;a href="https://github.com/cloudera/flume"&gt;flume&lt;/a&gt;), then you&amp;#8217;ll have to fall back to the synchronous client, sorry.&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/4754638713</link><guid>http://blog.matthewrathbone.com/post/4754638713</guid><pubDate>Tue, 19 Apr 2011 16:16:36 -0400</pubDate><category>flume</category><category>thrift</category><category>java</category></item><item><title>It has been a good week</title><description>&lt;p&gt;So over the last week I&amp;#8217;ve been doing some pretty awesome things.&lt;/p&gt;
&lt;p&gt;I went to the &lt;a href="http://foursquare.com/venue/22762"&gt;Wollman Rink&lt;/a&gt; in Central Park to skate with NYR players &lt;/p&gt;
&lt;p&gt;I went to the &lt;a href="http://foursquare.com/venue/41046"&gt;Metropolitan Opera&lt;/a&gt; to watch &lt;a href="http://en.wikipedia.org/wiki/Armida_(Rossini)"&gt;Armida&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Then on Saturday I was at &lt;a href="http://foursquare.com/venue/41378"&gt;BAM&lt;/a&gt; to see Diary of a MadMan (with Geoffrey Rush) &lt;/p&gt;
&lt;p&gt;Finally yesterday (Sunday) I went to see the &lt;a href="http://foursquare.com/venue/217085"&gt;Rangers play at Madison Square Garden&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;And tonight I&amp;#8217;m going to the &lt;a href="http://www.universityclubny.org/"&gt;University club&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;All in all a very good week, although I&amp;#8217;m sure you can guess how much NYU work has been completed.&lt;/p&gt;</description><link>http://blog.matthewrathbone.com/post/3565164789</link><guid>http://blog.matthewrathbone.com/post/3565164789</guid><pubDate>Mon, 28 Feb 2011 11:56:21 -0500</pubDate></item></channel></rss>

