« May 2008 | Main | July 2008 »

June 27, 2008

The Coder's Tale, part 3

continued from part 1 and part 2.

Scene 5

Cascadine:
What trouble lurked
kept head unrear’d.

Mahobilus:
For a time, at least.

Gates:
What news has come?

Ballmer:
The wind is a-whisper.
Our day has run its course.
This new man, Andreessen,
has been your heir acclaimed.

Gates:
What folly is this?
I have tided this new universe,
“Information at your Fingertips” yclept.
Here are my fingertips, and there, just beyond
lies the information.

Ballmer:
But your means of transport
were off the mark.
500 channels have of a sudden morph’d
into websites by the millions.
Will our vessel be becalmed,
left behind by rising tide?
This story is sung
from broadsheet to storehouse.

Gates:
Bah! What fools
occupy the fourth estate.
Their words
have no deeds to fortify them.
Talk of transport—what of it!
‘Tis but the frosting atop the cake,
the upmost tip of the iceberg
above the ice-blue waters.
Have they not assessed our ceaseless labor?
Our work has laid the mighty foundation
upon which this small cottage has been built.
My vision, five years previous,
drove the silicon dreams of thousands.
Display, sound, network—all have come to pass,
and at the proper time.
As if by magic—to those who do not comprehend,
who see in the wizard’s sleight
the larking of the infinite.
Our constructions also, tho’ their names be mystic:
TCP/IP, Winsock, DHCP
create the canvas that supports
this latest doodling.
Our slight pause at the limit
shall be a matter quickly set aright.

Silverberg:
We must take the unknown leap.
The future shall not echo the past.
A train passes, and we must leap aboard
with open eyes and nimble feet.

Allchin:
Fie, I say.
The conveyance of our past
has fuel aplenty to burn.
To abandon it would be folly.

Silverberg:
Your wizened bleating
reeks of senescence.
Awake, and face the new day
that all around us lightens.

Allchin:
Have our enemies made camp
within our own fortress?
Would you respond to news of storming Picts
by dropping guns and hoisting swords?

Silverberg:
This grind-nosed popinjay
would clothe us all in doublets and breeches.

Allchin:
This slipshod lackadaise
will condemn us all to Marshalsea.

Gates:
I beg of you, cease this senseless bibble-babble.
[aside]
Here is a conundrum to furrow Jedidiah’s brow!
Two paths diverge ahead,
no signpost marks the way.
This change may come,
but when? That is the heavy weight.
Yet perhaps by clever artifice
I may arrange to place my winnings
on both sides of the line.

Scene 6

Mahobilus:
More battles were won
and foes put to rest.

Cascadine:
Until one, whose looming shadow,
dwarfed all others yet seen.

Gates:
Woe betide the Geekish race!
What has befallen us?
Our leaders have become
the agent of our enemies.
I implore the fates,
awaken me from this sleep,
that has curved to lurid dread.
My life’s work ripp’d asunder
on grounds whose gloom
would thwart the very sun.
My words dissected
and tarred as fool’s palaver.
Yet each step, at backwards glance,
appeared on bedrock anchor’d.
The rules, it seems,
were scrivened in wave-tossed sand.
No Circe lent her eyes
to guide us through this narrow channel.
And yet, I hear tidings.
A change of the guard may yet preserve us.
Perhaps such outside provocation
must spur an inner reflection.

Scene 7

Cascadine:
The change was done.

Mahobilus:
The lamp unlit,
The road undertaken.

Gates:
Now I quit this place,
and ponder newer journeys to receive.
The world begs my name,
and I must heed her pleading.
The midmark of my count
lies perhaps astern, yet
my talents, meager or otherwise,
have been with full conviction deployed.
I summited the tall mountain, and yet I espy
a taller one beyond.
And beyond that another,
reaching to the firmament.
I shall miss them all,
strivers and swotsmen,
dreamers and charlatans,
leaders and the led.
No man can say
they would have unearth’d a clearer chart
to steer their rudder amidst these waters.
I have gathered and I have spent,
and when the time of payment draws near,
I shall present my reckoning
with proud-set jaw
and level stare.
That is all a man has cause to hope for.

