South sails "over" a victorian house at Gibbs St & Pacific Highway on a rainy friday afternoon. And why was I taking this picture? Because I was walking home from work and the aerial tramway was just begging for me to take pictures of it.
A little over a decade ago, I wrote up some programs to assemble and pick apart mime-ified mail messages, because the standard mpack and munpack programs were dumping core on some spam messages I was trying to disassemble so I could feed them into my spamcatcher. The spec looked easy, so I thought it would be a trivial job to duplicate.
Well, it wasn't easy, but I eventually managed to bash the code into some sort of shape where it would split apart marginally formatted spam. And it worked on pell and compiled on some of my freebsd boxes, so I thought it was workable code.
And there it sat for many years, until this week; I was trying to disassemble some mimed mail at work (the copy of mutt I'm using there picks apart mimed mail UNLESS you forward the message, and then it presents you with unformatted mime poop to edit by hand. Ugh) and realized that none of the machines I had access to there (from rhel5 boxes to Alpha machines running OSF-whatever) had anything I could recognise as a demimer. I certainly wasn't going to worry about looking too far, because I knew that mimecode was parked on my website waiting for just this sort of situation. I ftped the code over to the work machine, compiled it, and it, um, did nothing worthwhile. (It found all the mime file fragments, created the filenames, and filled them with ^@ and linefeeds. Not a particularly useful situation, and I wondered what was wrong.) So I looked briefly at the code and realized, to my horror, that it suffered badly from the "Everything's a VAX" disease [with, in my case, "a VAX" being defined as Pell and Gehenna.] I set the code aside and picked the offending mail message apart by hand, then set aside most of my evening to go in and fix this horrible little wagon.
And it's (mainly) fixed, at least in the way that I can now properly pick apart mimed (and uuencoded) files on Pell, Gehenna, and my Macbook. And if I'm very lucky it will also pick apart files on the rhel5 box that was unhappy at work.
The new version of ravel and unravel have replace the -w option with -a (always write mime fragments to disk), the uudecode link now
understands the -o FILE option (write output to the named file), and you can set the prefix for unnamed files (-a option) by the -p PFX option.
It's still a bit of a bodge, but it's a bodge that runs on threefive systems now. So it's good enough to be New Code! at least until I do the next revision.
Update: and, hey, it built and ran on a rhel3 and a centos5 box without fuss muss or bother. This is good, because the macos/rhel3/centos5 trifecta covers much of the world of hideous mutations that makes up the modern UNIX™ world.
After all, why else would property prices in the cheapest major west coast city in North America suddenly shoot up? It's not as if anyone pays attention to housing prices in the other (2 to 3 times as expensive) major west coast cities, or if they would gravitate to a city where people making < US$170,000/year actually have a fighting chance to afford a house. No, no, it's gotta be the Urban Growth Boundary.
I've been planning on reworking my server room at home to go from two machines (gehenna [mail/files/firewall/gateway] + pacific [backup]: ~100 watts between them) down to one really energy efficient one (~25 watts) that does one all of the stuff of
the main server + has one level of backup (the old backup disks will go off
to the co-lo and be stuffed into gehenna so I can have some of my backups
The stumbling box was finding a case. Most of the server cases out there either assume that you're going to have a server packed with dozens of disks, are thin & deep pizzaboxes (I've already got a Sun 4 box sitting in the basement, thanks, so that's enough pizzaboxes for one house already), or have ports on them I don't want. Eventually I gave up (I did find some cases that looked nice, but US$200 for a 2u rackmount case is a bit pricy for me after buying the processor board, SATA disks, solid-state root disk, and berkshire watchdog card) and left the existing machines sitting there guzzling 72kwh/month.
About two months ago, I went into the local hardware store to buy some parts for an emergency hardware project and saw a stack of aluminum sheets and beams sitting over by the plumbing supplies. I didn't think much of them, but a few days later realized that if I was going to put my new server into a case I wanted, the sensible thing to do would be to buy some of that aluminum and make a case from scratch.
I went back to the hardware store, bought a stack of aluminum, took it home, cut and fitted some of the parts, then stalled out for several weeks trying to figure out the best way to fasten the thing together. This time wasn't a total easte, because I'd purchased a nice power switch and some steel grating material online and had to wait for it to get home before I could use it, but I still couldn't figure a good way to stick everything together. I thought about learning to weld and welding the case together (certainly the best way to get a nice sleek modern case, but learning to weld would take the project into the realm of the absurd), I thought about going steampunk and bolting it together with carriage bolts (but couldn't find any suitably small carriage bolts, and even if I could find them aluminum sheet doesn't exactly give off the appropriate MAD SCIENCE aura that good steampunk has), I even thought about using epoxy to glue the pieces together (no. just no.)
While I was thinking about what to do, I had to go back to the hardware store to get a 1/2 inch drill bit to finish another project (replacing a door that had torn out of the doorframe thanks to 100 year old wood shrinking enough to let the screws work against it; I needed the drill bit so I could drill out the holes, glue 1/2 inch dowels into them, then screw the door into those dowels. It's not a perfect solution, but it's better than just leaving the door off the closet) and, while I was searching for the bit I spotted a pile of pop rivet drivers.
Now that would work. I could use rubber cement to stick the frame members to the sheet, then pick up the assemblies, drill and rivet them, and Bob's your uncle:
This is, as you can guess, not quite finished. The elegant glued on pricetags are still to be peeled off and then I need to walk around the case cleaning off all the leftover adhesive from all of the other labels that the supplier stuck all over the metal. But this case is ~2u (it's actually 3.25" instead of 3.5" so I can put rubber feet on it and still fit it into a 2u slot) x 18" x 10", which gives me enough room to install a couple of disks, a mini-itx motherboard, the berkshire watchdog, and even have room for a fan if I get worried about airflow.
Oh, and I need to paint the inside black, because the on/off switch on the front of the case has one nice feature that doesn't want excess reflections around it:
It's a server, so yes, it's going to be tucked away in the basement. But it will be quiet (probably as quiet as the macbook I'm typing this on, modulo horrible hard disk induced vibrations which aren't going to happen because the hard disks are on a nice isolating rubber mat) and I'll be happier spending time down there (where I'll have a chair! And [eventually] a desk/drawing table! And a cat6 cable connecting the macbook to the little Linux box that's serving as my wireless router [a Netgear WRG54 running a 2.6(mumble) kernel and eating about 5 watts] so I can shovel large files to and from the file server without waiting for 50,000 years for the rsync to finish) when an army of cooling fans isn't going WHIRRRRRRRRRRR in the background. And the 1ghz C7 in this server is about thrice as fast as the 500mhz C3s that are in my current hardware, so I'll be able to do things like recompile kernels in finite time again.
It would be funnier if we were reading this after the Coward in Chief had been thrown into prison along with the rest of the stinking B*sh junta, but it's a start. I'm still not going to hold my breath waiting for the US press to follow suit; they're still run by executives who are convinced that there's going to be a "disaster" that will force the Evil Party to cancel the 2008 elections and thus don't want to do anything to offend our new insectoid overlords.
It's a 4-door electric tricycle. What could be more appealing? They claim a 40 mile range and a max speed of 40mph, which would be terrific for city driving (provided there was enough room to fit full-grown adults into it) and would let us leave the Prius for interurban trips. But I'd have to get a drivers license, and it would cost us US$4-500 (CAD $.50) a year to insure it, and I'd probably have to leave some of the driveway intact so we could stable it and the Prius.
But it's very cute in its shiny new arrest-me red paint scheme. I wonder if I could use it to haul structural beams home for the garage remodel?
If there's any argument in favor of re-enacting the thicket of regulations that used to fetter the media, this is it. As far as I'm concerned, it's a good reason to pull all of CBSes licenses, but it's possible that I'm being a bit draconian here, so I'd be happy if the media oligarchy was split into several thousand little squabbling competitors.
You'd think that, with the Democrats officially controlling the Senate, that this stupid proposal would have been quietly filed off in the inbox of the Committee to Investigate Radioactivity in Rocky Mountain Granite. But, no, it would be partisan to pass over an opportunity to have the US government offically threaten one of the groups that, um, helped the Democrats win control of congress in 2006.
Whatever. If this is what the Democratic caucus considers as "important" (while capitulating when the GOP even *THREATENS* *TO* filibuster every bill that starts to restore any dignity and honor to the United States,) they certainly don't need my money or support. I'll just keep stamping "S. 3930" on all of the "Pppppppppplease give us money so we can FIGHT THE REPUBLICANS!" solicitations I get from them -- at least then they'll actually see that I'm treating their soliciations with the respect they are due.
.. and while I was composing this post the exchange rate went up to US$1.004 before dropping down to just under US$1.00. So the Conservatives want to hitch their wagon to this lead balloon, eh? I suppose that with NAFTA this means that the Conrad Black-alikes of the world will be able to roll on in and buy huge swaths of, um, whatever this country still produces aside from torture and mercenary armies for pocket change. But other than that do you *really* want to be shackled to the sick man of North America?
When the € sits at US$1.40 and the CAD sits at US$1.00+, those cracks about Weimar America start to hit uncomfortably close to home.
In a fairly recent version of a commercial Linux system, the copy of cpio (which is, of course, FSF tentacleware) has a fairly awful manpage which shows the command line options, a few paragraphs describing how it works, and a long list of the options (including the utterly loathsome word options that the FSF -- an organization where nobody actually does any coding, I guess -- adores,) but no examples, authors, crossreferences, or bugs sections like you'd find in any well-written manpage. It's not a very good manpage, but this is a FSF product, so any sort of documentation, even if it hasn't been changed in *13* years, is better than nothing.
But this fairly recent version of the operating system isn't the most recent version. In the most recent version, they've changed the manpage to the much more useful:
GNU cpio is fully documented in the texinfo documentation. To access
the help from your command line, type
The online copy of the documentation is available at the following
And this from an organization that *leaps* upon new and dubious standards, crams them into their libc and cc (which isn't actually a C compiler unless
you tell it to ignore the tentacleware extensions,) then foists them off on the world with a prissy "Well! That's what the *standard* says and we must obey the standard!"
I'll be over here fixing the manpages you've "improved" in your attempt to be the B-list Microsoft. Don't mind the stack of unlinked inodes; I was just tidying up /usr/share/info with a bulk tape eraser.
UPDATE:Nroff is just so much fun. There's nothing quite like spending the day formatting FSF "documentation" back into nroff format.
In a just world, Tasers would be illegal and any police officer using one on a non-violent demonstrator would be immediately tossed into prison, along with their civil superiors who implicitly or explicitly encouraged the idea of attacking someone with a deadly weapon just because they weren't subservient enough.
I counted four police offiers here and one demonstrator. But the Taser was such a nice way to encourage the others, wasn't it? This is not acceptable behavior in a democratic country.
When I stumbled over the complete and total inability to compile rgrep on a rhel5 box last week, I did some fairly extensive hunting around to see if I could find a replacement that could be tweaked into looking like the baseline version.
Well, I couldn't. But while I was looking around, I also spent some time looking at the manpage and started to think "this doesn't look like it's that difficult to do; I should go and see if I can reinvent the wheel here in Chateau Chaos."
So, this Sunday I spent about 5 hours writing my own version of the code, and got it to work on my local MacOS box (and some FreeBSD boxes. Whoopee; MacOS is basically freebsd spliced brutally onto a Mach baseplate, so it should work there.) The regular expression code was not sufficient (it didn't include “?” or “+”) plus the regcomp() you find on the BSDs is not quite as non-featured as the regcomp() that's inflicted on you with gl*bc, so I spent about 3 hours tonight grabbing a copy of Henry Spencer's BSD-regex library, gluing in “?” and “+”, wrapping a configure script around it, and knocking it into shape so that it compiles on both FreeBSD and MacOS. (Due to d_namlen and using terminfo, it doesn't even come close to compiling on pell, so I have to actually make it portable when I've got the time.) But, even taking the lack of portability, the painfully slow BSD regex library (the FSF grep is approximately 5 times as fast as rgrep,) and not having it be portable to Pell just yet, it has actually become useful code that I can use to replace the doesn't-even-come-close-to-compiling SLang version of rgrep.
And since I did it on my own time, I can release it under a Berkeley-style license. So I did, and I am, and it's New Code! that you can use to make your system appear to be much much slower than it actually is.
Apparently it was *so* important to shovel another US$120 billion into the gaping maws of the friends and families of the B*sh junta that the (Democratic-controlled, ahem) congress didn't bother to think about some of the little surprises that got taped onto the porkbarrel funding bill. You'd think that the thing to do would be (modulo looking at the US$120 billion porkbarrel, then scraping US$20 billion off the top and dumping it into different government programs that actually make this country safer. Properly funding Medicaid would be a good start, of course, but some of that money could be used to do things like, um, hire enough inspectors to properly test Chinese toy/gadget/food imports for the dozen or so deadly poisons that have just sort of managed to come sailing in across the border unfettered by the iron hand of regulation) would be to take an erasor to the federal rule that limits payments to public hospitals (and, knowing the B*sh junta, ONLY public hospitals, because those for-profit privately owned hospitals can't be allowed to not get every available subsidy from the federal coffers. After all, if a for-profit hospital couldn't charge US$1100 for a bottle of aspirin, someone wouldn't be able to fill their swimming pool with gold ingots) instead of being "forced" to hunt around for another marginal (and by marginal, I mean "unable to bribe members of congress") group to put the boot to.
But that would make sense, and would involve a careful reading of the bill. And that would cut into the more-important job of pressing the voting button, then going to lunch with a insurance company lobbyist.
No d_namlen on struct dirent. Instead I get to use the more computationally expensive strlen().
No fgetln(), so I have to elaborately read characters into an internal buffer and kiss goodbye to any sort of optimization that stdio can
do with it.
regexec() only works on null-terminated strings. Which I don't
have if I'm going line-at-a-time grepping against a mmap()ed file. mmap() isn't a perfect solution to the problem of having to repeatedly read a file into memory (on my 512mb MacOS box, mmap()ing a 2.2gb file converts the poor macbook into an electrical anvil that is completely unresponsive to any sort of user input short of a nail through the keyboard) but on small files it's nice to have the vm system do the buffering for me.
It's an added hate that glibc doesn't #define REG_BASIC. FreeBSD has supported this (and being able to regexec() inside arbitrary buffers) for pretty much forever, but no, it's not a fucking standard because goddamn Linux doesn't support it and if Linux doesn't support it it doesn't really count these days.
(To be fair and unbalanced, I'll extend a special agnostic hate towards the rocket scientists who decided that basename(1) should treat filenames beginning with “-” as something special. I love it when “basename $0” returns
instead of just returning what $0 was, because it adds an additional layer of excitement to the obviously-not-challenging-enough chore of writing portable shell scripts. It's stunts like this that make me realize why so many people use p*rl.)
I found a little bug in postoffice this weekend that wasn't fatal or anything, just annoying; the bug was that if postoffice accepted a piece of mail without a Date:, From:, or Message-ID: it would add a new copy of the missing headers to the additional headers section of the control file every time it ran.
Even if those headers had already been added.
Now, it's not fatal to have a long list of repeated headers, but when I look at a control file and see a long line of
So I fixed it (trivially) by ripping the code that validates the headers (if
any) in the body of a message out and making it into a separate subroutine
which I can pass the additional headers section to every time I read a control
It's running on Pell right now, and has not detonated in any amusing fashion, so here's New Code! in the form of postoffice 1.4.3b (the b stands for "beta") or the closest approximation that I can do while using git as my SCCS.
The sun was shining right on the big old spider I photographed yesterday, so I decided I'd see if I could get a better picture with my super-slow zoom lens with a bit of light on the subject. While I was scrambling around getting a good picture, I saw a little bit of movement out of the corner of my eye and realized I was about 2 inches away from the web of an EVEN LARGER orb weaver.
Well, as least now I know for certain that some of the children of the really huge orb weaver that lived here two years ago decided that this was a good place to live. And that it might be a good idea to keep the cats as indoor cats, just so they won't follow the Cessnas to a horrible arachnid demise.
Looking south at the Tacoma St & 17th Ave intersection around 21:00 tonight. F1.2, 1/20th second exposure. Most of the blurring in the picture is because I took it from inside the car and the windshield has some grubby spots on it.
A silver-dollar sized orb weaver sits beside the front step, waiting for a fly, housepet, or single-engine airplane to drop in for dinner. I used my old Quantaray tele-macro lens to take this picture, and it's amazing just how little light actually makes it up to the viewfinder with such a slow lens. As soon as I win the lottery1 I'm going to have to (assuming that the US dollar is actually worth anything by then) frivol some of that money away buying some fast superzoomy macro lens so I can actually see the bugs I'm trying to get pictures of.
1: Or sell enough pictures to pay for one. I'm not holding my breath either way.
It is fortunate that a copy of Lions' Commentary snuck into print before Caldera had their Unix copyright stolen, because Dust Mite is too small to operate a xerox machine. Notice the complete and absolute lack of any sort of fancy typesetting here, and how the Commentary is perfectly legible without having thirty different typefaces and sizes splattered over the page.
"No sign it is ready to abandon diplomacy", eh? Considering that the B*sh junta wouldn't know what diplomacy was if it fucked them in the ass, all this statement can be read is that Gordon Brown intends to be the same sort of grovelling brown-noser that Tony "W" Bliar was. There's going to be no "choice" here; if Maximum Leader Genius decides to commit the USA to another round of Hitler-calibre atrocities, the neo-liberal government of the UK will follow obediently along like a well-trained lapdog (but this time they won't be alone; now that Canada and France have got neoconservative governments, they'll be tagging along as well, begging for a chance to commit some atrocities of their own just to prove they're part of the gang.)
In a (apparently unsuccessful. Sigh.) attempt to keep my weight and blood pressure down to 13 stone, I've taken to walking from the first bus stop on the east side of the Ross Island bridge (2.2 miles through Brooklyn and Sellwood) to Chateau Chaos. Today I decided I'd take a picture of one house per block or close approximation thereof, so people can see, more or less, the sort of zoning I walk through to get here from there.
Brooklyn starts out with a lot of apartment buildings, but rapidly converts to a collection of bungalows punctuated with more-modern infill (many of the lots in Brooklyn appear to have started as 100 feet square, so have been divided and had brand new houses put on the unoccupied side.) This residential area comes to an abrupt stop at Holgate, then (with one block of houses punctuated by industry and highways) becomes apartment buildings south of the 99e bridge, then, after a couple of blocks of mixed bungalow and apartment builds, falls into shops until the block where the big yellow house sits.
Now this is a Democrat that I could see giving money too. It might be too little too late (like some of the moderate Republicans in Oregon who tried to keep the state Evil Party out of the hands of the christopaths; I voted for some of them, but of course they were pounded flat by the kill all the gay people, then give me their tax refunds! contingent) but at least it's putting up some sort of battle against the rudderless stumbling of the DC caucus. It's not quite as ruthlessly efficient as stripping Lieberman (dfE-CT) of his committee seats and letting him scamper into the welcoming arms of the Evil Party,) but there's a time and a place for everything, and the Democratic Party is overdue for an Evil-Party-ish purge of the reflexive hawks and terminally spineless.
rgrep, which is part of jed, is the latest catastrophic failure in the porting competition. Since it's part of jed, it doesn't use curses (or, on Linux, the much-more-loathsome ncurses) but uses SLang. But that should be okay, right? I've installed slang-devel, so we should have all the crap we need to compile against that horrible thing.
Uh, no we don't. Jed won't compile because it can't find something called SLang_Error. And it can't find it because it's not in the copy of slang.h that is packaged into slang-devel. So I hunted around
the web and found a Cygwin port of rgrep that didn't include jed, copied
it over to the rhel5 build machine, and tried to compile it.
Nope, sorry, no good. rgrep didn't build because the SLRegexp_Type structure doesn't exist. And it doesn't exist because it's a typedef from a _pSLRegexp_Type structure, which isn't defined in any of the headers that are delivered by the slang-devel package.
How the hell are you expected to compile anything against SLang if the goddamn header files don't include the structures you need to successfully compile things with? Have all of the horrible internals been replaced by (spit) "thread-safe" versions so that anyone that wants to use code that's 5 years old needs to rewrite the universe, or has redhat simply cheerfully packaged up junk to sell to companies that want to pay the big bucks for a "enterprise-grade" operating system?
Q: .... The loss in blood, the Americans who are killed every month, how much longer do you think this commitment, this military commitment is going to require?
BOEHNER: I think General Petraeus outlined it pretty clearly. We’re making success. We need to firm up those successes. We need to continue our effort here because, Wolf, long term, the investment that we’re making today will be a small price if we’re able to stop al Qaeda here, if we’re able to stabilize the Middle East, it’s not only going to be a small price for the near future, but think about the future for our kids and their kids.
If you're the omelet-maker, who gives a damn about the eggs? 4000 dead American soldiers, a million or so dead Iraqis, or the approximately 3500 civilians who were actually killed by Al Qaeda and not by the unaffiliated resistance group in Iraq that Boehner (E-Mordor) is exploiting in this horrific little snippet -- none of them are important compared to the delicious gravy-soaked dinner that this horrible little apparachik is helping to prepare for the friends and relations of the B*sh junta.
"Investment", my ass. Even if this ghastly atrocity of unprovoked aggressive warfare was a real defensive war instead of the sociopathic snuff-film fantasy of a justly-hated dictatorship, it wouldn't be a goddamn "investment." It's a fucking sacrifice; those poor doomed soldiers and civilians have died so that the bloated plutocrats and depraved fundamentalist "Christians" who control the Evil Party can continue to live their lives of Caliguaesque decadence in the style they've grown accustomed to since the goddamn neoliberals and neoconservatives infected the public debate.
(And the Democrats are actually sitting down at the table with these inhuman scum? Oy.)
After at least 8 years, Saburo's has finally decided that it's time to actually advertise themselves. Not that they need to (I've been asked multiple times why people are hanging around in front of this mysteriously unmarked storefront, and they've gotten to be so popular that you (a) can't get takeaway there anymore or (b) order additional food if your first order wasn't enough [ha!]), but I guess that after 8 or so years, and after building a new addition onto the back for more seating, that the location is permanent enough so they can get a nice etched window sign.
The northbound Coast Starlight crosses 9th Ave at ~17:00 today on it's way to a (typically late) 17:10 arrival at Portland Union Station. This picture was taken with my new (old) f1.2 50mm lens with the *istDS set to everything manual (I started using the Pentax in full manual mode because the *istDS has trouble calculating sunny day exposure settings, and I'm keeping doing it because it's an interesting exercise trying to learn how to set aperture and shutter speed by hand.)
We went, as we usually do on Sunday mornings when we're in town, down to Milwaukie to make a pass through the Milwaukie Farmers Market to load up on fresh fruits and vegetables. While we were in the middle of our sweep, I heard a suspiciously close-sounding locomotive whistling for a crossing, and, after a brief "is that on the branch or on the main?" waffle, bolted off to a place where I could see whatever was coming. To my delight, it was a train on the branch, and for the first time ever I managed to catch a train coming through Milwaukie, even if the only pictures I got were taken at maximum zoominess.
Since the bears went into their anti-railroad phase we've not been going past the Eng!s down at the southern terminal of Portland Traction (now apparently the actual southern terminal, because the old switching lead at the paper mill in Oregon City has been disconnected and paved over.) But today we went down that route and spotted this new switcher (which, if I'm reading the paint scheme and reporting marks correctly, is an ex-CRANDIC unit) sitting in the shop yard. If this is a CRANDIC unit, it might be the one that was listed for sale on the CRANDIC's website this morning[nope: the one on CRANDIC's website actually says CEDAR RAPIDS AND IOWA CITY, and #91 has been unlettered for around a year now. Maybe it's #94 that CRANDIC is selling today?]
To complete my collection of superfast primes (all two of them) I bought an ancient used Pentax SMC F1.2 50mm lens, which arrived yesterday afternoon and immediately got stuffed onto my *istDS so I could get used to it. My main plan with this lens is to have something superfast that I can use to take concert photos with the next time I go to see a March Fourth! or Captain Bogg & Salty concert (I'd like to take my camera when The Best and I go to see the Mekons, but they might not approve of such a thing) but I've been taking pictures of all sorts of things to get used to a lens that doesn't have auto anything on it (not, of course, that manual focus is too much different from autofocus on the *istDS; I love my little SLR dearly, but it really sucks when it comes to focusing on things when it's not full daylight.)
When I unwrapped the lens and fastened it to the camera, Leo was sleeping on the sofaback in his traditional guard-cat role. So I had to wake him up to take a picture with the aperture cranked *wide* open just to see what it would look like.
And, yes, it's friday today. All die. Oh, the embarrassment.
After releasing postoffice 1.4.3last week, I sat down over the long weekend (while on vacation. Yes, it's geeky, but it was a very relaxing long vacation, so I was in a coding mood) and reworked and documented the new feature.
Version 1.4.3a revisits junkfilter= and modifies it in a somewhat less than backwards compatable fashion. junkfolder= is now the spam= option, which takes three values:
Bounce the spam back to the sender. You can specify your own "THIS! IS! SPAM!" message by doing spam=bounce:THIS! IS! SPAM!, otherwise it will bounce the message back with the built-in snarky diagnostic.
Accept the spam-infested message and treat it like a normal mail message. Postoffice will add a X-Spam header to the message so people running procmail will be able to weed the spammy things out.
This is the old junkfolder= option, slightly reworked. The first reworking is that spam will not be bounced if it's destined for a remote user (it will instead be treated as if you had set spam=accept,) and the second is that a path prefixed with a ~/ will be expanded to be users home directory/path. In either case, it is treated as a file redirection, with the same restrictions.
And, just to show that I've not been completely slacking off, I even documented this new code, so you've got no excuse to not dump those old sendmail, exim, postfix, and qmail installations and put postoffice in instead.
George B*sh and the Republicans in the Senate must believe in magic.
Even though it's clear that the "surge" isn't working, that the Iraqi government isn't progressing towards political stability and that Iraq is alreadt in a civil war, they want to believe that it's all going to somehow get better by September.
[It natters on in this vein for a while, then...]
Outrageous. But still the GOP blocks us.
Gosh, and there's just nothing the Democratic Party can do to stop the EVIL REPUBLICANS™, is there? As long as the EVIL REPUBLICANS™ are the majority party in the Senate there's not a single thing that the Democrats can do to stop their nefarious deeds.
Oh, wait, the EVIL REPUBLICANS™ don't actually control the Senate, do they? Why, look, it's the goddamn Democrats who control the Senate, and who have the power to shut down this illegal aggressive war by simply not funding it. But, wait, look at how those funding bills just float right on through the Senate as if they were a laxative. And it's not just war funding bills, either. The "go ahead, spy on everyone! We didn't need the 4th amendment anyhow!" bill just zipped right on through with the Democrats waving bon voyage to it.
And don't forget the 97-0 bill that all but declares war on Iran for something they aren't doing. You'd think that the majority party in the Senate (and that would be the Democrats, would it not?) might be able to say "uh, no, this is a pack of lies and we're not going to give Maximum Leader Genius any excuse to start a second illegal aggressive war. But thanks for playing!" but then you'd forget that the typical modern Democratic politician has been bred to not have a backbone and has been trained in a way that would make Pavlov a very happy researcher.
There is more to this letter, of course, but I stopped reading when I read "WILL YOU HELP FUND...?" because it's kind of hard to read a letter when I've wadded it up and thrown it at the wall.
Dear Mr. Schumer, might I suggest that if you're looking for big old contributions that you go to your fat-cat friends who are paying you to keep their lovely tax loopholes open? If I want to give money to corrupt amoral politicians, I'll just send it directly to the GOP because they don't even pretend to be good anymore. You -- and the rest of the spineless cowardly politicians who call themselves Democrats -- can just fuck off and die.
A lumber train headed by a pair of P&W geeps sits on the old Red Electric main around 158th st. It reminds me that I need to find some reason to take the #57 bus out to the westside sometime in the next couple of weeks so I can walk over to the 158th St overpass and see what the P&W leaves idling out there.
Forming a Consitutional Review Committee and completing the consitutional review.
Committee formed but amendments not approved by the Iraqi legislature and no referendum scheduled.
Enacting and implementing legislation on de-Baathification.
Enacting and implementing legislation to ensure the equitable distribution of hydrocarbon resources of the people of Iraq without regard to the section or ethnicity of recipients, and enacting and implementing legislation to ensure that the energy resources of Iraq benefit Sunni Arabs, Shia Arabs, Kurds, and other Iraqi citizens in an equitable manner.
3 of 4 components drafted; none being considered by parliament.
Enacting and implementing legislation on procedures to form semi-autonomous regions.
Law enacted; implementation scheduled for 2008.
Enacting and implementing legislations establishing an Independed High Electoral Commission, provincial elections law, provincial council authorities, and a date for provincial elections.
Commission law enacted and implemented; however, supporting laws not enacted.
Enacting and implementing legislation addressing amnesty.
No law drafted.
Enacting and implementing legislation establishing a strong militia disarmament program to ensure that such security forces are accountable only to the central government and loyal to the Constitution of Iraq.
No law drafted.
Establishing supporting political, media, economic, and services committees in support of the Baghdad security plan.
Providing three trained and ready brigades to support Baghdad operations.
Forces provided; some of limited effectiveness.
Providing Iraqi commanders with all authorities to execute this plan and to make tactical and operational decisions, in consultation with U.S. commanders, without political intervention, to include the authority to pursue all extremists, including Sunni insurgents and Shiite militias.
Political intervention continues.
Ensuring that Iraqi security forces are providing even-handed enforcement of the law.
Iraqi security forces engaged in sectarian-based abuses.
Ensuring that, according to "President" B*sh, Prime Minister Maliki said "the Baghdad security plan will not provide a safe haven for any outlaws, regardless of [their] sectarian or political affiliation."
Militia infiltration of some security forces enables some safe havens.
Reducing the level of sectarian violence in Iraq and eliminating militia control of local security.
Militias control some local security; unclear whether sectarian violence has decreased.
Establishing all of the planned joint security stations in neighborhoods across Baghdad.
32 of 34 stations established.
Increasing the number of Iraqi security forces units capable of operating independently.
Number of independent units declined between March and July 2007.
Ensuring that the rights of minority political parties in the Iraqi legislature are protected.
Legislator's rights protected; minority citizens' rights unprotected.
Allocating and spending $10 billion in Iraqi revenues for reconstruction projects, including delivery of essential services, on an equitable basis.
Funds allocated but unlikely to be fully spent.
Ensuring that Iraq's political authorities are not undermining or making false accusations against members of the Iraqi security forces.
Unsubstatiated accusations continue to be made.
The one thing I can't but help but notice about this report from the GAO is that even the things that the occupation government has "accomplished" aren't very much of anything. They've established committees and made sure that the rights of the members of the occupation government are safe, neither of which are actual activities that actually involve doing anything more than providing checklist items to make a total and complete disaster look pretty.
I suppose it is something that the occupation government has arranged to have Iraqi nationals in the "joint security stations" in Baghdad. I'd be more confident that this means something if not for the steady stream of reports claiming that the Iraqi nationals regularly allow suicide bombers to pass by their checkpoints and detonate against the US troops who are using them as shields. But in any case that's it for "accomplishments" from the latest Friedman in our illegal unprovoked aggressive war against Iraq.
And, to make matters worse, this damning report will be completely ignored by the so-called congressional governing party, which will -- if the last 10 months are any indication -- trample each other in their hurry to endorse the NEXT Friedman's worth of atrocities coming from the near east. After all, you wouldn't want to be beaten up by those 30 second attack ads while there are other unprovoked aggressive wars still to be lost.
echo remove-single-device x y z > /proc/scsi/scsi
echo add-single-device x y z > /proc/scsi/scsi
actually works because the marked-as-pre-beta code won't let you remove-single-device the disk containing an active filesystem,
don't assume that the no-longer-market-as-pre-beta 2.6 version will work the same way.
Because it won't.
The sysadmins might whine that "butbutbut we NEEEEEEEEEEED that feature and it used to work!!?!™", but when it gets right down to it the Linux core team doesn't care about your needs when it gets in the way of the 10 commandments of Unix (all of which are "The computer hates you") and will cheerfully pull this feature you rely on at the drop of a dime.
And it's not as if it doesn't make sense to pull this feature in the days of hot-plug; when your usb and firewire devices (which are all distressingly hotplug) are physically removed from the system, the teeny detail that you're still scribbling on the device (or, for that matter, that the device was your root filesystem) ceases to be important.
Personally, I'd think that given the history of Unix (see two paragraphs up, under "10 commandments of Unix") that the immediate response to a proposal of "we can just do a remove-single-device request on the root filesystem because it doesn't seem to remove the device on our test system" would involve screaming and trying to get to the other side of a distant ridgeline before the reactor goes critical.
We went to the Oregon coast for a three-day holiday this weekend. Once again, we stayed in a place where there was no net access, so I had to force myself to enjoy the holiday without net access.
I don't know if this counts as "enjoying the holiday", but I wasn't about to go up and poke one of these slugs to ask what's all this then? So I'll just have to assume they were getting it on in the traditional sluggish manner.