Archive for the ‘Software’ Category

My Favorite iPhone Games, Part 1

Friday, January 8th, 2010

I’ve been meaning to write this one for a while, so here we go with Part 1:

EDGE – NZ$6.49


EDGE is an platformer where you are a cube trying to navigate an isometric landscape in search of the tiny glowing cubes. Some levels are really easy, some require timing, some have cubes hidden away in secret areas. Here though, the music shines, so much that Mobigame released the soundtrack for free! KAKKOI!

Canabalt – NZ$4.19

Canabalt is a free flash game gone iPhone: a one-button ‘daring escape’ platformer. No story up front, but the game has one to tell! Addictive, try the free web version first.

Hook Champ – NZ$4.19


You’re a Jake T. Hooker, an Indiana Jones style tomb-raider stealing idols from dangerous caves and escaping with your amazing grappling hook styles! Easy to learn, hard to master, harder to put down! Try the lite version first, and then buy the full version with more maps and achievements!

Zen Bound – NZ$4.19


A strange game in which you are to bind up a wooden figurine with string. This is meditative gaming at its best: no time limit, but you do eventually run out of string. Again, amazing soundtrack here, with a free download when you buy the game! Get the lite version first to try it out.

Eliss – NZ$4.19


Eliss is a multi-touch puzzler. Gather same coloured circles together, enough so they fit into the ‘squeezars’ to score points. Don’t let different colours touch or it’ll soon be game over. You’ll need all your fingers to play this one, maybe both hands at some points. Lite version also available.

Flight Control – NZ$1.29


A simplified air-traffic control game: draw flight paths for aircraft so they can land on the appropriate runway or landing pad, but don’t let them collide! Harder than it sounds, but quite addicting!

More to come!

Programming for Health: A Reflection

Tuesday, August 11th, 2009

I’m on ‘staycation’ –annual leave from my normal day job at Natcoll. Staycation because I’m not actually vacating where I am: I’m still at home in Wellington.

I’ve been volunteering at Catalyst IT working with Brenda Wallace to work on projects of her choice. She assigned me to work on Laconica (an open-source version of Twitter that works in a distributed fashion). In order to do so I’ve had to learn a little about many different technologies, like PostgreSQL, the weirdness of Apache+PHP on MacOS X 10.5, and overall, how to checkout and contribute code to an open source software project with Git.

I’ve now had three code merges into Laconica, albeit very minor ones, mostly fixing bugs.

I don’t even use Laconica. (Twitter is working just fine for me, thanks.)

But I feel great.

Computer programming is something some have described as the most complex thing humans have invented — it’s all abstract, there are few corollaries to it in nature. Probably the only thing more complicated is quantum mechanics (but that is, in fact, nature).

My job is to explain, demonstrate, and encourage people who have never programmed a computer in their life (let alone their VCR) to create rather complicated things we call websites.

Why have I enjoyed contributing patches so much to an project I don’t use or much care about? A couple of reasons:

The Zone

The elusive Zone has many names; Wikipedia refers to it as “flow“. It’s that state of being you get when they’re so intensely focussed in the task at hand that time and reality become irrelevant because you’re so energised and focussed and involved at what you’re working on, and having good success at doing it. You come away feeling elated and energised that you’ve completed something of value.

I haven’t been in The Zone for nearly four years. I’ve been teaching people how to program for nearly four years now, and nary the mind to knuckle down and flex my coding muscles. I’m too worked up with office politics, helping my workmates with the technology, and thinking that I wasn’t good enough to be in the industry.

Learning

It’s good to know that I can do it, though to do it professionally, I’d just need to learn more about the processes involved.

I’ve had to learn how to use Git, how to create PostgreSQL users and databases, and submit my finished code to the project administrators for merging with the mainline version of the program’s code.

I don’t normally get to be a learner. I’m a full-time teacher, and what I have to learn is usually because I need to teach it.

It’s nice to learn things for me and me alone. I may never get to teach what I’m learning here, but what I’ve learned is helping fulfill me (more on that later)

That old adage “Those who can, do. Those who can’t, teach”. It’s lies.

Actually I’m a tutor, but that’s just a particular kind of teacher. Not meaning to blow my own horn, but according to my student evaluations I am actually a really good tutor. Sure, I have my weaknesses, but overall, apparently I rock at it.

