Archive for the ‘review’ Category

Codea

Codea (formally called Codify) is an $11 iOS application in which not only can you develop applications, you can run them (you can’t run them outside of the app – i.e. this isn’t a way to develop iOS applications).

The application is very pretty – and that counts, this is iOS!  At launch, you’re presented with a set of example projects, and you can create your own (I don’t think touch-and-hold is a great way to get the contextual menu for delete/duplicate/copy into new project, but it works well enough).

Inside of a project, there are two views: the code editor and the execution window.  The editor is good – it’s not as good as Textastic (and there’s no configuration possible – not even changing font size via pinch & zoom), but it’s perfectly usable (the worst part are the tabs at the top where you can switch between files, where the tabs are bizarrely small).  There are elements of the editor that are superb: if the editor can tell that the function arguments are a colour, then you get a colour wheel, if the argument is a sprite, then you get a sprite picker, and so on.  That’s the way to make coding on an iPad faster and more enjoyable.  The keyboard, like Prompt and Textastic, has an additional top row with keys you’re likely to need (paired quotation marks and brackets, +=, and so on – it’s interestingly a very different set of keys to Textastic (both have their advantages).  Also available via this extra keyboard row is a very nicely formatted set of help documents that explain the methods that are available and how to use the app in general.

Applications are developed in Lua – this isn’t a language I’ve done a lot in, but I’ve seen enough and it’s similar enough to other languages that it’s easy to get familiar with it.  I sincerely hope that the developer plans to offer additional languages (Python!) in the future (perhaps as in-app purchases?).  Most importantly, there are methods available that expose the iOS interface to the code (especially touch information and drawing routines).  These are somewhat limited compared to writing an iOS Objective C application in Xcode on a Mac, but perfectly usable in this context.

Once the application is complete, you can switch to an execution window.  Two thirds of the screen are the application’s display, with a sixth for textual output (e.g. debugging) and a sixth for parameters (e.g. sliders that you can use to pass values to the application – these are extremely easy to use in the code).  Unfortunately, given Apple’s restrictions on apps, this is all that you can do with an application at present.

The app is well made and does what it aims to do very well.  There’s clearly room for expansion (minor interface tweaks, more languages, more access to iOS features) as well.  The remaining question is whether there is any practical use to the app, given that you’re restricted to running your applications within the Codea app itself.

(It’s possible that this restriction will be lifted or weakened in the future – with Apple it’s difficult to tell.  It does seem likely that there could be a version of the app that allowed you to export (as a collection of text files) and import code, just as an application like Textastic can – or even some sort of seamless sharing via Dropbox or iCloud.  This would make it easy to share applications, but you’d still need to run them in Codea itself, unless they were pure Lua and didn’t use iOS at all.  However, it seems feasible that someone could then write an emulator/interpreter for Codea apps for OS X (replacing touch with the mouse), so you could run your apps externally if you liked.  It seems very unlikely that you’ll ever be able to turn them into full-fledged iOS applications).

The app demos very well – it shows a glimpse into the future where not all development is done on traditional desktop/laptop systems.  However, I can’t see how it can be of any practical use – except for education.

For education, this seems like an extremely valuable application.  In an educational context, it doesn’t matter if the app can run standalone or not (it would be nice if you could easily share it with someone else, like a teacher).  The interface is approachable, and the language friendly, and there’s potential for creating very impressive apps.  I would love to teach a short course where the students did all their development in Codea (perhaps on a beach away from a typical “lab” environment…), assuming that the students all had iPads already (and we have an AppleTV and large TV to demo things to each other).  I hope that someone does do this (and writes it up somewhere where we can read about it!).

This application is amazing.  Even if you have no interest in programming, you should buy it to support the developer.  If you do have an interest, you should have bought it already.

Textastic

Textastic is a programmers editor for iOS.  It’s not perfect, but it’s very close to the app that I was waiting for ever since the first iPad was released.

Even before I had an iPad, I’d mostly stopped using my laptop.  The only time I did use it was when travelling overnight (I’d take it if I had to work while away, or in case there was an emergency and I had to work on something).  I don’t need a full computer for this – typing on a software keyboard on a 9.7 inch screen is perfectly adequate for emergency work, and when combined with a bluetooth keyboard (which is small enough to easily pack, and I already own) and a monitor (now a TV via AirPort mirroring) it’s quite useable as a work-while-travelling device.

The only missing component was the software: for a very long time there was nothing available.  There are oodles of word processing applications, note takes, and there are even a few HTML editors – but nothing designed for real programming work.  I’m not sure why this is, but I suspect that most professional programmers already have something along the lines of a small MacBook Pro or Air and find it convenient to travel with that, so wouldn’t use an iPad, even in these situations.  The best available was, unfortunately, using SSH (this was before Prompt, too) and doing the word in a command line on a server somewhere.

At $14, Textastic is expensive for an iOS app, but cheap for a programmers tool (it’s definitely worth the price).  This is a text editor, not an IDE, so you don’t get a debugger or interactive prompt or anything like that – it would be difficult to do that anyway given Apple’s restrictions, and I prefer a dedicated programmers text editor to an IDE anyway.  (You can easily switch to other apps that together provide most of what an IDE does).

It’s a good editor – it does syntax highlighting for many languages (including Python and everything else I’m interested in), shows line numbers, and you can switch the file’s encoding and line ending choice.  You can quickly jump to “symbols” (e.g. method), although I generally just scroll since I know where I’m going.  There’s a decent find (and replace), and you can choose from DejaVu Sans Mono, Courier New, Luxi Mono, Monofur or Inconsolata for the font.  There are a variety of colour themes, there’s control over tab settings (including soft tabs) and word-wrap.  Although you can set the font size, you can also just pinch & zoom to get the size that you’re after, which is far superior to manually picking a size.

Generally the app does what it should: it gets out of the way and lets you get on with writing/editing the code.  There’s an additional top row in the keyboard that offers symbols that you’re likely to need (this oddly scrolls horizontally to fit everything in) so that you don’t have to toggle between keyboards often (except for numbers) if you’re not using an external keyboard.

Where the app falls down for me is where iOS in general performs badly: moving data between applications.  You can share files to the app (e.g. from Dropbox), and there are actually many ways of getting files in and out (via WebDAV, iTunes, creating local files), but you’re left with the same issue that lots of iOS apps have: you end up with duplicates.  To its credit, the app tries to address this (e.g. it can know that a file you’re editing belongs in a particular Dropbox location and sync the changes back), but at the end of the day it’s clearly a hack.  The app is still useable, but this does mean that I more often read code in it than write it (it’s far better for reading code than the Dropbox app is).

It seems obvious to me how to fix this problem (I don’t understand why it isn’t already the case).  Surely nearly every programmer that would use this app has their code stored in some sort of repository (CVS, SVN, Git, Mercurial, Bazaar, etc).  The repository is the file system.  The app has a working copy checked out, and you can commit changes back to the repository.  The app doesn’t need to support every action that the VCS/DVCS offers – really just (in SVN terms) add/remove/update/checkout (and perhaps propset) – if you need to do something else, then you use a dedicated SVN/Git/etc app).  This completely solves the issue of multiple copies of files, because that’s exactly what these tools are designed to handle.

