Posts in April 2008

Me on a teapot

Michael Forrest
Sat 26 Apr 2008

I discovered Quartz Composer yesterday - comes free with Mac OS X (another one of the developer tools). Here is me fiddling with it. Music is from one of my 2007 Installation sessions (ie it was composed live in a pub) - it's called "Looks like riggiddy rain". More stuff at mf.grimaceworks.com

Me on a teapot

Michael Forrest
Sat 26 Apr 2008


I discovered Quartz Composer yesterday - comes free with Mac OS X (another one of the developer tools). Here is me fiddling with it.

Music is from one of my 2007 Installation sessions (i.e. it was composed live in a pub) - it's called "Looks like riggiddy rain". More stuff at http://mf.grimaceworks.com

My goodness - it's my brain!

Michael Forrest
Wed 23 Apr 2008
Courtesy of tweetstats.com

Why write good code?

Michael Forrest
Mon 21 Apr 2008
Good code means the computer does what it's good at. Bad code means you have to do things that the computer could be doing.

All you're doing by writing good code is letting the computer do your 'copy-pasting' for you.

Why I don't like Flex

Michael Forrest
Mon 21 Apr 2008
Thought I'd offset my love-related etching from yesterday with a Flex rant...

Using Apple's UI development tools has helped to clarify the benefits of a template-based approach to UI development. Under that mantel I include things like Flex, .NET, Java Struts and Tiles - anything where you use a parameterised components to build a user interface. There are two benefits to a system like this:

1. initial speed of development
2. consistency of look and feel between applications

I say initial speed of development because I have always found that as time goes on, these 'easy, fast' systems tend to result in code that is difficult to maintain as the complexity grows (although you could say that about anything really... I'm really saying that the 'easyness' fosters a certain 'bricklaying' style of programming that is tedious to change due to excessive copy-pasting of details instead of OOP centralisation).

The Apple stuff brought point 2 home - it's very important for an operating system to maintain a look and feel between applications. That's where this sort of thing belongs. The good thing about the Apple implementation is that there are lots of very high quality components and integration hooks that can be used to rapidly build a fancy looking application. Also, since Apple themselves use these tools, their construction is optimised for real world use.

Here's the rub: Consistent look and feel is a no-no for Flash applications. The whole point of using Flash is differentiation of UI concepts, creating branded experiences, creating something unique every time. So Flex is generally more of a hinderance than a help when it comes to building RIAs for the web.

Flex MXML source code looks like bad HTML. As a sometime HTML developer, seeing X and Y coordinates hard coded into my view structure makes my blood itch. Seeing visual implementation details randomly mixed in with structural details scares me. I am deeply concerned that the templating language of Flex has learned nothing from all the progress that has been made cleaning up HTML over the years.

I hate the 'data provider' paradigm. It never works. It was never enough for a .NET app, and it won't be enough for a Flex app. There's always something you need to change that the component API doesn't let you change, so you end up jumping through artificial hoops imposed by the incomplete component implementation.

When you develop parameterised components, you are adding redundant functionality to your code. You try to second-guess future implementations, but you never think of everything. The more flexible a component, the fatter it is. Which is why a Flex application takes so long to download. Watching a progress bar on a website before I can do anything makes me want to leave straight away.

The other facet of this sort of encapsulation is the inevitable event maelstrom. To make a component flexible enough for use in a real world app, it needs to be dispatching events all over the place. And in my experience, the one you need is always missing. It's okay if you have the source code - you can add in an event at the point you need it, but it's never quite right.

Another problem with component encapsulation is that when you have a lot of classes going into your component's implementation, you end up having to override a whole inheritance chain to change a small detail. Um... that is, say you want to change the font on a button inside a combo box - you have to override the combo box to use a different list item class that uses a different button component which creates a differently styled textfield. Unless the developer happens to have implemented that all-important 'kerning' parameter that your designer is insisting you perfect...


So yeah. I don't like Flex because it
1) encourages lazy development practices by purporting to be 'fast' and 'easy'
2) mixes view with model with controller in XML files that can only get bigger
3) creates artificial barriers to the level of customisation necessary for any Flash app with the flawed 'state' model
4) has an ugly default look and feel
5) has components that don't quite do everything you'd expect (try using the keyboard or mouse wheel on some things and you'll see what I mean)
6) results in a lot of tangled up event listeners

