So, I forgot my root password. For non-technical types, that’s pretty much the key to the kingdom when you need to get full access to a computer, or install new software, or to make backups, or to fix something in an emergency. I use this little program called “sudo” all the time that lets you do most of the same things except with your own password. I guess it’d been so long since I’d actually needed that root password that it just slipped my mind. Still, I felt pretty dumb and resigned myself to coming up with a new one and resetting it on all the computers I use.
So, this morning something came up where I really needed that password, and without thinking I picked up a keyboard and mashed it out. It worked. “Oh joy,” I though. “I’ll just do it again and pay attention to what I’m typing.” Except that try as I might, I just can’t type that password if I’m consciously thinking about it.
This has not improved my outlook on an upcoming birthday in the slightest.
In our household, a baby just ain’t a baby without an appropriately geeky birth announcement. And since Nick is mostly functional – I mean, he can’t exactly type yet – this one is in Lisp. Share and enjoy!
; This program forks(). That should be plenty for a few years' entertainment
; Copyright (C) 2007 Kirk & Jennifer Strauser
; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation, either version 3 of the License, or
; (at your option) any later version.
; However, the output of this particular instance shall remain
; exclusively licensed to the authors for a period of up to eighteen
; $Id: baby.lisp 4 2007-09-05 23:18:12Z kirk $
(defvar *birthtime* (encode-universal-time 0 20 1 1 9 2007))
(defvar *age* (- (get-universal-time) *birthtime*))
(defun hello ()
(format t "Hello, world! My name is Nicholas Arthur Strauser and this is ~
my ~:r day!~%" (ceiling (/ *age* 86400))))
(defun labor ()
((zerop (sb-posix:fork)) (format t "Ouch!~%"))
(defun wait ()
((< *age* 0)
(sleep (- *age*))
(setf *age* 0)