Archive

Author Archive

Dear Australian eBook publishers on Apple’s iBookStore

February 19th, 2011 No comments

Dear Australian eBook publishers on Apple’s iBookStore,

Compare these two pictures and tell me why on earth I’d buy from iBooks and not Amazon?

Here’s a tip, don’t try and sell an ebook for the same price I can pickup a physical copy of the book. $9.99 for an ebook is about the right price, $29.99 is not. As much of an Apple fan I am, and as much iTunes credit I have sitting there, I’m not going to spend 3x the amount just for the ‘Apple experience’. Besides I much prefer the Kindle (on iPhone & iPad) app over the iBook app, Apple pay attention to that too.

The Tetris Company; business as usual 12 years on

February 8th, 2011 1 comment

screenshot12 years ago I received some cease and desist letters for my freeware tetris-clone Bedter. Its nice to know that 12 years on they are still sending the threats.

I think its worth nothing that my tetris clone Bedter has been available online for download for every day of those 12 years since I ignored the cease and desist threats.

Thanks to Gutch for the slashdot link, as I stopped reading slashdot years ago. Speaking of Gutch, everyone should check out his awesome blog on advertising and promotion; The Puffer Review.

Categories: Tetris

And now its really goodbye, AMC, forever

October 8th, 2010 1 comment

Only one day after I wrote my farewell to AMC, we were brought into AMC’s boardroom and told by the Appointed Controller that the acquisition terms could not be agreed upon, and that it was being shut down immediately and liquidated. The timing for me personally was pretty unbelievable, but not at all good for my colleagues who are now out of work. Its turned what was a reflective event into a very sad event, for those now without work, and that a company with a 20 year legacy would end like this. Rest In Peace AMC Enterprises. Rest In Peace.

Categories: Personal

Cartoon Studio 1.2.5

October 7th, 2010 No comments

Cartoon Studio version 1.2.5 is now available in the App Store.  A small update with some minor, but welcome additions:

  • Speech Bubbles can now have the arrows on top, to allow for more flexible positioning.
  • You can now access a #CartoonStudio twitter search from the main menu to view other people’s cartoons right from within the app.

Categories: Cartoon Studio

Photo Rotate 2.1.1

October 7th, 2010 6 comments

The little utility that just won’t die has had a small update!

What’s New in Version 2.1.1
* Stability: fixed a crash that could occur
* UI Tweaks including a new Icon
* Ready for iOS 4.2

Photo Rotate simply lets you rotate photos. Sometimes, when holding your iPhone at a strange angle and taking a photo, the orientation of the photo is incorrect. This app lets you correct the rotation of the photo, so you can view it correctly, or upload it to a site such as facebook the correct way up.

The powerful Free rotation function allows arbitrary rotation, scaling and positioning with single and multi-touch gestures.

  1. Select the photo from your camera roll or photo library
  2. Rotate, mirror or manipulate the photo until it looks the way you want it to.
  3. Save the rotated photo. This will save to the “Camera Roll” (for devices with a camera) or “Saved Photos” (for devices without a camera) as a new photo.

Photo Rotate supports the following operations:

  • Rotate 90 degrees Clockwise
  • Rotate 90 degrees Anticlockwise
  • Rotate 180 degrees
  • Mirror horizontally
  • Mirror vertically
  • Free manipulation by manually positioning. rotating and scaling (zoom in or out) with finger gestures
  • Works in both portrait or landscape orientation

A personal landmark occasion

October 6th, 2010 1 comment

There are various significant parts of one’s life; junior school, high school, university, the first ‘grown up’ job, getting married, and so on. Changing jobs isn’t usually a remarkable event, but in this situation, I do feel its a significant event. As I exist in my final week after thirteen years with AMC, I’m remarkably surprised to find myself reflecting on the past (as I’m normally such a Vulcan-like logician, this sentimentality does indeed surprise me).

