tip.top.blog

the blog of matthew rathbone

0 notes &

Android Game Reviews

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’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.

So instead of waiting for someone to launch their own version, I’ve made one myself.

Say hello to Droid Blimp

I’ll be updating the site about once per week to start with, so stay tuned!

Filed under games android blog

Notes &

Slicer - Now the best window manager for the Mac.

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.

Enter Slicer. It’s seriously awesome. You should buy it now because it’s only $3.99 and it’s better than competition costing $15.

Here is a screenshot of my desktop organized by slicer, notice the top two windows are 1/3 and 2/3 width. Awesome:

BUY IT NOW (or use the free trial if you’re not convinced)

0 notes &

How to have page numbers start on page 3 using MS Word 2011 for Mac

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).

We do this by breaking the document into sections. In this example I am using the following structure:

Page 1 - title page

Page 2 - contents page

Page 3 - real document starts <= I want this to be labelled page 1

Step 1: Insert a section break at the end of the title page, and the end of the contents page.

Put your cursor at the END of your title page, then click Insert => Break => Section Break (next page)

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.

Step 2: Insert the Page Numbers

Navigate to the first page you want numbered (page 3 in my example).

Click Insert => Page Numbers

Ensure ‘show number on first page’ is checked

Click Format…

Under ‘page numbering’, select Start At and enter “1”

That’s it!

You can now update your contents page and it will refer to your shiny new page number format.

This took me a long time to work out. I’m writing this primarily for my awesome wife who writes way more essays than I do. :-)

0 notes &

Android game download stats for GeoPop, 7 days after launch

I’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’d share the love with some stats on my very first android game GeoPop.

GeoPop

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.

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.

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.

Stats

I released the game on November 26th.

Today (December 4th). I have a total of 183 installs.

Here is my google analytics chart for the number of app launches per day:

This represents a total of 108 absolute unique users.

My total revenue from admob so far is $0.06, so any dreams of a giant money vault are still a long way from fruition.

Take Away

I’m happy at my 180 downloads so far, its more than I expected (0) from my first android project.

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.

Hope this is interesting to the internetz in the same way other posts were useful to me.

Shout Out

I’ve found the following blogs very interesting in this regard:

Ziggy’s Games

Mika Mobile

Droid-blog

Filed under android revenue geopop games admob analytics

0 notes &

Santa Says? An xmas game that doesn’t suck

Last weekend I found myself drawing Christmas characters, so to capitalize on the idea I built a game:

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’s really fun.

To go along with the hand-drawn graphics I also added funny voices to each of the characters (it’s more fun than a *beep* noise!).

Check it out on the market

Filed under game android santa christmas xmax free

0 notes &

GeoPop - My First Android Game

I just clicked publish on ‘GeoPop’, my first Android project.

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 :-).

Click here to download it from the android market

PS - I would really appreciate any feedback, so please tweet me with anything at all, even to just tell me why it sucks!

Filed under game android GeoPop software

Notes &

Adding JARS to hive without using ADD JAR

Say you’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:

ADD JAR ‘s3n://matthewsbucket/superudf.jar’;

CREATE TEMPORARY FUNCTION super as ‘com.matthewrathbone.SuperFunction’;

If you’re creating a bunch of these you don’t want to have to ‘ADD JAR’ _every_single_time_ you want the function, you want it to be in the library already.

To do that either put it in hive/lib, or hadoop/lib on all the nodes. If you’re using Elastic Mapreduce you can do this in a bootstrap script:

sudo apt-get install wget

wget -o /home/hadoop/lib/super.jar http://somewhere.com/superudf.jar

Now you can skip the ADD JAR step in function creation (which is much faster by the way):

CREATE TEMPORARY FUNCTION super as ‘com.matthewrathbone.SuperFunction’;

0 notes &

The start of an online puzzle community?

I’m a long-time fan of The Master Theorem. 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.

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)?

I hope so!

0 notes &

Some fun Hadoop and Hive Bugs

If you’re running Hadoop 0.20 with Hive 0.7 here are a couple of bugs that it’s useful to know about:

NullPointerException

If you have an external partitioned table, this could mean you forgot to recover the partitions before running the query:

ALTER TABLE sample RECOVER PARTITIONS;

MR jobs hanging on 0/0 completed map tasks

Creating an external table that points to an empty location will cause hive to generate mapreduce jobs that hang *forever*. It’s because the map tasks stay at 0% complete (0/0 completed).

There is a Hadoop patch for this (so long as you have the ability to patch your cluster), and it should already be integrated into hadoop version 0.21.

Bonus:

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:

select * from events where venue IS NULL <= Won’t work

select * from events where venue = “” <= Will work

0 notes &

Google should buy this website

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.

If they added their collaboration features it would be an amazing product that I would happily pay for.

0 notes &

A Warning About Apache Thrift’s Asynchronous Clients

By default if you use the asynchronous client for thrift it will be using a FRAMED transport layer, even though there is no mention of this in the code / docs.

You’ll know this is happening because your server will give you the following error message when it receives an rpc:

org.apache.thrift.protocol.TProtocolException: Missing version in readMessageBegin, old client?

If you have no control over the server code (eg, if you’re using flume), then you’ll have to fall back to the synchronous client, sorry.

Filed under flume thrift java

Notes &

It has been a good week

So over the last week I’ve been doing some pretty awesome things.

I went to the Wollman Rink in Central Park to skate with NYR players 

I went to the Metropolitan Opera to watch Armida 

Then on Saturday I was at BAM to see Diary of a MadMan (with Geoffrey Rush) 

Finally yesterday (Sunday) I went to see the Rangers play at Madison Square Garden 

And tonight I’m going to the University club!

All in all a very good week, although I’m sure you can guess how much NYU work has been completed.

Notes &

Kindle store prices

Am I the only one who thinks the kindle store ui (on the kindle) should have the book prices next to the books when you search? How else do I know what snap purchases to make?