This week I've been taking Python3 training at work: 4 days of
staying at home and concentrating on Python. The result? 4 days to
work on Python, sharpening my skills, and that's a good thing. The
lecture was not that hot, but what was useful was having the
exercises in front of me, waiting to be done and no distractions to
keep me from them. And after all that, the biggest difference I
notice between Python 2.7 and Python 3 is print "foo"
vs
print("foo")
. (Which shows you how much Python I know. But
still.) I finished the exercises a few hours early, so I spent the
time trying to solve the coding challenge we give new people at
OpenDNS. (I didn't get that one; instead, I got the "this machine
is borked in 12 different ways, please solve it" challenge.) This
has been a wonderful way to stretch my brain, and work on something
very very different from what I do every day. I wish work had the
same sort of course for Ruby and Go.
Have I mentioned that I've come to love Bandcamp? Lots of excellent music, and I keep finding lots of excellent music. I mean, really really excellent music.
Like Hairy Hands.
Or Mars, Etc.
Or Snail Mail.
Also on the music front, one really excellent station I've found is Popadelica.
But back to Python: despite the click bait title, O'Reilly's "20 Python Libraries You Aren't Using But Should" is wonderfully informative for this Python n00b.
I loved showing this video to my kids, demonstrating how bacteria evolve.
Set up a Tor node last week for the cause.
I was turned on to "Fisherman's Blues", by The Waterboys, in 1992 by a girl I met while working at a provincial park in Ontario. She was kind of a hippy (by which I mean she gave and received hugs freely), and I kind of had a crush on her (though she was quite honest about not reciprocating). "There's this album," she said, "that you should really listen to." So I did, and wah -- I was hooked. The opening chords of "Fisherman's Blues"; the men's choir shouting along to "World Party"; the whimsy and fun of "And A Bang on the Ear"; and the gorgeous, moving, tearful beauty of both "Sweet Thing/Blackbird" and "The Stolen Child" held me like few other albums have. I listened to it over and over and over again. I have fond memories of her for lots of different reasons -- she was an excellent friend -- but high among them is telling me about this album.
I've listened to other songs by The Waterboys, but never really got into them. Lots of people I know love "Whole of the Moon" but it never left me anything but frowning, unsure how something like that could come from the same band.
Years later I came across "Cowboy Feng's Space Bar and Grille" by Stephen Brust. It's a story about a band that plays Irish music in a bar that travels through space and time, and how they accidentally save humanity. It charmed me with quoted lyrics at the beginning of every chapter, with making a joke on the song "Raggle Taggle Gypsy-O" (covered by The Waterboys on their next album), with being funny and clever. Shortly after I met my future wife, we exchanged books; I gave her "Cowboy Feng", and she gave me "In The Skin of a Lion" by Michael Ondaatje. I felt seriously outclassed. I read her book, but it took me 'til the third and final part to really get into it -- but that just confirmed what a schnook I was, and how my choice of book was a poor one. She's dismissed that -- but that's how I felt.
I was harsh on myself, of course, and harsh on "Cowboy Feng." It may not be the best sci-fi novel ever written, but it holds a very special place in my heart. I love the way it focuses on small things, small details; yes, humanity has expanded to other star systems, settled on other worlds...but they have brought music with them, and it's something like what we have now, and it has evolved to nothing like we have now. People muddle on.
When my children were infants, I would sing, lullaby-fashion, "Fisherman's Blues" when I was trying to rock them to sleep. I don't know that it actually, you know, got them to sleep, , but it made me feel good. I think about that now -- about how much of what I do for my children, I do for reasons that move me rather than them. I think of articles I've read describing how artists deal with people who want to tell them What That Thing Means To Them, and how I still want to find Mike Scott and tell him about this.
Today I found out that there is a six-cd box set for The Waterboys' "Fisherman's Blues", with a metric crapton of outtakes, never-released and alternate versions. As a result, I spent an hour tonight trawling YouTube for live recordings of songs from that album, which apparently Mike Scott and Anthony Thistlewaite are touring/have toured. There are lots, of course -- the Internet is a big place -- and no lie, no exaggeration, I wept near constantly at the beauty of their performances and their songwriting.
I imagine them younger, at concerts I never saw; I imagine cover versions, some that might move me and some that will just piss me off, on planets I will never visit; I imagine showing my children these videos and them listening more or less politely, then wandering off to find their own songs; I imagine being old, possibly senile, and my eyes still lighting up when I hear that fiddle line from the title song.
I write these blog entries in Markdown mode, but markdown-mode in Emacs doesn't stick links at the end of the text the way God intended (and the way footnote-mode does). This is close, but not yet working:
(defun x-hugh-markdown-footnote (description)
"A Small but Useful(tm) function to add a footnote in Markdown mode.
FIXME: Not yet working, but close."
(interactive "sDescription: ")
(let ((current-line (line-number-at-pos))
(last-line (line-number-at-pos (point-max)))
(link (read-string "Link: "))
(link-number (x-hugh-get-next-link-number)))
(save-excursion
(if (> (- last-line current-line) 1)
()
(insert-string "\n"))
(goto-char (point-max))
(insert-string (format "\n[%d]: %s" link-number link)))
(insert-string (format "[%s][%d]" description link-number))))
(defun x-hugh-get-next-link ()
"Figure out the number for the next link."
(interactive)
(save-excursion
(goto-char (point-max))
(beginning-of-line)
(if (looking-at "\\[\\([0-9]\\)]:")
(eval (+ 1 (string-to-number (match-string 1))))
(eval 0))))
Right now it craps out with a "Wrong type argument: integer-or-marker-p, nil" when it runs x-hugh-get-next-link. Doubtless I'm doing a bad thing in my half-baked attempt to return a number. But still, close!
(UPDATE: I figured it out! To return a number, wrap it with
eval
. Fixed above. Working!)
(Believe it or not, I started out to write about Github and bioinformatics. Such is the life of the easily distracted.)
ObMusic: "The Balcony" by The Rumour Said Fire. Reminds me of 60s folk. I like it.
This is fascinating and wonderful listening: The Kleptones have put together a mixed tape of music similar to what Paul Simon was listening to while putting together Graceland. The Kleptones are awesome on their own, but this is incredible stuff.
Someone on Craigslist was advertising a free 8" pyrex mirror and polishing lap. Here's hoping I get it; it'd be fun to grind my own mirror.
A new Debian wiki page: "Why the name?" explains the origin of package/software names. Surprisingly interesting. Which makes me a nerd.