Unlike many university graduates who get an entry level job and then bounce around from one company to the next (because lets face it, company loyalty is for the most part a thing of the past), I was very lucky to have stumbled into my first real job whilst still studying. Having just finished my first year at university doing a double-degree, with no money, my parents rightly pressured me into finding a temporary job for the summer. So off I went, walking up and down a main shopping strip, giving my resume to pretty much every shop on both sides of the street. I got a phone call when I came home,  from a retail outlet who needed late night data entry work; as they were putting a new point of sale system into place. It was the perfect temporary work I needed, so I accepted and went to do a weekend of 6pm – 2am data entry. It was there where I met a man who would shape the next decade of my life and the first stage of my career. I joined AMC for summer work experience as a casual junior developer, and then changed the double-degree to a single degree while continuing to work part time at AMC until I graduated, then joined up fulltime. AMC and university was a great match, as I was learning how to do things the ‘proper way’ at uni, while learning how things were done ‘in the real world’ on the job.

Twelve years and ten months later (I’m still surprised at that length of time), I’m handing over the Software Development Manager’s role to my replacement, amidst the company being acquired and my long mentor, friend and former owner no-longer involved with the company. I had been looking to move on for the past year or so, as I was so very tired of dealing with barcodes, point of sales, stocktakes and all related things, and had even worked out a smooth exit strategy over 12 months, which included the slim slim hope that HawksBed Studios would make Dan and I millions and could spend our life writing whatever iOS apps we wanted. Of course that didn’t happen, but it did give me crucial iOS development experience and really solidified my desire to do it full time. As fate would have it I responded to an ad for a casual iOS developer only a month before AMC was turned up-side-down, putting me in contact with some great people. After the shit hit the fan, I quickly decided that I would not stay on at AMC with the new owner and started looking for full time iOS work.  I was then offered a full-time contract position with the awesome guys at Revolutionary Concepts and Collect3 that has the potential to take us all to amazing places. Working from home has huge advantages but presents new challenges and to get to the goal that’s in sight will require working harder than I have ever worked before. But no matter the outcome of what’s next, a huge chapter of my life is about to close and another is about to be written (here we go, bring on the cliches!).

Looking back over these thirteen years, there are so many significant tales, events and turning points that would probably be very therapeutic to write down, but a public blog just isn’t the place for these stories – perhaps if I ever need therapy my therapist would get a boring earful of it all. The short of it is, as they say (to keep being cliched about it), “There were good times and there were bad times”, but mostly it was just very good times. The calibre of people I’ve worked with, colleagues, clients and vendors has been amazing and the experiences and opportunities I’ve had have been varied with constant education on the way. I would ultimately like to say “So long AMC, and thanks for all the fish”, but in reality they never gave me any fish. Thus I’ll just say “So long AMC, and thanks”.

Categories: Personal

Cartoon – Mike is dead!

June 25th, 2010 No comments

Cartoon “Mike is dead!” after the break – from Cartoon Studio

Read more…

Categories: Cartoon Studio

Cartoon Studio for iPhone & iPodTouch lifts off!

June 18th, 2010 No comments

Just a quick blog post today to say that our iPhone app Cartoon Studio is now live in the App Store! Head over to HawksBed Studios to read more.

Categories: Cartoon Studio

Cartoon – Growth

May 23rd, 2010 No comments

Cartoon “Growth!” after the break – from Cartoon Studio

Read more…

Categories: Cartoon Studio

Setting up a Trac Server Under OS X 10.6

May 23rd, 2010 No comments

Trac is an excellent open source tool that allows you to manage a software project;s development life cycle, incorporating a wiki with issue/bug tracking while integrating with a source control service such as subversion. Months ago I had set up a subversion server which was working great on my iMac. I then wanted to setup a Trac server to go along with it so I could manage all aspects for my projects properly. Here’s how I did it.

Installing and setting up Trac

Trac is written in the python scripting language, also requiring a number of other third party libraries. While a compatible version of python comes pre-shipped with OS X 10.6, these prequisite libraries do not. However its extremely easy to install trac along with all its prequisites by using python’s great ‘easy_install’ feature. Simply fire up a command line by launching Terminal.app and run the following command:

sudo easy_install trac

