Thursday, June 22, 2006

9th Week: An Offer

Stolen from Claire's blog, in turn stolen from someone else's...

If you comment on this post:

1. I’ll respond with something random about you
2. I’ll challenge you to try something
3. I’ll pick a color that I associate with you
4. I’ll tell you something I like about you
5. I’ll tell you my first/clearest memory of you
6. I’ll tell you what animal you remind me of
7. I’ll ask you something I’ve always wanted to ask you
8. If I do this for you, you must post this on yours

To which Claire's reply was:
1. You have a very mean friend
2. you should try gnome or fluxbox, none of this KDE nonsense
3. oo i have no idea, colour of icecream
4. you use ubuntu
5. you telling me that if i didn't use windows things wouldn't break, and me protesting that i dont
6. a giraffe - you don't really
7. how do the buttons on the sound desk actually work?

Any takers?

Sunday, June 18, 2006

9th Week: Goodbye Greg (I)

We're going to miss you...

www.myspace.com/gregorydownes

Maths exam tomorrow. Eep. Let me see... "Let T be a linear transformation from V to V, where V is a finite-dimensional vector space over the real numbers..." - and that's before you get to the question!

Friday, June 16, 2006

8th Week: The Longest Day

No fewer than six exam-hours today. CS3 this morning went OK, though Logic and Proof was scarily nasty (most of us had planned to attack all three L&P questions, based on the collection we did eight weeks ago). Managed to answer two of the Models of Computation questions (I hope) quite well. Since you have to answer five out of nine questions, I managed to not have to answer any Discrete Maths questions at all. Which was nice.

