kitchen.coffeemaker.brew()

Wouldn’t it be really fun if you could connect to every electronic device you owned (from your laptop down to the toaster) remotely, and tell it to do things?

You could write a program that would run at 9am every morning to switch on all the lights downstairs, preheat the oven, make you some coffee, and turn on the TV.

Or you could log into your house via a web interface and switch the heating on from work before you left for home.

Or you could remotely turn off some lights you’d left on, or record a TV programme.

This idea is presently in its infancy in the form of smart-house power controllers, like plug sockets that you can switch on and off over a network. But these only control power, and are not part of actual devices.

What I’m imagining is a universal, standardised protocol (call it Universal Device Control Protocol or something) by means of which every piece of electronic gear you own can be talked to by a computer.

The manufacturer of each device would write a library of functions you could call to a) make the device do things b) check various variables of its status (fridge temperature, time until toast ready…)

This really wouldn’t take much..

This would be very hard to engineer into existing devices (i.e. a CD player would have to have its entire architecture deconstructed so that calls to play and pause functions could be inserted) but very easy to design into future devices.

There are many advantages…

However we can envisage numerous problems…

Whether this ever actually happens depends on whether anyone would buy it. The market at the moment would be geeks-only, as you’d have to write your own software in the command language for UDCP. However as the tech became more evolved we’d get such things as integrated suites of home-running software that you could install- like an operating system for the home*.

I think affluent people would buy this- paying a premium (if the components cost £10 companies would probably charge at least £20 extra) for each device for total autonomous wireless control of everything you own? People already pay in the hundreds for coffeemakers, high-end toasters and so on.

Eventually it would become commonplace and every device would come with a UDCP control system by default.

Excuse me, I think forgot to lock the door downstairs… oh wait, I don’t have to move!

house.door1.getStatus(locked);

locked = FALSE

house.door1.lock();


*Let’s hope Microsoft do not get involved.

Note: something like this exists for servers and such. http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol

Algorithmic politics

Consider the problem of running a country in such a way that the average happiness of the population is maximised.

At the moment, we go about this in a pretty terrible way.

  1. Set up a horribly complex distributed system of people which, as a whole, has control over legislation.
  2. Every five or so years, replace all these people with a new set whose way of doing things is often the complete opposite of the last way. In fact, the new way is often by definition the exact opposite- so that the people who weren’t keen on the last way will vote for the new way.
  3. Loop.

In an ideal world, changes in policy would be chosen by their predicted effect on average population happiness (measuring this is a whole other problem). Or they could be tried out serially and the policy changes which led to the most happiness could be kept (the evolutionary algorithm approach). However, policy changes in the real world are controlled by

Nearly all the public’s conception of politics, the policies and people invoved, is shaped by the media. When did you last look at a website, draft bill or manifesto actually produced directly by a politician? When did you last watch BBC Parliament live? People very rarely look at the political system directly. We view it through TV, radio and newspapers, and what we see in these places is controlled by a very small number of people: the editorial team, journalists and producers of the sources concerned.

So if you put the country in the hands of a team of software developers, how would they go about “running the country?”

(We assume, hippie-style, that the best way to go about this is by maximising population happiness. You could always choose another metric, though. What about maximising GDP? Or population intelligence? Or even, empire-style, land area controlled by the country?)

We could imagine…

Unfortunately, though, there is no chance that at any point in the near future, government as we know it will be replaced with any kind of system that makes sense or tries to solve the problem in a reasonable and scientific way. It’s too ingrained in tradition and democracy is too much of a wonderful idea to give up.

Elementary, my dear Wilson

So I & Dasha realised (thanks in part to the Uncyclopedia article on House, which is quite fun) that nearly every House episode has the same kind of structure. There are lots of things which always happen.

So we wrote a Python program to generate House episodes.