Mahobilus:
His stated aim:
“A computer on every desk,
and in every home,
all running Microsoft software”,
though vivid and penn’d to compel,
must appear, to cynical spirit,
As youth’s callow bombast.
And yet, upright against the measure
of his high-heaped deeds,
this judgment we must discard.
Feeble understatement would be,
A phrase found more appropriate.
He has changed the world,
that is all that need be said.

Cascadine:
Time will make history of all,
yet for him there is no doubt.
When the book of mankind is written,
his name will be there inscribed
in letters ten feet tall.

the end.

Posted by AdamBa at 08:54 PM | Comments (0)

June 26, 2008

The Coder's Tale, part 2

continued from part 1.

Scene 3

Cascadine:
The predicted
came to pass.

Mahobilus:
Yet behind the silver lining
a cloud emerged.

Gates:
Our present site
strains at the seams.
We must have compass to reach full flower
or wither on the vine.

Realtor:
Behold this spot!
Here shall be the garden
of your unlim’ed growth.
Sherwood Forest is the name.

Gates:
Lo, this bosky vista
that prevents my eyes,
shall indeed be the site.
The haverned woods,
furrowed and weeping,
will, by dint of man and machine,
lie down before us.
Here, where the youth of Interlake once idled,
is space and space again
to exceed my grandest dreams.
The eye of my mind can swiftly discern,
here a lake, there a table
by fulsome repast bedripped.
Four, then two—a mighty bastion
to shame old Coleridge’s opium-laced dream.
And fight, while strength remains,
To keep approaching Porlock at bay.

Scene 4

Mahobilus:
Woods fled the advancing tide,
til very nature begged for mercy.

Cascadine:
Four years hence,
a new vexation
over the horizon
galloped as if pursued by screaming hounds.

Gates:
What news of this OS/2?

Maritz:
Our plans proceed apace.
The work is toilsome, but we will
vanquish all obstacles upon us.

Gates:
The puzzle of it all,
lies in the unseen scope.
From my vantage it would seem,
I could myself dispatch this task,
‘tween Friday’s dusk and Monday’s dawn.

Maritz:
‘Pon rep, do not by hubris be so veiled.
Unseen rocks adorn these depths.
Printing, alone, befouls the finest minds.
As well, it must be said,
an unloved yoke surrounds our necks.
The ill-fitting child of our accord,
that ten years nigh ignited all,
now grates as kedge fix’d in our skin,
dragging us towards murk unseen.

Gates:
Indeed, with hindsight’s gaze,
our plan, when stacked against all that graced my ears,
may well sit furthest from the top.
Furthermore, word arrives
that soon-birthed Windows 3.0
has stolen the roving heart
of our fickle-brained customers.

Maritz:
This upstart is fair of face
but weak of spine.
In battle, wouldst thou wish to swing
the mightiest axe,
forged in white-hot fire,
or the smallest twig,
plucked from passing tree?

Gates:
Of all my counselors, your wisdom has leastly led me wrong.
Fain would I hew to your words.
And yet at end of day,
perception and reality become one,
like twilight into nighttime.

Maritz:
If this altering comes to pass
Many a folk may make claim
of foul trick their way dealt.
Our teams labor on our current plan,
and others outside labor more,
Yet there are those within
that heed our new direction
only as a tree heeds a butterfly.
This change, if made,
would validate their disregard,
and vault them high.
This unmerited o’erleap, though forged in disarray,
would appear, to those outside our walls,
as plotting most fiendish.

Gates:
This chance we must take.
Chance, indeed, may not be the word.
Our company grows strong.
Should we not
advantage ourselves of this fact?
A barricade is spoken of,
yet flitting journey here to there
proceeds with toe unstubbed.
The bounds we must observe
are mist above the morning dew.
Such things are left inchoate
until Spirit and Majesty have their say.

Maritz:
Something of this affair troubles me,
But I cannot fairly balance
My sollaged misgivings
against your brimless words.
Forsooth, ‘tis often better-advised
to ask forgiveness in autumn,
than to seek permission in springtime.

Gates:
Our bear-claws shall remain in sheath.
Despite, a subtle rearranging
must perforce occur.
Our change will quake the burgeoning bazaar,
like Cocos grinding Nazca.
My head can lie no easier,
so, ably girded, forth we go.

to be continued...

Posted by AdamBa at 08:44 PM | Comments (0)

June 25, 2008

The Coder's Tale, part 1

Scene 1

Cascadine:
Approach the page.

Mahobilus:
A story lies within.

