Header image

Matt's Blog

  • Home

Subscribe to feed

Uncategorized

You are currently browsing the archive for the Uncategorized category.

Listen to Sigur Ros’ New Album, Today!

June 10, 2008 in Uncategorized by admin | 1 comment

IPS Office Mutterings…

May 27, 2008 in Uncategorized by admin | 1 comment

If you were a fly on the wall in the US office, you would have witnessed the following:

svnX deleting two days worth of my work (classPost.php) with a single miss-click…
FileSalvage finding classPost.php enabling me to restore it…
Chicken and egg scenarios in ipsRegistry.php finally fixed. We hope…
Tweaking the IP.Board 3 template tag format to make it a little more universal…
Excitement over Rikki’s IP.Board 3 designs…
XSLT discussion… Shame not every PHP installation has the extension enabled…
Excitement over Rikki’s javascript…
Enjoying a lively debate in the customer only forum…

abilify usa
acai price
accutane canada
what else can i take besides aciphex
cheap acomplia no prescription
actonel coupons
actos hypogylcemia
What is Aleve
Allegra D
can I take more than one alli pill at a time
discount altace
antibiotics best price
aricept and diabetes
buying arimidex
ashwagandha insomnia
astelin price
can exelon and atacand be taken together
atarax + albuterol
augmentin medicine
avandia 4 mg
buy avapro online
avodart description
purchase bactrim
methadone withdrawal benadryl
Benicar Side Effects
allergic reaction to biaxin
buspar canada
cardizem tablets
online celebrex
celadrin price
cheap cephalexin no prescription
cialis mg
dangerous side effects of Cipro
order cla
taking both clarinex and xyzal
purchase claritin
clomid benefits men
intrathecal clonidine
colchicine tablets
buy cheap coreg
coumadin necrosis
cheapest cozaar
Difference in Blood and Urine Creatine
buy crestor
online cymbalta
cytotec pill picture
depakote canada
Diclofenac SR
buy differin online
generic diflucan
what is diovan
doxycycline calcium
difference in effexor and effexor xr
flagyl xr
flomax dose
glucophage xr
hair loss buy
boozer hangover remedy
what is hoodia
cheap keppra
lamictal and pregnancy
order lamisil
LASIX San Diego
no rx levaquin online
levitra side effects
cheap lexapro
lipitor vs Pravastatin
lisinopril zestril
melatonin Smoking cessation
metformin usa
methotrexate folliculitis
micardis best price
side effects of mobic
motrin fda
information on msm for use in the eyes
neurontin on line
nexium buy
cheap nizoral online
buy nolvadex fat loss
omnicef tablets
Paxil attorneys Southern California
online penis extender
phentermine description
phosphatidylserine for sale
plan b side effects
cheap plavix
generic pravachol online
prednisone eye drop
premarin no prescription
prevacid overdose
buy prometrium online
hair loss propecia
provera no prescription
prozac drugs
purchase reglan
reminyl medicine
rimonabant withdrawal
cheap risperdal
mail order rogaine
seroquel xr
generic singulair
what is skelaxin
Ways To Stop Smoking
strattera no prescription
stress and pain relief
synthroid levothyroxine
tetracycline mg
Topamax and Weight
toprol side effects
cheap toradol
buy tramadol online
trazodone buy
medicine tricor
trileptal canada
ultracet side effects
valtrex online
Buying Viagra Online
online voltaren
online vytorin
generic weight loss online
Wellbutrin remeron combination
taking yohimbe with viagra
generic zantac
zetia best price
zestoretic drugs
discount zithromax
zoloft causes high cholesterol
buying zovirax
generic zyban
zyprexa side effects
Zyrtec D 12 Hour
zyvox india

IPB 3: Making Templating Easier

May 15, 2008 in Uncategorized by admin | No comments

Originally posted at IPS.com
HTML logic has been a feature of Invision Power Board for quite some time now. Although we didn’t make much use of the ‘<foreach>’ tag so that skins could be backwards compatible, we did make good use of the <if> <else /> logic. Now that we have a clean slate with v3.0, we can really make some positive changes.

Invision Power Board 3.0 makes full use of the existing HTML logic and adds some more functionality. This allows for some dramatic customization without touching any of the PHP code. Where possible, each ‘view’ (board index, topic listing, viewing a topic) has a single template. Previous versions ’stitched’ together several templates (as many as 30!) to create a single page view. This meant that some items were fixed and unable to be moved. For example, on the board index, it was not possible to move the board stats above the list of forums. Likewise it was not possible to move the active users below the board statistics.

Now you can. You can move any item to any place for that view without having to edit the PHP files themselves. This will really open up designer’s creativity and allow some really unique looking templates.

Another leap forward for Invision Power Board 3 is the ability to use display logic in the templates themselves. Naturally, we were always able to use <if> and <else /> but you can now use the following standard tags:

The Date Tag:
Examples:
{%date="now"|format="long"|relative="false"%}
{%date="1210012321"|format="manual{d m Y}"%}
{%date="-1 day"|format="long"%}

For the first time, you can now explicitly specify a date format on a per-use basis. The tag accepts either a unix ‘timestamp’ or a human string like ‘now’, ‘-1 day’, ‘tomorrow’, etc. The format parameter can either be a standard IPB date format (long, short, joined, etc) or a manual PHP Date format.

The Parse Tag:
Examples:
<parse expression="sprintf( "14", "There are %s apples in the bag" )" />
<parse expression="substr( $data['name'], 0, 10 )" />

This parse tag allows you to make on-the-spot parsing using PHP code. This tag is replaced with the value returned from PHP.

The URL Tag:
Examples:
{%url="foo=1&bar=2"|label="Click Me"|base="public"|id="myLink"|class="linkCSS"|onclick="this.function()"%}
{%url="foo=1&bar=2"|base="public"%}

The first example will actually create the entire <a href=” … >… HTML chunk whereas the second example will only return a formatted URL. The main reason for this tag is to prevent hardcoded entire URLs or even fixing part of the URL to a setting. In IPB 2.3 it wasn’t unusual to see this:

<a href='{$this->ipsclass->base_url}&act=login'>Log In

The new method would be like so:

<a href='{%url="act=login"|base="public"%}'>Log In

The ‘base’ value being ‘public’ tells the template engine to use the public URL and not the ACP url. The real power of this feature lies in the return value being automatically fed via formatURL() which can return a friendly URL if friendly URLs are enabled.

The Variable Tag:

Example:
<variable key="tdColor" default="blue" />
<variable key="tdColor" oncondition="$foo == "green"" value="green" />
<variable key="tdColor" oncondition="$foo == "black"" value="black" />

<span style='color:<variable="tdColor" />'>Hello World!

In this example, depending on $foo having a value of green:
Hello World!

This tag allows you to decide in the template itself how part of the template should display without having to edit PHP code. This is a handy tag for use in foreach blocks to alternate between colours when showing posts, topics, etc.

Custom Tags
The tags URL and date tags shown above use the {%tag=”foo”|param=”bar”%} format. These are actually custom plug-ins. You can write your own custom plug ins and they are available immediately within the templates. You could even modify the default plug-ins to change their behaviour.

We’re looking forward to how these new tools are used in your own templates!

Hungry Firefox

February 28, 2008 in Uncategorized by admin | 11 comments

I recently shoved an extra 512mb into my intel iMac to take it to 2gig after getting annoyed at sluggish performance. Mostly because of Firefox’s willingness to eat as much memory as possible.

Although it’s helped, it didn’t take long for Firefox to take advantage:

That’s only after about six hours of use with around 8 tabs open.

