What He Tweeted for the week ending 2012-01-22

20120122.sunday   comments=nil   twitterings  

  • Sound travels quickly through the dense cold air we have this morning at -38C. Especially any sound that resembles a furnace malfunction. #
  • I want to end "What a huge _____!" in a complementary way. Turns out English doesn't have many nouns to describe a kind or generous person. #
  • The neighbour got locked out and warmed up in my place until the key cavalry arrived. -40C is the wrong temperature to lose the spare key. #
  • "And that's when we realized that we'd have to pull nine terabytes across the network each and every day." #
  • The clothes dryer element is fighting it out with the cold air seeping in through the vent. Go team StaticSox! #minus40nomatterthescale #
  • Misty, cloudy, sundog alert in #YXY If your power's out, step outside and have a gander. #
  • One advantage of an old-fashioned answering machine over voicemail: you can call home to see if the power is still on. #yxy #
  • On the bright side, I might actually get something done tomorrow. #sopa #blackout #
  • W00t! Reversed scrolling on Windows to accommodate my OSX Lion-trained fingers. Now to just scooch over the Ctrl key. http://t.co/EZ9maXNa #
  • Easy to be neighbourly at 40 below: I have to drive around the neighbourhood a while just to thaw the axle grease and round-out the tires. #
  • Dear brain, please discard all of the Mostek 6502 opcodes that you've got stored so that I have room to remember the names of people I meet. #
  • Did @cbcanewday just get hacked by Anonymous? Playing the Megaupload song now. #
  • How is this not a marketing campaign from @yukonbeer? http://t.co/7OrcF9VQ #

What He Tweeted for the week ending 2012-01-15

20120115.sunday   comments=nil   twitterings  

  • Tao of Server: "Server crashed." "Did you touch it?" "No." "Really?" "Only in a way that could not be the cause." "And so?" "It's my fault." #
  • Mac Lion at the office. Win7 at the College. Here I am, scrolling in the wrong direction with you. ♫ #
  • No way around it. I'm gonna have to write me some C code this morning. ;;; ; ;;;;; ;; (just testing my right pinkie on its semicolon memory) #
  • I've been bumped up a notch to French intermediate level 2 classes. Can't say things like "I was runned into she library tomorrow" anymore. #

What He Tweeted for the week of 2012-01-08

20120108.sunday   comments=nil   twitterings  

  • Spent some of the holidays putting together another simple Django & jQuery site. Man, that stuff is fun. #
  • Making a pot of honest-to-goodness brand-name trade-mark Kraft Dinner. A step up from no name fare. I'm like some kind of tycoon over here. #
  • First day back at the College gave good vibes. I even scored the window cube although I'm told a nearby heat vent explains its availability. #
  • Suggestion for a mobile app: Warns you of a meandering cabbie ride in an unfamiliar city by comparing your route to an optimal one. #

Reminders for setting up an alternate python-versioned Django site on a non-root URL under WSGI on Apache

20120103.tuesday   comments=2   propeller_beanie  

Lord help me, but that’s the title I’m going with. In case it’s not already obvious, you will not desire to read the following. Its existence is merely to document the tricky issues that some other sap (future-me, most likely) will encounter under a very precise set of circumstances, as enumerated in the title.

The first, and most frustipating, problem was getting mod_wsgi to use the proper Python libraries. Because I had to leave the stock Python 2.4 in place but needed 2.6 to run Django, it only dawned on me after many hours to re-configure and compile mod_wsgi with an explicit reference to the Python 2.6 version. Extra care is also needed to make sure that the other Python modules are built with the correct version and end up in the proper site-packages/ directory.

Don’t forget to point to the proper Python version in the manage.py file’s shebang.

The mod_wsgi documentation is a snap to read, but only once you understand it thoroughly. I eventually stumbled upon WSGIPythonPath (Edit: I meant the python-path argument to WSGIDaemonProcess, since WSGIPythonPath doesn’t work in daemon mode), which did make module inclusion so much more pleasant. The more you can do with Apache directives, the more simple becomes your .wsgi file. In the end, mine was just:

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
os.environ['PYTHON_EGG_CACHE'] = '/tmp'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Put the .wsgi file somewhere removed from your Django app directory. Somewhere that’s easily accessible to the httpd daemon, like DocumentRoot.

Running elsewhere than a web root is always dicey in Django. An extra complication is that WSGIScriptAlias gives you app it’s own root URL, but that nothing in Django knows this, so you have to adjust all links with a – preferably not hardcoded — root path that matches the WSGIScriptAlias’s setting. Same goes for STATIC_URL and ADMIN_MEDIA_PREFIX in settings.py, along with matching Apache Alias directives and Directory permissions.

