| The Rock |
[29 June 2008|05:36pm] |
I haven't been posting my open water workouts -- too many to list this year, and I just haven't had the time -- but this morning's workout was notable: I finally make it to Blakely Rock today!

This is about a mile off-island; since we start in Blakely Harbor this makes the trip just under 2 miles one-way). You feel like you're in the middle of Puget Sound standing on the rock. I hope to get some pictures soon. In the meantime, here's an overview map to give you an idea where this is in relation to Seattle:
 Entry converted from Blogger
|
|
| It's the year 2008... |
[15 June 2008|11:22pm] |
Forget my flying cars. Why the heck can I still not print from Linux (more specifically, Ubuntu 8.04)?
I threw together a little applet to stitch together a Puget Sound navigation chart from NOAA (check out chart number 18449). This isn't acceptable for navigation, they say, but hey: I just want something to look at. I don't own a yacht, boat, or even a kayak; the extent of my water vessel ownership is owning a swimsuit and goggles...
It was a success; you can download it here, if you're so inclined. Anyway, now to print it.
Oh, god, the agony.
I tried Eye of Gnome first. I tweaked my printer settings a bit (I'm printing this to 13"x19" glossy paper instead of the normal letter paper) and hit print. The system starts puzzling over this for a bit (at least if the CPU usage bar is any indication) and then... nothing.
I open up the printer jobs viewer. It says the job is stopped with no indication at to why. That's strange. I cancel it and try again. Same result.
Ok, maybe EOG is flaky. I cancel the second job and start up Gimp (which, incidentally, is an exceedingly dumb and potentially offensive name for an image editing program, but I digress...). I change the settings again, hit print... and, again, minutes of thinking followed by nothing. I do the cancel/reprint/cancel/print a test page/reprint shuffle a few times, but all to no avail.
Hrm. Something is amiss. I check out the CUPS logs:
E [15/Jun/2008:23:11:10 -0700] PID 28099 (/usr/lib/cups/filter/pstoraster) stopped with status 1! E [15/Jun/2008:23:11:11 -0700] [Job 226] Job stopped due to filter errors. Well, that's interesting. But why is this pstoraster program failing? Any logs?
Nope, can't find them. But it turns out that pstoraster is a shell script which does attempt to print some logs out -- they're probably just going to /dev/null. I write a wrapper to send its output to /var/log/cups/pstoraster.log, try printing again, and see what I get.
Oh, joy. It's failing somewhere deep in the bowels of Gutenprint and Ghostscript:
DEBUG: Running /usr/bin/gs -dQUIET -dDEBUG -dPARANOIDSAFER -dNOPAUSE -dBATCH -dNOMEDIAATTRS -sDEVICE=cups -sstdout=%stderr -sOUTPUTFILE=%stdout -c - ... many lines of garbage deleted ... Error: /rangecheck in --image-- Operand stack:
Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1905 1 3 %oparray_pop 1904 1 3 %oparray_pop 1888 1 3 %oparray_pop 1771 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- 1809 1 3 %oparray_pop Dictionary stack: --dict:1149/1684(ro)(G)-- --dict:0/20(G)-- --dict:126/200(L)-- Current allocation mode is local Last OS error: 2 GPL Ghostscript 8.61: Unrecoverable error, exit code 1 DEBUG2: cups_close(0x685378) Catch all that? This will be on tomorrow's quiz.
How did I end up printing this? I fired up Windows XP in VMware Player, opened the image using an old copy of Paint Shop Pro 5 (which works well for 99% of my image editing needs), and hit print. Pretty map came out a few minutes later.
Seriously, folks: this is an embarrassment. You're making Vista look like a dream.Entry converted from Blogger
|
|
| Fly Derrie-Air |
[06 June 2008|03:17pm] |
Skinny? Flying to Philadelphia? Check out Derrie-Air:The magic comes from our one of a kind "Sliding Scale"—the more you weigh, the more you'll pay. After all, it takes more fuel—more energy—to get more weight from point A to point B. So we will charge passengers based on how much mass they add to the plane. Yes, it is a joke. Nonetheless, the media company behind this spoof actually did buy full-page adverts in Philly papers this morning.Entry converted from Blogger
|
|
| Seals, coming unglued... |
[06 June 2008|02:07pm] |
First, the coming unglued part: this was not my fault. (Actually, it wasn't anyone's fault, though working around the issue took a lot longer than it should have.)
But the more interesting part: I apparently have a new pet. There's a seal in Manzanita Bay, where we often swim, who has decided that I'm fun to play with. It was pouring on Tuesday, so we didn't have a support craft; instead, I had one of those lifeguard rescue tubes dragging behind me on a strap. The seal thought it would be hilarious to play with it and tug on the straps. Spooked me out the first time the came around. Eventually, it just got annoying.
Wednesday was another swim day, this time with a support craft. To my surprise, the seal still wanted to play even though I didn't have the tube with me. This time, it was mostly in the form of bumping against my feet and swimming below me (face up, just to show that he was a better swimmer or somesuch).
I am a bit worried that he's getting too comfortable with humans. That's usually not a good thing for wildlife. Ah well... all of our attempts to scare him off have proven unsuccessful. I guess we'll just have to live with him.Entry converted from Blogger
|
|
| I've been busy. |
[26 May 2008|01:45pm] |
It amazes me that using the Internet, which used to be a fun, diversionary pastime, is now a lot like work. When I do get a free moment -- which is sadly becoming a rare occurrence these days -- jacking in to the matrix (errr, surfing the web, that is) is down at the bottom of the list of things I want to do.
As a result, updating my journal falls by the wayside, too.
So... let's see. Last update was 18 April. Since then, I've:
- Gone to Maker Faire with Tamara and our friend Julie. It was a lot of fun. A few pictures I took of the gizmos are online.
- Started open water swimming in Puget Sound again. We've mostly been swimming in Manzanita Bay (here's an overview of a typical workout there), and there's a seal which loves to swim with us. Actually, it's the ladies he seems to like. Don't ask me how he can tell the difference (or even if it's a male -- apparently, his/her ability to determine interspecial gender is better than mine), but he definitely goes up next to them instead of the guys.
- Gone to Hobuck Beach a couple times. No pictures, sorry; I felt more like wandering than thinking about taking photos. I did get a nasty tire puncture hitting a sharp rock on highway 112 when returning from my first trip. That also prompted me to get my tires replaced; when putting the spare on, I noticed that the treads were much more pronounced. Oops.
- Built a BlackBerry application to make oncall life easier at work, called Sur Appels Sans Frontières (i.e. "On Calls Without Borders" -- yes, I know the French is atrocious, but it translated forward and back properly in Google Translator, so I'm sticking with it). This was part of a competition to build tools for others in the company to make their lives easier. The upside: I won the "Best Tool For Builders" category. The downside: They want me to roll this baby out (in my copious spare time, of course :-). I did get a nifty hard hat helmet/trophy (in keeping with our internal system builder website's Bob the Builder theme). I'll have to take a picture of that.
- Gotten completely inundated with operational issues at work. Ironically, while I was giving the demo of Sur Appels, my team was in the middle of dealing with a Sev-1. It also seems that the new database hardware we're getting has a bad issue with the storage controllers which causes the database to completely hang from time to time. In usual Amazon tradition, the engineers are being told to just deal with it, it's your problem, not provisioning's. That is, we'll spend a few million to work around the problem rather than a few thousand to deal with it directly. <sigh>
- Been househunting off and on. More off than on in the last few weeks. I hate the whole process. That's all I'll say for now lest this become an angsty rant.
And there you have it, in executive summary PowerPoint bullet form. Next slide please.Entry converted from Blogger
|
|
| It is snowing. |
[18 April 2008|05:10pm] |
Which wouldn't be unusual in and of itself except (a) it's mid-April, and (b) this is Seattle.
We're supposed to have our first open water swim in a couple weeks. I'm beginning to wonder about this.Entry converted from Blogger
|
|
| Maker Faire |
[18 April 2008|11:27am] |
Anyone reading this going to Maker Faire at the San Mateo Fairgrounds next month?
After two years of wanting to go but doing nothing about it, I'm finally plunking down the money to fly down and go. I'm usually reluctant to spend money on trips like this for myself without some other attached event (e.g., someone else is going, is getting married, etc.). I don't really know why I'm that way; I just am.
I'll be there on Saturday, May 3rd. If you'll be there, get my contact info and come say hi!Entry converted from Blogger
|
|
| I spent my weekend mostly naked. |
[13 April 2008|08:08pm] |
|
Probably more information than you wanted to know. But I was at the PNA/NW Zone swim meet, so I had an excuse this time. This was my first ever swim meet that I've actually swum in (I've spent others timing and running the computer). The King County Aquatic Center is nice. The competition pool is an LCM (long course (50) meter), dividable into various arrangements; for this meet, it was divided into two SCY (short course (25) yard) pools. It's 9 feet deep throughout -- no worrying about hitting your head turning in the shallow end -- and has waveless gutters. You could warm up during the meet in the dive tank -- 25 yards square and 17.5 feet deep. When you jump into it, you feel like you're just going to float forever downward. Anyway, I did the 1000 and 1650 ("swimmer's mile") freestyle events, and a relay event where I swam another 50 freestyle. I learned that I'm faster than I think I am, but still nowhere near as fast as I'd like to be. I managed a 15:13 in the 1000 (vs. expected 18:00), and 25:08 for 1650 (expected 29:00). However, I know that I was faster here than I am in my normal pool -- all those niceties plus the adrenaline rush add up. Entry converted from Blogger
|
|
| A decent web framework? |
[08 April 2008|12:03pm] |
I've been playing with a combination of CherryPy, Genshi, and Dojo to put together a website for a friend. So far, I've been quite pleased.
CherryPy is the request router -- it's responsible for cracking open the HTTP message and deciding how to process it. I have a few nits about it -- mainly documentation related -- but getting a webserver set up which did something along the lines of, "Route everything through Genshi except this path, which you should serve from the filesystem," was very straightforward.
Genshi is the first page framework which evoked a response from me of, "Hm, this could work," instead of, "God, I feel like I'm going to throw up." It uses an interesting approach: you write everything in XML and embed the programmatic constructs in the attributes. The rendering phase takes care of the transformation to HTML (or text, or ). For example, here's how you might render a table full of sliders for every integer or floating-point parameter:
<tr py:for="param in parameters"> <td py:if="param.valueType in ('int', 'float')"> <div dojoType="dijit.form.HorizontalSlider" id="${param.name}Slider" py:attrs="param.sliderAttributes" intermediateChanges="true" onChange="onNumericSliderChange('${name}')" /> </td> </tr>
I'm used to the frameworks which require you to escape any code. Genshi lets you do that, if you absolutely insist upon it:
<?python for param in parameters: ?><tr><?python if param.valuetype in ('int', 'float'): ?><div dojoType="dijit.form.HorizontalSlider" id="${param.name}Slider" py:attrs="param.sliderAttributes" intermediateChanges="true" onChange="onNumericSliderChange('${name}')" /> </td> </tr>
Dojo is a set of widgets. Not quite Google Web Toolkit, but it's simple and gets the job done.Entry converted from Blogger
|
|
| SpamAssassin's multiple personality disorder |
[04 April 2008|03:56pm] |
SpamAssassin has become a bit overly aggressive in its filtering as of late. A few of my friends' e-mails are getting sucked up in there, so I've had to monitor it a bit more closely.
Today, however, I found this gem in there. Clearly, it was conflicted as to whether the e-mail was spam or not, though ultimately it decided it was (and was correct in this determination). What amazes me is that, even with 12.3 positive points subtracted, this e-mail still scores as spam.
Content analysis details: (8.6 points, 5.0 required)
pts rule name description ---- ---------------------- -------------------------------------------------- 1.0 NO_REAL_NAME From: does not include a real name 0.1 FORGED_RCVD_HELO Received: contains a forged HELO 0.1 HTML_90_100 BODY: Message is 90% to 100% HTML 0.0 HTML_MESSAGE BODY: HTML included in message 0.5 BAYES_99 BODY: Bayesian spam probability is 99 to 100% [score: 1.0000] 0.0 MIME_HTML_ONLY BODY: Message only has text/html MIME parts -4.3 RCVD_IN_BSP_TRUSTED RBL: Sender is in Bonded Sender Program (trusted relay) [Return Path SenderScore Certified (formerly] [Bonded Sender) - <http://www.senderscorecertified.com>] 1.6 URIBL_SBL Contains an URL listed in the SBL blocklist [URIs: selleis.com] 3.8 URIBL_AB_SURBL Contains an URL listed in the AB SURBL blocklist [URIs: selleis.com] 4.1 URIBL_JP_SURBL Contains an URL listed in the JP SURBL blocklist [URIs: selleis.com] 2.1 URIBL_WS_SURBL Contains an URL listed in the WS SURBL blocklist [URIs: selleis.com] 3.0 URIBL_OB_SURBL Contains an URL listed in the OB SURBL blocklist [URIs: selleis.com] 4.5 URIBL_SC_SURBL Contains an URL listed in the SC SURBL blocklist [URIs: selleis.com] 0.0 MIME_HTML_ONLY_MULTI Multipart message only has text/html MIME parts -8.0 AWL AWL: From: address is in the auto white-list Entry converted from Blogger
|
|