Archive for the 'General' Category

That’s Entertainment

Saturday, January 16th, 2010

This is one of the most visual songs I can recall. Listening to it or even just reading it always sends me to the place that Weller is describing. Very few songs can do that.

That’s Entertainment

A police car and a screaming siren -
A pneumatic drill and ripped up concrete -
A baby wailing and stray dog howling -
The screech of brakes and lamplights blinking –

That’s entertainment.

A smash of glass and the rumble of boots -
An electric train and a ripped up ‘phone booth -
Paint splattered walls and the cry of a tom cat -
Lights going out and a kick in the balls –

That’s entertainment.

Days of speed and slow time Mondays -
Pissing down with rain on a boring Wednesday -
Watching the news and not eating your tea -
A freezing cold flat and damp on the walls –

That’s entertainment.

Waking up at 6 a.m. on a cool warm morning -
Opening the windows and breathing in petrol -
An amateur band rehearsing in a nearby yard -
Watching the tele and thinking about your holidays –

That’s entertainment.

Waking up from bad dreams and smoking cigarettes -
Cuddling a warm girl and smelling stale perfume -
A hot summers’ day and sticky black tarmac -
Feeding ducks in the park and wishing you were faraway –

That’s entertainment.

Two lovers kissing amongst the scream of midnight -
Two lovers missing the tranquillity of solitude -
Getting a cab and travelling on buses -
Reading the graffiti about slashed seat affairs –

That’s entertainment.

Albums: Sound Affects

See Also: Paul Weller Official Website

Wikipedia Paul Weller, The Jam
Technorati , ,

Under the Sakura

Sunday, December 20th, 2009

Under the Sakura

Apple Tech Talk

Saturday, November 28th, 2009

I was lucky enough to get an invite to the Apple Tech Talk in London a couple of weeks ago. It was a worth while trip to the big smoke just for some of the snippets of information your get from some of the talks. Sometimes it doesn’t matter how many forums or blogs you read, how many articles or books you scour through, it takes someone talking to make something make sense.

I didn’t take copious notes like many other people did; there were a large number of people sat there typing in to their Mac Books, almost verbatim anything said!

Anyway, here are a few items I scribbled down that may be of interest.

The first two sessions I took were “Effective iPhone App Development” by Lawrence Coopet.

Data Storage
1. When storing config/session states, be careful about writing lots of objects into a dictionary as individual items. Create a session object and write that instead and don’t just write everything to NSUserDefaults.
2. Think about where you store this data… Archive and implement NSCoding.
3. Use SQLite
4. Use CoreData
5. Store sensitive data in the KeyChain. This has the benefit of being able to share between projects – company data – application data.

When Caching data, make sure you place it in the correct place and never hard code your paths to this data.
All the paths are stored in NSPathUtilities.

NSTemporaryDirectory – this will always be cleared and will never be backed up.
NSCacheDirectory – this is saved, can be cleared, but will never be backed up.
NSDocumentsDirectory – never cleared, always backed up.

Choosing the right place for your data will determine how much iTunes has to backup when syncing your device.

Targetting iPhone OS
1. You should ALWAYS set your Base SDK to the most current OS version – ie. currently 3.1.2 – regardless of which OS you are considering deploying to.
2. Set you Deployment Target to the minimum OS you want your app to run on.
3. You should check for presence of OS features in your code. eg use NSClassFromString and respondsToSelector. However do this at the start of your app and set flags accordingly so that you are not taking speed hits during normal app operation. checking straight global C functions is very quick.
eg if ( UISaveVideoAtPathToSavedPhotoAlbum )

Application Flow
1. Stay focused!
2. The best system is generally – List View – Info View – Detail View. Allow the user to choose to drill down on data rather than forcing too much information on them in one go.
3. Always use the 1 screen 1 controller model.
4. Make sure you are not hardcoding references back to other objects in your application. Using the Model Controller View model your controller talks back to your model but your model should never talk directly to your controller. Your controller talks to you view but your view should never talk back to your controller. And you should never every have your view talk directly to your model. If parent communication needs to take place, then implement delegates. This way you can avoid App specific communication paths.
5. Use Delegates
6. Use Notifications through NSNotificationCentre

Memory Management
1. Make use of the measurement tools regularly – checking for leaks and generally memory usage.
2. Under Snow Leopard make use of XCode Static Analysis – it’s a fantastic tool. (BTW: It really is!)
3. Use the 1 controller 1 nib model.

Application Life Cycle
Compatibility
1. Prefix your classnames with your own token to avoid namespace collisions. eg UI, NS etc…
2. Avoid underscores at the start of method names – these are reserved to Apple.

Proper Code Paths
1. Follow correct code paths. eg. You implement drawRect and call setNeedsDisplay. NEVER call drawRect.

Interruptions
Make sure you handle applicationWillResignActive, applicationDidResumeActive, and applicationWillTerminate.

Concurrency
1. Make sure you use the Async API for Networking and Reachability.
2. Use NSTimer – don’t sit around in threads counting down!
3. Use NSOperation and NSOperationQue. Subclass NSOperation and override main.
4. Keep object access confined to one thread.
5. Design out the need to use locking/signalling/syncing
6. Avoid performSelectorInBackground and detachNewThreadSelector – if you are using these then you are doing it wrong. Use NSOperation.

Artist Required

Wednesday, November 11th, 2009

I really do need to find an artist to help me work on iPhone games!!

Please apply….

Deadman Hill

Monday, November 9th, 2009

I have a particular affinity with Deadman Hill. Anyway, Darren managed to find some information about it recently…

Deadman Hill
This is a stretch of the B3078 along a ridge from Godshill The most likely origin of the name is that a gibbet was situated at one time near the junction with the Redlynch road but a more colourful local story tells how in the mid-eighteenth century a smuggler named David Smith, in return for the promise of a free pardon, betrayed his associates including the infamous Captain Diamond. But not all were apprehended and Smith was waylaid near Studley Head by some of Diamond’s crew who had evaded capture. He was dragged down into the valley east of Cunninger Bottom, now known as Deadman Bottom, where his tongue was cut out, he was cruelly beaten and finally hanged from a tree.

Original text taken from New Forest Walks…