Unfortunately, the app would need to support at least SVN, Git, Mercurial, and Bazaar since there’s a lot of diversity at the moment.  However, it seems likely that there are libraries that can be used (even in iOS) that would handle a lot of the grunt work.  If the app let me check out a SVN working copy, make changes, and then commit them back, it would be absolutely perfect (I’d pay ten times the price if the app supported this).

If you need a programmers text editor on iOS, then I highly recommend Textastic.

Prompt

Panic’s Prompt is the SSH iOS application that I (and I’m sure many others) were waiting for from the release of the first iPad.  My only complaint is that it took over a year (a year of using considerably inferior alternatives) before the app was finally available.

SSH isn’t pretty, but somehow Prompt is.  Although there’s a lot of space required for the keyboard, connections, and settings, Prompt somehow makes the remote display quite large enough to be readable (and if you use an external keyboard, then it’s perfectly sized, and you get the control keys and arrow keys working as you’d expect).  Connection management is very simple, and all the settings you’d expect (initial command, prompt string, etc) are available.

The keyboard includes an additional top row that has the keys that you need to use most frequently in SSH (escape, control, tab, /, -, |, @, arrow keys) and are missing from the standard iOS keyboard.  It even autocompletes using the shell history, saving typing long paths and commands repeatedly.

There’s very little I can say about the app other than if you will ever need/want to SSH from your iPad, then this is, without any doubt, the application to have.  It’s $11, but worth easily five times that much; I’d grumble and probably try and convince work to contribute to it, but I’d pay $100 for it.  If you don’t know what SSH is, then this is not the app for you.

(Before Prompt, I used iSSH which also does VNC – I use VNC a lot less frequently, but still need it occasionally, so now I need to figure out which is the best VNC app, which are unfortunately all fairly pricey.  If you have suggestions, let me know!)