Gates:
Friend Allen, your face is agasp
as one who has seen
the Colossus once again astride the harbor.
What inspired sight
lays claim upon your mind?

Allen:
Behold this magazine.
Upon the cover set
an image whose proofs
affect my lop-eyed gaze.
Here is the moss that will nurture
the seed our youthful endeavors cast to earth.

Gates:
So powerful a tonic
I must imbibe posthaste.

Allen:
It is yours to marvel at.
“Popular Mechanics” is the name.

Gates:
Before me I witness a machine,
“Altair 8800” upon its brow inscribed.
An ill-favored assemblage
of lights and switches.
To those whose vision fails it must
a poor device appear.
And yet there lurks within
a larger hope:
This simple mechanism mayhap will be
the engine of our ascent.

Allen:
No less than the truth escapes your lips.
This connivance will be the stone,
cast upon the water of our lives,
from which many ripples shall flow.

Gates:
I am spurred to action.
Once I sought my namesake's ambition,
yet now I must turn away.
Indeed there may be others whose thoughts
are fuelled by the same fire.

Allen:
It appears that our time in this brick-lined sanctuary
may fall short of yesterday’s plans.

Gates:
Ay, time is of the essence.
We must depart anon.
My fervid brain
could scarce be else appeased.

Scene 2

Mahobilus:
The fates smiled.
It was done,
and done quickly.

Cascadine:
Five years hence,
A visitor’s descent was remark’d.

Visitor:
We bid you well, Gates.
We have, to gratify your ears,
a most urgent application.
We have fashioned
a new apparatus,
a witch’s brew of parts and pieces,
abruptly juxtaposed.
To unite these feuding signs,
we must provide a structure
such as has not been seen before.

Gates:
Cert your tale has caused my ears to prick.
Yet a man named Kildall,
who labors South of here,
will be best equipped
to dorm your need.
Our unvoiced pact was made,
we in our row, and he in his.

Visitor:
We have of his time,
already requested our share.
Yet he was not of a mind to answer.
Can you provide what we desire?

Gates:
I must consider a moment.
[to Ballmer]
It seems fate has winked her age-worn eye
in this regard.

Ballmer [to Gates]:
You dream of arrows to pierce the sky,
but our quiver is bare.
How may we achieve,
the lore of which they speak?

Gates [to Ballmer]:
This cavil will be dismayed in short.
Close at hand is the place
where such can be obtained.

Ballmer [to Gates]:
Very well. But then I must inquire,
What profit will this undertaking bring?
This is but one contrivance among dozens.
If we mere equal our corresponding efforts,
the loss will be a trifle.

Gates [to Ballmer]:
No.
This is a tree that will support
many branches.
Indeed, all else will be built
upon its sturdy boughs.
We approach the first step
on a lengthy journey.
We will illume the way,
but not carry the burden.
Our work must be to guide
others who will slake the need.
Their ox-work will grow this orrery
by ten, and ten, and ten again.
Hear now the wisdom of the world,
“Developer, developers, developers.”
I say it three times, all the better
to lodge in your addled pate.

Ballmer [to Gates]:
Understood. I shall adopt this newfound reason.
Its light will guide my footsteps.
Speak, then, that the die be cast.

Gates:
Very well, ye who journeyed from afar,
it seems our paths will be for the moment intertwined.
We will supply what you demand.

to be continued...

Posted by AdamBa at 11:03 PM | Comments (0)

June 21, 2008

Soft-fluenza

I have been glancing through the book Affluenza, after my son got it from the library for a school report. The book is somewhat repetitive and you can probably get the gist of it by reading the blurb on amazon, or (if you are on Microsoft corpnet and can read it for free) the getAbstract summary, but it makes some good points.

So the book is ranting about people buying too much stuff and how this is ruining everything, and it occurred to me that Microsoft's corporate values seem to be very much in line with the forces that Affluenza is railing against. We encourage people to buy new computers to take advantage of new features, to replace their cell phones with Windows Mobile devices, to buy a new car with our software, etc. And we are now moving in the direction of targeting ads at people, in other words basing a business on telling people "here is some new crap that you didn't even know you needed."