CS2 this afternoon was a bit of a mixed bag, but generally good. Some easy PP questions (apparently the easiest was Q2, though I didn't go for it), and it's always theraputic to be able to just write down elegant solutions to problems. As for DH - some really really badly set questions. It wasn't the content or the theory that was the problem, it was a third of a page taken up by a table that was mostly irrelevant and actually complicated things a lot. It took me a good five minutes to work out that it was describing a pedestrian crossing! Add to that all the signal names were in CAPS which GAVE ME A HEADACHE and it wasn't the most elegant or subtle of questions I've seen. And my method of using JK flip-flops? Wire them up like D-types! So much easier. Thanks, Brian!

Today's Star Wars Exam Reference: X-Wings/ TIE Fighters - talking about type extension in Oberon.

It occurred to me today that I haven't yet mentioned the Galactic Empire (GE) on here. At the start of this month, I reached five years with the club; in that time, I've made my way up the ranks from Ensign to Commander, where I am today. It's a whole different batch of problems - not least Zeta Squadron, who resolutely refuse to hold down a squad leader. Applications are open...

Thursday, June 15, 2006

8th Week: On Windows Vista (rescued from Google Cache)

This is good stuff. The OP took it down after a few hours of it being online; I've retrieved it from Google Cache. The following words are not mine: they are the words of someone who was a Windows team manager for five years. Slashdot link to this article (which is no longer there). The server is also now "too busy" - but then, it is an IIS...

The World As Best As I Remember It - Broken Windows Theory

Vista. The term stirs the imagination to conceive of beautiful possibilities just around the corner.  And “just around the corner” is what Windows Vista has been, and has remained, for the past two years.  In this time, has suffered a series of high-profile delays, including most recently the announcement that it would be delayed until 2007.  The largest software project in mankind’s history now threatens to also be the longest.

Admittedly, this essay would be easier written for Slashdot, where taut lines divide the world crisply into black and white.  “ is a bloated piece of crap,” my furry little penguine would opine, “written by the bumbling serfs of an evil capitalistic megalomaniac.”  But that’d be dead wrong.  The truth is far more nuanced than that.  Deeper than that.  More subtle than that.

I managed developer teams in Windows for five years, and have only begun to reflect on the experience now that I have recently switched teams.  Through a series of conversations with other leaders that have similarly left The Collective, several root causes have emerged as lasting characterizations of what’s really wrong in The Empire.


The Usual Suspects

Ask any developer in Windows why is plagued by delays, and they’ll say that the code is way too complicated, and that the pace of coding has been tremendously slowed down by overbearing process.  These claims have already been covered in other popular literature.  A quick recap for those of you just joining the broadcast:

  • Windows code is too complicated.  It’s not the components themselves, it’s their interdependencies.  An architectural diagram of Windows would suggest there are more than 50 dependency layers (never mind that there also exist circular dependencies).  After working in Windows for five years, you understand only, say, two of them.  Add to this the fact that building Windows on a dual-proc dev box takes nearly 24 hours, and you’ll be slow enough to drive Miss Daisy.
  • Windows process has gone thermonuclear.  Imagine each little email you send asking someone else to fill out a spreadsheet, comment on a report, sign off on a decision – is a little neutron shooting about in space.  Your innocent-seeming little neutron now causes your heretofore mostly-harmless neighbors to release neutrons of their own.  Now imagine there are 9000 of you, all jammed into a tight little space called .  It’s Windows Gone Thermonuclear, a phenomenon by which process engenders further process, eventually becoming a self-sustaining buzz of fervent destructive activity.

Let’s see if, quantitatively, there’s any truth to the perception that the code velocity (net lines shipped per developer-year) of Windows has slowed, or is slow relative to the industry.  is said to have over 50 million lines of code, whereas XP was said to have around 40 million.  There are about two thousand software developers in Windows today.  Assuming there are 5 years between when XP shipped and when Vista ships, those quick on the draw with calculators will discover that, on average, the typical Windows developer has produced one thousand new lines of shipped code per year during .  Only a thousand lines a year.  (Yes, developers don’t just write new code, they also fix old code.  Yes, some of those Windows developers were partly busy shipping 64-bit XP.  Yes, many of them also worked on hotfixes.  Work with me here.)

Lest those of you who wrote 5,000 lines of code last weekend pass a kidney stone at the thought of Windows developers writing only a thousand lines of code a year, realize that the average software developer in the US only produces around (brace yourself) 6200 lines a year.  So Windows is in bad shape – but only by a constant, not by an order of magnitude.  And if it makes you feel any better, realize that the average developer has fallen in KLOC productivity since 1999, when they produced about 9000 lines a year.  So Windows isn’t alone in this.

The oft-cited, oft-watercooler-discussed dual phenomenon of Windows code complexity and Windows process burden seem to have dramatically affected its overall code velocity.  But code can be simplified and re-architected (and is indeed being done so by a collection of veteran architects in Windows, none of whom, incidentally, look anything like Colonel Sanders).  Process can be streamlined where inefficient, eliminated where unnecessary.

But that’s not where it ends.  There are deeper causes of Windows’ propensity to slippage.

Cultured to Slip

Deep in the bowels of Windows, there remains the whiff of a bygone culture of belittlement and aggression.  Windows can be a scary place to tell the truth.

When a vice president in Windows asks you whether your team will ship on time, they might well have asked you whether they look fat in their new Armani suit.  The answer to the question is deeply meaningful to them.  It’s certainly true in some sense that they genuinely want to know.  But in a very important other sense, in a sense that you’ll come to regret night after night if you get it wrong, there’s really only one answer you can give.

After months of hearing of how a certain influential team in Windows was going to cause the Vista release to slip, I, full of abstract self-righteous misgivings as a stockholder, had at last the chance to speak with two of the team’s key managers, asking them how they could be so, please-excuse-the-term, I-don’t-mean-its-value-laden-connotation, ignorant as to proper estimation of software schedules.  Turns out they’re actually great project managers.  They knew months in advance that the schedule would never work.  So they told their VP.  And he, possibly influenced by one too many instances where engineering re-routes power to the warp core, thus completing the heretofore impossible six-hour task in a mere three, summarily sent the managers back to “figure out how to make it work.”  The managers re-estimated, nipped and tucked, liposuctioned, did everything short of a lobotomy – and still did not have a schedule that fit.  The VP was not pleased.  “You’re smart people.  Find a way!”  This went back and forth for weeks, whereupon the intrepid managers finally understood how to get past the dilemma.  They simply stopped telling the truth.  “Sure, everything fits.  We cut and cut, and here we are.  by August or bust.  You got it, boss.”

Every once in a while, Truth still pipes up in meetings.  When this happens, more often than not, Truth is simply bent over an authoritative knee and soundly spanked into silence.

The Joy of Cooking

Bundled with a tendency towards truth-intolerance, Windows also sometimes struggles with poor organizational decision-making.  Good news is that the senior leaders already know this and have been taking active steps to change the situation.

There are too many cooks in the kitchen.  Too many vice presidents, in reporting structures too narrow.  When I was in Windows, I reported to Alec, who reported to Peter, to Bill, Rick, Will, Jim, Steve, and Bill.  Remember that there were two layers of people under me as well, making a total path depth of 11 people from Bill Gates down to any developer on my team.

This isn’t necessarily bad, except sometimes the cooks flash-mob one corner of the kitchen.  I once sat in a schedule review meeting with at least six VPs and ten general managers.  When that many people have a say, things get confusing.  Not to mention, since so many bosses are in the room, there are often negotiations between project managers prior to such meetings to make sure that no one ends up looking bad.  “Bob, I’m giving you a heads-up that I’m going to say that your team’s component, which we depend on, was late.”  “That’s fine, , but please be clear that the unforeseen delays were caused by a third party, not my team.”

Micromanagement, though not pervasive, is nevertheless evident.  Senior vice presidents sometimes review UI designs of individual features, a nod to Steve Jobs that would in better days have betokened a true honor but for its randomizing effects.  Give me a cathedral, give me a bazaar – really, either would be great.  Just not this middle world in which some decisions are made freely while others are made by edict, with no apparent logic separating each from the other but the seeming curiosity of someone in charge.

In general, Windows suffers from a proclivity for action control, not results control.  Instead of clearly stating desired outcomes, there’s a penchant for telling people exactly what steps they must take.  It’s creating a generation of McDevs, few of whom enjoy the monotony.  (For more on action control vs. results control, read Kenneth Merchant’s seminal work on the subject – all $150 of it, apparently).

Uncontrolled?  Or Uncontrollable?

We shouldn’t forget despite all this that Windows Vista remains the largest concerted software project in human history.  The types of software management issues being dealt with by Windows leaders are hard problems, problems that no other company has solved successfully.  The solutions to these challenges are certainly not trivial.

An interesting question, however, is whether or not Windows Vista ever had a chance to ship on time to begin with.  Is merely uncontrolled?  Or is it fundamentally uncontrollable?  There is a critical difference.

It’s rumored that VPs in Windows were offered big bonuses contingent on shipping by the much-publicized August 2006 date.  Chris Jones even declared in writing that he wouldn't take a bonus if slips past August.  If this is true, if folks like Brian Valentine held division-wide meetings where August 2006 was declared as the drop-dead ship date, if general managers were consistently told of the fiscal importance of hitting August, if everyone down to individual developers was told to sign on the dotted line to commit to the date, and to speak up if they had any doubts of hitting it – mind you, every last one of those things happened – and yet, and yet, the August date was slipped, one has to wonder whether it was merely illusory, given the collective failure of such unified human will, that Vista was ever controllable in the first place.

Are Vista-scale software projects essentially uncontrollable by nature?  Or has Microsoft been beset by one too many broken windows?  Talk amongst yourselves.

Published Monday, June 05, 2006 8:00 AM by philipsu

Filed Under: Software


8th Week: Hayfever

There's revision to be done (there's always revision to be done!) so I'll be brief - this morning I had a doctors' appointment at 19 Beaumont Street Surgery about my hayfever. The appointment was for 10 o'clock. At 9.58 I saw Dr. Schuman. At 10.03 I was walking to Cornmarket Street with my prescription. At 10.14 I had my prescription (thanks to Boots).