The scene is a baseball game.
John, a 14-year-old leukemia patient, collapses with a serious case of anal haemhorraging.
The credits roll. Jennifer Morrison gets a river. Patrick Stewart guest stars as John.
House hobbles down the hallway to his office.
In the ICU, House, Cuddy and 13 are playing chess.
House introduces a new case, John.
13 suggests lupus.
House concurs.
House pops a Vicodin.
13: ‘Fine. Let’s treat with steroids.’
Meanwhile, in the House’s office, 13 and Wilson are having a heart-to-heart.
Suddenly, Wilson realises that the patient has abnormal sodium levels indicated on their chart!
They rush to find House, who is skateboarding.
House, 13 and Wilson burst into the the elevator to confront the patient.
House accuses the patient of travelling to India without telling anyone.
The patient, struggling against his bleeding from the  denies doing anything wrong.
House: ‘Everybody lies.’
House pops a Vicodin.
The sun sets over Princeton Plainsboro Teaching Hospital.
In the the janitor’s closet, House is annoying Cuddy when it suddenly occurs to him that the patient’s potassium levels are too high.
House rushes to the the morgue where the patient lies, inches away from perishing of seizures.
‘I have it!’ yells House. ‘It’s breast cancer. Treat with magic mushrooms, just for the hell of it immediately!’
Miraculously, the patient makes a full recovery.
Roll credits.

It has a database of locations, people, symptoms, conditions and a few other bits. Then it just randomly combines them, with a bit of intelligence- it knows what people it has put where and what gender they are, for instance.

The scene is a Cuddy’s office.
Rachel, an aid worker, collapses with a serious case of internal bleeding.
The credits roll. Jennifer Morrison gets a river. Sigourney Weaver guest stars as Rachel.
House walks into Cuddy’s office, makes a comment about her breasts and leaves again.
In House’s office, House, Cuddy and Kutner are debating whether House and Cuddy are sleeping together.
House introduces a new case, Rachel.
House suggests lupus.
Kutner objects because the patient’s potassium levels are too high.
House pops a Vicodin.
Kutner suggests sarcoidosis because the blood sugar levels are above normal.
Cuddy: OK, let’s treat with antibiotics.
House pops a Vicodin.
Meanwhile, in the House’s office, 13 and Foreman are flirting.
Suddenly, Foreman realises that the patient was incorrectly diagnosed with HIV earlier in their life!
They rush to find House, who is jamming some blues guitar.
House, 13 and Foreman burst into the the clinic to confront the patient.
House accuses the patient of cheating.
The patient, struggling against her swollen hands, confesses that she has in fact been cheating.
The winter snow slowly begins to fall.
In the the elevator, House and Cuddy stand in silence around Rachel as he slowly passes away from fatal anal haemhorraging.
Roll credits.

The database is so small that it looks samey after a few episodes though. Ideally you could fill it with all the people, conditions, etc, from the actual House canon. Then, if it had the right generation framework, it would eventually generate all the real episodes of House.

The scene is a Cuddy’s office.
Marilyn, an obsessive 16-year-old chess prodigy, collapses with a serious case of anal haemhorraging.
The credits roll. Jennifer Morrison gets a river. Lucy Liu guest stars as Marilyn.
House walks into Cuddy’s office, makes a comment about her breasts and leaves again.
House pops a Vicodin.
In the clinic, House, Amber, Foreman and Wilson are arguing about the meaning of love.
House introduces a new case, Marilyn.
House suggests lupus.
Wilson objects because the patient would have presented with a fever.
Foreman suggests TB because the patient is in the right age bracket.
Foreman: OK, let’s treat with a gin and tonic.
Meanwhile, in the a corridor, Cuddy and 13 are operating.
Suddenly, Cuddy realises that the patient must have been having an affair!
They rush to find House, who is bouncing his stress ball.
House, Cuddy and 13 burst into the the clinic to confront the patient.
House accuses the patient of inhaling nitrous oxide.
The patient, struggling against her swollen hands denies doing anything wrong.
House: ‘Everybody lies.’
House, sleepless, limps restlessly around the ICU in the dead of night.
In the the ER, House is annoying Wilson with his guitar when it suddenly occurs to him that it’s Thursday, dammit!.
House rushes to the House’s office where the patient lies, inches away from perishing of anal haemhorraging.
‘I have it!’ yells House. ‘It’s breast cancer. Treat with steroids immediately!’
Miraculously, the patient makes a full recovery.
Roll credits.