I see all of these problems as coming from the parameterised component paradigm, although if the implementation was as good as Apple's then I might be a bit more interested. However, even with Apple's implementation I quickly found myself wanting to return to a code-based UI construction process, cos, you know - why hard code x and y coordinates all over the place when you could have a couple of static constants in your source and work everything else out at runtime?

Love Hate

Michael Forrest
Sun 20 Apr 2008
i hate love sometimes

Synthetic life

Michael Forrest
Thu 17 Apr 2008
This guy's got the right idea. Calmly using science to solve humanity's major problems..
http://www.ted.com/index.php/talks/view/id/227



Go Craig Venter!

Falling Leaves - Michael Forrest

Michael Forrest
Mon 14 Apr 2008

More experiments: grimaceworks.com This is an interactive Java Applet. I'll put a link to it once I've managed to post the applet online. Here's what it says, since I think it's easier to read when you're in control... ---------------------------------------- Listen. You are steeped in information. You are being bombarded. Your brain is made for a society of dozens, maybe hundreds. A few dozen friends. The rest outsiders. You struggle to understand a society of billions. So your belief that ...

Falling Leaves - Michael Forrest

Michael Forrest
Mon 14 Apr 2008


More experiments: http://grimaceworks.com/mf/lab

This is an interactive Java Applet. I'll put a link to it once I've managed to post the applet online.

Here's what it says, since I think it's easier to read when you're in control...

----------------------------------------


Listen.
You are steeped in information.
You are being bombarded.
Your brain is made for a society of dozens, maybe hundreds.
A few dozen friends. The rest outsiders.
You struggle to understand a society of billions.
So your belief that times are getting darker is false.
The strong help the weak more than they ever have before.
They help because they feel ashamed.
They help to keep up appearances.
They still help. Altruism does not require pure motivation, only action.
Do not judge them so harshly.
We must all block out hysteria, control our fears,
and calmly build a better world.
Piece by piece.
Brick by brick.
Cell by cell.
Atom by atom.
Word by word.
We will not stay here forever.
We will not be this forever.
Machines and minds will merge in time,
We will expand through melted buckled borders
Even if we burn the whole sky what we are will still survive.
Even if our children turn against us they are still our children.
Our sublime capacity to adapt will transcend the difficult times ahead.
In the future my only hope, MY ONLY HOPE, is that there will still be girls.
In the future I hope there will still be girls.
MUSIC, SOFTWARE, WORDS by Michael Forrest April 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020

Image © http://philip.greenspun.com

Organic flicker for arpeggiator and mouse

Michael Forrest
Wed 09 Apr 2008

More experiments: grimaceworks.com I am working on programming this little visual thing - I settled for this evening on this organic flickering in grey. This is a little improvisation on arpeggiator and mouse clicks. You can see the applet crashing at the end. Guess it still needs work...

Organic flicker for arpeggiator and mouse

Michael Forrest
Wed 09 Apr 2008


More experiments: http://grimaceworks.com/mf/lab

I am working on programming this little visual thing - I settled for this evening on this organic flickering in grey.

This is a little improvisation on arpeggiator and mouse clicks.

You can see the applet crashing at the end. Guess it still needs work...

mf cloud

Michael Forrest
Mon 07 Apr 2008

More experiments: grimaceworks.com er yeah... this is me mucking about with a bit of silly programming nonsense. It's a bit scary isn't it. yet colourful! Hmm... Um basically I'm doing programming and mucking about instead of preparing for my gig on Friday. I think I'll use some stuff like this when I play live.

mf cloud

Michael Forrest
Mon 07 Apr 2008


More experiments: http://grimaceworks.com/mf/lab

