Search Results: "beh"

1 April 2006

David Nusinow: I Can't Believe I'm A "Manager"

Via reddit (which kicks the crap out of slashdot and digg): What I've Learned From Failure.

The link above is a long, but fascinating piece. I've had to become a lot more interested in how to manage software projects since taking on Xorg maintainance, and the same lessons seem to scale up well to how Debian as a whole manages itself. This article talks about some of the major problems that I've seen myself deal with, and the experiences of this guy echo my own over the past year very strongly. Here's a few examples:

"Getting away from weak teams, another source of failure is the omnipresent threat of "chickens." A chicken is not necessarily a weak individual, but a sign of a weak management structure. A chicken is an individual who has significant authority over your project, but does not make a personal commitment to the success of the project. Significant authority includes the authority to impose constraints on the team."

I like this and I've noticed it in the XSF and in Debian as a whole. People are free to work on what they want how they want, and this tends to work out well for us. But we also have no structure in which people must actually commit to what they do. As such, there's no accountability. This frees Debian developers from the preassure of having to work on something they don't enjoy, but it also creates abandoned packages, ignored bugs, and frustrated release schedules. In the past I've described a need for a stick in addition to a carrot for Debian developers, and the sentiment here echoes that idea. I've spoken with Manoj about his conception of personal responsibility in Debian, and I think it may truly be the bedrock on which Debian needs to rest. I still don't have a good mechanism for this yet though.

"Another sign of a weak team is poor development hygiene. There are dozens of development practices that seem trivial to the inexperienced outsider or to the manager focusing on "big wins." Examples of development hygiene include source code versioning, maintenance of an accurate bug or issue database, significant use of automated testing, continuous integration, and specifications that are kept current (whether incredibly detailed or high-level overviews)."

This is a something I myself have had a problem with over the past year. Branden was extremely good about keeping the XSF svn repo and the BTS up to date and well managed. I've done just about the opposite over the past year, and it's bitten me a few times. This however, was a conscious decision on my part, knowing that I was so far behind upstream that it was going to be hard to effectively manage the BTS without a recent codebase deployed to our users. So I focused on packaging instead, and luckily that road is nearly finished. Also fortunately, everyone else in the XSF managed the BTS for me, most notably (in alphabetical order by last name) Julien Cristau, Michel D nzer, Eugene Konev, and David Martinez Moreno, and they've managed to keep it relatively tidy. I'm going to spend some serious effort over the coming months to clean out the BTS so it's more manageable both for users and developers again. Luckly our SVN repo is in good shape still, so for the most part we're doing pretty well here. Debian as a whole also seems to be doing better at this, with lots of public svn repos springing up on alioth.

"It's mandatory to fail early. You need to know you're in trouble right away. That's essential when taking over an existing project or starting something new. You have to find out how you're doing within weeks. Not quarters, not months. The longer you wait, the more inertia the failure will have."

We're getting better at this, and I've sort of made it my mantra for this release cycle. Get things in to experimental as fast as possible, and then when I've fixed the majority of the bugs that show up there, put it in unstable as fast as possible. It worked out well for all the releases I've done so far and I'm going to keep doing it. Michel is really pushing me to keep CVS (or git as of Real Soon Now) snapshots from upstream in experimental, and I really like this idea and plan to follow through with it for this reason. This also echoes some of aj's ideas about speeding up development pace. Hopefully he'll implement them whether or not he becomes DPL, because I think they're going to be important for Debian as a whole.

"Dates are sacred."

We learned this during the sarge release cycle.

"The net result is that I've tried to find the happy medium where I generate weekly management reports on projects. A management report is something that is used to actually make a decision. Everything else is garbage. I've learned that when I haven't had management reports for a project, failure has resulted."

This is an interesting idea. It sort of echoes how I try and provide status updates on my blog, as well as the "Bits from" emails, but perhaps something more like this would be useful. I may try and play with this idea in the near future.

There's a lot more in there, but this entry already got way too long. Hopefully there's some food for thought in there for everyone who's interested in how Debian is run. The Debian development model has carried us very far, but I can't shake the feeling that we need to make some critical changes for it to continue. This will require a certain degree of boldness, but in order to fix the problems with the project I think we just need to clench our teeth and go for it. With that, I'll leave you with one last line from the above: "And if you decide to make changes, have the courage to go 100% with your gut. I've failed more than once when I watered down my convictions in order to appease dissenters. The only thing worse than evangelizing change and failing is looking back and realized you might have succeeded if you'd held firm on your convictions."

John Goerzen: Today's New Word: "Tuttled"

So remember Jerry Taylor, the man from Tuttle, OK that threatened to call the FBI on a Linux vendor because an unrelated hosting company had misconfigured Apache?

Well, this story is just getting funnier and funnier.

First off is this story from the Tuttle Times. It basically repeats Taylor's view that the CentOS people were expected to help him with his problem, and that he was somehow entitled to their help. But there are some funny tidbits in the story:

"Phone calls from across the country started coming in to the newspaper and city offices, and e-mails from Switzerland, Australia, Wales and England were received. Many of the web sites discussing the exchange are in foreign languages." I hate to break it to you, but Australia, Wales, and England all speak English.

(Ok, so they did switch from talking about email to web, but it still sounds funny.)

"In their search to find out more, web surfers discovered that the Tuttle Times online forums were hacked, and theorized that it was in retribution for the e-mails. Those forums, however, were corrupted several months ago, and the newspaper s now former web hosts did not repair it after numerous requests. New forums should be available at the Times site in the coming weeks." I'm so glad to know that your forums were merely corrupted for months and not hacked. Sounds like the IT problems in this town extend well past the city building.

Taylor said: "[CentOS is] a free operating system that this guy gives away, which tells you how much time he s got on his hands." Grumble.

Quoting Tuttle Mayor Paxton (trying to say what was more important than this): "We have issues with sewer. People here want better park facilities. They want a library." I think this has just validated every stereotype people have about Oklahoma.


Tuttle is more than 7 times larger than my hometown in Kansas, and yet my hometown has had a library for years.

Jerry Taylor also reported having 500 e-mails and numerous phone messages when he arrived to work Monday.

There's a new blurb on the Wikipedia page about Tuttle about all this. And in their talk page about the now-deleted article on Jerry Taylor, one person wrote: "Mr. Taylor's actions have coined a new term of art "Tuttled", in reference to the invocation of criminal consequences by one who is ignorant of the true situation. Since this is now a part of the English vernacular the story behind the term should be explained to give it an historical context. It is no longer about the action of a single person and an attempt to publicly vilify him, it is about a world-wide common experience of dealing with a Kafka-esque minor government official who, through ignorance, creates problems far beyond their normal sphere of influence. The page should be returned to the public."

The Register has two new stories about it. The first reports that Taylor has been interviewed by all sorts of media and says that he did the right thing. The second, Linux conquered, Tuttle man takes on London is a story about the grandson of the namesake of Tuttle, OK -- who happens to be the current US ambassador to the UK. This person is refusing to pay the regular London car fees. The mayor of London said: "It would actually be quite nice if the American ambassador in Britain could pay the charge like everybody else and not skive out of it like some chiseling little crook."

And finally, there's some incredibly funny photoshop work on this one over at fark.com (you have to scroll down a ways). Also, this comment:

"A small-town American politician wants a British newspaper to turn off the Internet.

Say that to yourself a few times. Please."

31 March 2006

John Goerzen: Something other than Drupal

I've been using Drupal for this blog for most of its life. However, I'm starting to be quite annoyed by several things:



So I'm planning to switch to something else. Something where blogging will be fun again, without all the hassle of tracking down spam. It looks like either Wordpress or Serendipity, and I'm leaning towards Serendipity for now.

30 March 2006

John Goerzen: Tuttle, OK city manager offered choice about being an idiot

I just read a story on The Register entitled Oklahoma city threatens to call FBI over "renegade" Linux maker. Quite hilarious.

Apparently Jerry Taylor, city manager for Tuttle, Oklahoma, noticed that the city's webpage wasn't working right. He got the default "test page" for the Apache webserver on CentOS.

Instead of calling the hosting company, he sent a series of vicious emails to CentOS, even threatening to call the FBI. The CentOS folks really went out of their way to help this guy -- he was not even their customer. And he repaid them by saying they should have helped him sooner.

Of course, there was the obligatory comment about being computer literate: "I am computer literate! I have 22 years in computer systems engineering and operation. Now, can you tell me how to remove 'your software' that you acknowledge you provided free of charge? I consider this 'hacking.'"

The Register story is hilarious, and the original discussion even more so because it includes a full transcript of the event. Favorite quote (to the city manager):

If you will not let me help you, or at least talk to someone who knows what Linux is, then you will look like an idiot.

Your choice.


Should anyone wish to write to the city manager of Tuttle, OK, to complain about his outrageous behavior, his e-mail address is citymgr@cityoftuttle.org. Assuming they have figured out how to properly configure e-mail.

He's probably not worth his $63k salary and with a personality like this almost certainly isn't giving his employees the "feeling that we're 'working together'" (see that link).

Sigh. Why do people hire a guy like this in the first place?

John Goerzen: Tuttle, OK city manager offered choice about being an idiot

I just read a story on The Register entitled Oklahoma city threatens to call FBI over "renegade" Linux maker. Quite hilarious.

Apparently Jerry Taylor, city manager for Tuttle, Oklahoma, noticed that the city's webpage wasn't working right. He got the default "test page" for the Apache webserver on CentOS.

Instead of calling the hosting company, he sent a series of vicious emails to CentOS, even threatening to call the FBI. The CentOS folks really went out of their way to help this guy -- he was not even their customer. And he repaid them by saying they should have helped him sooner.

Of course, there was the obligatory comment about being computer literate: "I am computer literate! I have 22 years in computer systems engineering and operation. Now, can you tell me how to remove 'your software' that you acknowledge you provided free of charge? I consider this 'hacking.'"

The Register story is hilarious, and the original discussion even more so because it includes a full transcript of the event. Favorite quote (to the city manager):

If you will not let me help you, or at least talk to someone who knows what Linux is, then you will look like an idiot.

Your choice.


Should anyone wish to write to the city manager of Tuttle, OK, to complain about his outrageous behavior, his e-mail address is citymgr@cityoftuttle.org. Assuming they have figured out how to properly configure e-mail.

He's probably not worth his $63k salary and with a personality like this almost certainly isn't giving his employees the "feeling that we're 'working together'" (see that link).

Sigh. Why do people hire a guy like this in the first place?

John Goerzen: Something other than Drupal

I've been using Drupal for this blog for most of its life. However, I'm starting to be quite annoyed by several things:



So I'm planning to switch to something else. Something where blogging will be fun again, without all the hassle of tracking down spam. It looks like either Wordpress or Serendipity, and I'm leaning towards Serendipity for now.

28 March 2006

Edd Dumbill: Ajax day finalised

I've got some exciting news about the Ajax Developers' Day at XTech, which is on Tuesday 16 April.  Ajax guru Alex Russell of the Dojo toolkit project will be delivering the day's keynote presentation. He's subjecting himself to a punishing flight schedule on our behalf, so I'm grateful that he's able to take part.

In addition, Yahoo! genius Simon Willison will be chairing the Ajax day. As well as delivering a talk on the Yahoo! interface toolkit, Simon will be marshaling the speakers and discussion so everybody gets the best out of the day.

Be there, or forever regret your old fashioned UI.

Uwe Hermann: People should not be afraid of their governments. Governments should be afraid of their people.


Voil ! In                                                       view, a humble
 vaudevillian                                                  veteran, cast 
  vicariously as both                                         victim and
   villain by the                                            vicissitudes of Fate. This 
    visage, no mere                                         veneer of
     vanity, is a                                          vestige of the
      vox populi, now                                     vacant,
       vanished, as the once                             vital
        voice of the                                    verisimilitude now
         venerates what they once                      vilified. However, this 
          valorous                                    visitation of a bygone
           vexation stands                           vivified, and has
            vowed to                                vanquish these 
             venal and                             virulent                   Remember, remember the 5th of November
              vermin                              vanguarding
               vice and                          vouchsafing the
                violently                       vicious and
                 voracious                     violation of
                  volition. The only          verdict is 
                   vengeance; a              vendetta held as a 
                    votive, not in          vain, for the
                     value and             veracity of such shall one day
                      vindicate the       vigilant and the
                       virtuous.         Verily, this 
                        vichyssoise of  verbiage 
                         veers most    verbose
                          vis- -vis an introduction,
                           and so it is my
                            very good honor
                             to meet you
                              and you may
                               call me
                                  V.
Yes, I've seen V for Vendetta today. Very impressing movie, highly recommended! Makes you start to think...

26 March 2006

John Goerzen: Tuttle, OK city manager offered choice about being an idiot

I just read a story on The Register entitled Oklahoma city threatens to call FBI over "renegade" Linux maker. Quite hilarious. Apparently Jerry Taylor, city manager for Tuttle, Oklahoma, noticed that the city's webpage wasn't working right. He got the default "test page" for the Apache webserver on CentOS. Instead of calling the hosting company, he sent a series of vicious emails to CentOS, even threatening to call the FBI. The CentOS folks really went out of their way to help this guy -- he was not even their customer. And he repaid them by saying they should have helped him sooner. Of course, there was the obligatory comment about being computer literate: "I am computer literate! I have 22 years in computer systems engineering and operation. Now, can you tell me how to remove 'your software' that you acknowledge you provided free of charge? I consider this 'hacking.'" The Register story is hilarious, and the original discussion even more so because it includes a full transcript of the event. Favorite quote (to the city manager):
If you will not let me help you, or at least talk to someone who knows what Linux is, then you will look like an idiot. Your choice.
Should anyone wish to write to the city manager of Tuttle, OK, to complain about his outrageous behavior, his e-mail address is citymgr@cityoftuttle.org. Assuming they have figured out how to properly configure e-mail. He's probably not worth his $63k salary and with a personality like this almost certainly isn't giving his employees the "feeling that we're 'working together'" (see that link). Sigh. Why do people hire a guy like this in the first place?

John Goerzen: Something other than Drupal

I've been using Drupal for this blog for most of its life. However, I'm starting to be quite annoyed by several things: So I'm planning to switch to something else. Something where blogging will be fun again, without all the hassle of tracking down spam. It looks like either Wordpress or Serendipity, and I'm leaning towards Serendipity for now.

24 March 2006

Jacobo Tarrío Barreiro: Be nice!

Be nice. A friendly reminder from your local Committee for Nice Behaviour. (Someone’s into vintage uniforms, and it’s not me. BTW, jacobo.age++ today).

21 March 2006

Andres Salomon: python and ruby

Martin pointed out something that I’ve complained about before, and was subsequently given the reason for (by piman, iirc). It makes sense, but it’s still kind of lame for usability purposes. Of course, that’s the python interpreter, not a front-end for users. What I really miss from ruby is something like irb for python. I don’t want a full-fledged IDE; I want a quick command line thing that can be spawned for testing code snippets, or for inspecting objects. I want it to support tab completion (it’s quite useful to be able to type “foo”.<tab><tab>, and get a list of all String methods). I’ve mentioned my desire for such a thing before, but no one’s ever pointed anything out. I just did a quick google search for “irb for python”, and discovered ipython. It seems to almost do what I want; “foo”.<tab><tab> doesn’t quite work, but x=”foo” and x.</tab><tab> does work. Nifty! Of course, it seems to have its own stupid exit behavior:

In [4]: exit
Do you really want to exit ([y]/n)? y
Yes, I really want to exit; otherwise, I wouldn’t have typed “exit”…

20 March 2006

Matthew Palmer: The Curse of the Podcast

Over the past week or so, I've decided to get around to listening to some of the "amateur" (in the same way that Open Source software is "amateur") podcasts that I've collected in the past couple of months (primarily so I can either archive them, or delete them and free up a bit of HDD space). As a great fan of radio, I've been pretty disappointed at the quality of the podcasts I've listened to. While I hadn't expected the BBC world service, there are a number of quite common mistakes I've noticed across several of the podcasts I've listened to. In the spirit of kaizen, I've noted down the really bad things that I've noticed, in the hope that someone who does a podcast, or is considering doing a podcast, might keep these simple mistakes in the back of their mind and avoid them. No podcast I've listened to so far has exhibited all of these symptoms (there's no way I would have gotten to the end of that hypothetical nightmare audio file) but most have exhibited at least one of these flaws. For a better general idea of how a good podcast might sound, listen to professional radio for a bit -- a lot of good shows are podcast themselves these days -- and get an idea of what a good show looks like. I'm also prepared to go further than just bitching about podcasts. If you do a podcast, and would like my (unprofessional but oh-so-opinionated) assessment of your podcast, please e-mail me at mpalmer@hezmatt.org with a link to your podcast, and I'll try to give it a listen and honest critique.

Jonathan McDowell: Nominet EGM

I was in Oxford on Thursday for the Nominet EGM. There were a variety of changes that they wanted to make and while in general the principle behind them seemed good the detail was a bit worrying, and I believe had been badly communicated. However I was still surprised to find that the vote was defeated; I'd expected a narrow victory. There are some more details on The Register, who were the only people to send someone I believe. What's scary is the percentage of members who didn't vote. Nominet has just under 3000 members. I wouldn't have said more than 60 people turned up to the EGM, and some of them were Nominet staff or multiple people from the same member organisation. Only 10% of members actually bothered to vote. That's quite a pathetic number. Even if you don't take on the view point that Nominet are a member run organisation (and I do and I think they work very well in general and try to do the right thing and promote good practises), this was a vote that would have given the board the right to modify pricing as they wished. Surely that's something you're interested in even if all you do is treat Nominet as a normal supplier? There's more to the changes than that obviously, but I would have thought price changes were something that might at least make beancounters sit up and take notice. Do you work for an organisation who's a Nominet member? Were you aware there was an EGM taking place? Did your organisation vote? Are you aware there's a PAB election starting from this Friday? Are you planning to vote? Have you ever been to an AGM? If not, why not? What about the members lunches? It's somewhat disappointing to see such a low level of member involvement. Nominet do seem to try to talk to people and get their opinions, but you have to actually turn up for that to happen...

19 March 2006

David Pashley: PostgreSQL User Administration

Over the weekend, I managed to revive my main desktop machine, which as spent the last 15 months turned off under a desk because it was showing some odd behaviour and didn't have time to fix it. I've upgraded it to the latest sid and given it to my girlfriend to use instead of the Windows machine she had been using. She appears to have fallen in love with tuxpaint. :) In the process of setting it up I discovered printconf, which automatically sets up parallel and USB printers under cups. Plugged in my printer, went to print in firefox and there was the printer. These things just get easier and easier. Gone are the days when you spent hours writing a printcap entry for your printer. One thing I would like is for DBus support in CUPS so I know when the print job has finished. Just finished writing an article on PostgreSQL user administration. Go read it.

Rapha&#235;l Hertzog: Revisiting the DPL team concept

I have not been very much involved in this year DPL campaigning, but I’m part of two DPL teams, thus I feel the need to give my point of view on the subject. I’m not really satisfied by how the current DPL team worked out, and being on the DPL candidate team of both Jeroen and Andreas gave me the opportunity to gather information on what really happened. Also I’ve met Bdale yesterday and he gave me his opinion as well (and I really enjoyed that dinner. Thanks bdale!). Just for the record, I’ll try to sum up what really happened: Branden had agreed to be a participant of the DPL team concept, but wasn’t a major proponent of the idea. This, combined with his personal problems, explains why he didn’t make use of the full potential of a DPL team. Does it invalidate the DPL team concept? No, I don’t think so because the concept will evolve this year. Let’s see how it can change. Both DPL teams would this year receive all the mails sent to leader@debian.org. This means that the members are involved from the beginning and not only on request of the leader, which means that they can pro-actively take over if they see that the DPL doesn’t manage to follow up up to its expectations (which hopefully won’t be needed this year). Furthermore I expect that the team would be informed of what the DPL does, so that the team can give its opinion on everything done, and prevent big errors (nobody is perfect, errors do happen). But the most important thing is that the team should not stand behind the DPL, but next to him taking initiatives, and I expect the DPL to work with the team members for the best of Debian. As such I expect the DPL to accept most of the proposals of his team if there’s a consensus on it, even if he doesn’t personnaly think that’s it’s a priority for his DPL mandate. If I am part of an elected DPL team, I will work on that basis. I do have many ideas to try, and will make proposals. I ran once for the DPL election, and if you check my platform, you can see that I always had ideas for Debian and you can see that I worked on several of them which are nowadays very common (such as the PTS, alioth, collaborative maintenance). I won’t miss an opportunity to get the project moving forward.

Erich Schubert: DPL elections

This year was the first time I think I watched the debate live, and didn't just read the logs. We had some fun in the discussion channel, and one question of mine was actually posted to the candidates. Unfortunately, I didn't manage to get my point across (the "size barrier" question, it wasn't about Debian not growing any more, but about wether we could need some structural changes - e.g. bugmasters, first-level supporters with some privileges, but not the full DD requirements - to use our resources (that is mostly the time of our developers, i.e. us) more effectively. E.g. by preventing flamewars somehow. I hadn't really made up my mind yet. But some trends are there:

18 March 2006

Christine Spang: Standing in Shock

Today, at 12 noon EST, I was sitting at my computer staring at http://decisions.mit.edu/, adrenaline rushing, pondering whether to click the magic button. At 12:01, I closed my eyes and gave in.
Dear Christine, On behalf of the Admissions Committee, it is my pleasure to offer you admission to the MIT Class of 2010. You were identified as one of the most talented and promising students in one of MIT’s most competitive applicant pools ever. Your commitment to personal excellence makes you stand out as someone who will thrive within our academic environment as well as contribute to our diverse community. At MIT, you join kindred spirits: scholars, builders, entrepreneurs, and humanitarians. We believe that you and MIT are very well matched for each other.
Tell me if that’s not the biggest adrenaline rush you can get from clicking a button. MIT, you will never be forgiven for that experience. Never. I spent the next half hour running around trying to find people to talk to. I could not type. I could not talk properly. I called people on the phone, I IM’d people, I tracked my Dad down and handed him a printout of the letter. I hugged him. He tracked my mother down at the door when she got home an hour later. Now that I’ve gotten over the initial rush, I’m actually sitting here laughing. Why? Because I was completely myself in my application. I think that’s all you can really do for these things. I talked about Shadows of Isildur in part of my admissions essay. I put Debian GNU/Linux work, roleplaying, and all my music stuff under my activities. I talked about my amazing real life friends when they asked what you do to unwind. I talked about the family building a giant kite from house wrap at my grandparents farm in the optional “tell us about something you have created” section. I can recall having a lot of fun writing up my responses. As for the rest, I have excellent grades, though only decent, far from perfect SATs (no 800s for me). My SAT IIs were better than my SAT I. My day has been made a thousand times over. There are so many people I need to track down and talk to, to say “thank you!” to. My alumnus interviewer. The two teachers who wrote my recommendations, and my guidance counselor. Various other people, some of whom I’ve already spoken to. I say again: thank you. Ironically, I was supposed to be in New York City this weekend, but the friend I was going with is very sick and the trip had to be cancelled. The very friend who has always told me “of course you’ll get in!” I love my friends. From all that I’ve seen so far, including posts like this and this which have some nice thoughts on the admissions process, I’m fairly sure that MIT is my #1 school choice. Apparently this year only 13% of all applicants were accepted, wow. I’m excited about hopefully attending their Campus Preview Weekend from April 6-9th to see what things are really like. Excitement.

Daniel Burrows: Windows stupidities

As I've had to use Windows on a daily basis, I've found that I am no longer able to maintain my air of detached tolerance for the foibles of the system. In fact, I'm starting to get really infuriated with the utter boneheadedness of so many facets of it. Not so much things that are broken, as things that are done badly, and done so in the face of widespread examples of how to do it right.

Here are two simple examples that are emblematic of what Windows users have to suffer through.

(a) Mandatory file locks.

On Windows, every access to a file, by default, acquires a mandatory lock on it. Want to recompile the program you're working on? Sorry, you have to track down and kill all its running instances. Want to read that file on the network server? Sorry, you'll have to run around the office and ask all the people using it to close it.

Last week I got an email asking me to unlock a directory on our local fileserver so it could be renamed. It turned out that I was running an acroread process to view a PDF file...and that locked the directory from being renamed. Because, of course, the universe would implode if someone were to rename a file I had already loaded into memory. This is, however, better than how shared libraries are treated; trying to register a new version of a shared library with the system (the Windows version of ldconfig) will silently fail if programs have the old version mapped into memory. WTF? No, really, WTF?

Windows users get around this by having tools to find out which processes have a file open so they can terminate them with extreme prejudice. This is considered normal and acceptable behavior for a computer in the Windows universe. After all, in the real world two people can't use the same document at once, so why should they be able to do so on a computer?

(b) C# events.

They've been invented many times. Signals, events, hooks, whatever you want to call them, they're collections of function objects that are invoked when some particular condition occurs. It's a great way to make it easy to connect together objects that don't know about each other, they're simple enough that your average CS sophomore could implement them in a half hour, and the concept is so obvious (besides having dozens of examples of working and deployed implementations) that there's no way to screw it up, right?

Wrong.

Now, C# is generally a somewhat clunky language, but this is nothing to do with that (I am not, for instance, surprised that it's cumbersome to bind extra parameters to an event in a language that has little support for higher-order programming anyway). No, this is one of those utter idiocies that just make you scratch your head and go what the *@&# were they on when they did that? You see, when you call an event with no attached listeners, C# throws an exception. Just, you know, as a friendly way of letting you know that you didn't connect to that event.

But wait! It gets better! In order to test whether the event has any connected delegates (the Microsoft term for a function object), you ... compare it to the null pointer. Yes, that's right. Every time you call an event, you have to do this:

if(Event != null)
    Event();


...because, of course, an empty collection of events is clearly the same thing as a nonexistant object.

I really wish I could be a fly on the wall at the meeting where this was decided. My imagination supplies a scene along these lines:


Scene: A smoke-free office somewhere deep in the sterile labyrinth of the Microsoft campus

Programmer 1: "...and we call this bold new innovation 'events'! It's a way for you to perform method calls without knowing which method you're calling. We've found that it's amazingly useful when doing UI programming. I'm sure that introducing this new idea to the world will be yet another chapter in the Microsoft story of advancing technology!"

Programmer 2: "Have you checked the corner cases? What happens if there is no method available to call?"

Programmer 1: "Oh, of course! In that case, the list of methods is null, so we throw a NullPointerException. We thought about adding an IsEmpty property, but who would want to look up properties on the null pointer? Besides, hardly anyone will ever want to create an event that might not get connected to."

Programmer 2: "Uhhh, sure, that makes sense to me."


...!!!?!?!?!

Daniel Burrows: So close, yet so far away...

So, thanks to Marc's helpful advice yesterday, I took another look at my power supply, and lo and behold, there was a second four-pin power cord that I hadn't seen!

Allow me to explain. In my previous post, I mentioned that I had been doing something "wrong" with the power cable. You see, the case we picked out (an Antec Sonata) has a 24-pin power cable of which 4 pins can detach for older systems. At first, I misread the manual and thought this was for newer systems, so I detached it and plugged it into the handy 4-pin plug next to the CPU. Doh. Having corrected that (without the extra 4 pins in the main plug, not even the fans turned on), I was under the further mistaken impression that the 4-pin plug on the motherboard was the backwards-compatibility plug. I did actually check for an extra 4-pin PSU connector, but I must have overlooked the one that existed.

In my defense, here's what the manual states about the power connector:


This motherboard provides two power connectors to connect ATX12V power supplier.

NOTE: This 24-pin power connector "ATXPWR1" is compliant to the former 20-pin type. Pay attention to the orientation when attaching the power cord. (Pin-11, 12, 23, and 24 should be left un-connected).

Note: It is recommended to connect to a power with 350W, 20A +5VDC capacity at least for heavily loaded system, and a 2A +5VSB capacity for supporting wake-up features.


Not exactly crystal-clear on what needs to be connected under what circumstances. The case manual is at least correct if you follow along carefully, and they even found someone who can speak the language. Unfortunately, this section is phrased in a way that's highly prone to misunderstandings, particularly if you have an incorrect idea lodged in your head to start with:

Connect the 24-pin Main Power Connector and the 4-pin +12V connector to your motherboard as needed. If your motherboard uses a 20-pin connector, detach the 4-pin attachment on the 24-pin power connector.


You have to read that quite closely to realize that there are two 4-pin connectors involved!


Anyway, so I can actually get the machine to post and boot. Unfortunately, it's highly unstable once it does boot. It runs for up to several minutes, but then exhibits various sorts of erratic behavior: freezing, spontaneous reboots, random error messages, that sort of thing. I've made sure all the cords are plugged in tightly and reseated a couple components (particularly the memory); about the only thing I haven't checked is the CPU+heatsink mess, which would be a real pain to disassemble and re-assemble.

Still, it's nice to make some progress. Maybe tomorrow I'll discover some other cable I forgot to plug in that will make everything work (hey, I can dream).

Next.

Previous.