And I really enjoy teaching. It’s rewarding when the metaphorical light-bulbs turn on above the student’s heads. Some of them slowly brighten, some just pop on, and some of them shine more powerfully than others, but the lights do turn on. To know that a learner now understands one of the most complicated things there is to know,

I was at Wordcamp New Zealand here in Wellington over the weekend, and Nicki Gemmell was talking about using blogs at primary schools around New Zealand. She related how uploading an image to a blog was something a principal got excited about: “I uploaded a photo to our school blog today; how cool is that?!”.

As a programmer who has written photo upload functionality, I forget how far I have come and how valuable the skills I have really are. The challenge of teaching people to do things is fun and rewarding. Teaching students to do this even more complicated stuff is the same but even more challenging.

Teaching programming, from my own experience, is the ability to communicate the concepts and foster the understanding and use of them. I was told by a trainer there were four levels of competency:

1. Unconscious Incompetence – you are unaware that you don’t know how to do X.
… awareness brings:
2. Conscious Incompetence – you are aware that you don’t know how to X.
… learning brings:
3. Conscious Competence – you can do X, and you are thinking about it when doing it.
… practice brings:
4. Unconscious Competence – you can do X, but you do not have to think about it when doing it.

I say that there’s a fifth level: where you have become once again conscious of what it is you are competent at. And that’s the level where you’re ready to teach it.

To be able to teach, you must be able to learn, and then go further so you can show others the way.

Those who can teach, do teach.

People

Okay, I’ll be honest: being around Brenda and the other like-minded geeks at Catalyst IT has been a really energising experience. Being able to vent frustration at code and technology, bounce ideas off each other and have fun while doing it has been great.

But working on Laconica and spending some time reading other peoples code and improving it, and learning the technical, and social aspects of doing so has been fun and very enlightening.

My motivation for staying a teacher has been pretty simple: Hell is other people’s work. Most of the employment in the industry has been creating websites for companies; wish fulfilment for others. I could change the world one organisational website at a time, or I could change the world 20 web students at a time.

But working on an open source project has let me use my programming skills to directly improve, ever-so-slightly at this stage, the lives of people around the globe. By making the software they use better.

Having that sense of purpose in what I are doing is really important to me. I don’t want to just be working to collect a pay check: working to live. And I don’t want to be living to work either. I just want to do what is worthwhile while I’m alive: live life to the fullest. Use the abilities I have to do things worth doing.

I am a teacher. I am a programmer. I’ve been neglecting the programmer side of me.

“Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends – commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see. Larry O’Brien and Bruce Eckel

Jakob Nielson rides again

Wednesday, June 24th, 2009

Just had this one come through the wire:

Jakob Nielsen’s Alertbox, June 23, 2009: Stop Password Masking

Usability suffers when users type in passwords and the only feedback they get is a row of bullets. Typically, masking passwords doesn’t even increase security, but it does cost you business due to login failures.

This sounds like Nielson kicking up publicity. This is shorter than his normal articles and he hasn’t backed this one up by mentioning his latest rounds of usability tests. He’s often got really good points, but this is one that I have issue with.

Nielson has forgotten that the reason password masking exists is if you type it out but don’t submit the form right away, then it won’t be on the screen for a long length of time for passers-by to ‘shoulder-surf’. The form could be really really long and/or you might be a really slow typist.

Padlocks and deadbolts keep honest people honest. The same goes for password masking.

Not to mention that password masking is visual shorthand reminder for the personal habits of “you should remember what you right in this box, cos even you won’t see it” and “no-one else should see this but you”. If we removed this ‘tell’, what would become of the culture of ‘protect your password’?

Think of where, other than web sites, that password masks get used. ATMs, EFTPOS machines, computer software, the Operating System uses it. Western culture is conditioned to this design pattern, and I speculate that the only people who have trouble remembering passwords are the ones who were born before 1980.

I guess a compromise would be to have the field in plain text when it has focus, switching to a password mask on blur…? Not a difficult solution.

What am I editing code with?

Monday, May 25th, 2009

Keri Henare, an acquaintance of mine from a couple years ago asked the NZ PHP Users Group today:

Just curious as to what your IDE of choice is for PHP development and why?

You’ll see that I replied with the following.