er yeah... this is me mucking about with a bit of silly programming nonsense. It's a bit scary isn't it. yet colourful! Hmm... Um basically I'm doing programming and mucking about instead of preparing for my gig on Friday. I think I'll use some stuff like this when I play live.

oops

Michael Forrest
Thu 03 Apr 2008
Just noticed my feed was broken. If you use Google Reader or iGoogle or Netvibes or any kind of rss reader, how about you do me the service of subscribing to my feed? It lives at http://feeds.feedburner.com/michaelforrest. Shows upcoming gigs at the top, and any updates to this site go through so you don't have to keep coming back here. Plus it works as a podcast so you can subscribe with iTunes and any tracks I put online will automatically get added to your library. Also, Google reader and Netvibes have built in mp3 players so you can listen to my tracks from there too.

Words without no substance

Michael Forrest
Thu 03 Apr 2008
I am tremendously excited that mister Marcus Alexander has started a personal blog.



I am enjoying the friendly tone of this blog - there is a distinctly warmer style than Marcus usually uses in his always articulate and insightful communications. Get subscribed, you know it's gonna be good stuff. withoutsubstance.blogspot.com

What's on the CD?

Michael Forrest
Tue 01 Apr 2008
Thought you might want a track listing for the CD I'm giving for free with each order from my shop.

Name With Year
Clanging2006
been a long time coming - mf+fozFoz2007
DenialDewex2008
Smunk -Addicted FanaticMC Lee2002
Smunk - Smoked to Death2003
Dreaming of Polygamy2006
Bumpy Bosbo (radio edit)2006
Blow Up Inside2006
Anger Belly (radio edit)2006
Song Of Technology2007
Sliding Down feat.Schooly Dave2007
No one ever told me what it's like to be deadDewex2006
I Said I Love You One TimeLina2007
Horoskope Instrumental (work-in-progress)2007
Dark EuphoriaLina2007
Here I Go Smunk RemixShadow Huntaz2004
CelloNonsense2004
Music For Trains2006
It Doesn't Have To Be This Way Instrumental2007
I wish I could make it all go away2007
Black Hole2006
Selection Rejection.mp32007
- Some Day.mp32007
I Can't Remember.mp32006
Can't Get You Out Of My Head - [backing].mp32006
How'd They Ever Get It On Anyway2007
Bumpy Bosbo Long Preview2006
Anger Belly Extended (Needs Mastering)2006
Looks Like Riggiddy Rain2007
Fudruck June 2007 - Live2007
We Did2005
How You See Me2005
Breezing Preload2005
Xut Um Up2005
Sketch of a left hand2005
If You Want To Write2005
That Yawning Hollow Void2005
Human Thing2005
Hobgoblin2005
Juicy Skin Biscuits2005
Something Inside2005
Festivo2005
No Turning Back You2004
Cold Turkey2004
Don't Go Slow Mo2004
Fully Unoperational2004
housey improvisation (live)2004
Darned No Good Shoes2004
I'm Going Through The Bins2004
Slipping Down Not Alone2004
Don't Ever Slow Down2004
Bendy Gutter2004
In the fightyfiftyfourfties2004
Caught In The Bitstream2004
It Hurts, Make It Stop2004
A Put Anotha Bread In Me Bread BinLina2008
Make a promiseLina2008


Come to my little stall.

Apple Instruments meet Flash

Michael Forrest
Tue 01 Apr 2008



Apple Instruments comes bundled with Leopard. It's part of the whole developer toolkit that Apple give you for developing OS X Applications. All their tools are somewhat beautiful (the only real omission as far as I'm concerned is tabs in XCode).

I am doing some Flash work and realised there was a major memory leak and realised that I could use Instruments to track stuff in the Flash Player same as anywhere else.

All you need to do is Launch Executable->/Applications/Flash Player.app, and put the path to your swf in the arguments box in the Select Executable window.



You can monitor and record memory usage, file access, cpu use, beachball-time, and even get screen captures of user interface events on the chart. This is just excellent.