Cards (iOS App)

Cards is one of the lesser quality Apple iOS apps (think MobileMe Gallery rather than Keynote).  The premise is simple: you create a greeting card on your iOS device (just like you would in iPhoto) and through in-app purchasing you pay for it to be printed and sent (anywhere in the world) – unlike in iPhoto where you’d have to order many and they’d be sent to you to then send on.

Aspects of the app are good – the templates are very customisable and generally nice, and it’s a pretty simple process to create a card.  The pricing ($6.50 including postage) is extremely reasonable considering the cost of a decent (not customised) card elsewhere.

However, there are considerable flaws: the purchasing is odd – it doesn’t use the standard in-app purchasing system (I can’t understand why not), so you’re prompted for more information than simply your App Store password; the App is bizarrely iPhone/iPod resolution only (nearly the same interface would work perfectly well on an iPad, where you’ve got access to all your high-quality photos via Photo Stream anyway); and the cards take forever to arrive.

The latter is the most significant flaw, of course.  In a few cases (e.g. “thank you” cards) it doesn’t matter how long the card takes to arrive; in most cases (birthdays, anniversaries, Christmas, …) timing is actually very important.  We sent a card while visiting the Auckland Museum at the end of the school holidays, and it took over a week to arrive; one has apparently been sent to us (around the same time) and has yet to arrive.  The “shipping notification” email arrives days before the card does, indicating that the problem isn’t in the printing, but in the delivery (presumably they are being printed in Australia and there’s some sort of international shipping delay causing issues).

It’s likely that this is a problem specific to New Zealand (and perhaps isolated other countries).  Unfortunately, that does mean that it’s less likely that it’ll be quickly fixed.  We’ll probably try this again in a couple of weeks, and see if the speed has improved – if not, then the app is only useable in rare circumstances, which is unfortunate, because we’d likely otherwise use it quite frequently.

SkyTV iOS App

The SkyTV iOS app is free, and I rarely use it, but on occasion is is very handy.  The application is mostly a TV Guide – since SkyTV refuses to let anyone else have their listings, but they do have all the free-to-air channels, it’s clearly the best guide.  However, I don’t really have much use for a guide, because I’m never looking for something to watch (everything I’m interested in is scheduled to record).

Where the app is occasionally useful is that it can be connected to your MySKY box, and you can remotely schedule a program to be recorded.  This is essential for those times when you’re away from home and remember that a new program is starting in a few hours and you forgot to schedule it.  The scheduling is limited (e.g. you can’t set up a series link), but it’s good enough for these situations.

As you’d expect from SkyTV, the process of setting this up is incredibly painful.  You need to enter your SkyTV account details and the unique ID of the smart card in the MySKY box, and although this should be a smooth process, it never works first time – and then, without anything being done at all, will ‘magically’ start working at some later date (I’m guessing that the linking process takes time, and the app fails to tell the user this, leading them to believe they did something wrong).

Once it is finally set up, though, it’s very simple to use – just find the program you’re interested in recording and a few taps later it’s scheduled.  Test it at home first, of course!  (But not right away, because, as above, it doesn’t appear to work until a few hours have passed since the initial setup).

If you’ve got MySKY and an iOS device, then this is absolutely an app that you should have installed (it is free, after all!).  If you don’t have MySKY, but you do want to use a TV Guide on iOS, then this is the more comprehensive one for New Zealand listings, so (again given that it’s free), it’s worth having.

Note that the app doesn’t offer any sort of iSKY (on demand video) access.  It would be extremely nice if that was added in the future, but I’m skeptical that it will be.

PyPad

PyPad is a Python interpreter for iOS.  This sounds incredibly exciting, right – finally I can do proper development and run Python programs on iOS!  Unfortunately, that’s not really the case (mostly due to Apple’s restrictions).

PyPad lets you create multiple modules and execute each of them.  However, only a subset of the standard library is available, and there’s nothing iOS-specific available (so you can’t access the camera, or touch information, and so on).  Getting code in and out of the app is done via copy and paste.  The standard keyboard is provided, with start/pause/stop buttons.

I keep the app installed so that I can (via AirPlay mirroring) demonstrate simple Python snippets.  However, if I have an Internet connection available, then I can do that in Prompt (ssh’d to a server that has Python installed) much more elegantly.

