Pay With Pin–Android

I wanted to experience porting over a Xamarin iOS app to Android and decided that my Pay With Pin app was a good candidate. The app is pretty straight forward, it has a number of tabs that display information, a couple of forms for user input and a fair bit of common code that works with the Pin API.

I was able to reuse almost 100% of the common code that works with the Pin API, it’s really impressive. Then binding data to the UI and building the UI was pretty straight forward. I still think that iOS development is easier, the process is more refined and requires less effort. I think the end result on iOS is better.

A few screenshots of the app:

Pay With Pin - screenshotpic1 pic2

Pay With Pin lets you create and charge customers, view charges and process new charges. You could easily use it at to run a market stall on the weekend or something like that.

It can be downloaded on Google Play here.

April Fool

Last week was Aprils fools day, which means that for the days before and after you tend to be especially skeptical about the things you read on the web. So when I read that Redis had added one of my favorite algorithms the HyperLogLog I was in two minds as to whether this was real or not. The detailed analysis that Salvatore put together was very convincing but the date of the post was really off-putting.

If you haven’t heard of HyperLogLog before, it’s a method to work out the cardinality of some measure. Which in non-set based terms means, being able to efficiently count the number of unique items. One of the best implementations I’ve seen is the HyperLogLog Postgresql extension. This lets you define a new native data type. To use it you must use the various hash methods when inserting data, this is a required part of the HyperLogLog algorithm. The examples used in the page of the Github repo shows the real power of the extension.

Consider a data warehouse that stores analytic data;

-- Create the destination table
CREATE TABLE daily_uniques (
    date            date UNIQUE,
    users           hll

-- Fill it with the aggregated unique statistics
INSERT INTO daily_uniques(date, users)
    SELECT date, hll_add_agg(hll_hash_integer(user_id))
    FROM facts
    GROUP BY 1;

Imagine that we have inserted a number of items into this table from some fact table. We can then query the table:

SELECT date, hll_cardinality(users) FROM daily_uniques;

Now the queries will look like:

SELECT hll_cardinality(hll_union_agg(users)) FROM daily_uniques WHERE date >= '2012-01-02'::date AND date <= '2012-01-08'::date;


SELECT date, #hll_union_agg(users) OVER seven_days
FROM daily_uniques

Remember as well that the amount of storage space used here is absolutely minimal, Often in the order of bytes.

So as you can see HyperLogLog is really cool and it’s a great credit to the team behind Redis for bringing this into the product. Even if they do publish the announcement on April Fools day Smile

Redis is a fantastic tool, it is so much more than just a memcache replacement, I like to think of it as Comp Sci in a box. It has all of the goodies: Lists with set based operations, sliding caches, queues, single threaded event based goodness. It’s a very exciting tool and I’m very glad to see it evolve.

Fold That Story

Late last year I put together an Edmodo app called Fold That Story. If your not familiar with the concept of a folding story, it works like this. Students write a story one paragraph at a time, the catch is that students can only read the last paragraph that has been written. So the context of the story can twist and turn. It’s a really engaging concept for students and promotes creative writing in a positive way.

The app follows the same principles as Backchannel Chat where the teacher of the group has complete control of the environment. Students also join with minimal personal information via a join code system.

All of the interaction is done in real-time, so when a student or teacher creates a new story it will appear on the screen instantly.

The UI has all of the participants on the left, clicking on each name will show the stories that were initiated by the selected user. Clicking on the group name will show all of the stories and depending on the selected tab will filter by open and finished.

Clicking on the view button will open the story and will allow you to read the last paragraph and if you didn’t write the last paragraph you will have the option to continue the story. The teacher can set the number of ‘folds’ (paragraphs) and characters per entry.

Teachers and students can stay up to date with what’s happening within the class group by watching the activity feed.

Teachers have a number of options to control any story content and to block students from participating should they need to take a break.

Fold That Story is free for up to 5 students and is $15 USD for as many students as you need, plus it unlocks some extra features. Fold that Story doesn’t have any advertising and uses the $15 to help provide great tools for classroom use.

iOS Grid Finder

I previously blogged about Grid Finder which is a web application that can be used from the Edmodo app store. Well I’ve now released Grid Finder which is a native iPad application. It has most of the same features as the web application, students have the ability to play a quiz of 10 questions, which can consist of three different question types. Students can also play practice mode where they select an item on the grid and the application will highlight the column and row headings to show how the position was obtained.

The app collects stats on how well the student is progressing and will use a 5×5 then a 7×7 and a 10×10 grid as the student gets more answers correct. Parents can view the stats at any time and explicitly set the question type should they think the student needs more work.

It’s an iPad app that requires iOS7.  Grab it from the iTunes store now.

Fun Maps with Place My Past

I’ve mentioned before that Place My Past is a new project that I’ve been developing, it’s a tool that can plot your family tree onto a map which can be combined with other spatial information such as historic maps and datasets.

One of the maps that we currently have is a historic map of Brisbane which shows in great detail the streets of Brisbane in the 1920’s.


This map was added to Place My Past via the web interface which provides anyone with the ability to upload a historic map. The user selected three control points, which help line up points on the image with real locations on the map. These lat / long and X / Y positions were used to work out how to warp and translate the image to fit onto a real map. Once this was done the image was sliced up into layers that could be shown at the various zoom levels. The end effect is a nice interactive map with enough detail that a family historian can use it to locate places from ancestors past.

So if your interested in how Brisbane looked back in the 1920’s, feel free to play around on the map. If you have Brisbane ancestors and want to plot your family tree onto this map, be sure to take a look at the features and tools that Place My Past offers.

Grid Finder

I’ve put together a new web application for the Edmodo app store called Grid Finder. It’s designed to introduce students to a grid co-ordinate system.


Grid Finder Logo - 2 - 512x512

This app has three different question types:

  • Match the image to a grid position.
  • Match the numerical grid position to an image.
  • Follow basic instructions to discover the location of an object.

The app will ask the student 10 questions for each game and will progressively work through grids of 5×5, 7×7 and 10×10.

Teachers have the option to set the game to any of the available grid sizes or game types.
Teachers can also keep track of student progress by viewing the number of games played and the average score of each student in the group.


The app is built with HTML and JavaScript and works on large screen devices (Desktop, tablets, not phones).

I’m really happy with how this turned out and plan on releasing the iOS version soon.

Time Teacher

The first new app that I’ve put together this year is a remake of my iOS Time Teacher app which has been made into a HTML and JavaScript version for the Edmodo app store. It has the same basic game play: a student is asked 10 questions about the time, a question can be one of three types:

  • Do the digital and analog clocks match?
  • Set the digital clock
  • Set the analog clock

The game starts at one hour increments and progressively gets harder by asking questions in 1/2 hour, 15 minute, 10 minute, 5 minute and 1 minute increments. Of course a teacher can setup the game to ask specific game type questions or set the increment level.


Creating the game was fairly straight forward, I made use of the Dojo JavaScript library for the clock and moving the hands.


The app is currently being featured in the Edmodo store.