This will download and install everything you need for you without further input, so let it do its thing and when its finished we are ready to create our Trac environment. Because I had previously set up my subversion server under a dedicated OS X user ‘svn’, I wanted to run trac under the same user. Thus I was going to create my trac environment in the /Users/svn/trac/newproject directory and do so by ensuring it was created with appropriate permissions for the svn user. This can be done by prefixing any command with ‘sudo -u svn’, which will run the command as the svn user. For steps on setting up a dedicated user for this purpose see my previous subversion howto. Run the following command (after ensuring /Users/svn/trac/ has been created) in the terminal:

sudo -u svn trac-admin /Users/svn/trac/newProject initenv

This will create a whole bunch of directories and files and you can then run the standalone Trac server manually to check that these first steps have worked:

sudo -u svn tracd --port=8000 /Users/svn/trac/newProject

This will make the trac server listen on TCP port 8000, so we can then browse in Safari or the browser of choice to http://127.0.0.1:8000 and see that we have a trac server running. Its not terribly useful yet however, as we still need to create users, assign administrator privileges to somebody and setup our components and milestones. Press control-c in Terminal to kill the currently running server.

Adding Users

Even if you’re the only one who will be using your trac environment, its a good idea to set up a proper user for yourself. The easiest way to do this is by using tracd with Apache .htpasswd files. We can create a .htpasswd file using the htpasswd command.

sudo -u svn htpasswd -c /Users/svn/trac/newProject/.htpasswd username

This will then prompt for a password to set for the user. For any additional users we can run htpasswd again, just leaving out the -c switch (which tells it to create a new file):

sudo -u svn htpasswd /Users/svn/trac/newProject/.htpasswd another_username

Now that we have configured users and passwords, we need to tell the trac server to use them when running. We can do this by adding the –basic-auth paramater to tracd when we launch it:

tracd --port=8000 /Users/svn/trac/newProject --basic-auth=newProject,/Users/svn/trac/newProject/.htpasswd,/Users/svn/trac/newProject

Now we can browse to http://127.0.0.1:8000 again and see that this time we get prompted to login first. We can do so, but we still can’t administer our project yet. We need to give at least one of our users administrator privileges so they can define our project’s components, milestones and such. We can do this using by running the following command (this can be done while our existing tracd is still running, so there’s no need to kill it first):

trac-admin /Users/svn/trac/newProject permission add username TRAC_ADMIN

This will give username full administrator privileges to your trac environment. After running the command you can just refresh your browser and see the admin tab appear on the page. For a comprehensive guide to the various privileges you can give to users, see this page. You can now configure all aspects of your project directly from your browser.

Integrating with Subversion

Trac can integrate with your local subversion repository, to configure this we need to edit the trac.ini file for the project. In my case this can be found at /Users/svn/trac/newProject/conf/trac.ini. With your favourite text editor find the line that says

repository_dir =

For me this was line 172 of the file, it will be under the section labeled

[Trac]

Simply put the full path to your svn repository here, so in my case its:

reposistory_dir = /Users/svn/repos

and ensure that the line beneath it reads:

repository_type = svn

Restart tracd and refresh your browser to see that the “Browse Source” tab now lets you do exactly what it claims to do.

Automatic Startup
The final step in our trac server setup is to make the tracd service run automatically at system startup. To do this we can create a launchd service using Lingon. You can grab the latest version from Sourceforge. For more details on using Lingon see this previous article I put together, but for this task we just need to add a new User Daemon. Run Lingon, click the New button and select User Daemons. Fill out the dialog as follows:

Name: org.trac.tracd What: /usr/local/bin/tracd –port=8000 /Users/svn/trac/newProject –basic-auth=newProject,/Users/svn/trac/newProject/.htpasswd,/Users/svn/trac/newProject

and be sure to tick the “Keep it running all the time” and “Run it when it is loaded by the system” checkboxes. Click the save button and restart your Mac. If everything has been done right you should be able to instantly load trac in your web browser. Now you can focus on managing and implementing your project.

Categories: Tech Talk