This Space for Rent

Jan 31, 2008

A day that will live in stupidity.

          YYY      YYY
          YYYY     YYY
          YYYY     YYY
          YYYY YYYYYYY
            B    B
         BBBB    BBBB


Three for the price of one.


Another picture taken through the filthy side windows of a high-floor bus. When I went home for lunch yesterday, the home-bound bus was racing North down the hill, so of course I had my camera out. When the bus reached the Ross Island bridge, I looked down and saw, in quick succession, Red/Blue waiting at Gibbs Street, Blue/Green turning across 0th street, and then North descending towards the OHSU super-expensive annex station.

The great locomotive race


When I was coming in to work this morning, the #70 bus passed the north end of Brooklyn Yard at exactly the same time as a northbound Yellow Menace freight. I had about 15 seconds to pull the pentax out of my purse and get a couple of pictures through the (exceptionally dirty) side window of the bus before the #70 turned onto Powell and diverged from the SPYellow Menace mainline.

It was not nearly as gloomy as this picture would seem to indicate. The high-floor busses that hold down route 70 have unbelievably filthy side windows, so this picture is taken through a thick layer of glass and an equally thick layer of road grime and caked on exhaust precipitate.

Jan 30, 2008

I wonder if anyone in the Democratic Party realized this was coming?

A few months ago, the (Republican-controlled) state of Florida (27 electoral college votes) decided to move their primary election up a few weeks, thus putting themselves into the limelight as a possible Republican Party kingmaker state, and, just by happy coincidence, to equally put themselves into the limelight by tossing a spanner into the carefully choreographed Democratic Party floating primary song and dance show.

The Democratic Party, predictably, rose to this bait like a starved fish and had a very satisfying (if you’re a Republican, that is) screaming hissy fit that concluded with a demand that “you put your primary back or you can take your 27 electoral votes and give them to the Republican Party!” (well, they didn’t say those exact words, but they threatened the state by refusing to seat any of their Democratic delegates at the national convention, which works out to pretty much the same thing.) This didn’t work too well, because the Florida Democratic Party doesn’t have the sort of scratch needed to set up, run, and deal with the inevitable legal challenges needed to do a completely separate primary.

This worked out well for Iowa and New Hampshire, but not so well for Florida Democrats, who were, understandably, somewhat miffed that the Democratic Party wasn’t interested in the 27 electoral college votes. But, despite all of this – and despite the idiotic mafia-style “you will not campaign in Florida OR ELSE!!!!” blood oath the party made all of its candidates take before the primaries started – a goodly chunk of the Florida democrats went to the polls and voted last week.

At which point, Hillary Clinton’s campaign realized that it might not be the brightest idea on the planet to tell Florida – the state which was a critical part of the coup back in 2000 – to go fuck themselves and their 27 electoral college votes, and started suggesting that it would be a good idea to seat the Florida delegates at the Democratic convention.

It’s a no-brainer, right? Pissing off the source of 27 electoral college votes was an incredibly stupid idea even for the Democratic Party in the first place, so a little bit of making nice might be politically advantageous as well as the correct thing to do.

Apparently not. Because this plan is being pushed by the Hillary Clinton campaign, which, at least according to the big dogs of the media (the press and the Democratic yellow press [weblogs]) is Pure! Evil! By! Definition! So there’s this huge wave of irrational hatred rising out of the weblog world, aimed directly at Ms. Clinton because she has The! Nerve! to acknowledge that the state of Florida exists despite the best efforts of the party. It’s pretty spectacular, and the tattered remains of the Republican Party (so, how is that whole business of supporting a usurper working out for you?) are probably down on their knees thanking Satan for this gift they’ve been given.

I’d been thinking that it would be better if Barack Obama won the Democratic nomination, because if Ms. Clinton won there’d be a lot of Democratic activists sitting out the general election. Now I think it would be better if Barack Obama won the Democratic nomination because if Ms. Clinton won it there’d be a lot of Democratic activists actively trying to throw the general election to the Republican Party. These people are, to put in bluntly, nuts. The Republican mouthpieces that talk about their imaginary “B*sh Derangement Syndrome” have it right about a derangement syndrome, but they attached the wrong name to it. People, understandably, don’t particularly like Maximum Leader Genius, but the depth of the loathing I’m seeing from the left aimed at Ms. Clinton makes the Democratic distaste for the Coward in Chief look like fervent declarations of love and devotion.

I wonder if anyone in the Democratic Party HQ stopped for even a second and considered the possibility that an attempt to disenfranchise Florida might cause this sort of reaction? I’d bet “not” – the Democratic Party, is, if anything, blissfully ignorant of much of the world outside of their navel.

I’m glad I’m not a Democrat. Voting a socialist ticket might be futile, but at least it’s not embarrassing.

Jan 29, 2008


From Ron Minnich @ the Plan 9 mailing list:

new w/gcc 4.3: “- The |constructor| and |destructor| function attributes now accept optional priority arguments which control the order in which the constructor and destructor functions are run.

woo hoo! Now is that signed? What’s the precision? 32 bits? Or can it be floating point?

I want priority 5! you get 6, dammit!

Just take 2pi as your priority. But I get e.

I suspect that somewhere in gcc-land someone made a bet that they could kill the C programming language absolutely dead within 10 years, and this is how they’re going to do it. The gcc people boast that they’re driving the C standards making process right now, and I’d certainly believe it given the flow of provably destructive features that is being pumped, like a deadly poison, directly into the circulatory system of the standard.

Perhaps it’s time to switch back to being a BOFH (or any other sort of waste management technician.) The pay wouldn’t be quite so good, but it would be very satisfying to not have to work within a computing culture that is starting to scarily remind me of the People’s Temple.

1 comment

Jan 27, 2008

Trainspotters and trainspottee


Percy chats with some lego Elvis-bots up at the workbench end of Thomas’s branchline.

Jan 26, 2008

Beware of the cats


Leave the bed unmade for even a minute and there they are, stopping you from pulling the covers up.

Nothing lost in translation here…

Propertiest with my heartiest with You! update Your Weblog is impress has never been sent to OLD email address Update your account! Importo bonus vinto: 99,00 euro! Outsourcing to go for a brand New Beginning Notifications! Act Accedi ai services on New Year has won $4.6M from eBay payment! NOTIFICATIONS!!! [20.12.2007] Diario Espirita Bezerra de Menezes! The Mood flash-wristband more printing payment! ESPETACULAR HAPPY NEW YEAR ATM PAST EFFORT?! consoling! For Your Account Accedi e verification! The Mood form! Notification has arrived! To the better! Ten inches longest of UD$4.7 million!!! YOU PLEASURE! offshore powerful as a man! This Information! Investment *! FOUNDATION OF BARRISTER FROM MARY JOHNSON! Original qlogic cards, ready to - Credit Union compare our servizi online Accounts Review Department Opportunidade. Secrets for your battles! acquiring and this is you embrace another new Message from the aggressive! Surround including! See your PayPal’s Service! New Year! Time to received a postcard! [24.11.2008] Diario Espirita Bezerra de Menezes! URGENT BUSINESS NEEDED FROM SENATOR MAHMUD BELLO! YOUR POSTAL ADDRESS! Misure information in prices on meds discuss the last and to ship, access has won $4.6M from eBay Regions of your request! The QualityStock OK!..10% Dcto. Hasta enviada nesta data : 11/12/2007)! Requires Attention! [07.01.2007] Diario Espirita Bezerra de Menezes! BancoPostaonline Bank temporaneamento! Warning the UK Lottery online - Message for printing a charge to meet you are ready at cheap prices for My Love Has Won!!!! OFFIZIELLE MITTEILUNG: 26 November 2008! the New Year 2008 To You! Federal! Your account! Come Relax with You! Ground-break for more inches longest of they find on your account has a questa data : 11/12/2007.5! It’s the best locations Security Measures! ESPETACULAR MODELO VIP EN LIMA —(PUBLICIDAD)— XQKNRTYBOP! The Dance_to_Registration. A very happiness &

I’ve been dumping incoming spam (at a rate of 50 pieces a day) into a spamfolder so I can catch the occasional reject, and I wondered what they’d look like if I edited them for clarity.

Well, they certainly didn’t lose anything in translation.

Jan 25, 2008

Friday Dust Mite Blogging™

Dust Mite Basket

Is it a lens basket that’s been contaminated with Dust Mites, or is it a Dust Mite basket that’s been contaminated with lenses?


New Code!

Postoffice has been rolled up to version 1.4.5c with change in the way I handle out of order RCPT TO: when postoffice has been configured to use sendmail filters; postoffice used to return a 501 error, then discard the contents of the RCPT TO:; it now accepts it with a 250, then discards it (this is the same behavior as if it accepted it and attempted to pass it to the milter, except that it doesn’t leave a milter zombie hanging around in the process table.

Oh, and I’ve tidied up the code in mf.h and mf.c so that I don’t carry around a set of “#define mf<foo>(x) 0” macros when milters are not configured. 1.4.5c now moves the stubbing into the functions; this is a bit of a kludge needed to make anal C compilers (and by that, I mean gcc) not whine about unassigned constants when postoffice is configured without milter support.

(Oh, and I’ve corrected the pointer in the wikipedia milter entry so it points to the correct place. But that’s not a code change.)

Jan 23, 2008

Picture of the day

The view (weather permitting) from the bus when I go home for lunch.

New Code! (the official 1.0 release with a new name! version)

Markdown, which has been renamed to Discount, has been rolled up to version 1.0. There are very few changes in this release – I cleaned out a couple of boundary condition problems, gave it a new name (under the logic of “it’s not a real open source®©™ program unless it has a clever name!”), and added support for <style></style> blocks so I can tweak the default css on a page by page basis (look at the webpage for “p-ching” to see how it’s done; that page uses php, but it’s still generated from a markdown document.)

So. yeah, it’s certainly New Code! And by now it’s fairly slow moving New Code!, so you might be able to hop on and off the train without getting your web pages converted into finely ground gruel.

Jan 22, 2008

Picture of the day


Incoming clouds over I-5 a week or so ago.

Jan 21, 2008

A masterpiece of the architect’s craft.


Every lego city needs one or two massively overbuilt Romanesque piles firmly anchoring downtown to the ground (and, as a special bonus, stripping the lego bins clean of white, light grey, and battleship grey lego pieces. This building was intended to be three stories, but I ended up piecing bricks together from plates before I had the cornice – this building occupies an entire 18\“x18\” baseplate – finished.)

Aerial Tramway photo of the day


It may have cost US$56 million. It may be designed to shuttle people between OHSU and the OHSU clinic for rich people. But it does make for nice pictures when I’m down at the Ross Island bridge waiting for the #19.

Jan 18, 2008

Friday Dust Mite Blogging™


Dust Mite visited MiMa today, but found it very difficult to get through the front doors.

1 comment


That’s what Tri-Met is claiming it will cost to build a trolley line from the south edge of downtown to just south of downtown Milwaukie. That’s, what, about a five mile line? US$280 million per mile for a trolley line that’s going to be following railroad rights of way for three of those five miles?

That’s pretty impressive. Is this the way that Tri-Met is going to say “eat it, jerks!” to the people who voted against the (far too expensive at US$70-100 million a mile) S/N line back 10 years ago, or do they seriously think that there’s no way to build a trolley line for less than 20× the cost that it took to build the original Gresham line 24 years ago?

Maybe it’s time for Metro to make sweetheart deals with construction companies that aren’t quite as rapacious as the existing ones? This would probably require that Metro fire Fred “kill fareless square to prevent crime in Gresham!” Hansen and the rest of Tri-Met’s upper management. If an excuse was needed, I think that proposing a US$280 million dollars a mile trolley line would be enough to defend a charge of “they were too incompetent to tie their shoes, let alone run a bus company.”

If I was in the City of Portland’s shoes I’d be saying “We’ll just take the share of the money we’d be putting into this project and use it to build another streetcar line down to Tacoma Street.” Because even if enough graft had crept in to double the cost of building a streetcar line, it would still cost less than the amount of coin the CoP would have to spend to buy into this turkey of a plan. (and it would probably leave enough money in the bank so that the CoP could set up a trolley line endowment to pay operating costs until gasoline costs reached the point where the line started to make money.

Jan 16, 2008

Trolley photo of the day (not dead yet! edition)


I spotted Red/Blue sitting at the OHSU super-expensive-doctor annex as the #19 went over the bridge towards home, so I had to get a picture of it to prove that I continue to exist on the mortal plane.

No, no, nothing is wrong. I’ve just been programming and haven’t had time to even keep up with the festival of atrocities that is modern politics, let along go out and post photos of the day.

Jan 11, 2008

Friday Dust Mite Blogging™


Dust Mite reads a book.

We hates it, my precious


It sits in the basement. It drinks diesel oil like soda-pop. And every year in january or february, it chokes on a tarball and won’t restart until we bring in a boiler repairman at the tune of US$200-300 (depending on whether we’re dumb enough to fall for a “service contract” or not.)

It’s January, so guess what’s happened? I believe this counts as what they call “the last straw” and it’s time for us to rip the bastard out and replace it with something that doesn’t contain anything as fragile and temperamental as an oil burner.

Jan 10, 2008

New Code! (oh, g-d, quit with the markdown, please! edition)

Markdown has been rolled up to version 0.9 with large wad of changes that I needed to put in to make it [mostly] pass John Gruber’s markdown test suite and to properly handle some of the other standard test warhorses. I’ve modified (but not documented – sorry!) the published interface, added new features like pandoc title blocks, worked over some of the more hairy parts of the code (see also: “refactoring with a chainsaw”,) and otherwise added to the bloatyness of the code.

The next release, modulo some horrible bug that has still to pop up, will be the official 1.0 release. All I need to do is document the published interface properly, write a “dingus” (a webpage that lets you type in markdown code and see what it compiles to,) and write the public functions that let you retrieve data from the header block.

I’m using it right now, so it’s possible it will even fail to explode. It’s here, it works, and it’s written in C, so what are you waiting for? Come on down and get your piping hot and chock full -o- (subtle) bugs New Code!

Jan 08, 2008

Cute baby picture of the day


Silas at Russell Street BBQ this weekend. No flash, no nothing, just the f1.2 50mm lens, my Pentax, and the ISO setting cranked up to the point where it has that olde timey feel to it.

New Code!

Markdown has been pushed up to version 0.8 after a few days of fairly massive tweaking. After I released 0.7.5 I went back and started thinking about how to do the markup for definition lists, and while I was thinking about it I thought of many other things that I wanted to get done.

The final code contained some fairly extensive changes:

  1. markup for definition lists is now supported, if enabled during configuration with the --with-dl-tag option. The new markup is ^=tag=$, with the list item – indented at least 4 spaces – beginning on the very next line.
  2. start writing public interfaces to get at some of the internals in the code.
  3. a sample “mkd2html” program that demonstrates the (still unfinished) internal interfaces.
  4. correct the order of <code> and <pre> in code blocks.
  5. properly inherit from the parent frame in reparse()
  6. add a parse tree dumper (dumptree()) and modify the markdown program to use it when passed the -d flag.
  7. Rip markdown.c in half; one half is the backend html generator, the other half is the tree builder.
  8. change mkd_text() and markdown() to return int
  9. write a manpage for markdown(1).
  10. completely rework the way whitespace is handled. It is now a paragraph separator, not a terminator.
  11. configuration cleanups to make it happier on more platforms.

The big new thing in markdown is, of course, the addition of definition tags. They need to be turned on when the package is configured (the --with-dl-tag option,) but once turned on are always available.

A definition list is =label= list item indented 4 spaces.

which produces the output

list item idented 4 spaces.

The label is treated as regular markdown text, so you can put images and links into the label. My home page (markdown source) wants this, because I want the labels to be the links and the descriptive text to just be descriptive text.

I’ve started pulling some of the internal functions out into the open, so I can get access to data structures during the compilation (I plan to make the footnotes list acessable, so I could do things like check the validity of footnotes before generating the output page, rewrite nonexistant local links to point at edit pages, and *poof* I’d have a wiki.) I’ve written a little demo program to demonstrate how this will work, even though the interfaces are still very fluid and will most likely change before the 1.0 release rolls down the pike, and I’ve expanded the markdown program (documented!) so that it can do a parse tree dump showing the structure of the input as markdown sees it.

I don’t think it’s ticking, but even with the possibility of it not being a catastrophic release it’s still good enough to be New Code!, and now I can turn around and aim my malign gaze in the direction of the horrible weblog program that’s had markdown wedged so inelegantly into it.

Jan 07, 2008

Welcome to hell.

Human rights abuses are not necessarily enough to keep Canada from sharing information with security agencies overseas, Ottawa tells a federal inquiry on torture in a newly released submission.  

(–the CBC)

And why is this important, you might ask?

Canada must maintain relationships with “non-traditional” allies, some of whom do not always treat people appropriately, in order to fight terrorism, says a government brief made public Thursday.

“The fact that a particular country may have a poor human rights record is not sufficient, without other compelling circumstances, to preclude the sharing of information.”

Really. And what exactly do you mean by “the sharing of information,” if I may be so bold as to ask?

It says some countries, particularly in the Middle East, will not recognize the formal rights of the other country of nationality, such as Canada. In such cases, even if Foreign Affairs can confirm that a Canadian who holds another citizenship is detained, “access to that individual may simply be denied.”

Ottawa filed the submission in advance of hearings next week at a commission of inquiry into the cases of three men who claim Canadian officials set the stage for their torture overseas.

“Set the stage” ?

“Widely and publicly available country reports indicated that torture was used regularly in national security cases in both Egypt and Syria.”

Yet, Canadian officials “sent questions to Syria, to be used in the case of Mr. Almalki, and sought to exchange information with the Syrian officials even after Mr. El Maati had informed (consular staff) in Cairo that he had been tortured during his detention in Syria.”

Ah. So these are Canadian citizens who have been arrested by thuggish police states, and then the Canadian government sends a handy list of “questions” that the torturers can use while torturing these Canadian citizens. Citizens who, the CBC cheerfully informs us, are:

… back in Canada and have not been charged with any crime.

Welcome to hell, Canada. Here’s your party hat, invitation to join the GOP, and bright red clown nose. I hope that 2% reduction in the GST was worth it.

(–via Creekside)

Jan 06, 2008

If I listen quietly, I can almost hear it eroding…

My standard of living, that is :

For the first time in more than 100 years, British living standards have risen above those of Americans, a report has declared.

Increasing incomes, longer holidays and “free” healthcare have all contributed to making Britons better off than our friends across the Atlantic, according to the respected Oxford Economics consultancy.

I’d say I’m shocked, but I’m not. I read the British papers, and their housing bubble has houses, even the ones in fairly shabby areas, priced at higher numbers than houses here, and their numbers are in £, which is running at slightly more than 2× the US dollar. If your bubble has regular houses selling for the equivalent of 1 million USD (and you’re in a state that’s not sitting on a huge puddle of oil that can underwrite this sort of extravagance,) it doesn’t say that much for the state that (legally) prints the US dollar.

At least it’s in nice symmetry with the collapse of our civil liberties and infrastructure. It would be terrible to have a functioning economy to go along with the bouncing baby banana republic the United States is becoming.

(via Sadly, No!)

Weapons of mass destruction


This innocent-looking little cake is actually a fruitcake; it’s a Jamaican Black Cake from the Moosewood Book of Desserts, and, like all fruitcakes, this little 8x8 cakeform contains approximately 40,000 calories of delicious cardiovascular doom.

It’s the fourth fruitcake I’ve made this season. Yummmmmm. If this weblog goes mysteriously silent, it’s because my circulatory system has leapt out of my chest and strangled me before I can make the next one (the “next one” will not be a black cake; the Moosewood cookbook mentions an Irish whiskey cake which I think I’m going to have to try if I survive this one.)

1 comment

Jan 05, 2008

New Code!

Markdown has been pushed up to version 0.7.5 by the addition of one new feature and repairing a place where it didn’t match the reference implementation.

The new feature is one of those trivial things I should have done in the first place, but forgot to think about – The text inside [] and ![] is now properly escaped, so that naked &’s and <’s won’t make it through to the outside world. I don’t know how many people will use this, but I’d certainly use &’s all over the place inside webpages and images if I had a way to do it without having to hand-expand special characters to make it work.

Repairing where it didn’t match the reference implementation was a harder, and more importand, thing to do. The reference implementation says that

* item

* item

should expand to


but markdown wasn’t doing that. I had to redo the first-pass of the translator to treat empty lines as paragraph separators instead of as paragraph terminators, then tweak the internal data structures to allow me to force in <p> as appropriate, which was a few exciting hours of sitting down with pen and paper trying to find the nicest data structure I could use to make it work.

But I did make it work, and so it’s New Code! that people can use. I’m already using it (annotations, since it’s an Open Source ®©™ project, wants to stick as closely to the bleeding edge as possible,) so it’s actually possible it would work for other people as well.

UPDATE: I’ve updated the New Code! since last night, because I wasn’t particularly happy with the way that the contents of title= and alt= were expanding. That’s been changed now, so title="Le G&acirc;teau Noir!" now generates a nice floaty “Le Gâteau Noir!” instead of the original garble.

If you want the â-mangling code, 0.7 is still out there and ready to mangle your embedded title=’s

Jan 04, 2008

Putting the atheism back into Christmas


XmasRussell_Calvin Xmasmavis XmasRussell+Silas_Delivery XmasRussell+Silas_Grandparents



Friday Dust Mite Blogging™


Dust Mite helps me work out how to display nested lists in my version of Markdown.

Jan 03, 2008

New Code!

Markdown has been rolled up to version 0.6 with the correction of a couple of annoying bugs (the markdown program would dump core if it hit a dangling list item or quoteblock), a tweak to the markup around headers, and the start of an automated test suite (run by “make test”)

There are no big spectacular additions (the way lists are fabricated needs to be revisited because the resulting lists are very densely packed, but that’s a feature for another day), but having markdown not dump core for mysterious reasons is worth updating the codebase and releasing some New Code!

Jan 02, 2008

New Code! (tm_mon can bite me, episode #n`)

cron has been rolled up to version 0.9 with the squashing of the now-becoming-traditional tm_mon goes from 0..11 instead of 1..12 bug, which I didn’t notice until the crack of the new year when cron just stopped running jobs.


Not running jobs would count as a bit of a defect in a program that’s designed to, um, run jobs. So I’ve fixed it, and now there’s some New Code! for people who were foolish enough to take a 0. release from tsfr.