Oh, and if you don’t include HTTP 404 and 500 error templates, Django won’t run in non-DEBUG mode. I kept seeing the error that it couldn’t load a 500 template and thinking that meant it was trying to show me an actual HTTP 500 error (of which I had seen plenty thus far) and couldn’t find the template to do so.

Finally, if you’re not running mod_wsgi in daemon mode, you’ll need to restart Apache after every source code change. I must’ve fixed the same problem five times in five different ways before I realized that all of my fixes had worked, but I was still viewing the old code running. Ay Caramba.

So that right there is how I spent about ten hours on New Year’s Day.

Twitter Weekly Updates for 2012-01-01

20120101.sunday   comments=4   twitterings  

  • It's a family tradition to give candy that you either detest or are allergic to as gifts: the recipient needn't worry about pilfering. #
  • Given a hot chicken 'n stuffing sandwich with home-fried poutine and gravy galore, I vote for skipping straight to leftovers next Christmas. #
  • Up before the dawn — not a challenging feat in late-December Yukon. #
  • Why are atoms mostly empty space? Simon Pegg assists in a very digestible explanation: http://t.co/mDx2RtBv #

2011 was the year too momentous to blog. 2012 will be more so, but I’ll try anyway.

20111231.saturday   comments=4   tickle_trunk  

Ferocious puppy, Linux to Mac, both Koreas with a side of mid-earthquake Japan, iStuff, kitchen and living room renovations, new Korean sister-in-law, visiting nephew, secret missions to Vancouver, too many College jobs to count (or file paperwork for), back spasms and nerve pinches, French classes, and on and on and on. Virtually all of it unblogged.

With the single exception of vowing to never bite my fingernails in the mid-80s, none of my New Year’s resolutions have ever stuck, so I won’t bother promising to post at a more regular pace in 2012. However, given the mass of material I’ve accumulated from this past year, and what’s expected to come, there’s simply no excuse not to.

September 11, 2011. Furnace Day.

20110911.sunday   comments=nil   north_of_60°  

It was an early start to furnace season this year. Less to do with the climate, I suspect, and more to do with getting older, colder, and maybe a little bit moulder. In any case, it’s nice to wake up to something better than 11ºC.

Lessons of a self-schooled laminate floor installer.

20110826.friday   comments=6   tickle_trunk  


Having already learned to install linoleum, carpet, tile, and decking, I must first admit that it was very wrong to have layered them in that order: carpet should always go on top of the tile, with but a subtle linoleum layer as the finisher. That’s the true secret to replicating bouncy castle foot-feel.

This year’s never-ending renovation project included a complete resurfacing of the bottom-most portion of the kitchen and living room. This time we chose laminate flooring, a high-pressure sandwich of wood-grain stickers, ballpark peanut shells, and refinery scrapings. Also sandwiches. Together with the look and feel of real wood, you also get the satisfaction of having reallocated a measure of the planet’s industrial toxin supply.

We chose a warm and cheerful interpretation of maple, but many other species are available: balsa, Dutch elm, baobab, and something new called OakALike®.

Installing laminate flooring is widely advertised as a novice do-it-yourself-er’s weekend project. And that’s true. It’s also true that a novice won’t do nearly as good a job as an experienced floorwright. As evidence, I submit exhibit A, the ground fault circuit interrupter that trips randomly when a certain electrical novice’s bathroom fan is turned off.

However, having now completed a full laminate installation with the aid of my able nephew, it is with no little authority that I proclaim the following hard-earned lessons.

  • Tap the rectangular puck thingy gently — always along the longer side, if possible — to avoid chipping the delicate top layer of the planks.
  • Always buy a few extra boxes of planks. Once emptied, you can use these to store planks with chipped edges.
  • Most laminate floors are “floating,” meaning that all of your careful measurements will be for naught after returning from your lunch break.
  • The spacers used to reserve an expansion gap around the perimeter are engineered to fall down if looked at, and will also chip the delicate top layer of the planks.
  • Your two most useful self assurances will be: “Oh, we’ll just put an extra piece of quarter-round moulding on that wall,” and “This’ll be a perfect spot for a throw rug.”
  • Planks are randomly assorted into their boxes, so when you randomly sort them as they’re removed, probability theory will reward you with a perfect, repeating, wallpaper effect.
  • The claw-like gadget used to pull planks tight from a finished end should ideally be employed only by people without fingers. That, or use a Nerf hammer.
  • Proper pre-location of floor register vents is essential to avoiding a rash of “guess holes.” You may simply have to resign yourself to bordering all registers with throw rugs.
  • Gaps that later appear between planks can be remedied by not looking at them.
  • A proper fine-bladed power mitre saw and table saw will produce the best cuts, but working the plank guillotine device loaned by the store is wonderfully cathartic.
  • A plank with a chipped edge can be recycled for an end piece, just not the end piece that you cut it for.
  • Careful measurement will always ensure that your last row of planks has to be cut to a width of 3/8ths of an inch.

