Blog

Tag Archives: Development

Links for March 17th through April 24th

Links for March 17th through April 24th:

  • XSD Schema XML Validator A XSD Schema validator in Java, provides lots of useful information; use it with a schema and an xml instance
  • Three20 Three20 is a collection of iPhone UI classes, like a photo viewer, and general utilities, like an HTTP disk cache. Three20 is derived from the Facebook iPhone app, which is one of the most downloaded iPhone apps ever.
  • CSS Decorative Gallery …How to decorate your images and photo galleries without editing the source images. The trick is very simple. All you need is an extra <span> tag and apply a background image to create the overlaying effect.
  • Comet (programming) – Wikipedia, the free encyclopedia Comet is a neologism to describe a web application model in which a long-held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it
  • Cocoa Is My Girlfriend » Cocoa Tutorial: awakeFromNib vs applicationDidFinishLaunching A very good overview of the 'startup' procedure for objects stored in IB nib/xibs.
Also tagged , , , , , , | Leave a comment

Sneak preview of my new web framework Michaelangelo

I’ve been working on a new web framework which provides image theming – a little like what Elegant Grunge does with its image frames, but much more sophisticated.

For example: boathouse.jpg

A dynamic caption

thailand.jpg

This is a PHP framework that uses the common GD library to manipulate images.

It’s main interface is a content filter – give it HTML, containing images, and it will return the same HTML modified so that the images are now the converted versions, according to their ‘class’ attributes, with appropriate width/height attributes, etc. This makes it super easy to work with.

It stands alone, but it is also going to be a WordPress plugin (as you can see on this site, it’s already operational), a Joomla plugin, and I’m considering establishing a web service too, so those who don’t have adequate software on their server can still use it.

IMG_1773.jpg

It has a plugin-based architecture so anyone can add new ‘themes’ (props to my partner Katherine for that beautiful wooden frame, by the way). I’m going to also implement a simple XML-based plugin schema, and possibly an interface to it, so that it’s easy to do so. I’m planning a ‘community’ style directory site to host contributed styles.

The base frame rendering code is such that it is trivially easy to add a new ‘theme’. It extracts segments from a single frame image, and handles seamless tiling to make the frame the right dimensions, so you don’t even have to worry about overlapping regions.

I will release it soon, after adding a little more content – keep your eyes peeled.

For now, check out the Michaelangelo showcase, which gives an idea of the different styles, and contains an interactive sampler to play with styles (IE users should stop being IE users to view this).

Doing my bit to beautify the web.

Also tagged , , , | 8 Comments

Align comments in Textmate

Unless I’m using Objective-C, which is fantastically self-documenting, I often like to add comments to parameters to remind me of what they do. For example:

imagecopy($image, $frame, 
          ($x=max($width-$this->topRightCap[kCapWidth], $this->topLeftCap[kCapWidth])), // Destination x
          0,  // Destination y
          $x,  // Source x
          0,  // Source y
          min($this->topRightCap[kCapWidth], $width-$this->topLeftCap[kCapWidth]),  // Source width
          $this->topRightCap[kCapHeight]); // Source height

The only thing is, it looks terrible and is very hard to read. I usually carefully insert spaces before the comments so they line up, but that’s really hard to maintain.

I use Textmate, and found an ‘Align Assignments’ script by Chris Poirier which applies very nice formatting to a block of assignments.

Some trivial modifications resulted in a similar script to align comments. Hit Ctrl-Option-Command-/, and:

imagecopy($image, $frame, 
          ($x=max($width-$this->topRightCap[kCapWidth], $this->topLeftCap[kCapWidth])), // Destination x
          0,                                                                            // Destination y
          $x,                                                                           // Source x
          0,                                                                            // Source y
          min($this->topRightCap[kCapWidth], $width-$this->topLeftCap[kCapWidth]),      // Source width
          $this->topRightCap[kCapHeight]);                                              // Source height

Here it is:

Align Comments.tmCommand.zip

Also tagged , | 3 Comments

Links for March 6th through March 16th

Links for March 6th through March 16th:

Also tagged , , , | Leave a comment

Podcast interview with Dan Grigsby of Mobile Orchard on Loopy’s development

iphone-loopy-mobileorchard.pngLast Thursday I did an interview with Dan Grigsby from Mobile Orchard; the interview is now online.

Highlights from this interview include: From UIView to OpenGL: the seven different implementations it took to finalize its unique — and Best App Ever award-nominated — UI. From audio-queues to Remote IO: the four different architectural approaches he tried before finalizing audio subsystems. The travails of trying to implement echo cancelation. The business of making a living off of a $10 app

Listen to it here, or subscribe in iTunes (30 min.)

Also tagged , , , , | 2 Comments

Understanding error codes

Just in case there’s someone else that didn’t know this, when one gets an error code from one of the iPhone/OS X SDKs with no other information available, it can usually be looked up in the MacErrors.h header. Just open a terminal, type:

open -h MacErrors.h

Then do a search for your error code and you’ll hopefully find a corresponding macro name that gives some indication of what went wrong.

Failing that, if you have an inkling of where the error occurred (eg. the AudioToolbox framework), then you can often find the error defined within the framework’s headers:

$ grep -r '10863' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.1.sdk/System/Library/Frameworks/AudioToolbox.framework/ /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.1.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUGraph.h: kAUGraphErr_CannotDoInCurrentContext = -10863,

That was, type in Terminal grep -r 'the error code', then drag the framework straight from XCode into the Terminal, where the path will be inserted.

Also tagged , | Leave a comment

Links for February 10th through February 27th

Links for February 10th through February 27th:

  • TinEye Reverse Image Search TinEye is a reverse image search engine. You can submit an image to TinEye to find out where it came from, how it is being used, if modified versions of the image exist, or to find higher resolution versions.
  • Traffic Shaping in Mac OS X | Mac Geekery "…Create several pipes that have a set bandwidth and other properties for all packets that get filed into them; you then add queues to those pipes that determine what priority certain requests will get in that pipe; then you add actual firewall rules to identify packets and file them into queues."
  • Brandon Walkin » Introducing BWToolkit BWToolkit is a BSD licensed plugin for Interface Builder 3 that contains commonly used UI elements and other useful objects. Using these objects is as simple as dragging them from the library to your canvas or document window. In particular, "No Code" preferences window and tabbed sheets.
  • Aussie iPhone app developers and the IRS? Discussion about tax details for Australian iPhone developers. It appears the advice from Apple on the tax form is incorrect for sales on the App Store.
  • google-toolbox-for-mac – How to do iPhone unit testing This is a quick tutorial on doing iPhone unit testing using the facilities in the Google Toolbox For Mac
Also tagged , , , , , , | Leave a comment

Developing Loopy, Part 2: Implementation

LoopyThis is part 2 of a series following the development of Loopy, my iPhone app.

In part 1, I wrote about Loopy’s interface. Part 2 will be more technical, and will cover some challenges encountered during the evolution of Loopy from concept and mockup to working software. Or, more specifically, the stupid things I did along the way. Read More »

Also tagged , , , , | 18 Comments