Whatever the media reports about the NHS, it's good to give time for stories like this. Be it thanks to or (rather I suspect) despite the Government, on the ground there is still an excellence that we should be pleased with.

Oh - and it was all free (I'm still 18). :-)

Monday, June 12, 2006

8th Week: You are being spied on

If you are using Microsoft Windows XP and have gotten any of the online updates: you are being spied on. GROKLAW have an article that completely rips apart Microsoft's handling of some software known as "Windows Genuine Advantage". This supposed "priority update" connects to a Microsoft server as much as once a day and report back to Big Brother Bill:

The genuine validation process will collect information about your system to determine if your Microsoft software is genuine. This process does not collect or send any information that can be used to identify you or contact you. The only information collected in the validation process is:
  • Windows product key
  • PC manufacturer
  • Operating System version
  • PID/SID
  • BIOS information (make, version, date)
  • BIOS MD5 Checksum
  • User locale (language setting for displaying Windows)
  • System locale (language version of the operating system)
  • Office product key (if validating Office)
  • Hard drive serial number
Hard drive serial number? What in the blazes? Also, this list has been revealed to be incomplete: they also receive "IP address and date/timestamp data relating to systems' booting and continued operations". So they know where you are, if you've turned on your computer today, and if you've bought a new hard drive of late.

It gets better... Microsoft are also calling this software a beta - or, in their words, "This software is a pre-release version of the software intended to
update the technological measures in Windows XP which are designed to
prevent unlicensed use of Windows XP"
. It's not finished. They're using you to test their software for them, in many cases without asking your permission.

They go on (this is in the EULA) to say: "By using the software, you accept these terms. If you do not accept
them, do not use the software.
As described below, using some features also operates as your consent
to the transmission of certain standard computer information for
Internet-based services.
"

If you do not accept them, don't use the software. Fair enough. Sadly, though, there is a problem here... See, you only get to see this EULA after the validation software has been installed (it comes in two parts, and this EULA is shown when you install the "notifications" part). And, just to ice the cake, "You will not be able to uninstall the software but you can suppress the reminders through the software icon in the system tray."

To summarise: You have to install it (in fact, if you have Automatic Updates turned on, it's already installed). Once installed, you are then asked to agree to it telling Microsoft far more than is really necessary; if you don't agree, tough, because you can't remove it.

By Microsoft's own definition, spyware is "deceptive software
that is installed on a user’s computer without the user’s consent and has some
malicious purpose.
" I'm guessing that if you're reading this while running Windows (and please say you're using Firefox), you both have this software installed and were unaware of its presence and function. So we have deceptive. As for malicious: firstly we have no sure knowledge of what it does (which is dodgy enough for me). Second, it allows Microsoft to collect more data from you than they say it can (by their own admission). Third, it uses resources on your computer without your permission (someone posting in reply to the Groklaw article uses the analogy of someone taking your car for a joyride without you knowing). That, in my book, puts this "critical update" firmly in the category of spyware.

There are a whole load of other issues that contribute to this argument: the legality of any EULA, for example; what security holes are opened up by this beta-test software, based on Microsoft's track record? And just how many of our rights and how much of our privacy are we prepared to give up - are companies - are governments prepared to give up to Microsoft?

The inevitable conclusion to this article is: why put up with this? "If you wish to remove the Windows Genuine Advantage tools, and I
expect most of you do," it reads, "why not go the whole hog and remove the entire
software package, replace it with GNU/Linux, and find out what it feels
like to be treated with respect and to breathe free?"

I am a free man.

Sunday, June 11, 2006

8th Week: Love Oxford

It was a first for Oxford: Forty churches joining together on a gloriously sunny and hot Sunday morning to worship God and declare His name to the city. The stage could barely hold all the leaders of the churches; the crowd of worshippers stretched back almost to the Bodleian, and easily from Baliol and Trinity to the shops across the street. Just a few yards behind the stage, the cobbled cross where Bishop Latimer and others were martyred; today, Anglican, Catholic, Baptist and more joined together in one voice to celebrate God's love.

I managed to drink a litre of water in about an hour - that's a lot. Charlie invented a new theological term - "prophetic ambiguity" - while purples and reds are "the rainbow God wants to see" (in a rather funny introduction to the offering - though I was slightly worried it wasn't as tongue-in-cheek as we all took it to be!)...

Vaughan Roberts was completely on song as he preached the Gospel - "We preach Jesus crucified" - as was OCC's Steve Thomas - "You need more notes for a short sermon than for a long one" - and Martyn Layzell was as spot-on leading worship as ever (although, in a dramatic break from tradition, only one of the songs we sang was written by him!). He couldn't help but deviate from the service plan though (I always said they needed a screen... and me operating it... ;-) ) for the chorus of "How great is our God, sing with me..." - but, what better words to worship God to - He is great!

A slight rewrite of the words to Father of Creation allowed us to sing "Let your glory fall in this town, let it go forth from here to the nations..." as opposed to the usual "room". But we couldn't sing that outside anyway, could we? Standing on Broad Street, singing On Holy Ground's "Where saints have walked this road before / Carried their cross through heaven's door" took extra poignancy.

OICCU President Greg Tarr read from 1 Corinthians, and Martin Smith's call to "Open up the doors and let the music play / Let the streets resound with singing" (Did You Feel The Mountains Tremble) was just the right choice of song to close with. Well, almost close with, followed by a unique arrangement of Amazing Grace (because, you know, no Christian gathering is complete without it...)

Plenty more I could blog about, but it's tomorrow already and I have less than seven hours in which to sleep. Plus a tute arranged for tomorrow without me having done any work for it... and less than 37.5 hours until my first exam... eek...

Wednesday, June 07, 2006

7th Week: 666, 6.06 and 158...

In the immortal words of Granny Weatherwax... I ATEN'T DEAD!


Don't worry, I haven't converted to numerology - but the three numbers in the title of this post all have a certain significance. Firstly, 666... If it were written in hex, then its value would be 1638. But, it seems, there's a lot more to it than that (so people think). From BBC News: BBC NEWS | Have Your Say: Superstitious date: 06/06/06 ...



Hmm... 666... the Number of the Beast... the anti-Christ child... the end of the world... and Vladimir Putin, apparently. Where does this come from, what does the Bible actually say, and what does it all mean? All worthy questions, IMO.


Firstly, 666. This occurs (in fact) four times in the Bible (NIV at least) - twice referring to the amount of gold King Solomon received in a year; 666 exiles from Adonikam in Ezra 2:13; and the famous "number of the beast" verse in Revelation. Let's build some context here. John is having a vision. He sees "a beast coming out of the earth. He had two horns like a lamb, but he spoke like a dragon... He also forced everyone... to receive a mark on his right hand or on his forehead...which is the name of the beast or the number of his name." (from Revelation 13 vv11-16) Then comes the famous bit, I'll quote it here in full: "This calls for wisdom. If anyone has insight, let him calculate the
number of the beast, for it is man's number. His number is 666."


And... that's it. (Well, obviously the book goes on for another few chapters yet, but that's as far as the whole beast thing goes.) If you haven't looked at this before, you might be slightly disappointed. Where's this little brattish kid that's supposed to be destroying the world? etc. But this is what's actually there in Revelation.


What of this 666? There are two main (sensible) theories about this. For more see the IVP New Testament commentary from BibleGateway.com, from which I will paraphrase briefly.


One theory runs: The number "666" (programmers will hate me for citing it like that!) is a numbers game in which each letter of the alphabet is assigned a numerical value. The number, then, is the sum of the values that make up a person's name. Trouble is, with a little bit of fudging the figures, it can work for quite a few names (including Adolf Hitler, whom I'm sure John didn't have in mind).


Another theory, and the one that I prefer: The number 7 is regarded in Revelation as the number of God, of perfection. Thus, 666 falls short of the magic seven three times over. The beast falls short of God's power, His majesty, His wisdom, His strength, everything - "Failure upon failure upon failure". At any rate, it's usually safe to consider that the minor details of apocalyptic writing can be secondary to the main themes that are portrayed. The main themes of Revelation? "God is powerful. Jesus Christ reigns forever. Those who suffer for Christ will ultimately share his victory." (from the Youth Bible)


And what of this "anti-Christ"? The media tends to jump on the bandwagon of showing the antichrist as a person, inevitably an American brat called Damien, and with "666" somehow adorning his body. This doesn't come from Revelation at all - in fact, it comes a couple of chapters before (not necessarily chronologically) in 1 and 2 John. Who is the antichrist? In John's words: "Many deceivers, who do not acknowledge Jesus Christ as coming in the
flesh, have gone out into the world. Any such person is the deceiver
and the antichrist." (2 John 1 v7). Even if they're not called Damien.


