inicio mail me! sindicaci;ón

Archive for August, 2009

Frozen Synapse… on a Mac!

Frozen Synapse!

Yes indeed, it’s Frozen Synapse… Running on a mac.

“What is Frozen Synapse?”, you may ask. Well it’s nothing to do with web development. Nor ruby or rails. Nor even JavaScript for that matter!

Put simply, it’s a great new tactical strategy game from Mode 7 Games!

Unfortunately it’s still in development, so it’ll be a while till the general public can get its hands on the awesomeness of this game. Still, when it’s available you’ll be sure to find a nice mac version.

So until then, keep your eyes peeled for Frozen Synapse!

The Horror of Android Development

Back when the Android SDK was first released, i thought i’d check it out. Turns out there was a google competition where you could win cash prizes for making android apps. “Simple!”, i thought. That was until i looked further at the SDK and found it to be far too incomplete and with little documentation.

Safe to say, i didn’t make an Android app.

Recently, the has been another Google competition so i thought i’d check out the SDK. “It’s bound to be far more mature and usable!”, i thought (not to mention it’s supposed to be the greatest platform in the world to develop for). Unfortunately, it was just as bad as it was the last time i looked at it.

The Problems

Firstly, it’s based on Java, which isn’t really Java. Even so, it inherits all of Java’s problems. A weird and nonsensical class hierarchy for one. The overuse of abstraction for fairly simple API’s is another. Not to mention, the overload of XML files, which seem to permeate everything you do for no good reason.

In general i’d probably call it a rewrite of J2ME, only 10 times worse. Why worse? well at least with any decent J2ME SDK, you usually get some sort of usable GUI builder. Instead with Android, you get this mess…

GUI Builder Horror

Seriously, it’s the 21st century and i’m reduced to building a GUI using a spreadsheet and dragging a few nondescript labels around the screen in the vain attempt to build something which actually looks good. It’s so bad, even the tutorials recommend editing XML files rather than using it.

Earth to Android: people were making far better gui builders as early as 1989.

The distributed emulator application doesn’t exactly instil me with confidence either. Not only do i have to wait 5 minutes for it to boot up, it’s also horrifically slow for anything other than a simple “Hello World” application.

Android Emulator

Seriously, if Android is supposed to be OS agnostic, why not make a simulated environment rather than a whole emulator? Would be a whole lot faster and usable if you ask me!

And of course, the real killer. The preferred IDE is…

Eclipse.

If you asked a bunch of random strangers to build a bridge, you’d get a hideous construction which leads nowhere. In a similar vein, Eclipse is built by a complete bunch of strangers and ends up being an unusable mess. What’s worse is they’ve had 3 whole versions to sort it out, and rather than getting better it seems to be turning into an increasingly bloated mess.

I’ll give you an example. The code window is by default cramped in the middle of the window, it’s like looking through a keyhole to get at your code. Want to find the configuration settings? Good luck. You’ll have to dig through a whole myriad of menus just to change the font size.

Lets not forget the quirks. Want to scroll through a list using a mouse wheel? Well you’d better watch out for those pesky hint boxes which pop up and completely block focus.

But i digress; continuing with the Android SDK, another issue i have is with the actual documentation. Most of the time it follows a policy of listing what i can do, but not giving me any good examples of how to do it.

I’ll give you an example, looking at the “3D with OpenGL” section:

“Writing a summary of how to actually write 3D applications using OpenGL is beyond the scope of this text and is left as an exercise for the reader.”

Want to write OpenGL applications? We’ll just vaguely describe how you could do it and just leave you to guess it all out on your own. Not that your app will be usable on all devices of course.

It also likes to mention technologies with little to no explanation of what they do. Taking the “Audio and Video” section as an example, a reference is made to “Playing JET content”. What is “JET content”? I seriously have no idea.

Not to mention, there are a lack of comprehensive tutorials.

Take the Notepad tutorial for example, for every exercise you have to start from an archive of what the project should look like. It is impossible to follow the tutorial through without starting all over again with these archives.
There is even an “Extra Credit” section. I’m not even going to comment on that one.

Really, it feels just like i’m copying and pasting code. i.e. not learning anything.

To Conclude

So safe to say, i’m not going to make an Android app anytime in the near future.

Now i realise why Google is offering cash prices for making android apps: The SDK is so horrible, you’ll need all the money to pay for the therapy you’ll need after you finish your app.

The Wonders of iPhone Camera Apps

IMG_0479

Those of you who happen to follow me on Twitter might have heard a while back that i tried releasing a camera app for the iPhone, which simply allowed you to overlay arbitrary images as guides over the camera.

Unfortunately it was rejected last month because of the following criteria:

“3.3.1 Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.”

Which to me was extremely annoying. Until you get rejected for something as arbitrary as this, i don’t think one truly understands how frustrating it can be to have a weeks worth of work flushed down the toilet.

My objections to this were as follows. All the API’s i used were documented. I simply made a UIImagePickerController, a UIView and overlaid it on top of the camera view. The only potentially problematic thing i did was to check for the presence of the TPCameraPushButton in the view hierarchy (again, a public api) to see when the overlay should vanish.

This check was written in such a way that if the class name of the camera button changed in a future release, the overlay would just stay visible all the time.

But no, apparently i didn’t use the API correctly “in the manner prescribed by Apple”. Thus no camera app was released.

Now i would have just left it there and waited until Apple made a nice API for me to properly overlay images over the camera (if ever), but what do i find posted on tuaw today?

“Camera Genius for iPhone updates and improves”

Yes, a camera app which overlays images on the camera. But not only that, it completely modifies the camera, and what’s more, it was both updated and approved well before and after my application.

(Note that i did not know about this particular camera app before i made mine. In addition it doesn’t appear to allow custom overlay images, one of the features of my app)

I guess it’s ok to make a camera application which completely modifies the camera UI. But if you just overlay images and check to see if the camera button exists then no, that doesn’t utilise the API in the manner prescribed by Apple.

iCompetition

So i have a challenge for you iPhone Developers out there. I have released the sourcecode to my ill-fated camera app, OverTheCam, under the GPL. Your mission, should you choose to accept it is to get it approved by Apple.

I’m going to award points based on :

  • How much of the app you need to change to get it approved.
  • How many “Camera Genius” UI enhancements you can get away with
  • How long it takes to get approved
  • The alternate name you pick

Additionally entries designed for any version of the OS later than 3.0.1 will not be counted. I’d also like to point out that you’ll also need to change the name of the application when submitting, for obvious reasons.

So what are you waiting for? Grab the code here on github and get submitting!Update:Since overthecam has finally been approved on OS 3.1, the competition has ended. The code is no longer available on github, but feel free to pop over a message if you want to check it out!

Moved to gandi.net

For a few years now, i’ve been hosting this site on Dreamhost. Despite the subpar performance, 90% of the time the site was up churning out requests, which for me worked out great.

Still, there’s something about shared hosting that makes me cringe, so i’ve been meaning to move to a VPS (Virtual Private Server) for quite some time now. After much consideration, i’ve decided to go with gandi.net. The reason? I’ve tried it before and they offer a fair price for what they offer: a single 256mb “slice” for $16/month, scalable up to 16 slices.

It may be a little bit more expensive than Dreamhost, but in the long run, i reckon it will pay back in terms of uptime and expandability.

So goodbye Dreamhost, hello Gandi!