# Posts

• ## Universal environment variables with pam_env

One of the minor annoyances of working in Unix-land is the variety of ways to set user environment variables: .zshenv, .bash_profile, .profile, .xinitrc, and so forth. Depending on where you set them, your variables may be visible in interactive shells, login shells, X applications, or some strange mixture. Even worse is that some, but not all, environment variables are set when interpreting your crontab, so that has yet another set of rules you have to remember.

• ## Backpacking the Kaiser Loop trail, postmortem

My girlfriend and I backpacked almost the entire Kaiser Loop trail over three days, June 15-17 (we took the shortcut through Mary’s Meadow, shaves 2.1 mi. off the entire loop). We traveled the loop clockwise, which allowed us to split the elevation gain (nearly 3000 ft.) over two days. We camped at Nellie lake the first night (8900 ft) and at Line Creek lake (9800 ft) the second, climbing to the summit of Kaiser Peak on our third day before heading down the mountain. Since I’ve already covered a bunch of backpacking stuff in other posts, I’ll just briefly describe some things that I learned.

• ## Windows Protocol Handlers for Sysadmins

On Windows, it’s possible to create new “protocol handlers” so that URLs like ssh://hostname, telnet://hostname, etc. are recognized and launch some application (e.g., PuTTY). The only trickery is that Windows will pass the entire protocol string to the application (e.g., PuTTY will be launched with the command line putty telnet://hostname). For applications that understand the protocol prefix this is fine, but otherwise we have to employ a bit of scripting trickery to strip it off. Following this SO answer led to the possibility of using protocol handlers for all kinds of sysadmin things (the advantage being that protocol links can be embedded in wikis, Visio diagrams, hotsheets, inventory systems, etc.). As creating the required registry keys is a bit of a pain, I wrote regproto.js, a script for registering new protocol handlers.

• ## Backpacking: Shoes

(Updated June 8, 2016)

• ## Per-user customization of GTK2/3 themes

GTK2 and 3 both use theme to control the appearance of applications that use them. While an application can override the theme settings in various ways, there are also per-user (and even per-application) ways to customize their appearance and behavior.

• ## Buiding Grafx2 on Linux (Ubuntu) from source

There aren’t any instructions for building Grafx2 from sources on Linux (Ubuntu-derivatives, in particular), and although the process is not complicated or involved, I thought I’d document it, for posterity. Note that Grafx2 still uses SDL 1.x, not SDL2. If you try to build it after installing the SDL2 dev packages, you’re going to have a bad time.

• ## Processing: Locking the mouse

As part of an example for my game development students (all of my examples are in Processing), I needed to be able to get not just the mouse position, but mouse movement deltas, whenever the mouse was moved (I wanted to build an FPS-style mouselook system for them to play with). In some systems, you can access the raw offsets that are coming from the mouse, but Java (AWT and JOGL) are not one of those systems. Instead, the accepted method is to constrain the mouse cursor to the window, hide the mouse cursor, and then, every time the mouse moves, reset its position to the the center of the window. So long as the user never moves the mouse fast enough to hit the edges of the window, this will have the same effect as getting the raw data.

• ## The life, death, and rebirth of my laptop

The Dell Precision M4500, which had already given me so much grief died this morning. It was working fine last night, but this morning it would simply not power on; no lights, beeps, no indication of life at all. (I’m thinking motherboard; even though I got myself back up and running, I’ll probably order a replacement, just to get it working again so I can add it to my ever-growing pile of working-but-unused laptops.) Since this was my primary school and development laptop, it was imperative that I get something working.

• ## TeXLive, TLMGR, and Ubuntu

This is another nerd post, but don’t worry, it’s short. I ran into a problem updating my TeXLive installation, and all the solutions I found on the internet were misleading. Note that what follows only applies if you installed your TeXLive from the install script, not via your distribution’s package manager. In the latter case, the error described below is the intended behavior. (But really, in order to get the full use out of TeXLive you shouldn’t be using the repo version, as those tend to be both old and static.)

• ## Linux Mint on a Dell Precision M4500

A while back I replaced my trustworthy Thinkpad T61 with a Dell Precision M4500. The only problem I had with the Thinkpad was with Nvidia not liking external monitors. (It would restart X when an external monitor was connected, and then the external would be the default monitor. Any attempt to e.g., clone both screens or even to change the default back to the LCD panel would just crash X again.) Since that’s pretty much a deal-breaker for a teacher, I decided to “upgrade” to a Dell Precision. I wanted something in the same “mobile workstation” class, with a good (non-chiclet) keyboard and touchpad. But the Precision has been much more trouble than the Thinkpad ever was (although external monitors do work with reasonable reliability). I’ve been gradually working through the issues as I have time.

• ## Backpacking: Misc. Gear Reviews

Here are some brief reviews/comments on some of the gear I used, which weren’t worth expanding into an entire post.

• ## Backpacking: First Aid

First-aid, and the contents of one’s first-aid kit is a surprisingly contentious topic among backpackers. I’ve heard ultralight backpackers proudly state that their only first aid items are a few bandaids and a couple of alcohol swabs. I’ve heard the same UL backpackers suggest that if they need anything else, “I can probably borrow it from someone else”. Now there’s nothing wrong with spreading the weight around when you’re in a group, but if you are relying other people to unknowingly carry the things you might need, I’m not sure you can properly call that “ultralight”. “Explotative”, maybe. My feeling is that you can either be the sort of backpacker who’s always borrowing things (first aid items, repair tools, food, spare clothes, etc.) from others on the trail, or you can be the sort of backpacker who’s always loaning those things out. And I’d prefer to be the latter.

• ## Webscraping Job Listings

(Note that this post is going to be pretty technical. We’ll return to our regular programming of opinionated backpacking nonsense shortly.)

• ## Backpacking: Further thoughts

Some friends have asked questions about my trip, and I’ve thought up a few other things since last we met, so consider this a Part 2 to my earlier post.

• ## Gear Review: Deuter ACT Lite 65 Backpack

I carried a Deuter ACT Lite 65+10 on my backpacking trip. It has three large external pockets, two hip-belt pockets, and internal and external pocket on the lid, and the main cavity is divided into a sleeping-bag compartment at the bottom (accessible via a separate zipper) and the main compartment on the top. The two compartments can be combined by zipping away the divider between them. Mine weighs 3.8 lbs. and it’s red.

• ## Backpacking Food Reviews and Notes

My backpacking meals were a mixture of freeze-dried (courtesy of http://www.packitgourmet.com), “normal” food (like granola) and homemade.

• ## Backpacking: Seeing a man about a dog

Going to the bathroom in the wilderness is not a particularly complicated task, but it does take some foresight. It’s important to note that we have two semi-conflicting goals in dealing with human waste outdoors: