In the process of converting I’ve fixed a few broken links, removed several that couldn’t be fixed (Unmaintained Web Applications strikes again) and removed Google Analytics (sorry for contributing to privacy erosion for the sake of vanity stats).
It’s been fun (and occasionally cringe-inducing) to scan over the blog history while I was doing tweaks on the conversion to Jekyll. Knowing my history, I won’t try to claim that I’ll start updating the site regularly now, but I’ll probably make an attempt for a little while, at least.
]]>I’ve had a history of being very skeptical about technologies that I’ve later come to embrace. While this has inevitably lead to being made fun of by a coworker who’s been there to observe this trend, I’m confident that thinking critically about each new thing before accepting has been a good thing, and I’m sure that I’ve avoided countless wrong paths that I can’t even remember. To catalog my mistakes: I scoffed at XML, I constantly questioned unit testing, and I dismissed Ruby. I’m still skeptical about Ruby on Rails though.
I’ve also had a few successes. Though I’m certainly no visionary, I picked up on Hibernate, Spring, Maven 2, and EasyMock without going through a long period of doubt.
So, how do you know when to give a technology a try? Don’t say ‘experience’: experience is just a proxy term because you haven’t consciously figured out what your techniques are. Do you follow certain people you consider experts? I was certainly more willing to try Ruby after reading essays by Steve Yegge, but I’m still not looking to use Emacs. Do you prefer to take it slow, and wait for the bandwagon to get big enough before even looking at it? Are there times when you can’t skip ahead, because you first need to do things the hard way, to feel the pain that some new tool fixes?
]]>pick a random song from the top ‘x’
How to install a bookmarklet for those who aren’t familiar with them.
]]>Back to what I meant to post about so very long ago: Say Anything’s new self-titled album came out November 2009. It’s an excellent album. I was going to link to a track-by-track explanation of the songs that Max Bemis provided in an interview with AltPress, but apparently it’s dropped off the internet. Instead, I guess I’ll just say: check out the album.
]]>After “Ignorance”, the angry song getting play on radio (angry songs are always fun to get into and sing along with), “Brick By Boring Brick” is my next favorite on the album. After listening the song and going over the lyrics on Friday night, we watched Dollhouse, and the ending of the show reminded me strongly of one verse:
Well, if it's not real You can't hold it in your hand You can't feel it with your heart And I won't believe it But if it's true You can see it with your eyes Oh, even in the dark And that's where I want to be, yeah
While it doesn’t match the song overall (on Dollhouse, it wasn’t Sierra’s choice to be in a “relationship” that wasn’t real), the match up of Sierra recognizing her love for Victor even without any memory of him and “if it’s true, you can see it with your eyes, oh, even in the dark” connected to me. Especially as Diane and I had been discussing how much to read into the “even in the dark” part of the song (balancing the fantasy/escapism the song is against vs “true/real” dreams/faith).
We watched Gran Torino last night, which was better than I thought it would be. Now I’m looking forward to watching a football match (Arsenal v West Ham) and a football game (Dallas Cowboys v Atlanta Falcons) today.
]]>Rather than put that time completely to waste, I decided to prettify the archives section. Without JavaScript enabled, you get a linked list of links for each month of each year that I’ve published something. Now, with JavaScript, I transform that list of links into drop-downs for each year, where you can select the month within the year, and it will take you to the archive page for that month.
Now, for the code. First, on each blog page (via the template), I load my JavaScript file, and I load jQuery via Google AJAX Libraries API:
1
2
3
4
5
6
7
8
9
<script type="text/javascript" src="/js/main.js"></script>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('jquery', '1.3.2');
google.setOnLoadCallback(function() {
prettify_archives();
});
</script>
This runs prettify_archives
function:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function prettify_archives() {
var years = [];
$("#archives > ul > li").each(function() {
var year = new RegExp(/\s(\d{4})/).exec($(this).text())[1];
if ($.inArray(year, years) == -1) {
years.push(year);
}
});
years.reverse();
var html = ['<h4 style="margin:0;">Archives</h4>'];
$(years).each(function() {
html.push('<select style="width: 11em;" ' +
'onchange="document.location.href=this.options[this.selectedIndex].value;">');
html.push('<option selected="selected">' + this + '</option>');
$("#archives > ul > li:contains('" + this + "') > a").each(function() {
html.push('<option value="' +
$(this).attr('href')
+ '">'
+ $(this).text()
+ '</option>');
});
html.push('</select><br />');
});
$('#archives > ul').replaceWith(html.join("\n"));
}