The source code is in the next post. Tumblr can’t format source code, and I can’t be arsed to make it :(

Edit: someone did a web version! http://house.oliland.net/


code

import random



team = [ "Foreman", "Cuddy", "Chase", "Cameron", "Wilson", "13", "Kutner", "Amber"]

namesM = ["John",  "Clint",  "Eric", "Jordan", "Jamie", "Angus", "Nathan", "Joe"]

namesF = ["Mary", "Yolanda", "Jordan", "Marilyn", "Miranda", "Janice", "Rachel"]



starsM = ["Patrick Stewart", "Axl Rose", "Nathan Fillion"]

starsF = ["Sigourney Weaver", "Lucy Lawless", "Lucy Liu", "Kate Moss"]



occupations = ["a Lawyer", "a USAF test pilot", "a single parent", "an African dictator", "an aid worker", "a TV presenter", "an athlete",

               "a U.S. Marine", "a brain-damaged musical savant", "a 14-year-old leukemia patient",

               "an obsessive 16-year-old chess prodigy", "a Hasidic Jew"]



places = ["baseball game", "hockey game", "cinema", "Cuddy's office", "a smoky bar",

          "Times Square"]



rooms = ["House's office", "the ER", "the ICU", "a corridor", "the canteen",

         "the morgue", "the janitor's closet", "the clinic", "the elevator"]



symptoms = ["bleeding from the ", "internal bleeding", "swollen hands", "seizures",

            "anal haemhorraging",]



orifices = ["mouth", "nose", "anus", "ears", "urethra", "vagina"]



changes = ["House hobbles down the hallway to his office.", "House argues with Wilson about his Vicodin abuse.",

           "House walks into Cuddy's office, makes a comment about her breasts and leaves again."]



activities = ["arguing about the meaning of love", "debating whether House and Cuddy are sleeping together",

              "having lunch", "playing chess", "playing ping-pong", "watching General Hospital"]







objections = ["the patient's potassium levels are too high", "there would be swelling of the joints if that was the case",

              "it's Thursday, dammit!", "the patient would have presented with a fever", "no, we would have seen neuro problems"]



diagnoses = ["lymphoma", "sarcoidosis", "naphthalene poisoning", "breast cancer", "TB", "endocarditis",

             "hereditary hemorrhagic telangiectasia", "small bladder syndrome"]

diagreasons =  ["the blood sugar levels are above normal", "they look too happy", "it's Tuesday", "the patient was in Mexico last year",

                "the patient is in the right age bracket"]



treatments = ["chemo", "antibiotics", "steroids", "magic mushrooms, just for the hell of it",

              "a bone marrow transplant", "dialysis", "Amantidine", "epinephrine", "a gin and tonic"]



coupleact = ["having sex", "operating", "flirting", "plotting against House",

             "having a heart-to-heart"]

observations = [" must have been having an affair", "'s bloodwork indicates otherwise", " was incorrectly diagnosed with HIV earlier in their life",

                " had undergone a tonsilectomy as a child", " has abnormal sodium levels indicated on their chart"]



houseActivities = ["annoying Cuddy", "annoying Wilson with his guitar", "bouncing his stress ball", "skateboarding",

                   "watching his favourite soap","jamming some blues guitar"]



wrongdoings = ["cheating", "taking cocaine", "lying about his parents", "inhaling nitrous oxide", "hiding an illicit gastric bypass surgery",

               "travelling to India without telling anyone"]



changes2 = ["The sun sets over Princeton Plainsboro Teaching Hospital.", "The winter snow slowly begins to fall.",

           "House, sleepless, limps restlessly around the ICU in the dead of night.",

           "As the sun rises, a sleepless Cuddy dries her tear-stained face in her office."]

                   





def select(list):

    r = random.random()

    r = r * len(list)

    r = round(r)

    r = int(r)

    r = r-1

    return list[r]



def Rnum(list):

    r = random.random()

    r = r * len(list)

    r = round(r)

    r = int(r)

    r = r-1

    return r





def vicodin():

    if round(random.random()*4) == 1:

        print "House pops a Vicodin."





        

def group():

    localTeam = list(team)

    r = random.randrange(1,4)

    currentTeam = ["House"]

    for i in range(0,r):

        t = Rnum(localTeam)

        currentTeam.append(localTeam[t])

        localTeam.pop(t)

    return currentTeam



def couple(people):

    localTeam = list(people)

    r = 2

    currentTeam = []

    for i in range(0,r):

        t = Rnum(localTeam)

        currentTeam.append(localTeam[t])

        localTeam.pop(t)

    return currentTeam



def otherGroup(group):

    set1 = set(group)

    teamSet = set(team)

    set2 = teamSet.difference(set1)

    other = list(set2)

    return other



def groupString(group):

    l = len(group)

    sentence = group[0]

    for p in range (1,(len(group)-1)):

        sentence = sentence + ", " + group[p]

    sentence = sentence + " and " + group[l-1]

    return sentence

        



def decide():

    return random.randrange(0,2)

    

    







#Select cast etc



pGender = int(round(random.random()))

# 1 = Male

    

    



patient = select(namesM if pGender  else namesF)

scene = select(places)

casesymps = [select(symptoms)]



if casesymps == ["bleeding from the "]:

    casesymps[0] = casesymps[0] + select(orifices)



    







print "The scene is a " + scene + '.'

print patient + ", " + select(occupations) + "," + " collapses with a serious case of " + casesymps[0] + '.'

print "The credits roll. Jennifer Morrison gets a river. " + select(starsM if pGender  else starsF) + " guest stars as " + patient +'.'

print select(changes)

vicodin()

group1 = group()

print "In " + select(rooms) + ", " + groupString(group1) + " are " + select(activities) +'.'

print "House introduces a new case, " + patient + '.'

p1 = select(group1)

print p1 + " suggests lupus."



group1_1 = group1

group1_1.remove(p1)



if decide():

    

    print select(group1_1) + " concurs." #everyone except the person who proposed it

    vicodin()

    print p1 + ": 'Fine. Let's treat with steroids.'"

else:

    print select(group1_1) + " objects because " + select(objections) + '.'

    vicodin()

    print select(group1) + " suggests " + select(diagnoses) + " because " + select(diagreasons) + "."

    print select(group1) + ": OK, let's treat with " + select(treatments) + '.'



vicodin()





group2 = couple(otherGroup(group1))

print "Meanwhile, in the " + select(rooms) + ", " + groupString(group2) + " are " + select(coupleact) + "."

print "Suddenly, " + select(group2) + " realises that the patient" + select(observations) + "!"

print "They rush to find House, who is " + select(houseActivities) + '.'



vicodin()





print "House, " + groupString(group2) + " burst into the " + select(rooms) + " to confront the patient."

sin = select(wrongdoings)

print "House accuses the patient of " + sin + '.'



if decide():

    print "The patient, struggling against " + ("his" if pGender else "her") + " " + select(symptoms) + ", confesses that " +("he" if pGender else "she") + " has in fact been " + sin + '.'

else:

    print "The patient, struggling against " + ("his" if pGender else "her") + " " + select(symptoms) + " denies doing anything wrong."

    print "House: 'Everybody lies.'"



vicodin()



print select(changes2)



if decide():

    print "In the " + select(rooms) + ", " + groupString(group()) + " stand in silence around " + patient + " as he slowly passes away from fatal " + select(symptoms) + '.'

else:

    print "In the " + select(rooms) + ", House is " + select(houseActivities) + " when it suddenly occurs to him that " + select(objections) + '.'

    print "House rushes to the " + select(rooms) + " where the patient lies, inches away from perishing of " + select(symptoms) + '.'

    print "'I have it!' yells House. 'It's " + select(diagnoses) + ". Treat with " + select(treatments) + " immediately!'"

    print "Miraculously, the patient makes a full recovery."



print "Roll credits."

How to rotate screens on campus computers

Hey team!

Some of the campus computers (including most of the library PCs) have LCD monitors that you can physically rotate by 90 degrees. Did you know that it’s also possible to rotate your Windows screen as well?

This makes it much easier to read A4 documents on screen, as you can fit a whole page on your screen at once. Most web pages are also far taller than they are wide, which makes the Internet easier as well.

It’s well easy!

  1. Download iRotate from http://www.softpedia.com/progDownload/iRotate-Download-17093.html. Click on “Softpedia Mirror US” or “Softpedia Mirror RO” to download. If this link is broken, just Google iRotate and you’ll find it somewhere.
  2. Don’t worry- iRotate is reputable software and definitely not a virus. It’s also free.
  3. You have to install iRotate in your home folder for it to work. When iRotate asks you to “select installation folder for the application,” click Browse and select the H drive. It will look something like “w2k on userfs/StudentFS/abc500 (H:)”, with your username instead of abc500.
  4. Once iRotate is installed, a blue diamond will appear in your system tray (the bar at the bottom right where you find the volume control). If you can’t see it, click the two small arrows.
  5. Right-click on the blue diamond- you’ll see a menu of different screen orientations. Select 90 degrees and then spin the monitor!

To change back, just select Normal landscape.

Once you’ve installed iRotate on your account, you can use it on any computer. You don’t have to install it again when you change computers.

Make sure you rotate the monitor back when you leave, as some people find it very confusing! If they don’t have iRotate installed they won’t be able to change it back.

Yours,

Dr. Greg House

Synchronicity:

It turns out that something like the Hasse-Weil zeta function (from the Fermat proof), the Riemann zeta function, can help in calculating the critical temperature for a Bose-Einstein condensate!

Connections are everywhere.

Science Gets Older, Too

It’s amazing how much your view of science changes over the years. Not as you get older, but as you progress through the strata of knowledge and academia, up the slopes of the Mountains of Knowledge.

It starts off, well, before you can really remember, when it first occurred to you to ask questions about what was really going on. You were five and you wondered why there was light when you pressed the switch, where the water came from when you turned the tap, and that old chestnut, why the sky was blue. And science was there with the answers. Why, it’s because of electricity, of course. Or water pressure. Or refraction in the atmosphere. All very straightforward.

Science was presented as a kind of simplistic gospel in primary-coloured pictures and simple block diagrams in the patronizing textbooks we make children read sometimes. The sort of things with pictures of cows and lorries and arrows showing you that this is an udder and that is a tyre. The sort of authoritative, comforting exposition that let your five-year-old mind know that everything was reassuringly understood by someone, probably whoever wrote the book.

And then you got a bit older and realised that there were different types of science, that things branched off into physics and biology and chemistry and they were all different and separable. At about the same time you began to realise the inconsistencies. They told you once that there were only three states of matter- and then you read somewhere that there’s also something called plasma which happens when you heat gas up even more. What? Why did they tell you there were only three?

Or your realise that that Big Bang thing which is of course where we all came from is actually a Theory. No one was there to see it. We’re not absolutely sure. We sill have to work out a lot of the details.

Or you come across a page of advanced maths with symbols the likes of which you have never seen (you’ve got to the level of maybe simultaneous equations or plotting things on graphs at this point). It looks somewhere between 3x+4 and the Dwarven runes from the back of the hobbit, and you slowly realise that there is a hell of a lot more going on than anyone ever told you.

They said everything was made of atoms and they were absolutely indivisible. …Oh no they’re not! You can cut them up with gigaelectronvolts and there’s even more going on inside!

But still it’s a sort of gospel. You can learn from the textbooks and the documentaries but it’s always you who’s doing the learning; it’s still a process of discovery.

And then a few more years pass and suddenly you’re reading Nature or the Communications of the ACM (probably because they made you read it, or you need to reference something) and you realise that the stuff you’re reading has never, ever been thought of before. You’ve managed somehow to make it up past the tree line, into the cold rarefied air where everything is new and no one is sure of anything. It doesn’t stop at plasma. It goes on all the way up to the Bose-Einstein condensate, cowboy.

This is the front line, the coal face, the stratosphere. The papers you are reading, though peer reviewed and edited and checked, represent ideas that no mind has ever held, experiments that have never been done before, cunning techniques that no one has ever applied. You realise, as well as how much we have understood so far, how much we have yet to do.

But still you are just reading papers. The violent new ideas and the intricate, twisted theories belong to other people, and you are only learning them. What about the next level? How much further do you have to go before you can come up with theories of your own instead of just absorbing them? What vast amount of cunning do you need to think what has not been thought before?

Then you realise how incomprehensibly enormous science actually is. Long gone are the days where one man could know nearly everything about physics or chemistry. It’s difficult now to know everything about one tiny subfield of a specialisation of a discipline of physics. Read the proof of Fermat’s Last Theorem; the first 5 words are comprehensible. The rest takes off in such an intricate edifice of superhuman mathematics that it is difficult to believe that one man could comprehend all of it.* How must it feel to look down on the world if you understand that much?

And how can we live in a world where there is so much to be known about every substance, every phenomenon, every interaction- that we will never know? Oh, someone somewhere might understand it. But you will never get it all.

Come for a walk in the Mountains of Knowledge. But make sure you wear your highway shoes.

* “An elliptic curve over Q is said to be modular if it has a finite covering by a modular curve of the form X0(N). Any such elliptic curve has the property that its Hasse-Weil zeta function has an analytic continuation and satisfies a functional equation of the standard type.”

The Adventure of the Masterless Game


I take up my pen now to relate to you one of the most intricate and challenging pursuits ever to grace the billiard rooms of the Strand. It first came to my attention in 189- when my dear friend Christopher S. of Portsmouth invited me to his chambers with the utmost excitement. When I arrived it took me several minutes to calm him sufficiently that he could relate to me the reason for his new-found energy; but eventually we pulled up a chair in front of the fire and he began to explain himself.

S. had just returned from an expedition to southern climes, during which his path had crossed many wonders. What he would tell me, though, was the greatest of them; the most amazing discovery ever to grace the field of gentlemanly sportsmanship since the dawn of the cricketing age.

“A game?” I enquired, leaning forwards in my armchair and lighting a cigarillo.

“No, old friend,” said S., meeting my gaze. “A Game.”

I shall attempt here to relay to you the rules, confounding and complex though they may be. Listen well, for what you read now will stay with you for the remainder of your days. I hope my introduction guides you well.

The first and most important rule, that from which all the others follow on, is simple. Indeed, its humble clarity is such that everything presented below merely clarifies, refines and ramifies it. This game is easy to understand but it takes a lifetime to truly comprehend. Indeed, because it was devised so recently, it will be left to future players to truly plumb the depths of its complexity.

A master of the Game is cunning. He is wily and his  mind is that of a fox slinking through the darkness towards his unsuspecting prey. He will exercise strategy and tactics with the ease of a warlord commanding his armies from afar; he will scheme and plot and in the end he will pull off his coup de grace with the utmost style.

The Rule is this:

“If you pass someone something, you get a point.”

Most of the complexity lies in the meaning of “pass.” Passing someone something requires cooperation on the part of both the passer and the passee. The passer must make a conscious effort to transfer the object, and the passee must in some way signal his assent, either verbally or by making a motion to accept the object.

This precludes one of the plays that is most often made by amateurs of the Game. Simply placing an object on someone without their knowledge does not and has never qualified as passing; this action is against the spirit of the Game, for it allows points to be garnered without any element of subterfuge or cunning on the part of the passer.

The depth of the Game, the delight and the frustration it causes, stem from the difficulty of convincing someone who knows exactly what is happening to accept an object from you. Some elegant and impressive strategies to this effect have been devised by the Executive Rules Board and the worthy opponents they have had the honour to face across the smoking room table of their club, but I must not set them down here, for that would deprive future younglings of the challenge of invention.

We must place further constraints on the objects which may be passed. First of all, they must be physical; they must exist in the real world. The passing of intangible concepts like love, hate and fear  is forbidden (though in the author’s experience the playing field is often tautly charged with the latter two).

Secondly, the operation of passing can only gain the passer one point. A box of cigars handed to an old friend will only garner the player one point, not twelve (or fewer, if the comrade in question is an aficionado of the splendid Cubans of 1865).

If, however, two objects are passed in two hands or recieved in two hands, two points may be had. It is only if the objects reman together during the entirety of their journey that a unique point is scored.

The last major clarification concerns timing. A point may not be gained for an object which was transferred several weeks ago, or even yesterday. Once the passing has been accomplished, the point must be claimed within a short period of time. Even a minute is usually regarded as too long, for this leaves too much opportunity for passing objects without the game in mind, then realising one’s missed opportunity and profiting from the accident. A time limit has not been officially determined, but has been unoficially set at the exact duration of around ten seconds or so. It is rare that points are contested because of timing issues.

There is one exception to what may be passed, one class of objects which a person may accept without allowing his opponent to gain a point. This class contains objects required to immediately enable the consumption of intoxicating liqueurs or preparations, such as a glass of fine cognac, a slipper or a quantity of the seven percent solution. Nothing else is exempt.

Finally, I must add that points may not be gained by persons who are unaware of the rules or existence of the Game. However, players may gain points by passing objects to such persons.

The only exception to this concerns those who are unable to understand the meaning of the Game, such as infants, animals or the insane. Points may not be gained by passing them objects.

There are no formal rules as yet governing when the Game begins or ends. The Game can always be played, in the living room or on the battlefield, by the young and the old, by the cunning and the daft. It is eternal and unending. Counts of points, however, are usually reset when the Game has not been played for a few days, or when a new evening of play commences.

I have attempted here to relay to you with the best of faith the rules of the Game. I do not purport to master them, and neither does S. This game is young in England, and it is in the coming  years that champions will be made and hopes will be cast down to the floor. Though I am old and my cunning is fading like a September twlight, I will watch while the battle lines are drawn, while alliances and emnities are forged.

We live in interesting times.

Dr. John Blotson, M.D., F.R.C.S.
September 1898

(Executive Rules Board: Mr F. Nagle, Mr L. Steers & Mr M. Starling, Esqs., all of Soho)

Sorry to those of you who don’t have a snowflake’s clue in the foggiest hell what I am on about. Just ignore me and go and eat some biscuits.

Here are some of the many things I hate about Visual C++.

  1. Does your program want to talk to some files? Visual C’s not having any of that, oh no. Launch your program from the IDE and it’s deaf and blind. Unless you use absolute file paths.
  2. On a big project you have dozens of class files. So why only have room for about eight in the code file browser at the top on a normal-size screen? Becase everyone at Microsoft has mile-wide monitors, of course, and they don’t care about anyone else.
  3. Visual C on one monitor, Firefox in another. You’d think we could get along fine. Oh no. If you stash any of your debugging windows on the other monitor, they pop to the front every time you activate Visual C’s main window, so you can’t see anything else. But Microsoft doesn’t want you to see anything else.
  4. What do you mean, you don’t know what the value of the variable is? cout knows what the value of the variable is! I can see it on the screen! But the debugger is a Tory and can’t bleeding well work it out.
  5. Put the header files next to their corresponding class files, for God’s sake. Do you have any idea how many times you have to switch quickly back and forth between the two?
  6. The call stack in the debugger should contain something in between main() and the deepest function you called. Because that’s the point of a call stack.
  7. When I click on an empty line between two indented lines of code, can you guess what I want to do? Write some indented code. Yes, you’re clever. I don’t want to write some code that’s jammed right up against the left margin, like Microsoft seems to think.

Okay, bitching over. Use Eclipse, gang.

Remember, kiddies,

jamsque:

that no matter where you go in life, a poet has been there before you. I feel that the last verse of ‘Stopping by Woods on a Snowy Evening’ by Robert Frost adequately sums up my current feelings on my final year project, which is due in a week on Tuesday:

The woods are lovely, dark and deep,
But I have promises to keep,
And miles to go before I sleep,
And miles to go before I sleep.

More Frost:

Two roads diverged in a yellow wood,
And sorry I could not travel both
And be one traveler, long I stood
And looked down one as far as I could
To where it bent in the undergrowth.

This is about source code. The maze of potential designs- which one should you choose? There IS one out there that is optimal, perfect, wondrously elegant. But you have no way in hell of knowing which one it is.