abilify dosage
acai berry fruit blast
cheap accutane no prescription
Does Aciphex Gain You Weight
acomplia best price
compare Boniva and Actonel
actos india
aleve
allegra claritin depression
cheapest alli
buying altace
antibiotics for acne
buy aricept online
arimidex and return of ovarian function
ashwagandha price
Astelin azelastine
atacand india
generic atarax
augmentin and infertility medication
avandia information
avapro 300 mg tab
treating baldness with avodart
half life bactrim bs
benadryl children
benicar usa
no rx biaxin
buspar cat
weaning cardizem
celebrex medication
celadrin no prescription
cephalexin drug family
Cialis Reviews
buying cipro
straight outta cla hm
Clarinex 5 mg in Canada pharmacies
claritin allergy medication
clomid effectiveness
dosage clonidine pounds
colchicine polploidy techniques
coreg best price
coumadin and vitamin K
cozaar tablets
order creatine
generic crestor online
cymbalta india
buying cytotec in usa
depakote sleep
diclofenac xr
order differin
diflucan as treatment of diabetes
Diovan HCTZ
doxycycline uk
generic effexor extended release
cost of flagyl
flomax ssri’s
generic glucophage online
Vitamins for Hair Loss
Love Hangover
Hoodia P57
keppra for dogs
Lamictal side effects
lamisil canada
low cost lasix
levaquin dosage
levitra reviews
buy lexapro online
Generic Lipitor
lisinopril withdrawal
melatonin buy
metformin off label uses
no rx methotrexate online
cheapest micardis
mobic and predisone
infants motrin
msm
neurontin buy
nexium acid reflux
nizoral usa
nolvadex dosages with anabol
generic omnicef online
cheap paxil no prescription
discount penis extender
cost of phentermine
phosphatidylserine complex
plan b no prescription
generic plavix
Side Effects of Pravachol Medication
hypothalamus prednisone
how long does it take for premarin to work in your body
taking simethicone and prevacid
what is micronized prometrium
cost of propecia
depro provera
Prozac Used for
reglan description
reminyl best price
rimonabant onsale
risperdal buy
THE EFFECTIVENESS OF ROGAINE
cheapest seroquel
singulair usa
skelaxin buy
buy stop smoking online
side effect of strattera
stress relief mg
synthroid drugs
gum infections, treated with tetracycline ivax
topamax dosage for weight loss
toprol xl side effects
discount toradol
cheap tramadol
trazodone buy
order tricor
trileptal medicine
no rx ultracet
valtrex canada
female viagra cream
Voltaren Emugel Side Affects
vytorin withdrawal
buy weight loss
wellbutrin xr
yohimbe withdrawal
zantac side effects
problems with Zetia
cheap zestoretic no prescription
zithromax xr
generic zoloft online
Zovirax for Chicken Pox
no rx zyban online
zyprexa gluten
Zyrtec 10MG
zyvox medicine
amateur adult video
double anal
asian blowjobs
bdsm chat
bestiality pics
big black cock
blowjob movies
bedroom bondage
cartoon blowjobs
celebrity sex
huge cocks
cumshots
ethnic pussy galleries
lesbian femdom
sock fetish
gay animal sex
gay group
free hairy women
public handjob
hentai sex games
violent incest
interracial gay
latina booty
lesbian cheerleaders
panty pics
very mature sex
preteen nudity
pink stockings
girl pee standing
japanese pornstars
pregnant fucking
preteen rape
influence reality tv
shemale cock
femdom spanking
pussy squirts
pre teen model
titanic tits
pantyhose upskirt
dressing room voyeur
hidden camera voyeur
animal i have become

Merry Christmas!

December 21, 2007 in Uncategorized by admin | 3 comments

What a year it’s been, and I can’t believe it’s almost over so quickly.

I will make an effort to stop by and blog more often in the new year. It’s been a very busy time recently and I’ve been busy blogging over on my ‘other‘ blog.

I have lots to talk about; our plans for IP.Board and a reflection on finally releasing IP.Dynamic (as part of the IP.Nexus suite).

Until then, have a great Christmas and I’ll see you all in the New Year!

Radiohead: In Rainbows - My Review

October 10, 2007 in Uncategorized by Matt Mecham | No comments


This review is based on just a few listens. Like most Radiohead songs, you get more from them the more you listen to them. Even though their sound has matured it is still very much a Radiohead album and surprisingly accessible from the very first listen. Is it their best album to date? I’d say that it’s a very close call. Most of the songs grab you from the first few bars and demand your attention.
Stand out tracks for me so far “Nude”, “BodySnatchers”, “All I Need” and “Jigsaw Falling Into Place”. Oh, and “Videotape”.
The sound is very much a continuation from “Kid A / Amnesiac” and “Hail to the Thief” but there is some definite “OK Computer” styling there too.

15 Step
Welcome to In Rainbows. Electronica assaults your eardrums. Thom mumbles and skips through the first verse “How come I end up where I started”. The guitar comes in for “You used to be alright, what happened?”. The guitar flows to the left of the mix. “It comes to us all, it’s as soft as your pillow”. Electronica gets whimsical “Fifteen Steps, Then a sheer drop”. Like Múm on speed. Thom gets more excited for the last verse. A very eclectic and schizophrenic opening for the album.

BodySnatchers
Heavily distorted guitar. Drums. Thoms vocal. It reminds me very heavily of the chorus from “Palo Alto“. Which is a good thing. The track sounds like it could have come from “Kid A“. “I’m trapped in this body and can’t get out”. More health paranoia from Mr Yorke. This track is bursting with energy. Scratchy guitars to the right, drums at the back. Electronic strings wail and then -bang- it all changes. Faster drums, long drawn out guitar notes “Has the lights gone out for you? Cause the lights gone out for me”. “I’m alive”. A wall of noise brings on the last minute then we’re back to more Kid A sonic style noodling before a loud fast finale. Literally breathtaking. This would make a fantastic live song.

Nude
Reversed sound clips. “Don’t get any big ideas, they’re not gonna happen”. Ironically, how long have Radiohead fans waited to hear that on a studio album? Well, it’s finally happened!
It would be lazy to say this track is “Fake Plastic Trees” for 2007 - but it’s so much more than that. If you’ve heard the live versions of ‘Big Ideas’ then you’ll know what I mean when you say that this song has had the ‘Motion Picture Soundtrack‘ treatment. Outstandingly beautiful.
Throughout, the haunting syrupy tones of Thom float dreamlike over a stripped down orchestration for heartbreaking effect. The strings swell packed full of reverb for the chorus. My favourite track from the album.

Weird Fishes/Arpeggi
Classic Radiohead with a guitar heavy track. It appears to be a simple melody but there are many overlapping textures which builds as the song progresses. Like most of the songs on this album, you get a real sense of how Radiohead have matured their sound. The last minute is hazy perfection “Hit the bottom. And Escape”.

All I Need
The first few bars remind me of “How To Disappear Completely” from “Kid A” until the drum machine and bass kick in. “I’m an animal trapped in your hot car” Thom sings. “I’m all the days that you choose to ignore”. Like so many tracks on In Rainbows, it’s a very naked sound. Lots of empty space and echo. “You’re all I need, I’m in the middle of a picture.”. The song concludes on a high literally buzzing with energy. “It’s all wrong…”. Not for me!

Faust Arp
Acoustic guitar. Fast spoken lyrics. Folky undertones with heavy cinematic orchestration. Swelling violins over Thom “Tumbling, tumbling…”. The music takes prominence over Thom so that he’s almost lost in the mix much like some of the earlier “Pablo Honey” tracks. The most un-Radiohead like track on the album.

Reckoner
More echo and reverb. Drum and bass. Picking guitar at the left of the mix; vaguely reminiscent of “Where I End…” from “Hail To The Thief“. Another relaxed track led by Thom’s high octave singing. A very “Radiohead” sound. The last half of the song changes tonally when the orchestra come in.

House of Cards
Guitar; warm and rich greet us at the start of this track. Thoms heavily echod voice carries the song. “Forget about your house of cards, and I’ll deal mine”. The drum line keeps the song ticking along. Even though the lyrics are quite aggressive, the score remains melancholy and almost upbeat in places. Some of the sound effects remind me of “Electioneering” from “OK Computer” for reasons I can’t quite explain.