Now, I'm not saying we're any worse than any other consumer company that depends on people buying new stuff to stay in business. There are certainly areas where we try to be eco-conscious: on campus they are replacing the polystyrene cups and utensils and compostable ones. But it seems the progressive view would be to step back and work to sell people software that does NOT require new machines to run it. Given that most of our projects are just bits that produce no carbon footprint, it would be nice to avoid having to drag so much silicon and plastic along with them.

Posted by AdamBa at 04:54 PM | Comments (2)

June 19, 2008

CNN.Shirt?

Is this serious? On the CNN home page today there was a headline "Teen says no to Princeton, Yale, others". Of course with a juicy headline like that (saying no to Princeton???) I wanted to check it out, but super-annoyingly the link was to a video (the link is here if you want to watch it) (sorry, couldn't resist, the real link is here). I hate video-only links because I really don't want to watch a 60-second video about it (complete with commercial), I just want to scan the article in about 10 seconds. Anyway I then noticed another little icon next to the link that looked a little like a t-shirt, so I clicked on it and I got to...WTF? Then you click on the FAQ and the first question is "What are the minimum computer specifications required". But as far as I can tell, it's for real.

Posted by AdamBa at 08:49 AM | Comments (2)

June 18, 2008

Mariners Foibles

In Seattle Mariners news, they just filed their GM, Bill Bavasi, for spending $100+ million payroll on a team that is 22 games below .500.

I think the problem goes beyond the GM. The real problem is the ownership group, which is firmly committed to a strategy of developing young players and then trading them for older players. In other words, trade good, cheap players for bad, expensive players. This strategy is doomed to failure and no amount of firing of GMs, managers, and hitting coaches will fix it.

I went to the Mariners-Marlins game last night. I looked at the two rosters and grouped them into people born in 1975 or earlier, between 1976 and 1980, and 1981 or later. In other words over the hill, in their prime, or improving. The Marlins have 4 over the hill players, 11 in their prime, and 13 improving. The Mariners have 9 over the hill players, 7 in their prime, and 8 improving. No surprise that the Marlins are in a pennant race with a $25 million payroll and the Mariners are terrible.

I did get to see one of the Mariners' young players, Felix Hernandez, pitch and at times he was spectacular. In the fourth inning he struck out three players on nine pitchers, which I read somewhere was only the 13th time in American League history that had happened. In fact if you look at this pitch-by-pitch account of the game, you will see that he struck out six people in a row on 20 pitchers, and in the second through fifth inning he only threw four balls (and was one home run short of perfection). Then things got a bit dicey, but we did hang on to win the game.

I actually have a pet theory that the Mariners are bad because we have bad...sportswriters. The local sportswriters seem to be a very old-school bunch who love over-the-hill power hitters and therefore inspire the Mariners to keep signing him. They ran Freddy Garcia and Bob Melvin out of town on a rail under dubious pretexts, and continue to think that Lou Piniella was a good manager. When Asdrubal Cabrera did his unassisted triple play, they were moaning about how could we have let this guy go. Because of one play!! (The Indians sent Cabrera down to Triple A four weeks later for producing an unassisted lousy batting average.) With that nonsense going on in the background, how can any team hope to do well?

Posted by AdamBa at 10:46 PM | Comments (0)

June 09, 2008

Seats at the Table

One theme that emerged at the Forum last week was groups outside of Development wanting to get a "seat at the table." This is a conceptual table, but I suppose if you wanted to picture a real table, it's the table in a conference room where a triage meeting was taking place, trying to decide which bug fixes to accept late in a product cycle. Or perhaps a meeting about adding a feature after the coding phase has begun.

Program Management unquestionably has a seat at the table; if there was a battle to achieve this, it happened before I got to Microsoft. Test did not have a seat a decade ago, but by dint of long hard work they have achieved it. In Proudly Serving I wrote that at Microsoft the 1980s were the "era of the developer" and the early 1990s were the "era of the program manager" (in terms of which group had the most power in determining what features and bug fixes were accepted). I also claimed that the "era of the tester" began around 1995, but that "Unfortunately, not too many people are aware that Microsoft is currently in the era of the tester—in particular, the testers themselves don’t realize how important they are." But I think, just a decade or so late, the era of the tester may finally be upon us. I was in a Forum session last week, in a discussion among people from different disciplines, and a tester explained something with the phrase "Testers Rule"; this was not the first harbinger of the possibility that test may be where it's at at Microsoft these days. I myself have toyed with the notion that if I go back to a product group, test may be a more rewarding place to pursue my interests.

Anyway, so you have Dev, PM and Test at the table, and others want in. In particular there were 3 Forum sessions I attended in which Project Management, User Experience (UX), and Operations discussed how to get a seat at the table.

(Interestingly, I heard somebody discussing how Apple does it, and they said they (metaphorically) have a table with four seats, with Project Management and Design (aka UX) occupying two of them, Marketing in one, and Engineering (meaning Dev/Test/etc--the people who currently fill all the chairs at Microsoft) confined to the single remaining one. There was nothing about Operations, but I assume for a web service product, Apple would pull up a fifth chair for them, rather than stuff them into the Engineering chair).

The general tone of the seat-table sessions was "We need to prove our worth to be respected", which I think is a healthy change away from the "We just need to work harder and harder and do our jobs better and better" angle that I used to hear, but it's still unfortunate that Dev can't just recognize the value of these disciplines, which has been shown over and over outside of Microsoft (and inside of Microsoft, if anybody cared to look beyond their own group). The table-sitters generally still have a "throw it over the wall" attitude towards the other disciplines (this was how Dev was vis-a-vis Test a decade ago; now it may be that Dev is grabbing the arms and Test is grabbing the legs).

All three organizations have the advantage that Test has softened up Dev a bit, but they also face a challenge that Test did not. Although Test had to fight to be listened to, in the end when you show a developer a bug they will admit that it is a mistake that should be fixed. UX, on the other hand, could point out a fit-and-finish error that confuses a user, and Dev may never come around to admitting that it is worth fixing late in the game; most bug bars (meaning the level of seriousness that a bug has to hit before it will be accepted) only talk about data loss and crashes, plus geopolitical, legal, accessibility, and all that. Project Management and Operations fall in-between UX and Test on the scale of how much empathy Dev would have for their problems. On the other hand, the UX Excellence team is a peer of the Dev Excellence team, whereas the Ops Excellence team is organizationally just a bit further away, and there is no Project Management excellence team (Project Management is currently a neglected subset of Program Management). I'm not sure how much the relative position of a discipline's EE avatars affects what happens in the product groups; we'll have to wait to see how this all shakes out.

Posted by AdamBa at 09:19 PM | Comments (7)

June 05, 2008

At the Forum

This week is the EE & TwC Forum in Redmond.

I organized a session on "Future Debugging Techniques" which went very well. I don't think I can reveal all the details but suffice it to say that the era of spending days getting your crash repro back and then losing it because you hit 'g' without setting the right breakpoint are pretty much done (at least if you work at Microsoft). Our session was 9 am on Monday, the first day of the Forum, and due to being the most-preregistered talk at that time we were put on the "big stage" in the McKinley room, the same place that Steve Ballmer, Ray Ozzie, etc. deliver their keynotes:

The setup is quite fancy. Those white things beside the stage are 12 foot high fabric screens that are lit from below. There is lots of support equipment behind the stage, and even a little green room for people waiting to speak:

In other Forum news, I went to a session on trendspotting that featured the inimitable Francoise Serralta from Peclers Paris, who we last met four years ago, in one my first blog posts. She was back to update us on what was happening in the consumerist space (the consumerist space, I assume, is where consumers operate; they perform consumeristic acts in a way that is consumeristical). She brought a copy of Futur(s) 8, the latest update on her "annual transversal global tool", as she refers to it. Less semiotically-inclined folks might call it a "book", although that doesn't quite do it justice. It reminds me of an excellent book called Typologies that I bought at the Seattle Art Museum, but in full color, encompassing every aspect of discretionary spending, beautifully arranged in wave after wave of visual haiku, arrayed on a sumptuous pillow of super-heated prose adorned with Serralta-isms like "glocal" and "omniconnection". Not to be missed if you get a chance to look at a copy.

Francoise's latest transmission from the near future reveals that today the look and feel, color, style etc. of a product is more important than the functionality. She quoted somebody saying that because we have everything we need, the things that engage us will be things we do not expect. But of course, you have to hit the trend wave properly, which is where Peclers (and the $6700 Futur(s) 8) comes in.

To successfully capture the attention of today's paradoxically-motivated consumer, you must target the right point in the consumerist space, which this year is arranged along two axes, materiality (abstraction vs. sensation) and time (slowing down vs. speeding up). The four quadrants are labeled Alternative, Endurance, Emergence, and Flamboyance (I'll leave it as an exercise to the reader to figure out which is which). I find all this stuff fascinating and when I heard that she was speaking at the Forum I dropped my plans to go see Roger Martin speak, and was richly rewarded with an hour-long tap into her brain.

