Keeping my home directory in git

August 30th, 2008

I have kept parts of my home directory in a VCS for quite some time now. I’ve used different systems, currently I’m using git.

I use it to keep my scripts, configurations, aliases, and other small things in sync between the different Linux and Mac OS X machines I use.

My home directories all look about the same:

GNUstep/ bin/ etc/ html/ src/ tars/ .private/

Only GNUstep, bin, and etc are checked into git.

GNUstep/: Backgrounds, menus, widgets, dock apps, etc for WindowMaker, my current favorite window manager (though I am starting to play with awesome, and it is pretty awesome!).

bin/: Scripts shared across all machines. Sure, there are many things that are not required to in each different environment, but it is simple enough to stick them all in one place. Look at what I have in my bin directory! Scripts that should not be shared are usually a part of some other project, not in my bin directory.

etc/: All of my configuration files. Shared across all machines. Things that should not be shared or contain sensitive information go into .private/.

.private/: Private things like mail aliases, any passwords or keys that must be stored in files, and things that belong only on a single machine go here.

src/: My working area. If I’m working on a project that lives somewhere else, I’ll usually symlink it here just because my fingers really like typing src.

tars/: Cache of things I have downloaded. Every so often I clear out the old things I don’t need anymore.

html/: Pretty much everything else goes here. At work I keep as much public as I can, so any notes or patches I’m working on, todo lists, etc. end up here. Not checked into git, because it does not need to be synchronized, is always backed up using other methods, and should not contain things that change (otherwise it would be work and it would be checked in someplace else).

I only really use one script to keep it all working. I call it update-links it symlinks files from my ~/etc directory into my home directory. Some people do not like the extra symlinks, I like them because it makes the vcs-controlled dotfiles stand out.

References

Ethernet-connected dead man’s switch

August 25th, 2008

Take one of those big red switches, add wifi or wired ethernet, webserver and RTC.  Use rdate or openntpd or something to sync the clock.  Why do all of this? Call it a “I’m running late dead-man’s switch”. Push it in the morning after your shower, or maybe while you’re making breakfast. Slept in? It’ll let your coworkers know you’ll be running late today. If you’re pretty consistant, you could even calculate an estimated time of arrival based on when you pressed it.

Your lights are on!

August 25th, 2008

Take a picture of the license plate with your camera phone and send it to the “your lights are on” website.

The web service OCRs the license place (should be easy, right?) and one-way hashes it. Look up in the database and send a SMS/mail message/automated phone call to the owner.

You would have to register your license plate numbers and preferred method of contact.

Then, when I see your lights on somewhere, I have a way of notifying you. Of course many new cars have auto-light-shutoff features, this maybe is not so interesting. Maybe instead of “your lights are on” it could be “Hey, you’re parked in my spot!” or maybe “Hey, I’m towing your car”. Register your address and I can send you messages like ‘your sprinkler system is broken and flooding your yard’ or something.

The idea is to decouple having to know who owns or operates a thing with sending it a message, while also anonymizing  the sender.

Robotic driver

August 25th, 2008

There are quite a few accidents where a driver falls asleep at the wheel, or has some medical problem that causes the driver to loose control of the vehicle. Our technology is not quite good enough for a general autonomous vehicle but certainly it is good enough for an autonomous “slow down, pull over, and stop”. Even if it is not very smart, even if it just slows down in the middle of the freeway with its flashers on, certainly that would be better then veering into a car next to you, or on-coming traffic.Maybe the technology would not be so useful for passenger cars, but could be used effectively in trucks?

Of course all that is probably trivial to do. The hard part? Figuring out if the driver is incapacitated. Dead man’s switch? A camera that watches the driver, and makes sure his eyes are on the road?

How cool would that be, anyway. Monitor head movement and eye position. sound an alarm if you start to doze off.

Falling asleep a the wheel – http://www.drivers.com/article/680/

CMAN? CSAN? CCAN?

July 12th, 2008

I love make. What could be cooler then a generic dependancy tool? Even with it’s syntax silliness.  What I hate is that there is no Comprehensive Make Archive Network. I mean, how many problems have you solved with make? How many cool recipes have you written? I want them!

While we’re at it, what about the Comprehensive Shell script Archive Network?

Comprehensive Comprehensive Archive Network? Why should all of these projects have to invent their own archive network. How cool would it be to have solutions connected between languages. Wait, isn’t that what sourceforge and google code (and all of the others) about? Why do I hardly ever use them?

Things To Do In Prineville, OR

June 10th, 2007

My great-uncle Pat lives there, I’m trying to take my father up there
to visit!

Anything else?

Good Indoor Plants?

April 10th, 2007

I have a few, I’m looking for a few more. Something
that likes very low light, something nice and green.

Someplace I read that these were good indoor plants:

Tensegrity

December 9th, 2006

From Wikipedia:

Tensegrity is a portmanteau of tensional integrity. It refers to
the integrity of structures as being based in a synergy between
balanced tension and compression components.

Someday I will build something like this:

My Alpha 164SX

August 12th, 2006

Her name is nikita, and she isn’t quite alive yet. She is a 164SX with
128MB of non-ECC RAM. She is too loud for my apartment, when I can
lock it away in a closet I’ll find something for her to do. These are
some notes so I remember what to do next time I want to netboot her.

I was elated to find that I could netboot using the Intel 82559 that I
had. At various times I’ve had Debian and
NetBSD installed. NetBSD seems to be the
easiest to install.

Stolen from some DEC thing:
AlphaPC 164SX supports the Digital Semiconductor 21164PC Alpha
microprocessor that operates at speeds of 400, 466, and 533 MHz.

164SX Technical Manual

Netbooting

Boot using BOOTP:
boot -proto bootp eia0 -fl "console=ttyS0"

Boot (using BOOTP) into “interactive” aboot:
boot -proto bootp eia0 -fl "i"

Links

Some links about booting and the SRM firmware: