My apps…

Space Harvest Begin

All-Seeing Interactive is a tiny web design and software company based in London, UK.

Wednesday 21 December 2011

The year in review, and happy xmas!

Farewell, 2011.

A shitty, painful year for me. An infinitely more shitty, painful year for many others.

--

Happy Christmas, and hello, 2012!

Happy Christmas!

Kozuka Gothic Pro’s snowman demonstrates that arms are not a critical prerequisite for a master juggler. No wonder he’s a lot more cheerful looking than most U+2603 snowmen.

I hope you have a fabulous xmas/holiday season/whatever, and a wonderful new year!

I know I’m really looking forward to 2012 and lots of exciting things to come! :)

Posted by Ben @ 4:21 PM

Sunday 2 October 2011

Begin v1.1 now available in an App Store near you!

Begin v1.1, my easy to use app for creating easy to read project plans, is available now in the App Store!

This release adds a French localisation (Begin is now in English, German and French), we hope to add more languages soon.

Begin v1.1 also beefs up the export options. Via the new Export & Share dialog, you can now send your plan in iCalendar format - iCalendar files can be imported into iCal and other calendar software.

Picture of Begin’s new Export & Share dialog

I’m especially pleased with the new Week-View export feature, which helps make your plans easier to read. Each week of your project now appears on its own page when exporting as PDF (or as a separate image for other formats).

Picture of some printed plans generated by Begin

Finally, Begin also has a new website!

Picture of Begin’s new website

We’ve been really pleased with all the positive feedback so far, and I’m planning to add more of the features people are asking for over the coming months.

Posted by Ben @ 1:07 PM

Wednesday 21 September 2011

[request release];

I originally wrote this post last week, and had planned to put it up over the weekend once I’d had time to clear out a couple more bugs for a final release tag. In the light of recent events, I’ve decided it’s probably best to make my intentions clear now and just call it a day.

I have never claimed to be a great programmer, and most likely I’ll never be one. I built a library that I found useful, put it up for others to use, and tried to help people with their problems in my spare time.

I’d love to be able to say I that I've got plans for other open source projects, but given the vitriol I’ve seen over the last couple of days, I don’t think I want to do this anymore. Life’s too short.

--

After giving it a lot of thought over the last few weeks, I’ve decided that I’m not going to continue working on ASIHTTPRequest in future.

I hope this won’t come as too much of a surprise given the slow rate of progress recently. However, I know some people will be disappointed, so I wanted to talk briefly about why I’ve made this decision.

I’m aware that the ASIHTTPRequest codebase has become over-complex, and that some of the architectural decisions I’ve made over the years have made it harder to maintain and customise. The monolithic class design, dependence (for legacy reasons) on CFNetwork rather than the higher level APIs, and the fact that it tries to cater to too many different usage patterns have all made it harder to enhance or extend. Looking at how much the Obj-C landscape has changed over the last few years, and ahead to stuff like ARC, I’m not certain this library is the right base to build on.

ASIHTTPRequest was created because I wanted a queue-based HTTP networking API. I wasn't able to find one, so I wrote my own. These days, there are lots of modern alternatives to choose from.

It’s been a while since I actually used ASIHTTPRequest in my own projects, and it has been tough to motivate myself to work on it, knowing I’m only trying to scratch somebody else’s itch.

Most importantly, ASIHTTPRequest has become way more popular that I ever anticipated, and frankly I just can’t keep up with all the email. My apologies if I didn’t get to your pull request or bug report. My day job is demanding, my spare time finite, and most of all I’d just like to get back to working on my own stuff, having fun writing code.

A big thank you!

ASIHTTPRequest visitor graph

The ASIHTTPRequest documentation has had over 60,000 visits in the last month, and almost 2 million page views in the last year. ASIHTTPRequest is the second most popular Objective-C project on github, by both watchers and forks, and it’s in the top 50 watched projects on the whole of github.

I feel honoured to have been part of something that got this popular. I’m incredibly grateful to all the amazing developers who’ve helped fix my broken code, patiently explained the intricacies of run loop programming, or advised on the care and maintenance of the lesser-used HTTP status codes. I’m extremely grateful to all those who’ve written to me to say thanks, and those who’ve been kind enough to send money to me or to donate to charity. Most importantly, I’d like to congratulate all the people who’ve used ASIHTTPRequest to make such amazing apps, a small selection of which are listed here.

Great. I’ve invested all this time in your library - now what?

One option is to continue using ASIHTTPRequest. The code will remain available. If there’s any interest, perhaps someone else will take over as maintainer. If it works for you now, as far as I know it will continue to work for the foreseeable future. Honestly, I think now is the time to start looking elsewhere.

If you’re starting work on a new application, there are many other libraries out there to choose from. I’m afraid I can’t speak with any authority on which is best, but these are the ones I hear about most often:

AFNetworking

From the people who make Gowalla. A general purpose HTTP lib, built on modern patterns, actively developed. AFNetworking has been gaining a lot of traction over the last few months, so it’s a good bet that it’s going to be around for a while.
https://github.com/gowalla/AFNetworking

LRResty

A lightweight HTTP lib, actively developed. Also comes in an ARC-flavoured variety.
http://projects.lukeredpath.co.uk/resty/

RestKit

For applications that talk to REST-based services, lets you map remote objects and store them in CoreData. It sounds like this could replace a lot of code in the right circumstances.
http://restkit.org/

AWS SDK for iOS

Amazon S3 support has been one of the most popular ASIHTTPRequest features. These days Amazon offers their own SDK for iOS, providing access to S3, CloudFront, SimpleDB and other Amazon cloud services.
http://aws.amazon.com/sdkforios/

ShareKit

The highest-level API listed here. Provides a simple way to upload content to a variety of services, and a UI to make it super easy to drop into your projects.
http://getsharekit.com/

NSURLRequest/NSURLConnection

From the people who make your cellphone. Built by smart people, lightweight, actively developed. :)
http://developer.apple.com/.../Tasks/UsingNSURLConnection.html

Posted by Ben @ 9:41 PM

Monday 12 September 2011

Huh! The ghosts of old men!

Two blog posts in one day! I hope this isn’t going to become a habit.

As promised, a small glimpse inside the mind of a struggling artist:

Are you a publisher looking for your next big hit?

YOU are ALTRAZAZ, wizard of the north. No idea on the pronunciation, sorry.


I don’t know how old I was when I wrote this, but given that I’ve clearly taken steps to make it as professional-looking as possible (nothing says you mean business like a typewriter), I’ll assume it’s from before I even knew what a computer was.

This book is one of several attempts I unearthed at interactive-fiction, each in the style of one of the Fighting Fantasy books popular in the UK during the 1980s. I’m pretty sure the illustrated style of this book is directly lifted from a series written by Joe Dever and Illustrated by Peter Parr, though sadly neither my writing nor illustrating skills were up to much.

The first page is actually the only page that is typewritten. Presumably I gave up struggling with the keyboard and resorted to a pencil after I found I couldn’t make it work as I wanted.

The second paragraph is clearly cut and pasted from another book. Again, I don’t know if this is because I felt the rules of the original were too perfect to change, or because I couldn’t face copying them out by stabbing at typewriter keys.


The ghosts of old men

Itexploeds. you are burned to bits.


“Every child is an artist. The problem is how to remain an artist once we grow up.” (i)
Pablo Picasso

It’s often hard to go back and look at things I made a few years (or even a few months) ago. I see only the wrinkles, the bits I didn’t get right, the code that no longer makes sense. But if you go back far enough, you can ignore the implementation and see just the ideas.

I would love to get back inside the head of the child that wrote those words and drew those drawings. He understood the power of stories, and of the invented worlds (however derivative) in your head. And that not everything needs an explanation.

I think I will make an effort to be a tiny bit more like him.

  1. Or thereabouts. Each quotation dictionary seems to have gone with a slightly different translation, but you get the idea.

Posted by Ben @ 12:01 AM

Monday 12 September 2011

Found floppies

I was at my parents house this weekend. Since they were clearing out of a lot of old junk, I spent some fun hours looking at my charmingly inept early attempts at illustrated fiction (more on this later!).

Anyway, in amongst the junk, look what I found! The motherload of DOS-era games on low-density 5¼ floppy disks!

Picture of a set of floppy disks with labels created by a younger version of the author

Yes, I used to make custom labels for all my backups. I’m guessing I was about 13 years old when I made these.


If you’re too young to remember floppy disks that were actually floppy, one of their most unappealing traits was that they tended to be pretty unreliable. Back when DOS games came on a set of 8 or 9 disks, it wasn’t unheard of that at least one wouldn’t work out of the box (usually disk 8 or 9, near the end of the game...). Software manuals routinely advised you to make backups of your disks before you started to use them, advice I evidently took pretty seriously. (In the late 1980s and early 1990s, PC games probably cost not much less than they do now, which when you adjust for inflation, makes this advice doubly-sound.)


Picture of Cinemaware’s Sinbad box and the author’s own label for his backup disk

Cinemaware make some really amazing games (their most famous release, Defender of the Crown, was recently ported to iOS)


When I look at how incredibly bland the branding on the retail disks tended to be, I’m not particularly surpised I made all the effort with the felt-tip pens:


Picture of the Codename: ICEMAN disk set

The disks included with Sierra’s Codename: ICEMAN (i), complete with a well-worn copy of the USS Blackhawk instruction manual. One of those games where you really needed a pimped out PC with dual floppy drives.


It’s fun to remember that in the pre-CD/DVD era, the oversize cardboard boxes games came in were actually put to good use. Many had a full set of both 5¼ and 3½ inch disks carefully packed inside, alongside a collection of assorted manuals and maps. It was quite a squeeze getting them to fit back in!


Anyway, I’m actually quite relieved to be reminded that it’s not a new development:
I’ve always had quite an obsessive personality...(ii) :)


Views expressed in this post are the author’s own and do not necessarily reflect the views of All-Seeing Interactive Ltd (though the author thinks these games are awesome!) Images used in this post are copyright their respective owners. If you are the rights owner for one of these games and object to its use here, please let me know and I'll take it down. I apologise in advance to those artists whose work so inspired a young teenager. :)

  1. An otherwise great adventure game made in an era when it was considered reasonable to let players proceed to the end of a 30 hour+ experience without picking up an essential item at the very beginning, making it impossible to complete without starting over again.
  2. The eagle-eyed will note not just the numbered stickers, but also the somewhat excessive use of sellotape to make absolutely certain the write-protection tab is safely covered UNTIL THE END OF TIME.

Posted by Ben @ 12:00 AM