jc blog - tales of a modern-day nomadic hunter-gatherer

Follow jcomeau_ictx on Twitter This is the weblog of Intrepid Wanderer. You never know what you might find here; graphic descriptions of bodily functions, computer programming secrets, proselytizing for the antichrist, miscellaneous ranting and kvetching, valuable information on living off the land... if you don't share my rather weird interests you may want to try slashdot instead.

You can consider my Del.icio.us links an extension to my blog, as are my LifeTango goals and my other to-do items. My to-buy list is also public, but only for sharing any useful ideas that might be there; I'm not requesting charity, neither do I offer it.

You can find me easily in google searches, as jcomeau, jcomeau_ictx, or jcomeauictx. There are lots of other jcomeaus, but AFAIK I'm the only jcomeau_ictx out there so far.

If you want to comment on anything you see here, try the new Facebook comments, reachable by clicking the "[comment]" link at the end of each post. If for some reason that isn't working, go ahead and email me, jc.unternet.net. You know what to do with the first dot. Make the 'subject' line something reasonably intelligent-looking or it goes plunk! into the spambasket unread.

This RSS feed may or may not work. Haven't fiddled with it in forever. RSS Feed


in the process of troubleshooting a faulty SRS airbag controller, I finally figured out what that funny-looking bulb and module are behind the passenger-side headlamp: the cruise control servo and vacuum reservoir. behind the driver's side headlamp are the horns (2 of 'em, pointing different directions). still wasn't able to find the impact sensors. so what I did was to remove the metal diaphragm from the buzzer (chime); it doesn't solve the airbag problem — I'm guessing only replacing the clockspring will do that — but at least that annoying ding-ding-ding every left turn is now over. hope I didn't mess anything else up in the process; like every good mechanic, I had a couple of screws left over when done. they're now at the bottom of the glovebox, just in case.

easiest way to keep bread for a week or so without refrigeration: just undo the twist tie or that stupid plastic tab. by letting the moisture vent, the chance of mold forming is reduced to a fairly safe level. white bread tends to get pretty dried out, but whole grain, and especially sprouted, bread stays moist and palatable. sometimes it ferments a little, which is OK by me. [comment]


so my first "free market anarchy" experiment failed. nothing was sent to my bitcoin address and nothing showed up at my PayPal account either.

but that's OK. in fact, next time, if there is one, I'll put an explicit notice that after 3 days if the item remains, it's free. [comment]


got a spam from "myself" today. nothing is as it seems, apparently:

Delivered-To: johncomeau@gmail.com
Received: by with SMTP id fe6csp356767ldc;
    Sun, 28 Aug 2016 14:28:39 -0700 (PDT)
X-Received: by with SMTP id i184mr7755543wmg.35.1472419719323;
    Sun, 28 Aug 2016 14:28:39 -0700 (PDT)
Return-Path: <lztppracpfw@clearence.ford.rpgwatch.com>
Received: from canismajor.corpex-net.de ([])
    by mx.google.com with ESMTP id 202si9065024wml.77.2016.
 for <johncomeau@gmail.com>;
 Sun, 28 Aug 2016 14:28:39 -0700 (PDT)
Received-SPF: pass (google.com: domain of lztppracpfw@clearence.ford.rpgwatch.com designates as permitted sender) client-ip=;
Authentication-Results: mx.google.com;
    spf=pass (google.com: domain of lztppracpfw@clearence.ford.rpgwatch.com designates as permitted sender) smtp.mailfrom=lztppracpfw@clearence.ford.rpgwatch.com;
    dmarc=fail (p=NONE dis=NONE) header.from=gmail.com
Received: by mail.netbsd.org (Postfix, from userid 605)id 1B52285E9B; Sun, 28 Aug 2016 23:21:09 +0200
To: johncomeau@gmail.com
From: <johncomeau@gmail.com>
Subject: Breaking 2016 Blowout Sale
Message-Id: <25296844679886.B7Z9T2O0L@mail.netbsd.org>
Date: Sun, 28 Aug 2016 23:21:09 +0200
Content-type:text/html; charset=utf8;

aha! from netbsd.org, userid 605, right? easy! got the bastard!

not so fast... if that Received header was for real, why didn't Google get it from netbsd.org? besides, it rarely takes over 7 minutes to get mail from one server to the next. let's discard that header as forged, and look further.

lztppracpfw@clearence.ford.rpgwatch.com... is he the guy? probably not. that's just the envelope-from address, which can also be forged. however, the fact that the IP is permitted by SPF raises a red flag. let's look at the record:

jcomeau@aspire:~$ dig clearence.ford.rpgwatch.com txt

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> clearence.ford.rpgwatch.com txt
;; global options: +cmd
;; Got answer:
;; ->l;>HEADER<<- opcode: QUERY, status: NOERROR, id: 48558
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;clearence.ford.rpgwatch.com. IN TXT

clearence.ford.rpgwatch.com. 3599 IN CNAME johndist.bugs3.com.
johndist.bugs3.com. 14399 IN TXT "v=spf1 ip4: ip4: ip4: ip4: ip4: ip4: ip4: ip4: ip4: ip4: ip4: ip4: ip4: ip4" ": ip6:2a01:4f8:130:9147::/64 ip6:2a01:4f8:160:620c::/64 ip6:2a01:4f8:a0:11a5::/64 ip6:2a01:4f8:110:44e9::/64 ip4: ip4: -all"

;; Query time: 300 msec
;; WHEN: Sun Aug 28 14:52:07 2016
;; MSG SIZE rcvd: 503

so let's keep johndist.bugs3.com on the back burner, and keep looking.

Google got it from canismajor.corpex-net.de ([]). fire off a nastygram to abuse@corpex-net.de, right? nope. that's just how the sender's machine identified itself. also spoofed.

but, the IP address can't easily be spoofed; too many routers would have to be misconfigured, and that's not likely. the Whois (whois record shows the netblock belongs to ONLINE_NET_DEDICATED_SERVERS, headquartered in Paris, France, with an abuse address of abuse@online.net. and the reverse lookup of the IP (nslookup gives 163-172-206-148.rev.poneytelecom.eu., which might have its own abuse address. so I whois poneytelecom.eu, and it gives me an email for the technical contact as eurid-whois@bookmtname.com, and shows the nameservers as belonging to our old friend online.net. it also shows the registrar's address is www.bookmyname.com, which indicates the tech contact's address is likely misspelled.

it wouldn't likely do much good bothering the tech contact anyway. the best address to report the spam, if I even want to bother, is abuse@online.net. the bugs3.com domain mentioned above is a dead end, since the whois record for that is through a proxy. so is rpgwatch.com, likely the same miscreant.

this was just to give a little insight into analyzing email headers. it's a tricky process! and I'm not even sure I'm right. and even if I am, the guys at online.net probably get so many bogus complaints every day from people who can't analyze the headers correctly, that I'll likely be ignored.

still, it pisses me off to have people impersonate me. that's the 4th thing forged: the first Received header, the envelope-from address, the hostname of the machine that connected to gmail, and the From address. [comment]


found some info on PVA and used it, apparently to good effect, on my gelcoat repair of the hot tub. and according to this, a simple wipedown with water will remove the PVA. [comment]


when I passed through Putnam Plaza today, the stove had been moved but was still there. the test is going well so far. at least nobody called 9-1-1 to report a suspicious package. that would have been beyond disappointing to have them bring in a robot to blow the goddamned thing up. while ignoring the fact that there are over 100 thousand trash and recycling cans in the city and another few tens of thousands of cars, any of which could contain a bomb, and nobody would ever know.

so you think I'm overly paranoid? there aren't people like that, who would call the cops for any silly, unsubstantiated fear they might have? tell that to John Crawford III.

oh wait, you can't, because he's dead. [comment]


I want to play with some opengl stuff, but don't want to have to buy another powerful laptop, and this netbook can't run it. so I've been attempting to connect via vnc to an Ubuntu AWS instance. I'm following this tutorial except for using tightvncserver instead of vnc-server. had to open up both ports 5901 and 5908 on the firewall, because I tried twice and it used the different ports.

anyway, where it stands so far is that I can connect over the tunnel, but the desktop is empty. I mean, nothing clickable at all. [comment]


so my Android tablet was becoming less and less useful; couldn't install any new apps or update old ones, and Instagram was just failing every time I tried to post an image, no explanation except for the typical, useless popup "Unfortunately, [foo] has stopped.".

df showed there was plenty of space on the sdcard, but I suspected that it wasn't being truthful, so I searched for large files and found a bunch under /data/app. and an answer on this forum indicated it was OK to delete them. I ignored the later answer that said it wasn't. big mistake.

everything I deleted was stuff I wanted or needed except possibly for gms. things were crashing left and right. adb logcat showed I had majorly fucked up.

but then, magically, the download indicator went into overdrive. I forgot about it for a while, and when I checked again, apps had updated! Instagram worked again! and no more ENOSPC errors showing when running adb logcat.

but the updated MapFactor Navigator seems to have a bug. it kept recording, after my jog was complete, and counted my shopping towards the time. made it look as though I had walked. [comment]


wow, Autodesk Circuits is the shit! program an Arduino, for example, without having one, and you can watch a simulation of your program running on a virtual breadboard. this will hopefully enable me to bid on jobs I couldn't otherwise do. [comment]


end of an era. went to collect my gravity chair and other belongings from the hillside, as a developer recently bought that land and has been carting stuff off. I may have more of a Lockeian claim on the patch of earth under that oak tree than he does, but it's a moot point in the eyes of today's "law". [comment]


started rereading Ender's Game yesterday at the library, and went back for another fix today. of course I'm recognizing bits here and there, but mostly it's new to me again. I love that book.

my Ukrainian client unexpectedly paid in full today, and gave me a 5-star rating. he still didn't offer me a bonus to cover all the extra work he put me through while holding me hostage. I gave him 2 stars. had to warn other developers. but what a sense of relief. I didn't even want that job, but had made some bids earlier in the month, and since he accepted it I figured I'd be stupid to not take it. [comment]


with all this commotion about epi-pens, which by the way are being manipulated in price because of government intervention, why don't people who might need them just go buy a bottle of it from their local farm supplier, a bunch of syringes, and make up a few to have on hand? there could be an open-source-hardware project (or several) to come up with auto-injectors, or at minimum people could store the loaded syringe in a small foam-lined box to take with them.

I'm not absolutely sure all farm suppliers have it, or will sell to non-licensed veterinarians, but I'm betting it's not so hard to get it. [comment]


so today I got a ride out to Sebastopol to meet Steamboat Ed, and also was introduced to the wonderland of Bataeff Salvage, which among other things has the same lightweight foam wheels for which I paid $25 or so each at Friedman's, for $17 each.

by midafternoon was starving so with my last $1.29 I got the two-tacos-of-questionable-origin deal at Jack in the Box, then took the bus back to P-town.

no joy at West Marine. they had the hardener for $8, but no wax additive, so I might as well get what I need online for way less. I was given a little extra time to get the job done.

speaking of jobs, I've got a client in Ukraine for whom I completed a $250 job a few days ago, but he still refuses to pay because of his misunderstanding of what the SRILM toolset, particularly fngram-count, is supposed to do. he insists that the tags should be removed from the output by the program, though obviously they are not, so he blames me for not configuring the factor-file correctly. ordinarily I'd just cut my losses and write it off, but I don't want to do that this time. I want this fucker to apologize, and pay. or at least pay. it might have to go to arbitration. I don't know how good my chances are there. it all depends on whether or not the arbitrator knows something about the subject matter, or about programming. if he does, my chances improve tremendously. but if he's some dummy with a liberal arts degree, I might be screwed.



since a friend posted a tearjerker today about a baby in England all covered with scabs due, allegedly, to contacting chickenpox from some unvaccinated kid — and all his pro-vax friends joining in with "vaccines are 100% safe" and similar bullshit — I decided to post the VAERS cover-up article that Guerrillanurse wrote. how do I know it's true? I don't. but it has the ring of truth. it's not anti-vax. it is anti-ignorance. the chance of your child suffering a vaccine injury are much higher than that of your winning the lottery, but how many hesitate to buy that ticket every week? or bunch of tickets? and yet most people willingly subject their children to every fucking vaccine that the Almighty Government recommends. and like the "mum" of the scabby kid, wants to shame (or force) everybody else to do the same. [comment]


added 15 drops of my not-so-good MEKP to 10cc of gelcoat. again it wasn't getting noticeably viscous after a few minutes, so I just left the batch without applying it: something that's not overly painful with these microbatches. it was hard after I went to check maybe half an hour later, except it was still tacky on the surface. but my Facebook friend Matt says that's normal for gelcoat, it will still leave a fingerprint a day later. so I guess I'm good with about 5 times the normal amount of hardener. gonna try and finish the job tomorrow, then re-fill the spa and see if it holds water. [comment]


the brine-pickled carrots I've had going for several weeks are starting to get soft, as if they'd been slow-cooked for hours. big win. slow cooking is not something for a limited budget, particularly when the fuel, by my rules, must come out of my food money. [comment]


so I took the long way home, out to Lucky and Goodwill then back along Lakeville. when I hit that grassy area near Steamer Landing Park, I saw a jackrabbit hanging out by the abandoned railroad tracks. and I decided to persistence hunt it.

I'd done this before, in the desert, and attempted it once in Helen Putnam Park, but so far I hadn't been successful without the added help of an air rifle. I chased the little bugger back and forth, and I was getting winded but so was he. finally I'd had just about enough, but some youngish lady came over and berated me for bothering the poor rabbit. "he lives here." she must be from the dreaded RDL, the Rabbit Defense League.

got to step up my game. the dumpsters won't be overflowing with food after SHTF. and these do-goody meddlers will be hunkered down in their gated communities anyway. that damned rabbit is mine. [comment]


this saved me from the trying to overwrite '/usr/include/bits' problem: sudo apt-get purge gcc-multilib lib32z1-dev libc6-dev-x32 libc6-dev-amd64 g++-multilib gcc-6-multilib g++-6-multilib. I'll probably have other problems down the line, but at least apt functions again for now. [comment]


I've got to learn to stop using my hands and feet as hammers. left hand is pretty painful tonight. but it will probably heal; it always has. and someday this bad habit of mine may come in handy, if a mugger picks the wrong target. [comment]


got into poison oak late last week, I believe it was Thursday. we were weeding, and there was this one vine that looked a lot like Toxicodendron diversilobum, except it had some 5-leaf groups and in some cases the 3rd leaf was itself trifurcated. so while I washed my hands, I didn't take it seriously enough. it's on my left forearm, my dick, and other places, and it's still showing up in new spots so I must still have it on my clothes or other things. [comment]


wow, that was quick. went downstairs for one final check, and it had all hardened. I guess it just hardens non-linearly. I'll try another batch tomorrow. breathed enough of that shit already today. [comment]


attempted another 100ml batch of gel-coat. that from yesterday (or was it the day before?) had finally hardened in the mixing container but still had a tacky surface. this time, realizing the clarity of the resin indicated I had mostly styrene and not polyester, I shook the can vigorously to mix it. then I added 4 drops of MEKP instead of the 3 I had added to the previous batch.

it wasn't good enough. still hadn't gotten any more viscous after 10 minutes, so I added a few more drops of the hardener. 10 minutes later and it was still only semi-viscous. I'm about to give up. I guess the MEKP broke down over the 8 months it was sitting in storage. [comment]


so the client turned out to be an OK guy after all. He paid me $360 even though the product wasn't what he had in mind. very grateful. at least I'll be able to make the minimum payments this month on my credit cards. [comment]


I'm fucked. the job I had at Upwork was done according to spec, but the client didn't like it because he couldn't run it from the klunky, fucked-up AWS console. I just terminated it. I could have taken it to arbitration but didn't want that on my record. now I can't make my credit card payments this month unless I borrow from a credit card to do it. and quitting the job is probably going to ding my Upwork reputation so it'll be harder to get more work.

bummed right now. but I'll get over it. [comment]


was just cooking dinner on my camp stove, spaghetti and sausages for $1.69 at Grocery Outlet, and 2 cans of stewed tomatoes I got from the senior center handouts last Tuesday. only I forgot to stir the spaghetti, and didn't have any stirrer handy because the neighbor's dog keeps carrying away my bamboo utensils. so I tried to make do with a grater, but then I pushed too hard and the whole thing went crashing down. I had plenty of water handy and easily put out the flame, but the penny stove had fallen in the food itself and the bittering agent added to make the alcohol nonpotable ruined it completely. so now I'm out my planned dinner. I've still got food, thankfully, but without a grasping government I could have salvaged my intended meal.

without government there's always a chance that cheap alcohol will be toxic. only with government is that guaranteed. [comment]


this is even better, but the instructions are out of date: http://eliasbagley.github.io/ethereum/2016/02/14/getting-started-with-ethereum.html. [comment]


getting started with Ethereum, even though it seems others have already written Ethereum lotteries, as I always think I can do it better. I found this getting started tutorial and it's pretty good. once I've mined some testnet gas, I'll deploy a simple bot. then it's on to write the lotto, if I don't burn out on it first. [comment]


0341 here and I can't get back to sleep after getting up to pee.

an idea just popped into my head. I could write a lottery in Ethereum that pays out every hour or so. that doesn't cost anything for the ticket; the transaction fee would be the customer's only loss. that wouldn't fund any state racket. that wouldn't leave literally billions of pieces of paper waste per day on the streets of the world.

the payout algorithm would take into account the amount of the bid. let's say ETH0.0123 would count as 1230000 tickets. stack the blocks of tickets end to end, and generate a random number to index into the stack. there's your winner!

if it's coded right, there won't and can't be any cheating. and if it's not coded right, it will be easy for someone to copy and correct, and make a new one.

it's probably already been done. I haven't googled it, and honestly I've paid little attention to Ethereum, as I couldn't wrap my head around it. but this idea gives me something small and simple enough to start with. I might just try it. it could be my greatest gift to humanity. [comment]


so the AWS API call to create an HTTPS listener on an app's load balancer wants, for the SSLCertificateId parameter, the certificate's Arn attribute, not its ServerCertificateId attribute. now, that's intuitive. [comment]


fog coming through the Cotati gap for, what, the 7th night in a row? loving these cooler mornings. it still gets plenty hot in the late morning or early afternoon.

scored big at the food giveaway at the senior center this morning. I should be pretty much set for the next few days, except for meat. but then I have organic eggs, so I'm good for protein.

also got a head of broccoli and bag of oranges from the Grocery Outlet dumpster. but that's about all I find there lately, veggies and fruits. I cut off the tops of the broccoli and packed them into the emptiest of the 3 brine pickle jars I have going. there's kahm yeast in all of them but I'm not too worried about it. if it leads to mold, then I might have to throw some out.

making progress on the latest Django programming job, but it's a tough slog. the Elastic Beanstalk stuff adds a lot of complexity. but I might have found a way to set up environment variables using the .ebextensions folder, since it supposedly processes them in order. I use the 2nd one as a template, and fill in the variables with a container_command from the first one. it didn't work the first time because of a bug, but maybe it will this time. [comment]


one of the advantages of an extremely limited budget is that one does not buy what he likes; he buys what's on sale. and that can lead to some serendipitous discoveries, like this Pecorino sheep's milk cheese from Bulgaria, $3/lb, and Seattle International Baking Company white or whole wheat pita bread, 99 cents for 14 ounces, at Grocery Outlet. [comment]


what a week. mostly coding, with food procurement and preparation a distant second, or so it seemed anyway. probably still goofed off most of the time.

tested Zippo fluid (naphtha) in my penny stove. it worked, but too well. one time I spilled a little on the edge and it went whoosh! before settling down to a very hot, fast burn. I'll stick with the 70% ethyl rubbing alcohol, and as long as I cook during the hottest part of the day, it works well enough. made myself an omelet and a big batch of bulgur wheat with chia seed, the latter cooked in the chicken broth from yesterday's chicken backs from Whole Foods. waste not, want not. fat is my most important calorie source.

another month almost gone. soon it'll be winter in La Paz again, assuming I survive and everything else continues as before. the economic and political situation in the US and the world doesn't make anything too secure. [comment]

view blog for 2024-07
view blog for 2024-06
view blog for 2024-05
view blog for 2024-04
view blog for 2024-03
view blog for 2024-02
view blog for 2023-10
view blog for 2023-09
view blog for 2023-08
view blog for 2023-07
view blog for 2023-06
view blog for 2023-05
view blog for 2023-03
view blog for 2023-02
view blog for 2023-01
view blog for 2022-12
view blog for 2022-11
view blog for 2022-10
view blog for 2022-09
view blog for 2022-08
view blog for 2022-07
view blog for 2022-06
view blog for 2022-05
view blog for 2022-04
view blog for 2022-03
view blog for 2022-02
view blog for 2022-01
view blog for 2021-12
view blog for 2021-11
view blog for 2021-10
view blog for 2021-08
view blog for 2021-07
view blog for 2021-06
view blog for 2021-05
view blog for 2021-04
view blog for 2021-03
view blog for 2021-02
view blog for 2021-01
view blog for 2020-12
view blog for 2020-11
view blog for 2020-10
view blog for 2020-09
view blog for 2020-08
view blog for 2020-07
view blog for 2020-06
view blog for 2020-05
view blog for 2020-04
view blog for 2020-03
view blog for 2020-02
view blog for 2020-01
view blog for 2019-12
view blog for 2019-11
view blog for 2019-10
view blog for 2019-09
view blog for 2019-08
view blog for 2019-07
view blog for 2019-06
view blog for 2019-05
view blog for 2019-04
view blog for 2019-03
view blog for 2019-02
view blog for 2019-01
view blog for 2018-12
view blog for 2018-11
view blog for 2018-10
view blog for 2018-09
view blog for 2018-08
view blog for 2018-07
view blog for 2018-06
view blog for 2018-05
view blog for 2018-04
view blog for 2018-03
view blog for 2018-02
view blog for 2018-01
view blog for 2017-12
view blog for 2017-11
view blog for 2017-10
view blog for 2017-09
view blog for 2017-08
view blog for 2017-07
view blog for 2017-06
view blog for 2017-05
view blog for 2017-04
view blog for 2017-03
view blog for 2017-02
view blog for 2017-01
view blog for 2016-12
view blog for 2016-11
view blog for 2016-10
view blog for 2016-09
view blog for 2016-07
view blog for 2016-06
view blog for 2016-05
view blog for 2016-04
view blog for 2016-03
view blog for 2016-02
view blog for 2016-01
view blog for 2015-12
view blog for 2015-11
view blog for 2015-10
view blog for 2015-09
view blog for 2015-08
view blog for 2015-07
view blog for 2015-06
view blog for 2015-05
view blog for 2015-04
view blog for 2015-03
view blog for 2015-02
view blog for 2015-01
view blog for 2014-12
view blog for 2014-11
view blog for 2014-10
view blog for 2014-09
view blog for 2014-08
view blog for 2014-07
view blog for 2014-06
view blog for 2014-05
view blog for 2014-04
view blog for 2014-03
view blog for 2014-02
view blog for 2014-01
view blog for 2013-12
view blog for 2013-11
view blog for 2013-10
view blog for 2013-09
view blog for 2013-08
view blog for 2013-07
view blog for 2013-06
view blog for 2013-05
view blog for 2013-04
view blog for 2013-03
view blog for 2013-02
view blog for 2013-01
view blog for 2012-12
view blog for 2012-11
view blog for 2012-10
view blog for 2012-09
view blog for 2012-08
view blog for 2012-07
view blog for 2012-06
view blog for 2012-05
view blog for 2012-04
view blog for 2012-03
view blog for 2012-02
view blog for 2012-01
view blog for 2011-12
view blog for 2011-11
view blog for 2011-10
view blog for 2011-09
view blog for 2011-08
view blog for 2011-07
view blog for 2011-06
view blog for 2011-05
view blog for 2011-04
view blog for 2011-03
view blog for 2011-02
view blog for 2011-01
view blog for 2010-12
view blog for 2010-11
view blog for 2010-10
view blog for 2010-09
view blog for 2010-08
view blog for 2010-07
view blog for 2010-06
view blog for 2010-05
view blog for 2010-04
view blog for 2010-03
view blog for 2010-02
view blog for 2010-01
view blog for 2009-12
view blog for 2009-11
view blog for 2009-10
view blog for 2009-09
view blog for 2009-08
view blog for 2009-07
view blog for 2009-06
view blog for 2009-05
view blog for 2009-04
view blog for 2009-03
view blog for 2009-02
view blog for 2009-01
view blog for 2008-12
view blog for 2008-11
view blog for 2008-10
view blog for 2008-09
view blog for 2008-08
view blog for 2008-07
view blog for 2008-06
view blog for 2008-05
view blog for 2008-04
view blog for 2008-03
view blog for 2008-02
view blog for 2008-01
view blog for 2007-12
view blog for 2007-11
view blog for 2007-10
view blog for 2007-09
view blog for 2007-08
view blog for 2007-07
view blog for 2007-06
view blog for 2007-05
view blog for 2007-04
view blog for 2007-03
view blog for 2007-02
view blog for 2007-01
view blog for 2006-12
view blog for 2006-11
view blog for 2006-10
view blog for 2006-09
view blog for 2006-08
view blog for 2006-07
view blog for 2006-06
view blog for 2006-05
view blog for 2006-04
view blog for 2006-03
view blog for 2006-02
view blog for 2006-01
view blog for 2005-12
view blog for 2005-11
view blog for 2005-10
view blog for 2005-09
view blog for 2005-08
view blog for 2005-07
view blog for 2005-06
view blog for 2005-05
view blog for 2005-04
view blog for 2005-03
view blog for 2005-02
view blog for 2005-01
view blog for 2004-12
view blog for 2004-11
view blog for 2004-10
view blog for 2004-09
view blog for 2004-08
view blog for 2004-07
view blog for 2004-06
view blog for 2004-05
view blog for 2004-04
view blog for 2004-03
view blog for 2004-02
view blog for 2004-01
view blog for 2003-12

Valid HTML 4.01 Transitional

Valid CSS!