That's 666 down. Now, 6.06.


Dapper Drake - Kubuntu 6.06! - was released on the 1st June. It is no coincidence that my last blog post was on the 31st May. Suffice to say, the upgrade wasn't as simple as all the instructions suggested. After three failed attempts to upgrade packages, I was left with an X that wouldn't load and a kernel that wouldn't boot. I managed to scrape back to a loosely-functioning GUI and regrouped to #CompSci (there's another story in there, but that's for another - distant - time. If you're reading this, Claire - I'm still sorry...) where we agreed the easiest course of action would be for me to back up as much as I could to Alex's computer, repartition and reinstall. And it was easy... until I realised a few crucial little things that I'd forgotten. Like a website I'd spent about 90 hours working on. And all my E-mail. Apart from that, things are now looking very rosy - and in the next few days I'm hoping to take delivery of a nice 12" TFT monitor I found on eBay. Just right for watching TV while I'm working on the other screen. I've always fancied a dual-monitor setup, ever since we got one at church.


The last of these mysterious numbers - 158. That's greater than the number of hours I have left to my first exam.


Eep.

Thursday, June 01, 2006

6th Week: Microsoft and Babies (two disjoint thoughts!)

Some fairly random thoughts tonight. It's 6th Week, I'm allowed to be random!

Firstly, some news reported by the BBC: Microsoft debuts security package. The essence of the story is: Microsoft are releasing a commercial software package dubbed "Windows Live OneCare", a combined firewall/antivirus/antispyware kit.

Now, let's think about that a bit more closely... Why do you need anti-virus software? Why is it that spyware is a problem in the first place? Yes, that's right... because of flaws or omissions in Microsoft's Windows coding. Not only are they now asking you to trust them with some more coding to (in theory) cover up these holes - but they're also charging you for the privilege!

A few weeks ago in an IRC conversation, I predicted that M$ would start charging for updates to Windows at some point after Vista's release. The question now arises: surely there is a conflict of interest within Microsoft? If the Windows coders do their job properly and create a secure and stable OS (there may still be some hope! I'm reserving judgement on Vista until it comes out!) then they'll make OneCare obsolete. As OneCare is only just launching, I'm guessing they're not expecting it to become obsolete any time soon. Do you see where this is heading?

The conjoining of "Windows Live" in the title is ominous, too. This is Microsoft's move (to be fair, copied by many of the big players) to further blur the online/local divide. How OneCare fits into the same umbrella as having your contacts and appointments stored on a website is slightly baffling at this point. One theory put forward - I think this was in PC Plus - was that a basic Vista OS would be released with certain features disabled until you activate them online - for a cost, naturally. They even went as far as to suggest that Vista would be the base for all Microsoft OSs for the foreseeable future, with just modular updates available for (priced) download. Like sudo apt-get dist-upgrade, but with money involved, it seems.

The idea of paying extra (on top of the ~£200 for the OS to begin with) to get your computer to do the things it should be doing anyway seems wrong in a number of ways. I think it's also planned to be a monthly subscription-based thing, though the site seems to have stopped responding so I can't be sure. One thing I will predict confidently, though: You'll see a one-(or perhaps three- or six-) month trial of OneCare installed by default on Vista, thus in a stroke hitting companies like Norton and F-Secure hard - despite their products being (probably) superior. And despite free alternatives being available, people will happily fork out - why? Because it's easier that way. Fair competition? Microsoft don't know the meaning of the word. They also don't know the meaning of "interoperability", but that's another story.

I mentioned babies in the title. This was no coincidence! Yesterday morning my tutor Joel's wife gave birth to young Mathias Ouaknine. Congratulations to them! And I don't have to finish that tute work for tomorrow after all...!

Back to OneCare... after nearly ten minutes, the site decided to serve me a web page. The clever thing worked out that I wasn't using Internet Explorer (while trying to install OneCare on Kubuntu!) but refuses to give me any information about how much the thing costs - the Beeb do: "OneCare costs $49.95 (£26.50) to protect three computers for a year.". And it looks like a 90-day free trial is available. Vista, here it comes. And the free world doesn't even notice.