As wrong as it seems to actually walk upon a newly finished laminate floor, try your hardest to do so. For the bravest among you, I even encourage a brief victory jig:

Not every floor installer is as cool as the dude with black socks and sandals.

Couch Begone!

20110722.friday   comments=3   tickle_trunk  

With every purchase of a house, you get a free couch.

Or at least the one time I bought a house, a decade ago, it came bundled with a couch. The Couch. I found it standing on edge in the kitchen, having been wedged into the ceiling by the moving crew after they realized that no angle, twist, or profanity could manoever The Couch out the door.

After some investigation, it seemed that the previous owner also acquired The Couch via a real estate transaction. The general consensus is that it came in through a window during construction in the Eighties. Either that or it was manufactured in situ.

While not entirely uncomfortable, The Couch was well known among our circle for its posture-skewing carriage. First-time sitters were often swallowed whole. Despite repeated amateur repairs, The Couch’s underpinnings had deteriorated past the point of a residential safety inspector’s condemnation.

Yet The Couch stayed put, surviving several – unnecessary, in my opinion – redecoratings and rearrangings.

The Couch finally met its end yesterday; a victim of long-delayed home renovation. Bent and broken, it was ushered past the threshold with one final, desperate squeeze.

Goodbye, old friend. You — but not the wiry tines that periodically threatened to puncture my backside — will be missed.

The [arbitrary date range] in Review

20110705.tuesday   comments=nil   tickle_trunk  

I’ve just now realized that I’ve been blogging for five years plus a smidge. So, this seems like an opportune time to look back over the two-hundred-and-then-some posts and update any stale announcements and also see whether any of my predictions have come to pass.

Apache and the case of the spurious permission snafu was hands-down the least interesting thing I’ve ever written on-line, and yet the problem it discusses keeps cropping up: as recently as a month ago on my new Mac desktop when I set up a local webserver.

Only slightly more interesting, but responsible for an astounding percentage of traffic to my blog, were these unnotable entries: The letter L. How do you spell that?How do you spell Queue?Here’s your damned Yukon Blackout Map Mashup.How to convert a website’s content into simple text files. (by far the biggest hit), The Making of a Simile., and I must confess that I can only follow the diagrammed steps to the Time Warp… (mainly from folks searching for Riff Raff).

Cheechako’s is still The. Most. Wonderful. Yukon. Web. Page. Evar. Just click and watch the awesomeness.

I still get most of my readers from Urban Yukon. The automatic link from Facebook or occasional tweet also seems to help.

My hot-and-cold relationship with Yukon College is cold at the moment, but scheduled to re-heat come September. I think it’s safe to say that the College will never, ever attempt to hire me again for a full-time or permanent position, and that’s okay by me: Back to work at school. Breaking a half of two rules.For the first time in many a year, tomorrow is not a school day., No, seriously. BIG-TIME IT contracting opportunities at the College.Perspective Shift, and Manager no more.

In the Burying The Lede category, I announced my marriage ninth on the list after eggrolls and meatballs.

Aside from the weather, I’m freakishly obsessed with my furnace: on, off, on, off, and on (with sparks).

Still waiting for the States to completely Jump the Shark. Mortgages haven’t completely melted down either.

I am still soapless after a year and a half with no apparent harm to anyone but Procter & Gamble.

I have predicted the future of Social Networking. Unless Google+ catches on. But what are the odds?

Ye olde safety razor is a pleasure to use and I spend maybe a quarter of what I used to on blades.

The Dyson vacuum is really amazing. It picks up everything and only needs a filter wash every few months. It’s too big to roll under most furniture, and the attachment hose is downright cranky, but otherwise it’s a shinbone happystance glazierino, pappy. (I’m fresh out of superlatives.)

See you in five years, ere the Eon of Robotic Hegemony and the 3.1th Coming of the CyberChrist.