After Francoise came a couple of people who had worked on hardware designs for Microsoft. They were a little more under the control of the Earth's gravitational field, but they also talked about trends, and how they had studied different consumer "attitudes" with names like Indoor Jungle and Hollywood Luxe, then chosen one attitude that would dictate not only the product's CMF (aka Color/Material/Finish), but also the packaging and marketing.

I know it sounds strange to a pencil-necked geek, but this really DOES matter. I recently bought a Zune and I find its CMF vastly superior to that of my old iPod. Zune may not pass muster with Francoise Serralta, but its mix of colors and textures is much more in tune with $4/gallon gas than the iPod's metallic "Bush-first-term-we-are-winning-the-war-in-Iraq" vibe. Being exposed to all this makes me think that if I go back to being a plain developer it may seem a bit...boring.

One other thing about the Forum is that they have a bookstore. On the first day they had five copies of Find the Bug. On the second day they were down to four; every time I walk by I check, but nobody else has bought one.

Oh, and rather than give us a gift like a mini-toolset, every attendee can pick one of 3 charities and Microsoft will donate money to it. Which I think is a great idea.

Posted by AdamBa at 10:07 PM | Comments (5)

June 04, 2008

The Surveilled Realm

When I was in London last month, one thing I noticed was Closed-circuit television (CCTV) cameras everywhere.