Jigsaw Falling into Place
Acoustic guitar picking out a complex melody kicks off this track. Lots of chord changes, major, minor, 7th. Thom hums his welcome mimicking the melody. It’s hard to keep your head from nodding in time with the rhythm. Thom beats out the lyrics of the first verse without much emotion. “Close circuit cameras, before you’re comatose”. The music builds for the second verse. “Before you run away from me”. Thom is getting more excited. “Come on and let it out”…. “Dance, Dance, Dance”. The music shifts again through minor and 7th. Heavy strings for “Jigsaws falling into place, there is nothing to explain”. The sheer pace leaves you almost breathless at the end.
I bet this is outstanding live in the same way that “2+2=5” is.

Videotape
We’re slowed down by tender piano and a very raw Thom introduce the song. “When I’m at the pearly gates, this will be on my videotape”. This track is very stripped down. The drums come in a little later as Thom hums a melody above the piano. At about halfway there’s a real sense of building. The drums ricochet as if on a loop. “This is my way of saying goodbye. Because I can’t do it face to face.”. The song noodles out with the drum loop and the repeated piano melody.

Radiohead: In Rainbows Out Now!

October 10, 2007 in Uncategorized by Matt Mecham | 1 comment

I got my download link this morning for Radiohead’s new album and it was on my desktop in seconds. It’s in the format of DRM free 160 kbps MP3 tracks.

I’ve only listened to four songs so far but it’s already a fantastic album. The long awaited “Nude” is nothing short of brilliant. “Weird Fishes/Arpeggi” is great too. Despite my fears that the album would sound more like Thom’s Eraser than a Radiohead album (Eraser is a great album, but it’s a slightly different sound to Radiohead) is so far unfounded. This is definitely a Radiohead album!

Ok, sorry for gushing… I’ve been waiting nearly four years for this album…

New self-distributed Radiohead album

October 2, 2007 in Uncategorized by Matt Mecham | 2 comments

I’m a huge Radiohead fan and I’ve been keeping an eye on their sites for a while for news of a new album. Rumours were that it would be out early in 2008.

Much to the surprise of everyone, Inrainbows is out on Oct 10.

But you won’t find it in Virgin Megastore or HMV. Radiohead have decided to go it alone and are taking pre-orders for two versions, one ‘discbox’ version which contains two CDs and two LPs as well as some artwork which will be shipped on Dec 3rd. This version contains a digital download pass which is activated on 10th October. You can also purchase the download version on its own. The boxset costs £40 and the download only version costs… well, that’s up to you. They have set no price. You decide how much you want to pay for it — or if you want to pay for it at all. No seriously, it’s true; you can ‘buy’ it for free.

To foil ‘net piracy, there are no promos, no label only copies - nothing. Unless there’s a leak within the studio, you won’t be able to find a copy anywhere.

Naturally, the music labels are shocked:

While many industry observers speculated that Radiohead might go off-label for its seventh album, it was presumed the band would at least rely on Apple’s iTunes or United Kingdom-based online music store 7digital for distribution. Few suspected the band members had the ambition (or the server capacity) to put an album out on their own. The final decision was apparently made just a few weeks ago, and, when informed of the news on Sunday, several record executives admitted that, despite the rumors, they were stunned. “This feels like yet another death knell,” emailed an A&R executive at a major European label. “If the best band in the world doesn’t want a part of us, I’m not sure what’s left for this business.”

Labels can still be influential and profitable by focusing on younger acts that need their muscle to get radio play and placement in record stores — but only if the music itself remains a saleable commodity. “That’s the interesting part of all this,” says a producer who works primarily with American rap artists. “Radiohead is the best band in the world; if you can pay whatever you want for music by the best band in the world, why would you pay $13 dollars or $.99 cents for music by somebody less talented? Once you open that door and start giving music away legally, I’m not sure there’s any going back.”

I’m literally so excited I could burst. I’ve pre-ordered the boxed version and will be ready to download on the 10th. I can’t believe they’re finally releasing a studio version of ‘Nude’!

Archives

May 3, 2007 in Uncategorized by Matt Mecham | No comments


Preserving Permalinks

May 2, 2007 in Other, Uncategorized by Matt Mecham | 3 comments

This may come in handy for anyone else who has migrated to Wordpress from Moveable Type.

I didn’t really want to lose all those incoming clicks from the old style permalinks which have been long since spidered so I set about figuring out the best way to forward the old style to the new style.

There are some mod_rewrite examples on the Wordpress site but they don’t take into consideration that Wordpress also uses .htaccess mod_rewrite for ’search engine friendly’ links.

Here’s my final solution which is in two parts, one is a modification to the .htaccess file which converts the old “/archive/2007/04/blog_entry_title.html” format into “findmt.php?s=blog_entry_title”. A new file”findmt.php” queries the database and forwards to the correct blog entry.