The app is clearly limited by Apple’s restrictions as to what’s acceptable for iOS.  However, it does seem like it could do much more (e.g. see Codea) if more of the standard library was available (this would mean rewriting chunks, I presume) and if there were special iOS-specific modules available for accessing things specific to the device (especially for accessing touch and graphical output).  It could accept .py and text files from other applications, making it easy to get code in (e.g. from Dropbox) and share files (as text) – although perhaps that crosses Apple’s boundary for what’s ok.  It would be nice to include the Python documentation, too (I have a separate app for this, but it makes sense to have it in once place).

The app is only $2, so if you’ve any interest in Python on iOS, then I’d recommend buying it to have a look and to encourage more development.  You probably won’t end up using it that much, however.

TomTom New Zealand

The TomTom iOS app was recently updated to be universal (i.e. support both iPhone/iPod and iPad resolution in a single app) and this, combined with yet another navigation argument, was enough to convince me to buy it – at $95 it’s by far the most expensive iOS app I’ve bought (although as a percentage of the total app expenditure it’s not very much!).

I gather the interface strongly resembles the dedicated TomTom hardware.  It’s useable, but not as clean or elegant as I imagine Apple’s app will be when they finally reveal it (but I strongly suspect that Apple’s one will be iPhone only, at least at first).  Given that most of the time you’re glancing at the map or just listening to the turn-by-turn directions, the interface isn’t overly important anyway.

It’s done well with directions so far – no errors, and easily correcting when mistakes are made.  The maps have sufficient coverage even in Warkworth and Ahuroa, and being a proper navigation app there’s no need for a cellular connection (unlike with the built-in Maps app), which is essential in Ahuroa, since there’s barely any coverage.

The app is certainly better than having to rely solely on another person to navigate.  Although I don’t often need instructions (since I’m usually driving somewhere I’m familiar with), in the cases where I do, it’s useful to have, and over the course of a year, I think that’s probably worth $100.  (The monthly traffic subscription, however, is not – I haven’t even bothered trying this out).

I’ve tried various free/cheap navigation apps, and although they’re ok, they’re absolutely inferior to this one.  I’d recommend it to anyone that thinks that they’ll get $100 of value out of it, especially over the next year (it seems very likely that iOS 6 will have a built-in app).

Quarrel Deluxe

Quarrel Deluxe (Quarrel DX in Springboard) is a cross between Scrabble (which I don’t love, although I did, like many people, play Words with Friends for quite a while) and Risk (which I do love, but rarely play non-digital because of a lack of people to play against), and may well be better than either.

The setup is essentially like Risk: a board of locations (countries in Risk) that each have a number of armies and varying numbers of neighbouring locations.  The options in a turn are similar as well: attack, fortify (i.e. move armies from one country to a neighbouring one), or pass.  Even in fortification Quarrel beats Risk – rather than only being able to fortify at the end of your turn, you can do it throughout the turn, but once you’ve moved armies from one location to another, neither of those can then fortify or attack later in the turn (they can receive armies from another neighbour).

Attacking is where Scrabble comes in – rather than relying on the luck of the dice, like in Risk, each player is given the same eight letters (that always form at least one eight-letter word, as well as many smaller ones) and whoever makes the highest scoring word wins the battle.  Not only is there more skill (and less luck) than in Risk, there’s more than in Scrabble, too, since you always have the same letters to work with as your opponent.  The length of the word you can make depends on how many armies you have (so if you have three and your opponent has seven, you’ll need a pretty awesome three-letter word). All the ‘double letter’, ‘triple word’, ‘use a letter from another word’, ‘make multiple words at once’, and hard limits to board size elements from Scrabble are gone: these are the parts I hate most about Scrabble, so for me that’s a clear win.  It’s all about making the best word (i.e. longest and with the highest point letters).

Speed is also a factor – if your word is the same number of points as your opponent’s, then whoever finished first wins.  This comes into play quite a lot – it’s often better to go for a high scoring word really quickly than take a bit longer trying to find the best word possible.  Games can also be against the clock, which adds considerably to the difficulty.

There are many other subtle elements to the game, which clearly indicate that it has been well thought out.  In addition, the graphics and sound are very well done (cutesy little stylised fighters).

I’d recommend this game to anyone that likes word games and/or strategy games like Risk.  There’s very little luck involved (none, really, if you exclude the computer opponent behaviour), and a lot of strategy required.  Games can be quite simple but also range to very difficult.

I’d love to see a future version include a multiplayer (i.e. multiple iPad) game option.  It could also possibly borrow the concept of “continents” from Risk and have some additional larger boards where there are locations that give additional reinforcements if you’re holding the entire island.

Graceling (Kristin Cashore)