Actually the CCTV cameras are not particularly in evidence, but the CCTV signs are everywhere (some of them are possibly decoys, who knows).

At the Science Museum they had a sign that claimed there were (I think) 4 million CCTV cameras in Britain. The sign announcing this was gleefully located just under a camera that was filming the entrance.

They certainly abound in all the transit stations, parks, and tourist attractions that I visited, as well as the entrance to chi-chi apartment blocks near Harrod's.

One related fact is that there are also lots of speed cameras on the highway. In fact the guy driving the rental car shuttle at Heathrow warned me about them. When I was driving on the highway I tried to keep pace with the other cars. Of course a speed camera can zap everybody at once but I figured that experienced drivers would know where they were, so if I just kept pace, the wisdom of crowds would kick in and slow everybody down anyplace I could get nabbed.

So, I was a bit surprised when I received a notice from Avis saying that my rental car had been caught in a traffic infraction and they had forwarded my name to the issuing authority (and also nicked me 25 pounds for this service). I was prepared to take my lumps until I received my Amex bill and noticed that Avis had charged me for two rentals. I was hopeful that perhaps the incorrectly charged one was the one that committed the offence

Sure enough when I finally received the letter with the ticket, the license plate that had been faithfully captured by the camera was not the one on my rental car (the infraction was entering the Londong Congestion Charging Zone without paying; I was aware of the Zone and had purposely avoided driving downtown for this reason (and other reasons, like the congestion that the Zone is designed to alleviate)). I confined my actual driving to a Heathrow-Windsor-Shepperton triangle and rode the train into the city.

But now I have to remove this blot from my record, and I'm not particularly sanguine about my chances. I faxed a detailed letter to Euro Parking Collection, the company that administers the fines for the Congestion Zone, documenting all of this (my rental receipt, the dual charges on my Amex bill, the letter from Avis with a different rental number from mine) but who knows how long it will take them to untangle this. I currently owe 60 pounds, in 14 days (of which 11 have already passed) it goes up to 120 pounds, and in 28 days it jumps to 180 pounds. And it all began because Avis made a simple mistake in assigning a charge to the wrong credit card.

I complained to Avis about the double billing and disputed the charge with Amex, but the chain that has to be followed is pretty long. Amex will talk to Avis, Avis will hopefully talk to Euro Parking Collection, maybe Euro Parking Collection has to ask Boris Johnson about it, but meantime the fines will be mounting. If EPC contacts Avis too quickly, before Avis has finished their investigation, they may come back confirming that it was indeed my rental, and then EPC will come after me with renewed vigor. Hopefully justice will be served in the end, but I may wind up banned from the UK for a couple of years first.

Posted by AdamBa at 09:32 PM | Comments (5) | TrackBack