.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*archives/.*/(.*).html /findmt.php?s=$1 [R,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

findmt.php

require( 'wp-config.php' );

//-----------------------------------------
// Fix up S parameter
//-----------------------------------------

$search = strtolower( trim( urldecode( $_REQUEST['s'] ) ) );
$search = str_replace( '_', '-', $search );
$search = preg_replace( '/[^\d\w-]/', '', $search );

//-----------------------------------------
// Get DB connection
//-----------------------------------------

$connection_id = @mysql_connect( DB_HOST, DB_USER, DB_PASSWORD );

if ( ! $connection_id )
{
print "Could not connect to the DB";
exit();
}

if ( ! mysql_select_db( DB_NAME, $connection_id) )
{
print "Could not select the DB";
exit();
}

//-----------------------------------------
// Attempt to get post via title.
//-----------------------------------------

$qid = mysql_query( "SELECT * FROM " . $table_prefix . "posts WHERE LOWER(post_name)='" . addslashes( $search ) ."'" );

if ( $row = mysql_fetch_array( $qid, MYSQL_ASSOC ) )
{
header("Location: /index.php?p=" . $row['ID'] );
}
else
{
header("Location: /index.php" );
}

?>

Same, but different

May 2, 2007 in Uncategorized by Matt Mecham | 1 comment

Welcome.

I fancied a bit of a change and decided to give Wordpress a whirl. There wasn’t anything wrong with Moveable Type, it’s a great platform but Wordpress has matured into quite a nice little application.

I’ll be tweaking this template a little over the next few days when I get some more time, so don’t despair at the stock header image just yet.

Blogroll

May 2, 2007 in Uncategorized by Matt Mecham | 5 comments

A few blogs that I check in with now and again:

  • www.zefhemel.com
    I’ve known Zef for about as long as I’ve known the internet. He’s far too clever and will do great things in the future. Not that he hasn’t done great things already. I meant greater things.
  • www.timdorr.com
    Tim has to make sense of my spaghetti code for Neowin. He’s young and ambitious. Just like me if I was young and ambitious.
  • www.mytton.net
    David is also young and ambitious. Notice a trend?
  • debbieuk.wordpress.com
    My better half. She’s better by at least half.
  • http://www.garethramsdenpt.co.uk/
    One of the nicest personal trainers in the business. He really knows his stuff and has been a great help on my quest to not being fat. The site is packed with useful articles, too.

About

May 2, 2007 in Uncategorized by Matt Mecham | 6 comments

Current
I’m a web developer (PHP / MySQL / DOM) based in the UK. I am the co-founder and C.S.A of Invision Power Services, Inc.

Current projects include: Invision Power Board, Invision Power Dynamic, Invision Power Nexus and Invision Power Converge.

History
I started coding Perl way back in 1999 when I started up a personal website. I have been coding for about as long as I can remember. From ZX81 and BBC Micro computers though Amigas and Macs, I’ve always been hacking away at something.

Coming from a fine art and graphic design background I decided that the web was a cool place to work and set about creating a few websites.

Pretty soon I was learning Perl to customize my bulletin board (a long since dead BoardMaster script). I quickly outgrew this script and set about making my own. This eventually turned into Ikonboard.

I moved on from Ikonboard to start a new board in PHP called ‘IBForums’ (eventually named Invision Power Board).

Since then, I’ve worked on other Invision Power Services projects which continue to innovate and move forwards.

Interviews
I’ve always been fascinated with the idea of talking about myself and I’ve been fortunate enough to be asked by others to do that.

  • OpenTechSupport.com (July 2001)
  • SitePoint.com (October 2002)
  • Olate.com (April 2004)
  • TheAdminZone.com (May 2005)

Songs You Must Listen To Before You Die

April 16, 2007 in Uncategorized by Matt Mecham | 9 comments

In no particular order:

Six Days at the Bottom of the Ocean - from The Earth Is Not A Cold Dead Place by Explosions in the Sky.
Antichrist Television Blues - from Neon Bible by The Arcade Fire
I Can’t Feel My Hand Any More, It’s Alright, Sleep Tight - from Finally We Are One by Múm
A Wolf At The Door - from Hail to the Thief by Radiohead
Brick - from Whatever and Ever Amen by Ben Folds Five
We Haven’t Turned Around - from Liquid Skin by Gomez
Section 17 (Suitcase Calling) - from Together We’re Heavy by The Polyphonic Spree
Andvari - from Takk… by Sigur Ros
Neighborhood #1 (Tunnels) - from Funeral by The Arcade Fire
Ágætis byrjun - from Ágætis byrjun by Sigur Ros
Grace Under Pressure - from Cast Of Thousands by Elbow
Take Me Somewhere Nice - from Rock Action by Mogwai
Fjarskanistan - from Animamina - EP by Amina
In Church - from Dead Cities, Red Seas & Lost Ghosts by M83
Scattered Black And Whites - from Cast Of Thousands by Elbow

Premonition

March 21, 2007 in Uncategorized by Matt Mecham | 10 comments

We (Debbie, Debbie’s sister Jacqueline and I) decided to take a trip to the cinema to watch “Premonition“. Although I’m not adverse to Sandra Bullocks admittedly aging ‘girl/woman/OAP-next-door’ charms, I wished we’d had a premonition and stayed at home.

Firstly, two things really stood out. Sandra Bullock’s nipples. Yes, her nipples were easily the best thing in the entire film. They stole every scene they were in. I wouldn’t be surprised if the DVD has an entire extra feature dedicated to them where veteran special effects guru Stan Winston goes into detail how he created them and the technical wizardry that went into remote controlling them. It should be noted that both nipples were never on show at the same time. Sometimes it was the left, sometimes the right. This may have been due to budget constraints. I guess we’ll learn more when the DVD comes out.

The rest of the budget may have been blown on Julian McMahon’s eye-brows. His overly plucked brows looked like two perfectly formed caterpillars sleeping snugly on his brow. It is as bizarre as his constant vest wearing in the film like some overly manicured lothario poncing for business.

Anyway. The film is based on the titular premonition Linda (Sandra Bullock) has which involves a one-on-one fight pitting her husband Jim (Julian McMahon) against a 400 tonne truck. He loses. She loses her mind. The end.

Well, not quite. You see, she appears to bounce around in time like an over-inflated space hopper in a plot that gets thinner by the minute and contains a few plot holes. We’re not talking about niggly little things your Star Trek obsessed friend would be too embarrassed to bring up at a convention, we’re talking huge cavernous holes that the entire story falls into and can’t climb out of.

Here goes nothing…

WEDNESDAY
It’s Wednesday. She takes her two girls to school. She’s putting cute bee stickers on the huge glass plated french doors in her house. She notices a message on her answer-phone. She plays it. It’s her husband. He blathers on about “meaning what he said in front of the girls”. She’s confused. ‘What could he possibly mean?’, she muses as she does her laundry.

There’s a knock at the door. The state trooper doesn’t ask to come in. Doesn’t offer to make her a cup of tea and doesn’t ask her to sit down. No sirree! He blurts out that her husband has DIED in a TERRIBLE CAR ACCIDENT. He then leaves her at the door as he whistles a nice tune on the way back to his squad car. OK. He wasn’t whistling but he clearly didn’t give a shit that Sandra Bullock has just been told that her old man has just bought, and moved into the farm.

It’s still Wednesday. She’s shocked. Who wouldn’t be. The policeman was plain rude. Her mother turns up. She takes a photo of their wedding day and curls up on the sofa for a nice little sleep.

SOME OTHER DAY THAT’S BEFORE WEDNESDAY
Linda wakes up and goes downstairs. Jim is downstairs eating Cheerios. Linda is confused. Is it a ghost? Has she gone mad? So relieved is she that her husband is still alive she barely mutters two words to him. The day continues. She puts out some washing on the line and falls into a dead bird. Honestly, don’t try and make sense of that - it’s pointless. She goes to bed and stares, like a crazy person, at her still-breathing husband.

SOME OTHER DAY THAT’S AFTER WEDNESDAY
Linda wakes up. There are blankets over all the mirrors. She notices crushed up lithium in the sink. She goes downstairs. It’s her husbands pre-funeral breakfast! He’s dead again! She’s confused. One of her children has horrific stitches over her face! Apparently the doctors decided to use black sutures and no dressings for amazing comical effect! How did she get those horrific injuries? I don’t know and neither does old Sandra who by now is flipping through the rest of the script in her trailer thinking why on EARTH did I sign up for this?

They go bravely to the funeral. Unfortunately for her, she chose the Chuckle-Brothers Funeral Home. She’s outside the church. The coffin is still in the car. She demands to see the body. The nice funeral-director lady tells her she can’t because her husband’s body isn’t too purdy. The Chuckle-Brothers unload the coffin and drop it! Yes, they drop it! In a hilarious black comedic moment the casket comes open and HIS UNATTACHED HEAD ROLLS OUT FOR NO REASON WHAT-SO-BLOODY-EVER! Sandra almost pukes, someone throws a coat over the head (boy, that’s gonna stain).
At the burial, she notices a blond woman half peering out from behind a tree like some kind of weird sexual pervert. She walks over and confronts her. Blond woman says they met the day before. ONLY SANDRA HASN’T. Yet. Possibly!

SOME OTHER DAY THAT’S BEFORE WEDNESDAY BUT AFTER THAT OTHER DAY I TALKED ABOUT
She wakes up. Jim is in the shower! He’s not dead again!
She goes to see the doctor who prescribed her the lithium. It’s whats-his-name-the-Russian-from-Armageddon. He blabs on a for a bit and tells her he’s never seen her before in his life.
Later in the day it starts to rain and Sandra tells her kids to help her get the washing in. One of the kids is too lazy to open the french doors and hurls herself through them cutting up her face on the smashed glass. AHA THAT’S HOW SHE GOT THE CUTS.
Jim meets her at the hospital and .. HANG ON A MOMENT. Jim is alive. Their daughter got all cut up. HEY! When Sandra told her kids that daddy has gone to play with the angels SHE DIDN’T HAVE ANY SCARS ON HER FACE! Didn’t anyone notice this when they read the script?

AUDIENCE STARTS LOSING THE WILL TO LIVE
This is where it gets really crazy. See, good films like “Memento” keep you guessing right up to the end. You’re there with the characters trying to figure out what’s going on. With this film it’s all I can do to stop myself from standing up shouting “Oh, what bullshit” before flouncing majestically from the cinema as I’m cheered by the rest of the audience for vocalizing their feelings.

Anyway. Sandra is now taken away by the men in white coats and sent packing to the looney bin where she’s held down and beaten repeatedly for allowing this travesty of a motion picture to be funded. The audience are miming every blow for wasting their money on this trite pile of crap.

This is never explained, by the way. She bounces around in time some more after this event but is NEVER AGAIN in the looney bin. It’s not justified anywhere in the rest of the film. The writer probably assumes most would have left the cinema by now and wouldn’t care.

Back to the film: Linda wakes up and Jim’s still alive. And quite honestly I can’t wait for him to die because I need to pee and I’m bored rigid. I’ve run out of Strawberry Starbursts and the lady next to me is eying up my pile of wrappers with disgust.

Sandra decides that the film is confusing everyone and makes a nice little chart of the week and completes all the events that have happened in an attempt to consolidate a plot which has totally crumbled into farce.

Apparently old Jim-boy was going to have an affair with the blond woman perving at the funeral. She’s his boss, we learn. It must be noted that he was only THINKING about it. They hadn’t actually done the horizontal mumbo at this point.
Sandra is now thinking “Hmm. If he did have the affair then perhaps it’s better that he died”. Her reasoning - and this was actually in the script “Well, imagine the pain it would have caused the girls!”.
Holy sweet Gingerbread-Jesus. Sandra Bullock’s character would rather have her daughters suffer the tragic pain of having their father BEHEADED IN A FATAL CAR ACCIDENT than learn that their daddy MAY have had an affair. What kind of sick bastard is she?

Anyway. She goes to see her Father. Not the man who helped conceive her, no - her priest. Father O’Stereotype. She explains that she needs help. I need to pee and get my money back. The lady next to me really needs to stop staring at my wrappers. Yes I really ate all of those - get over it.
Father O’Whatever has this book with all the pages he’s about to flick through marked with yellow post-it-notes. Why? Who cares. He goes on about people in the past having Premonitions - some were right, some were wrong. He injects some quasi-religious bullshit about “having to fight for what’s worth fighting for” whatever that’s supposed to mean. He says, and I quote this verbatim: “History is filled with unexplained phenomenon”, he then adds, helpfully “No one knows why”. BECAUSE THEY’RE UNEXPLAINED YOU IDIOT. Talk about over-egging the god-awful pudding.

Anyhoo. Sandra decides that allowing her husband to die really is a bit mean and decides to stop it from happening. She’s fighting for what is worth fighting for. Great. Just die already or I’m going to pee myself.

Jim is in his car. A rather sad looking Ford compact. He’s making a call. He gets his own answer-phone at home. He leaves a message. Aha! It’s the message that we hear at the beginning of the film - like anyone actually cares at this point. Linda is now behind him in her car. A huge 4×4 no-less. She probably has a bigger trailer than him too.
She gets him on the phone and tells him that she loves him. She gets him to pull over so they can “sort things out”. He does. She notices that he’s parked at the “220 Mile” marker which is where the accident happened.

Jesus. The audience didn’t need a premonition to see what’s going to happen next.

She looks scared. She tells Jim to turn the car around NOW DAMNIT. He does. He stalls it IN THE MIDDLE OF THE ROAD. A panicked Linda tells him TO MOVE IT DAMNIT. He can’t start the car!
In the distance we see a 400 mega-tonne truck coming!
Cut to Linda “Get out of the car!”
Cut to Jim attempting to remember how the door handle works.
Cut to the truck, still some way off.
Cut to Linda screaming.
Cut to Jim attempting to open the door still.
Cut to the truck. Still quite far away it has to be said.
Cut to Linda screaming.
Cut to camcorder style footage of their wedding day.
Cut to the truck.
Cut to Jim.
Cut to Linda.
Cut to montage elements from the film showing Jim as a good dad.
Cut to the truck still miles away.
Cut to…
You know, this is THE longest car accident I’ve ever witnessed.
Cut to Linda crying.
Cut to Jim still struggling with the door.
Cut to the truck which now starts to jack-knife for no good reason.
Cut to Linda screaming.
Cut to Jim frantically scrabbling at the door handle.
Seriously, just hit the damned car already.
It does. There’s an explosion. Bits of Jim fly in all directions. I made that last bit up.

Linda looks shocked and confused and hurt. She caused this! Oh the irony. Oh, we didn’t see that twist coming.

She wakes up. She’s pregnant with Jim’s child. As if that makes it all better. The end. Thank god.

Chilly Willy - Hot off the press

March 13, 2007 in Uncategorized by Matt Mecham | 5 comments

After the Action4MensHealth 5k race on Sunday I spoke with a reporter with the local paper on the phone who were covering the event as they were interested in the connection between me, my father-in-law and his surgeon who is also involved in the Action4MensHealth charity.

They asked a few questions, I said a few things and they took my race number as they had a photographer at the race taking snaps. They said that if it was going to be used, it’d be in Tuesday’s edition.

So we go into the local supermarket and grab a copy today and flip it open to be greeted with my ugly mug on page 11.

Here’s a scan of the article.

I like the fact that my name and photograph is now synonymous with having cold genitals.

Action4MensHealth - Race Report

March 12, 2007 in Uncategorized by Matt Mecham | 9 comments

Yesterday was race day.

First off, I want to thank everyone who donated money and those who wished me luck.

I’ve been running for a few years now but nothing really prepares you for your first race - even one that is designed to raise money for charity and raise awareness of men’s health issues over ultra-competitiveness.

As Debbie and I pulled into the car park I suddenly wished that I’ve trained harder, ran more miles on the road as opposed to sticking to a treadmill. I surveyed the competition warming up and picked out the lycra-clad beanpole thin experienced runners, the over-branded tracksuit posers and the recreational runners.

I pinned my race number (10) to my t-shirt after signing in and went for a quick jog to warm up. Thankfully it was a really clear and crisp day in Peterborough’s picturesque Ferry Meadows with very little wind.

It wasn’t long before we were asked to move to the start line. I was a little further away that most of the runners and ended up near the back of the field. After some brief instruction on the course that I didn’t really catch the starter pistol went and we started moving forward slowly.

It took a little while to really get going by the time the field thinned out and I finally managed to start my heart rate monitor’s lap timer which was on one wrist with my Nike+ equipped iPod on the other to measure my pace.

I had to slow myself down a few times as I was well ahead of the 5:00min/km pace that I’d set myself. I found myself running quite happily at around 4:30min/km but I didn’t want to get half way round and collapse.

In retrospect I would have done a lot more road running. I do 6km four times a week (two sessions being 7.5/10mph HIIT) on a treadmill but it’s not really the same as running outdoors. I would actually say that I found it much easier to run outside if only because you’re not staring at a wall trying not to think about the fact that you’re putting one foot in front of the other for a long and relatively painful duration.

I moved through the field quite quickly. I found myself passing a few of those over-branded tracksuit posers with beanie hats and iPod arm bands panting hard and struggling by the 2km mark.

Passing confused dog walkers was quite fun. “Chilly Willy?” seemed to be their only statement on surveying our race numbers. Thankfully they kept out of the way as I didn’t fancy tumbling over an errant Spaniel.

I had settled into a nice comfortable pace with my heart pounding away at a reasonable 175bpm and I felt I could do it all day which was probably because I was coming up to the 4km marker.

With the finish line in sight I picked up the pace and sprinted past it. I was handed my race medal and ‘goody bag’ which contained a bottle of water which I opened immediately.

I felt that I could have definitely done it a lot faster as I didn’t feel that I’d pushed myself hard enough even though I was happy to have finished in one piece and able to stand. The race times are going to be posted on the charity’s website in a few days but I glanced at the official’s clipboard and saw my time at 26 minutes which wasn’t too bad as it took a few minutes to hit my stride. The fastest runner on the day completed it in just over 16 minutes which is amazing. Apparently the pace cyclist had trouble keeping up with him.

I was greeted at the finish line by Debbie, her sister Jacqueline complete with her three boys and Jacqueline and Debbie’s dad, Ken, who came with his partner Yvonne. They had all given me fantastic support and encouragement before the race which really set me up and I can’t thank them enough.

I won a prize for raising the most money so thank you once again everyone who donated.

Life has a neat way of connecting disparate elements into a single whole. The charity, Action4Mens Health which organized the race is led by Janine Nethercliffe and Chris Dawson both of whom are consultant urologists at a local hospital. Chris Dawson was the surgeon that operated on Ken and Yvonne now works with him at the hospital.

The race was very well organized and the marshals did a great job of cheering on the runners. Hopefully the race will grow and we’ll see more and more runners attend.

They are holding another race later in the year and I’ll definitely do it again. I can’t describe what a buzz you get from completing a race no matter how slow or how short the distance. If you don’t already run, get a pair of decent running shoes and sign up for a 5k - you really won’t regret it.

A game the entire family can play…

March 7, 2007 in Uncategorized by Matt Mecham | 3 comments

Teutonic Catherine Tate look-alike gives birth to brother’s children. When asked about the legal and moral implications, she merely replied with “Am I brothered?”.

“This couple are not harming anyone. It is discrimination. And besides, we must not forget that every child is so valuable,” said Dr Wilhelm.

Dr. Wilhelm is obviously thinking about the medical research possibilities.

Read the full article on the BBC website.

Thanks to Tom for the link and the pun.

iCal Import/Export

February 20, 2007 in Uncategorized by Matt Mecham | 5 comments

Josh and I have been working on getting Dynamic and Nexus to a finished state and we both collaborated on a little but useful feature: “ical” import and export.

Internet Calendaring is a core spec in the internet communication framework and shouldn’t be confused with Apple’s ‘ical’. It’s an unusual format and quite difficult to parse neatly as opposed to XML.

We thought it would be useful to allow the IP.Dynamic calendar to import ical files and export its own (as well as RSS, etc). Below is a screen shot of my test iCal and the IP.Dynamic calendar after an import.

Catherine Tate’s “Super” Gran

January 30, 2007 in Uncategorized by Matt Mecham | 9 comments

I’ve seen a few Catherine Tate sketches over the past few years but I’ve never really seen an entire episode.

For Christmas, Debbie thoughtfully gave me the series 1 and series 2 box-set. Some of it is a little hit and miss but overall it’s surprisingly deep and very funny. Catherine seems to go for more classic character and situation based comedy in 8 minute scenes as opposed to the Little Britain style of outrageous characters in two minute sketches. She really fleshes out her characters and she virtually disappears into the role.

One of my favourite creations is her pitch-perfect characterization of an old gran. A cantankerous foul-mouthed bully of an old lady who enjoys a good rant at the expense of her grandson.

Series 1 concludes with one of the best comedy sketches I’ve seen in a long time which has fortunately been captured on YouTube.

If the “f” word offends, then I wouldn’t click here to watch the clip.

This month in review

January 23, 2007 in Uncategorized by Matt Mecham | 8 comments

It’s been one heck of a month and I haven’t found the time to blog regularly, so here’s a round-up of 2007 so far.

Work

IP.Dynamic and IP.Nexus are in extremely heavy development. We’re entering a new phase of development that will see some nice tweaks to both applications. Although we’ve not mentioned these applications publicly since mid-December I can promise that both Josh and I have been working daily on these products. An ‘official’ update will be made soon enough.

Remco (W1lz0r or Wizzy to his friends) is leading the way with some nice SQL engine changes to reduce the number of ‘cache’ files for each SQL driver and adding in transaction support for engines that support it. He’s also been working hard on a PostGreSQL driver. This is in limited testing at the moment but it seems to be performing well.

Personal

We have a brand new nephew! Callum was born on 18th January at 4:07am weighing in at 7lb 5oz. He’s absolutely gorgeous and very tiny. I must admit that I’m getting a little broody and at 30, I’m not getting any younger.

Other

If you live in the UK then you can’t fail to have heard about the Jade Goody / Celebrity Big Brother rumpus.

If you don’t live in the UK then allow me to explain in under 200 words.

Celebrity Big Brother is an annual event where several so-called “z-list” celebrities are invited to share the ignominy of desperately clutching onto fame by living out their boring existences in-front of an indifferent nation.
This year ex-Big Brother ’star’ Jade Goody (who has made a multi-million pound fortune from her appearance five years ago) was put back into the house. She’s a bit of a thick-o and made a right old pigs ear of it by picking fights with a female Indian Bollywood star (who the UK had never heard of). The UK has now been swept up in a storm of controversy with racist overtones while Channel 4 continues to cash in on the increasing viewing figures.

Frankly I fail to be moved. It’s supposed to be reality television and this nation should not be shocked to learn that the reality is that there are idiotic bigots who allow their lack of education to colour their views on different cultures.

For what it’s worth, I don’t think Jade was being racist. She was just being a bitch. Unfortunately, her vocabulary doesn’t extend to witty one-liners and amusing repartee so she fell back to the trusty cliches and put downs of in-bred stereotyping.

I do find it ironic that her perfume range ‘Shh…’ seems to be a self fulfilling prophecy.

Facebook does not suck

December 19, 2006 in Uncategorized by Matt Mecham | 8 comments

So, after posting my “MySpace” experiences (it sucks) I was inundated by literally three people telling me to join FaceBook.

I’m easily led, so I joined and it does not suck! It’s got a nice clean interface with plenty of javascript / ajax trickery to make things easier and it actually encourages you to upload ‘amusing’ photos and write ‘hilarious’ things in your notes.

I’ve amused myself by joining groups and uploading pictures of my lunch. Great fun!

Look, this is me.

$580m? They saw you coming, mate.

December 15, 2006 in Uncategorized by Matt Mecham | 17 comments

I finally decided to see what all the MySpace buzz was about. Everyone and their dog has one and much like the unpopular kid at school, I didn’t want to be left out.

I excitedly skipped along to MySpace and tried to register an account. This was the first major stumbling block.

I clicked the ‘SignUp’ link (MySpace is way too cool for proper punctuation or spaces, apparently) and entered my details with increasing lasciviousness. Shaking with anticipation, I submitted the form and waitied.

“Sorry, an unexpected error occured”.

Attempt number two faired a little better. I got as far as the “Upload your photo!” screen when it quit with another unexpected error.

Never one to be undone with something as trivial as a fatal error, I tried again. I got as far as a screen asking for more profile information when I got another unexpected error. This was quite ironic as I fully expected it now.

I thought that by now, at least one of my three attempts would have created an account that I could log into and attempt to reconstruct. I navigated back to the home page and tried my log in details into the “Member Login” box. I clicked “LOGIN”. I was whisked to a page that said “YOU HAVE TO BE LOGGED IN TO DO THAT!”. I thought that was the whole point of logging in.

Meanwhile, I received three emails from MySpace asking me to validate my account before I could log in. I clicked the validation link.

“Sorry, an unexpected error occured”.

At this point I gave up and resigned myself to the fact that I could not achieve something that thousands of Goth loving 12 year olds had done: got a MySpace.

The next day began with optimism. I thought I try and log in again. With much surprise, I was able to log in. I took a quick sip of my green tea and started customizing my bad-ass MySpace.

I started with my main photo. I dug old my trusty “Hair Gel Shoegaze Pose” photo that I took when testing the camera on my new k800i phone.

“Sorry an unexpected error occured”.

I took no solace that “The development team have received an email” because, quite frankly, the frequency that these ‘unexpected’ errors occur must send tidal waves of email to /dev/null.

A few more attempts and the photo was uploaded. Flushed with success, I decided to upload a few more photos to my gallery. Amused with one photo, I thought I’d leave a witty comment.

“Sorry, only friends can comment on photos”.

But.. it’s me. I’m logged in and everything. All right. I know. I’ll foil this system by befriending myself.

“Sorry, you cannot add yourself to your friends list”.

Right. Of course.

To cheer myself up, I thought I’d add my school details. After spending most of my school life being treated by my peers as something one trod in after a walk in a park I thought it might be nice to gloat that I had a MySpace AND a Blog. After filling in the details, I went back to my homepage and noticed that the school details had disappeared. I went back and added it three times more until it ’stuck’.

It was about then that I’d had enough. I gave out the MySpace link to everyone on AIM even if they politely refused to click it. Most informed me that they got an error page or were told that I’d deleted my MySpace account.

Feel free to try it yourself. Please, leave a comment and add me to your friends list. I doubt I’ll be able to reciprocate because MySpace sucks.

$580 million? You got ripped off Rupert.

[IPD] Content Versioning

December 4, 2006 in Uncategorized by Matt Mecham | 11 comments

We’re on a roll!

We’re a feature closer to that first public beta. This time, I get to cross “Content Versioning” off the list.

Content Versioning in IP.Dynamic is a fairly simplistic system so don’t expect multi-locking SVN merge facilities. It simply saves a snapshot of an item’s content just before it’s updated. I’ve written it as a totally modular system that allows developers to just drop a module and a configuration file into a folder (as well as add the required hooks in the code) to add versioning to their own code. As part of the process, I also rewrote a little bit of the ’show preview’ and ’show differences’ code to make it modular, too.

The movie below shows the interface as it is thus far. I anticipate it changing slightly before I’m fully satisfied. The movie will take you through a ‘normal’ work procedure. A content page is edited, the versioning repository checked to show the entry along with a preview of the stored revision and a differences output. The page is then deleted and restored from the versioning repository.

Enough babble, here’s the 9.6mb Quicktime Movie.

[IPD] Then and Now

November 30, 2006 in Uncategorized by Matt Mecham | 13 comments

IP.Dynamic has been in “on-off” development for a long time. Some of the files I’m working on proudly display their creation date as “Wednesday 28th January 2004″. It seems impossible that some IP.Dynamic files are almost three years old.

Since that time, IP.Dynamic has been through a lot of changes both cosmetically and in structure both to keep up with the ever changing web landscape and changes in PHP, MySQL, etc.

IP.Dynamic has been in development for so long, I’ve changed Macs since I began. I retired my old G4 iLamp about a year ago and never got round to transferring a lot of my old files.
I have a folder on my desktop for the month and I throw all my miscellaneous files into that folder. At the end of the month I throw it into a folder called “Monthlies” for storage. I always intended to archive off the monthly folders onto DVD but never got around to it. The result is three years of monthly folders totaling around 31gig. Yesterday I dug the old Mac out to copy the files before formatting the drive so I can sell the old Mac. Among those files are some early IP.Dynamic screenshots which I though would be fun to share - especially when comparing them to current screenshots.

So, below are two images. IP.Dynamic “then” and “now. Click the thumbnails for a larger image.

IPD Then

IPD Now

Edit: Here’s a concept sketch drawn up after a few weeks of research on how IP.Dynamic should work. I think the end result is actually pretty close to this. This was done late 2003.

IPD Now

Dear Diary

November 9, 2006 in Uncategorized by Matt Mecham | 14 comments

I can never really get the hang of organizational software.

I’ve tried loads of different products, both web-based and desktop based and none of them have the intimate satisfaction of scribbling through a “to-do” item with a pen.

For example, this is a post-it note that has been stuck to my desk for about the last month or so and contains an informal list of things that needed to be done before RC 1. It’s also served as an improtu mug coaster too which proves the multitasking efficiency of paper.

Now that IPB is back off to have a final security audit (and thanks to Tom for his work in identifying a few areas (ahem) that needed improvement) I find myself in a curious position of having nothing urgent to do for the first time in about three months.

IP.Converge has been in limited beta testing for a few months and is coming together nicely. I’ve completed the first draft of the developer’s documentation and recently overhauled the XML-RPC method names to fall inline with the standard naming convention. I expect that we’ll be making the first public beta release very soon.

IP.Dynamic is now about 90% complete and I have some serious time to devote to it again rather than a few hours here and there. Once the task manager / calendar features have been completed there really isn’t much more to do which is a nice position to be in as it feels like it’s been in development since the invention of electricity.

There’s also a lot of activity behind-the-scenes with Rikki working on the websites and the team putting together the public and developer’s documentation for IPB. We really want to get IPB 2.2.0 off to a good solid start by having all the ancillary components ready to go.

Is it November already?

I saw the end of the world and it was beautiful

October 24, 2006 in Uncategorized by Matt Mecham | 9 comments

As another month draws to a close, I draw a line through the things I’ve managed to complete, scribble over the ones I’ve decided not to complete and start a new post-it note with the things I didn’t manage to complete.

Thankfully, the new post-it note only contains a few items.

I’ve spent the last week or so working on stuff behind-the-scenes. This involved writing a download manager module for our CRM, IPS.Nexus and working on a perl script to actually build our product zips.

I’m quite pleased with the build script. It works via command line and has product specific modules for product specific build options. One can optionally encode the files with either Zend or IonCube before it creates the zip. It simply takes the latest revision from the product’s SVN trunk (or optionally from a branch) and cleans it up, performs some variable replacements (version numbers, etc) and then zips it up.

Now that’s complete (and will be used for IPB 2.2.0 RC 2) I’m back cleaning up IP.Converge ready for it’s first public outing. I’m really excited about this as it’s a new direction for IPS and will really open up some neat social networks between websites. Once that’s been released, I’ll complete the developer documentation and have that available for download before the final version is released.

Brandon continues to do an excellent job on IPB 2.2.0 and is virtually done cleaning out the IPB bug tracker ready for the RC 2 release.

Outside of work, I’ve been to the cinema a few times: “Little Miss Sunshine” (Excellent). “Texas Chainsaw Massacre: The Beginning” (Pointless); I’ve bought a few CDs: “In a Safe Place” and “Into the Blue Again” both by The Album Leaf and I finished reading Peter James’ “Dead Simple” (excellent)

Post Beta Release Crazy Time

October 9, 2006 in Uncategorized by Matt Mecham | 6 comments

I can’t believe it’s almost a month since my last blog entry.

It’s been, as the title suggests, post beta release crazy which usually means that I’m running around trying to fix stuff as quickly as possible. Added to the mix, we’ve been under DDoS attack for the past week or so and the only reason the server is still up is thanks to Lindy’s magic powers. He did explain to me what he did but, like most server related things, it went sailing over my head.

Progress on IPB 2.2.0 is going extremely well. The bugs reports are coming in and they’re relatively minor things apart from a few non UTF-8 character set / character encoding issues when using AJAX and IE in the same sentence.

I have a handful of potential blog entries I want to get out of my system, including a few film reviews (World Trade Center: Excellent and Children Of Men: Mind bogglingly good) as well as some commentry on some new web developments (Google Code Search, that’s you).

HTTP Only cookies without PHP 5.2

September 12, 2006 in Uncategorized by Matt Mecham | 11 comments

For a while, Microsoft have had a flag for cookies called ‘httponly’. This doesn’t sound particularly exciting, but it is a vital step forward for web application security.

This flag tells Internet Explorer to make this cookie ‘invisible’ to javascript (and other scripting languages) which means that an XSS attack will no longer be able to steal your sensitive cookies.

The problem is that ‘http only’ support has only just been added into PHP 5.2. This makes this feature unavailable to most webservers.

However, there appears to be a way to force this flag to be written regardless of your PHP version by simply adding “; HttpOnly” at the end of the domain name when setting the cookie. PHP’s “setcookie” function merely formats the data into a “set-cookie” header. Fortunately, PHP doesn’t appear to filter out or escape the semi-colon so it’s added to the end of the “set-cookie” request.

if ( PHP_VERSION < 5.2 )
{
  @setcookie( $name, $value, $expires, $path, $domain. '; HttpOnly' );
}
else
{
  @setcookie( $name, $value, $expires, $path, $domain, NULL, TRUE );
}

I’ve tested this out and it appears to work fine. IE7 shows the “sensitive” cookie data in the document.cookie string without adding the flag. Adding the flag onto the domain string causes the sensitive cookies to disappear from the document.cookie string.

Firefox ignores it and sets cookies as does Safari and Opera. I’ll do some more testing and report in on my findings. I also have a Firefox friendly version to stop access to the document.cookie which I’ll post up tomorrow.

UPDATE 14th September
I’ve downloaded the source to PHP 5 to make confirm that this ‘hack’ will work across different platforms. The source code confirms that no cleaning takes place on the domain name attribute (or indeed any other than the cookie name and value).

These snippets are from the head.c document, function php_set_cookie:

if (name && strpbrk(name, "=,; \t\r\n\013\014") != NULL) { /* man isspace for \013 and \014 */
zend_error( E_WARNING, "Cookie names can not contain any of the folllowing '=,; \t\r\n\013\014' (%s)", name );
return FAILURE;
}

if (!url_encode && value && strpbrk(value, ",; \t\r\n\013\014") != NULL) { /* man isspace for \013 and \014 */
zend_error( E_WARNING, "Cookie values can not contain any of the folllowing ',; \t\r\n\013\014' (%s)", value );
return FAILURE;
}

That shows the check for the key and value:


if (path && path_len > 0) {
strcat(cookie, "; path=");
strcat(cookie, path);
}
if (domain && domain_len > 0) {
strcat(cookie, "; domain=");
strcat(cookie, domain);
}

That shows that no cleaning takes place and this ‘hack’ will execute perfectly.

IPB 2.2 Update

September 11, 2006 in Uncategorized by Matt Mecham | 20 comments

It’s been a while since I’ve talked about Invision Power Board 2.2 so I figured it was time for an update.

First off, there’s a fairly sizeable new feature that we’re really pleased with. I’m not going to say what it is or post cool screen-shots because we want to keep this underwraps until we’re ready for the first public beta. We don’t mind sharing our forthcoming features but we don’t want to see this one appearing anywhere else first as I’m fairly confident that our competition will adopt this new feature for their own products.

IPB is currently undergoing a security audit to ensure that our new security features make the grade and the base code is solid. It’s progressing well and although no specific vulnerabilities have been discovered we’ve had some good advise on ‘hardening’ the code in several specific areas which we’ve taken onboard and tweaked the code to suit. The new ‘parse_incoming’ function will greatly reduce the threat of any file traversal issues and stop any possible preg_replace PHP code injections (especially when using preg_replace’s “eval” mode).

Finally, there have been some template tweaks here and there to improve the layout and functionality. There’s nothing too dramatic and as usual we’ll be providing a diff report for upgraders so they can manually update their custom skins if they wish.

Although we don’t have a firm estimate for our first public beta, it shouldn’t be *that* far off…

Breaking News: PHP Developer Cuts Nose Off

July 28, 2006 in Uncategorized by Matt Mecham | 22 comments

..to spite his face.

Read this (quoted below)

<_sniper_> all other members of the UN security council
wanted to condemn Israel for attacking the UN post but USA (freedom and
democracy) vetoed it….Israel says the resolution was fair.
<_sniper_> hell yeah..
<_sniper_> NUKE ISRAEL!
…..
<_sniper_> FYI: I don’t care at all what anybody thinks about
me. I’m going to be openly anti-Israel from now on. This was the last
straw for me. Fuck you jews.
<_sniper_> I will also quit this
project. As long as it’s backed by some Israel company, I don’t want to
have anything to do with it.
<_sniper_> Good bye.
<– _sniper_ (~jani@a88-112-115-63.elisa-laajakaista.fi) has left #php.pecl

Then read this

He might be a brilliant coder, but he’s shown himself to be quite the idiot. It’s not like Zend killed anyone.

Quite what this means for the PHP project is anyone’s guess but I think I’ll buy that Ruby book now.

Here’s an artist’s impression of the Zend developer directory page for Jani today:


(Click to enlarge)

Gabbly. Is Cool

July 21, 2006 in Uncategorized by Matt Mecham | 6 comments

There’s a new website chat service that’s gaining momentum because it’s so darn cool.

It’s called Gabbly and it allows you to have a chat room floating above your website without the need to edit templates (although they do offer that as an option).

All you do is simply append your URL after the Gabbly URL. So,  http://gabbly.com/blog.mattmecham.com will show a little floating chat room on this blog.

One does wonder how long the project can keep going without any sustainable model. The chat must take up server resources and the servers must be paid out of someone’s pocket.

I get the impression that it might just be another piece of Google bait waiting to be snapped up by the highest bidder.

Whatever the future of Gabbly, it’s certainly an impressive project and shows that Javascript is very much back en vogue.

Macbook XP

June 19, 2006 in Uncategorized by Matt Mecham | 17 comments

Despite waiting a week, I couldn’t convince myself not to get a new MacBook (1.83ghz, 1g ram) - so I put through the order last week and just before the weekend a knock at the door confirmed its delivery.

Now, despite being an ardent and self confessed MacTard I didn’t just buy this on a whim and neither did I buy it just because it’s something new with an apple logo on it. It is very shiny, however.

For the past year or so I’ve had a rather ugly PC laptop (or black brick as I fondly call it). It’s an ageing Compaq running Windows 2000 which I use to debug IE CSS and JS in my code. The problem with the said brick is that it only runs Win2000 and isn’t capable of running XP at a decent rate and IE7 Beta only running on XP causes a problem.

I needed a new laptop that can run XP. Enter BootCamp, Apple’s beta software to enable new Intel equipped Macs to boot into XP natively.

Colour me interested.

So, after purchasing a new copy of XP Home edition (with SP 2, no less) I set about installing XP. The great thing about BootCamp is that Apple does all the hardwork  for you. It creates the partition for the windows operating system without the need to reformat the hard drive and it burns a CD with all the required drivers for you (such as video, keyboard, bluetooth, etc).

It really can’t be understated just how smoothly the process went. The most difficult “bits” were the XP installation (scary blue screens, lots of waiting between clicking, etc). After around an hour or so the MacBook booted into XP and started installing the drivers.

It’s quite a sight seeing a Mac running XP natively. I’ve tried emulation before and it’s too slow and too cumbersome to be really useful on a day to day basis. BootCamp enables me to use my MacBook as a PC during the day for work and as a Mac in the evenings.

Naturally, the MacBook isn’t designed as a gaming machine, but most games seem to run just fine on it. Doom 3 runs nicely with a good framerate and detail. XP runs very quickly and that shouldn’t really be a surpise as Windows shows the MacBook as a 1.83ghz Intel machine with 1gig ram. In any case, the MacBook’s airport card works just fine and IE is quick and responsive.

There are a few quirks as to be expected with beta software but none of them are deal breakers. The built in iSight camera is completely ignored by Windows and plugging in headphones or other speakers doesn’t remove the output from the built in speakers. Waking from sleep doesn’t always remember your brightness settings and you need to use [ control ] + [ shift ] + F1 / F2 to change the screen brightness (for a while I figured the brightness keys didn’t work) and I seem unable to wake XP from sleeping after turning it onto standby (although closing the lid puts XP to sleep just fine and opening the lid wakes XP up).

I can’t decide which is more amazing: the fact that XP runs so well on “Mac” hardware or that Apple have made the process so easy and almost flawless. What I do know is that with BootCamp rumoured to appear in OS 10.5 (codename: Leopard), it’s clear that a Mac certainly can change its spots.


[IPD] Well, that took a while…

May 31, 2006 in Uncategorized by Matt Mecham | 14 comments

IP.Dynamic rumbles on. It’s changed a lot since the first version was used on our own website. It has an installer and everything now - and it’s not red and gray anymore.

I’ve just released alpha 4 to the beta testers which includes a few important items. The first is a search engine for the articles manager. I’ve yet to tidy this up and I want to tweak it to make it more efficient - but it does a good job as-is. Naturally, I’m using the full text capabilities of MySQL although I do want to centralize all the searchable content into one table wit