Being nearly Mac-exclusive, I do most of my coding in TextMate, and any text manip in TextWrangler (it has superb grep/regex capabilities).

I don’t use an IDE, but if I was to use one, it’d be something like Coda or Espresso.

If I wanted to use a cross-platform, free IDE that isn’t half bad, but is based on Eclipse, I’d use Aptana for HTML+CSS+JS+PHP support. It’s nice because it has built in support for Firefox and Safari, (and IE when you’re on Windows).

iPhone App Store: My Application Picks

Tuesday, November 25th, 2008

After having an iPhone 3G for about as long as it is possible for someone to have one, here’s my must-have list of apps for the iPhone and iPod Touch. I’m going to cover just applications now, and go over games in a future post.

Apps (no internet required)

Things

An excellent to-do manager that syncs up over WiFi with a program of the same name on the Mac.  Really good if you’re a GTD fan.

DataCase or AirSharing

These apps let you use the left over space on your iPhone or iPod Touch to store your own files. When connected to a WiFi network, you can use your computer to upload files to and from your iPhone using Explorer.

DataCase is best on Mac as it appears in Finder really quickly thanks to DataCase’s Bonjour AFS support, but also works on Windows with FTP, or you can download files from your device using a web-browser. AirSharing is also really good, but its supposed Bonjour support doesn’t perform to the same standard as Datacase, and is only accessible over WebDAV. While AirSharing isn’t as intuitive to connect to as DataCase, it does have better in-app documentation to help with connecting when you forget.

Evernote

A note manager much better than the built-in Notes program. If you have an iPhone or 2nd Gen iPod Touch, Evernote will also support creating photo and audio notes too. The best part about Evernote is that it does sync with the Evernote website, which will perform optical character recognition on your photos (it can READ photos) and makes that text within the photo searchable.

WifiTrak

If you’re always looking for a free ride, WifiTrak will tell you what wireless networks are around you, and even tell you if you can get to the real internet through them without logging in.

Ocarina

A reasonably new app on the scene, Ocarina turns your iPhone into the world’s first social-network-enabled musical instrument. Sorry iPod Touch users, this one needs a microphone. Seriously check this one out, even if you wouldn’t consider yourself a musician — it’s extremely easy to learn, and you don’t have to be able to read sheet music either!

RjDj album

Combined with a microphone, this one listens to your surroundings and gives aural feedback to you to enhance and alter your perception of the world around you. I ran this app commuting to work one day: trip. py. Try the free lite version, RjDj single, first if you don’t believe me!

Apps (internet required)

Shazam

Hold your microphone up to the music for twelve seconds and Shazam will check online and come back with the name of the song and its artist, the album, the album cover, and links to iTunes for you to buy your own copy. Surprisingly, this works almost anywhere, off the car radio, or even off a PA system in a noisy bowling alley.

Wikipanion

Wikipedia has replaced all the encyclopedias of yesteryear as the first place to go when you are curious about something. Why not carry a portal to that resource in your pocket? While there are tons of free and not-so-free apps that all do the same thing, I like Wikipanion‘s interface the best.

Bible (YouVersion) or Mantis Bible Study

YouVersion.com’s bible app appropriately named Bible has many translations available to you, including ESV, NIV, NASB, NCV, The Message, KJV, and many others, even in languages other than English. The cool thing about YouVersion Bible is that it also lets you download copies of some translations for use offline, so you can still access the word of God, even if the 3G broadband doesn’t perform well on Sunday morning. Mantis looks really powerful, but unfortunately you have to pay a lot to download extra translations, commentaries and other resources, most of which are free over the internet via YouVersion Bible.

Google Mobile and Google Earth

Google provides so many services that it’s nice to have one button that lets me do searches quickly and also lets me get to my Reader and alternate Gmail accounts easily. Google Earth is just amazing: once you’re hovering over a location, raise the device upwards like you would a photograph and the map becomes 3D – WOW!

Mobile Fotos

A on-the-go tool for accessing your Flickr account. Upload photos with geocodes generated from the GPS, or access your other photos.

Twinkle and Facebook

If I had to go with only one social network, I’d pick Twitter. Twinkle is a stunning interface to one of the world’s most useful social networks. The Facebook app is good too, but going through Safari works just as well.

That’s all for now. I’ll talk about my pick of iPhone and iPod Touch games in the next couple of days; stay tuned!