Olyvia purchased this on my behalf – I had been given a voucher for Dymocks, which is a terrible choice, because there are so few Dymocks stores, and they are so far away from anywhere I go.  Time passed, and eventually reached the point where I one day to spend the voucher or lose it – losing it seemed a terrible waste, so Olyvia offered to go to Dymocks and purchase a book – basically she read out names over the phone until finding something I didn’t own.  I had never heard of Kristin Cashore before, and I like finding new authors, so it sounded fine to me.

I was more skeptical when Olyvia arrived home with the book.  For a start, it was a softcover edition, which I particularly dislike (I like paperback, because it’s comfortable to read, and I like hardback, because it looks nice and ages well, but softcover has none of the advantages and many of the disadvantages).  In addition, the cover is terrible – it has a moderately attractive women in light armour holding a sword – it looks like a bad book trying to attract teen readers.

However, once I got around to reading it, I was pleasantly surprised.   The ‘magic’ of the world is that some people have extreme talents – rather than just being really good at something, they are ‘magically’ good at it.  In a really nice touch, the talent might be anything, even the mediocre (it reminded me of the heroes with mediocre talents in Lafferty‘s Playing for Keeps).  Although the central characters have talents that are far more impressive, the general way that ‘graces’ were developed was very enjoyable.

The central characters, Katsa and Po, were both well developed, and enjoyable to read.  The antagonist was a little weak – we never really get to know him, so there’s less at stake than with a more developed villain.  However, his ability was suitably impressive, and his lack didn’t detract from the story’s other strengths too much.

(Minor spoiler alert). I did feel that the book ended rather suddenly – although it was obvious that it was getting close to the end (there weren’t many pages to turn), the story only seemed part-way through.  I was really expecting a partial conclusion with a sequel (or two) to finish the story off – although this is probably partly due to the ubiquity of trilogies within the genre).  However, with only a small number of pages to go, the story is completely resolved.  Although it ended cleanly and it did create a real echo of surprise to match the character’s surprise, it still felt quite rushed.

In general, this felt like a really good story by a slightly inexperienced writer.  I think someone with more experience would have been able to flesh out the antagonist more and create a less rushed ending – although these would probably both have meant a longer book.  The story changes a little abruptly about a third of the way through, and I think a more experienced writer would have tied the parts together a little better as well.

Overall, it was a very enjoyable read (it’s unfortunate that the publisher didn’t find a better cover artist), and I highly recommend reading it.  I hope to read more from Cashore in the future, and expect that later novels will have more polish than this one, while hopefully retaining the originality and great character development found here.

Foxmask (Juliet Marillier)

This is the sequel to Wolfskin – to understand the relationships that underlay the characters, it would certainly be best to have read Wolfskin first, although this is a standalone story, not part two of two (or three), which is certainly refreshing.  I purchased this at the same time as Wolfskin, so I wasn’t then aware that I’d love that book so much.  By the time I got to reading Foxmask, though, I had reasonably high hopes for anything from Marillier.

Although I enjoyed Foxmask, it wasn’t quite as fantastic as Wolfskin.  The basic story has a lot of promise, mostly as a result of the earlier book – Somerled, the antagonist from Wolfskin, was so clearly the villain of the piece, but also clearly had the potential for redemption.  Here, we can find out whether he did manage to redeem himself – but Marillier made the sensible decision to place the story a little later in time, so that although the story answers that question, it’s not actually the central focus of the story.  That means that Foxmask is more of a standalone story than a direct sequel, which is a benefit, in my opinion.

Although Thorvald, Sam, and Creidhe are interesting characters, I was never as drawn to them as the Wolfskin characters – and the antagonist of Foxmask is far more on the black side of grey than Somerled ever was, which makes him a lot less interesting.  You can see how he might have made the decisions that he did, but they are still more evil.

The weakest part of the book was the character Keeper.  For some reason, I was never interested or attracted to this character, and that made it harder to understand the relationships that he formed with the other characters.  The strongest part was the development of Thorvald’s character, particularly the leadership development with the other men of the island.

The magic in Foxmask is a little more overt than that of Wolfskin, which also detracts slightly from the story.  It’s also a little darker in some ways (although there’s probably less death, the reader knows the characters that die or suffer better, so they are more intense).

Overall, however, this is still an excellent novel.  If this was the first Marillier novel I read, I’m not sure I would be so eager to seek out more of her work – probably I would just hope to remember to buy one next time I see it, rather than actively looking for it, but I absolutely recommend reading it, especially since it wraps up the Wolfskin story a little more.