You can kill the background for speed, if you wish.[x]

Friday, December 18, 2009

What I learned from the xkcd effect

It is a well-known phenomenon by now that whenever Randall Munroe mentions anything obscure in xkcd, searches for it spike tremendously. To this point, as far as I'm aware, he hasn't wielded this fact for evil, but still...the power that Randall Munroe holds over the internet is terrifying. I was reminded of this when one of my friends referenced one of these comics on Twitter. I then, with a bit of Googling, was unable to find a good list of examples of the XKCD effect, and decided that I would endeavor to create one.

Of course, I decided to write a script to do this - there are 676 comics as of this writing, and fortunately, transcriptions are available via OhNoRobot, so I don't even have to deal with the images. After a little poking around, I found a post on the XKCD forums (thanks, philip!) that gave the url http://www.ohnorobot.com/transcribe.pl?comicid=apKHvCCc66NMg&url=http:%2F%2Fxkcd.com%2F[comic number]%2F to get the transcription for a given comic. Perfect! I of course lean towards Perl for these kinds of things, and I was tempted to go with Python because of the images. But then I remembered that a simple gnome-open [image file] would do more than I needed, so Perl it was.

Additionally, I remembered that I had already written an xkcd download script that I had stashed away in my gMail, so I had a leg up already. So, after a mere four hours of hacking, I present the xkcd effectalyzer. It's pretty self-explanatory, the only parameter is "-r", if you want to go through the comics in reverse. The script goes through your specified comics, presents you with the OhNoRobots text, and gives you the option to view the image of the comic. Once that's all done, it asks you for a phrase to search on Google Trends. It then (with the credentials you provided at the beginning) grabs the necessary CSVs from Google Trends to get the trend data for the 5 days around and including the publication date of the comic (which it gets from xkcd's archives page). It then tells you what the indexes are, and lets you decide whether or not to save that result to a the output CSV file. It continues to ask you for phrases until you don't give it one, and will write the first three to the CSV file.

It might do more than that, but like I said - it should be pretty self-explanatory. It's got all kinds of nifty features like saving your Google session, grabbing neighboring months if necessary, that are mostly what took so long. But anyway, I went through backwards from the current comic (676) back to 600, and besides revisiting some fantastic comics (including my favorite of the more recent ones), I found over 60 noticeable spikes in Google searches because of an episode of xkcd - that's in just 75 comics. Some comics spiked for multiple phrases, of course, and some none at all. But this also includes 20 terms that hit Google's Hot Trends page. I put them together in a graph that shows the spikes collected around the release of the comic, and there are a couple of interesting anomalies: Obviously, there are a couple ponts off to the right that need explaining. The two that are shifted one to the right are both from "Locke and Demosthenes", which was released on Friday, October 11 of this year. So why the discrepancy? Well, my script gathers the dates from the recommended source - the alt-text on the xkcd archive page. But for "Locke and Demosthenes", the alt-text is off by one day, and says "9-10-09". Since the previous comics were published 9-7-09 and 9-9-09, and Randall only publishes on Thursdays in the event of a five-day series - not to mention the Google results, I'm willing to bet that the archives page is in error, and it was actually published on Friday. The other anomaly on the right-hand side is just because the fifth day is in the next month, which screws up the relative numbers. It disappears in this chart based on the fixed data, which also, handily enough, highlights an anomaly on the right side: "github" spiked on the day that Munroe put out Branding, but was climbing in popularity before that. Why that is, I haven't the foggiest.

Now, pretty charts and things aside, it's also interesting, of course, to look at which terms spiked the most. So, here's a list of all the terms, sorted by the severity of their spikes:

As I looked through these, the thing I was most surprised by were some of the things that people Googled, presumably because they didn't know what it was about. I mean, some, like SMBC, Hofstad, Peter Wiggin, Demosthenes - I understand those. But classic stuff like "The only winning move is not to play", "the cake is a lie", and stuff like sampling bias, Q.E.D., Carl Sagan, 2038, or the debacle with the brontosaurus, demonstrates that xkcd readership does indeed include many that are not part of the normal geek crowd - such as liberal-arts majors. Also, Stephen Douglas? The Bull Moose party? What have history classes been teaching that people had to look those up?

But the takeaway from this, I think, is that Randall Munroe, as of late, anyway, has a better than 50% chance (41 times out of 76) of noticeably affecting the Google searches for whatever he happens to mention in his comic. It takes a whole lot of readers (which of course we know xkcd has) to do that with a single webcomic, and this illustrates quite clearly that Randall has them.

The other thing this demonstrates is that I have too much time on my hands, but I just finished finals, and it's Christmas break, so I don't want to hear about it.

Wednesday, December 9, 2009

Metropolis for the win!

This isn't so much for anyone else's sake as for me to chronicle it while I remember it, but I was playing a game of SettlersXplorers over on AsoBrain Games, and was up 13-11-12 in a 15-point game. Come my turn, I had six wood, two brick, two cloth, and five paper (I already had the paper metropolis). I had the brick port, and level one coin and cloth. I could have just stolen the merchant, put it on wood, and built a settlement easily, but I figured out I could do much better...barely. So this is what happened:

Merchant to wood, for 14 points
Traded 6 wood and 2 brick for 4 cloth (6 cloth)
Upgraded from Market to Trading House and Trading House to Merchant Guild with 5 of the 6 cloth I now had. (1 cloth, level 3)
With my new ability to 2-for-1 any commodities, I traded 4 paper for 2 cloth. (3 cloth)
Using my Crane card that I happened to have, upgraded to Bank, grabbing metropolis for two points and finishing 16-11-11, much more dramatically than just building a settlement.

I think that's the first time I've gone from level 1 to 4 in one turn. So much fun.

Monday, November 9, 2009

Getting Adobe Air to Recognize Your Default Browser

Among the issues I have re-encountered in reinstalling my Ubuntu fresh is that links from TweetDeck open up in Firefox, instead of Chrome, my default browser. Chrome on Linux, by the way, is still only available from the dev channel. It's readily available, but still has its share of issues - currently, my dropdown boxes are blank when I try to select an option. They get fixed - that particular isse has been taken care of already and will be fixed in the next release - but it's still iffy. That said, it is way zippier in Linux than Firefox, which is pretty much dog-slow at times, in my experience.

Anyway, for these reasons, I wanted TweetDeck to respect my default browser, but it stubbornly insisted on opening links in Firefox. Since I generally don't have it open, it takes a few seconds to open Firefox and load the page, instead of popping up Chrome with my page already displayed pretty much instantly. It didn't take long before it got on my nerves, and I remembered that I had fixed this before. A quick trip to the (one guess) Ubuntu forums pointed me to a very helpful post by Andrea Olivato, detailing how to fix this without resorting to really nasty hacks like symlinking Firefox to Chrome.

Turns out that Adobe, in all its wisdom, decided to hardcode Firefox into their binary for opening links. Brilliant. Which means that you have to get your hands dirty doing a little bit of hex editing and, yes, symlinking. Because for the hex editing, the string for the browser has to have the same number of characters as "Firefox", so you don't screw everything up. Andrea had the clever idea of symlinking "browser" to your desired browser, which is good semantically, and has the same number of characters as "Firefox". Perfect! His commenters further improved upon the fix by suggesting that "browser" be symlinked to either x-www-browser or xdg-open. Both are generic "default browser" options. After reading up a bit, I still don't really know which is "better". I think I like xdg-open though. So, here's how to Fix It Right, based on Andrea's instructions, with the commenters' suggestions integrated in:

Before anything, do a sudo su to get into a root prompt. Then, symlink the desired default-browser alias (xdg-open or x-www-browser) to "browser" in /usr/bin:

root@geekmobile# ln -s /usr/bin/xdg-open /usr/bin/browser
Then find your libCore.so file with a locate:
root@geekmobile# locate libCore.so
/opt/Adobe AIR/Versions/1.0/libCore.so
With your hex-capable editor of choice (Vim in my case, gEdit isn't going to do it this time), open the file found via the locate command:
root@geekmobile# vi /opt/Adobe\ AIR/Versions/1.0/libCore.so
Find where it says "openURL" in the file. In Vim this is a simple as a /openURL<enter>, but of course this depends on your editor. Then replace the "firefox" right after that point with the word "browser" (which you symlinked above to your default browser). Save the file, restart TweetDeck (or whatever Air app you're using), and enjoy quicker, better link-opening! Hurrah.

And again, many thanks to Andrea for the tips!

Monday, November 2, 2009

Wordpress, Plugins, Paragraphs, and wpautop

Just a quick tip, because nothing I found in a quick Googling was helpful. I was writing a plugin for Wordpress recently that functioned as a filter on the_content, like many, many plugins do. As I was applying the CSS/HTML from a design mockup that I had sliced up from a PSD, I noticed that some of the spacing was funny for no apparent reason. Thanks to Firebug, I quickly discerned that Wordpress was randomly* sprinkling <p> and <br/> tags all over the place, in ways that very much broke my layout. I could fix it by smashing all my tags up onto one line, which seemed to dissuade Wordpress from throwing tags in, but that was ugly and made my code rather unreadable.

After a bit of research, I found out that this was the doing of the potentially useful, but unintentionally nefarious wpautop filter. After some more digging, I realized that if I could get my filter to happen after wpautop had worked its "magic," all of my problems were solved. Fortunately, the add_filter function provides just such an option. And upon investigation, the previous author (I'm revising an existing plugin) had set it to be priority 0 (aka before everything). I switched that up to priority 99, and the random paragraphs and breaks disappeared, and my layout fixed itself.

*Okay, there was some rhyme and reason, such as after images, or before divs, or something...but the point is, it was putting them places where I didn't tell it to, and didn't want them. End of story.

Friday, October 23, 2009

xmodmap: fixing the mistakes of others

For the past few weeks, I've been using my girlfriend's old Toshiba Satellite while wrestling with Dell to get them to fix my Vostro (it's currently somewhere in Texas, I think). Which has been great - I just put my hard drive into her computer (fortunately they were both SATA) and off we go (well, Windows isn't too happy about it, but that's not really of consequence). However, one quirk has bugged me: it suffers from the random placement of "unimportant" keys that many laptop keyboards do. Unfortunately, I, being a programmer and power user, find such keys rather important. Here's the problem, in a picture:

As you can see, whoever designed the keyboard was so overly concerned with the gigantic media button panel that they had to displace the tilde/grave key. Granted, this is one of the lesser used keys on the keyboard, but I still use it for one of my favorite Vim shortcuts, `., which is a magic marker that hops to the last line you edited. But it gets worse. They decided to put it down next to the space key, and moved the Windows key out of the way to make room for it. This also wouldn't be a huge deal - no one uses the Windows key, right? Except that I also run Compiz and Gnome-Do, and have the Windows key mapped to my Gnome-Do summon, as well as most of my multiple-desktop management. Win+Arrows moves between desktops, Win+Tab switches between all desktops, Ctrl+Win+Arrows moves the active window between desktops, Alt+Win moves a window by grabbing angwhere. Obviously all of these become very difficult when the windows key is six miles northeast of anything else.

The solution to this problem, of course, is to remap my keys where I want them. And since this is Linux, if I try hard enough, I can probably do whatever I want, oftentimes without downloading anything. This is the case today. Optimally I would like to use the Fn key as the Win key, but it's a really weird key, and evidently not touchable by xmodmap. So I settled for this: make the tilde key (next to the spacebar) my new Win key. I could just switch the two, but that puts my grave six miles away from everything as well. Instead, I decided to replace my Caps Lock with the grave, because like most programmers, I never, ever, ever use my Caps Lock. This makes it decently closeby, and pretty close to where it was. And for those times when Caps Lock goes haywire, I might as well move the Caps Lock up to the now-unused Windows Key. So, to summarize:

After some trial and error with xmodmap, I came to the following conclusions:

  • add/remove is to add/remove modifiers from key assignments (Caps, Numlock, Windows key, etc)
  • keycode ## = functionone functiontwo is the best way to simply map one key to the other
  • If you remap keys, but don't want the modifiers to come with them, you have to remove the modifiers, then add them back
  • If you want shiftable keys like the grave/tilde key to work properly with shift, you have to assign both functions (e.g. "grave" and "tilde") to the same keycode
  • xev, xmodmap -pm, and xmodmap -pke are relentlessley helpful in finding out what the keycodes are and what the keywords for the various modifiers and key functions are.
With these newfound conclusions, I went to work. Using xev, I found out that my winkey is keycode 133, grave/tilde is 49, and Caps Lock is 66. Additionally, xmodmap -pm told me that the Win key modifier is mod4 and the Caps modifier is lock. Finally, xmodmap -pke (in combination with the previous command) fleshed out the function names for the keys: Win is Super_L, Caps is Caps_Lock, and grave/tilde is grave asciitilde. From there it was just a hop, a skip, and a jump to come up with this xmodmap config file:
remove lock = Caps_Lock
remove mod4 = Super_L

keycode 49 = Super_L
keycode 133 = Caps_Lock
keycode 66 = grave asciitilde

add lock = Caps_Lock
add mod4 = Super_L
Which simply removes the two modifiers from their mappings so we can move stuff around, reassigns the keycodes to the functions I want them to perform (notice the combination grave asciitilde to make Shift function correctly), and then reassign the modifiers now that the functions are where I want them to be.

The sites I found regarding xmodmap were moderately helpful, but none of them quite spelled out what was happening, so I figured I would. This method should be pretty flexible, and plenty sufficient for any of your key-remapping needs. If you're playing around with it, xmodmap -e "[command]" will allow you to run commands (e.g. any one of the lines above) on a trial basis, just for this session. It was invaluable in getting this stuff working correctly. If you're having trouble, give a shout out in the comments, and I'll see what I can figure out.

Sunday, October 4, 2009

Dear NASA: Thank you.

The other day, I was walking down Queen Anne and noticed a certain office complex that had a sandwich board advertising their space. What I noticed about it was the picture that was emblazoned across the top of the board. Of note was that it, like so many other specimens of posterage across this country, was terribly pixellated. But this particular instance irked me more than most, simply because of the subject. It was Saturn:

Pretty standard sandwich board, right?

But check out the zoom of that top image: Phone number and website have been erased to protect the not-so-innocent. And the picture is taken with a crappy camphone, but that pixellation is in no way exaggerated in the photo.

Now I'll give you a second to figure out what's wrong with this picture. Really, you have as long as you want, because you have to move onto the next sentence, and I can't do anything to force you along. But now that you've wasted a good few seconds reading this explanation of that fact, I'll enlighten you if you haven't already figured it out. The problem is simply this: over a decade ago, our government, via one of its more useful and fruitful arms known affectionately (and officially) as NASA, spent two and a half billion dollars (with another half-billion from Europe) to send a probe through more than two billion miles of mostly empty space, in order to find out more about arguably the most beautiful planet in the solar system.

Nearly seven years later, it pulled up next to Saturn and began taking pictures, among other things. Lots and lots and lots of pictures. Thousands upon thousands, if not millions, of photographs. Staffers at NASA then stitched some of these pictures together to create truly gargantuan portraits of our celestial neighbor that in their full glory can only be described as indescribable, although truly stunning is a first stab at it. Then NASA, being a government agency, gave these portraits away to the public, free for use by anyone, including office buildings that want to spice up their sandwich boards. I even double-checked, and basically, as long as you're not implying NASA's endorsement of your product, you're free to use them as you please.

With images upwards of 25 megapixels readily available, there is no reason that a pixellated image of Saturn should appear anywhere, much less on a 3x2 foot printed sign. But then again, had it not appeared, I wouldn't have gone digging through NASA's archives, which has some pretty fantastic stuff to say the least. I found something as simple as a glimpse at Saturn's atmosphere fascinating. All in all, I came away with a renewed awe and gratitude for the incredible gift NASA has given, and continues to give, our country, and indeed, humanity at large. And hey, they have a sense of humor to boot.

Edit 12/18/09: Updated with pictures of the planetary carnage

Wednesday, August 26, 2009

It's Jeopardy! Time!

For my stance on the strange punctuation of Jeopardy!, see the sidenote on a previous post. But this post is not about that. Yesterday, I took the online College Jeopardy! Test, the first step in being on Jeopardy! The aftermath was fun to watch on Twitter, and I contributed my fair share. And thanks to Twitter, I was able to find the answers and questions listed on the Jeopardy! forums, and compare what I remembered of my answers. And because I like stats so much, here's some stats:

24/50 correct (not too bad)
Longest right streak: 7 ("1812 Overture" to "Wifi")
Longest wrong streak: 4 ("Hemingway" to "Mamet")

Overall, it was lots of fun - reminds me of Knowledge Bowl, which I miss sorely. Stuff like "Equine, Feline...wolf is...lupus?...Lupine!" under a time constraint...I just love it. The feeling of figuring it out is just awesome, especially when there's something tangible you're going for. Dang I miss Knowledge Bowl.

Some of my favorites were ones that I knew for some random reason - I recently discovered that Yosemite was in California, so I knew that Yellowstone was the one in Wyoming. Crime and Punishment is one of my top 5 favorite books (thanks, Mrs. Ogden!). I was way into genetics in high school, so chromosomes were easy (thanks, Mr. Weeks!). I knew all about Athens and Sparta thanks to UScholars and my girlfriend. I watched Milk a couple months back, so I knew Sean Penn's second Academy Award. That movie, by the way, is highly recommended. You should watch it. And 30-Rock? I owe that entirely to stumbling across a blog post about the muppets several weeks ago. I remembered just enough to vaguely recognize the names.

Also fun were haphazardly educated guesses that paid of - Time magazine, Matron of Honor, Merril Lynch, the Rhine. And even that middle school knowledge that paid off - Eli Whitney, Deltoid, Eon. Man, I love Jeopardy. I need to watch it more often.

For anyone interested, by the way, the questions (and the answers) are over on Jeopardy.com, and I put a full list of my responses in a Google Spreadsheet.

Friday, August 14, 2009

Alcohol (and math)

So I turned 21 yesterday, and had a wonderful time with girlfriend and family and friends, starting at midnight with the last half of the fantastic Fido, and continuing into breakfast this morning with my girlfriend. And although I have no intention of regularly drinking alcohol, I of course had to exercise my newfound right to do so. So after much pondering, I settled on a Long Island Iced Tea at Applebee's. I'll spare you the details of the experience, because that's not what this blog post is about. As my Facebook status noted, I decided that so far, alcohol mostly tastes like cough drops, and at least in small amounts has minimal effects on my behavior. The part that I felt the need to write a blog post about is that I just spent the last two hours writing this blog post and researching (yes, researching) what exactly is in what I drank, what proof they all are, what "proof" even means, and, ultimately, exactly how much alcohol I consumed.

First of all, I had to figure out how much of what was in my glass. I remembered it had gin, rum, and I thought vodka (which is partially why I chose it - three birds with one stone and all), but I didn't know how much of each, so Google pointed me to the occasionally informative (but more often inane) Yahoo! Answers, which verified that it is indeed gin, rum, and vodka, and also triple sec, one ounce of each.

Sidenote: I'm always thrown off by punctuating things like Yahoo! Like right there - do you end the sentence with an exclamation point? A period? Both? I recently got an e-mail from Jeopardy! that contained the sentence "Thank you for registering for the Jeopardy! College Online Test!", which I thought was kind of awkward. I think people should just not include punctuation in brand names, and it would make all our lives, or at least those of us grammar Nazis, a little easier.

The next step, of course, was to figure out what proof each of these were, and what that meant as far as alcohol content. A comment on the Yahoo! answer provided the brand names, but added tequila. Some further Googling found the Applebee's page (the Google cache, logically enough, used the Fremont, CA location), which provided the correct brand names. I looked them up on Wikipedia, and it turns out these things are much more complicated than I thought. There are a plethora of Bacardis, half a dozen Tanquerays, a dazzling variety of Smirnoffs, and an unnumbered variety of triple sec. Given that, I assumed that Applebee's just went with the standard, 80ish-proof variety of each alcohol, and the normative (according to Wikipedia) 60-proof triple sec. Smirnoff varies, but is evidently 75-proof, Tanqueray presented a bit of a complication, as the proof apparently depends on where you get it, but I went with the US 94.6-proof, and Bacardi is straight 80-proof. Now, what does that even mean?

As it turns out, the original "proof spirit" was, like most units back in the day, a profoundly arbitrary. Wikipedia tells me it's from the days when sailors were paid in rum. To make sure it had enough alcohol, they would take a bottle, soak some gunpowder in it, and try to light it. If there was enough alcohol to light the gunpowder, there was apparently enough alcohol to get the sailors drunk. This ended up being 57.15% alcohol by volume, so 100% alcohol was about 175-proof. The United States, of all countries, evidently decided to standardize the measurement, and the US proof is a flat 50% alcohol by volume. Of course, the rest of the world now just uses ABV, which is twice the US proof, and has since abandoned the "proof spirit", along with measuring alcohol with gunpowder.

So, all of that just means that ABV is half of proof, since no one uses the proof spirit anymore. That leaves us with the following for my Three-kinds-of-alcohol Iced Tea:

  • 1 oz 80-proof Bacardi Superior rum = 1oz * .4 ABV = .4 oz alcohol
  • 1 oz 94.6-proof Tanqueray London Dry Gin (US) = 1 oz * .473 ABV = .473 oz alcohol
  • 1 oz 75-proof Smirnoff Red Label vodka = 1 oz * .375 ABV = .375 oz alcohol
  • 1 oz 60-proof triple sec = 1 oz * .3 ABV = .3 oz alcohol
So that's a total of .4 + .473 + .375 + .3 ounces, which according to my TI-89 (I don't trust myself with arithmetic, alcohol or not) is 1.548 ounces. Now, what does that mean? Fortunately, the internet is still around to help. The appropriately-named alcoholism-information.com informed me that a "drink" (which I'm assuming is the seven "drinks" one of my friends cites as being her "drunk" threshold) is equivalent to 1.5 ounces of 72-proof liquor. Which, as we learned above, is 1.5 oz * .36 ABV = .54 oz of alcohol.

So, to answer the question I was originally trying to answer - how much alcohol did I consume last night - seems to be 1.548 oz I consumed divided by .54 oz per standard "drink", which comes out to 2.866 drinks. For confirmation, I came across another measure on the internets. 1 Bud Point is simply the amount of alcohol in a can of Bud Light. Since a can of Bud is 12oz at 5% ABV, that's 12 oz * .05 ABV = .6 oz alcohol. So, 1.548 oz is 2.58 Bud Points, or just over two and a half cans of Bud Light, which is pretty close to my other reference. And, according to the Bud Points guy, probably enough for a DUI, but not quite halfway to "a good night." Personally, I was a first-time drinker, but also on a pretty full stomach, which I'm told is significant. I didn't feel any difference other than a slightly warmer stomach, but I also didn't try to do math or anything, much less drive - just hold up my end of a conversation, open presents, and successfully walk out of the restaurant. Nevertheless, I wouldn't think of driving or making any critical decisions, because it's dangerous, and I am (obviously) rather clueless as to the effects of alcohol first-hand. And also it's illegal.

Now, a disclaimer for anyone who's worried about me obsessing with alcohol all of a sudden (this is for my girlfriend and family), I'm not headed down a death-spiral of alcoholism and depravity, and have no intention of becoming remotely alcoholic. I have plenty of friends who, by their experiences, have convinced me that it's a bad idea. My roommate, for example, has both woken me up at 3am retching into a bucket, which was not a pleasant experience for either of us, and sworn never to drink again from the couch at noon after a particularly bad hangover. Safe to say, the occasional social drink is as far as I'm going, and I have plenty of people to hold me to it. My temporary obsession is just because it's new, and as the insatiably curious ENTP that I am, I must know everything about everything that I come across. Alcohol is no exception, so I'm researching it from a safe vantage point called the internet. And that, my friends, is the first and hopefully last time I will ever refer to the internet as safe for anything.

Wednesday, August 5, 2009

The Interface Formerly Known as USB

Today at work I was marking a computer that we upgraded to a new model, of course leaving the node name intact. Of course, I labelled it "The Computer Formerly Known As ATHLETIC_TICKET" and therefore felt the need to label it accordingly with some variant of the prince symbol. It was at this moment that I realized that the USB symbol has an uncanny resemblance to the TAFNAP logo.

Here's the prince logo:

And the USB logo:

A quick Google didn't reveal anyone else who noticed such things, so I may be crazy. But on the sticky note, I drew some combination of the two, and thanks to the wonders of graphics, sketched up a slightly better version just now:

Also on the subject of similarities, Rhythmbox just served up The Fool On the Hill by the Beatles, and it reminded me of the tragic Goodbye May Seem Forever from the classic Fox and the Hound. Also, watching that clip, and the actual scene, makes me very sad. I haven't seen that movie in a very long time...poor grandma. That movie is way too sad to be a kid's movie.

Monday, July 13, 2009

Geeking Out

This is the story of last night.

It was about 12:30pm, and I had already caught up on my Facebook, Gmail, Twitter, and Reader. I had finished working on my paid gig (in Vim* via SSH) and finding the bug I was experiencing in Chromium alpha for Linux, and was planning on working on Quote Book (again, in Vim via SSH), and decided I was hungry, so I should make some mac 'n' cheese. Not just any mac 'n' cheese - Great Value Thick & Creamy - the only kind that there is. I, by the way, just now submitted the picture that will soon show up on that page. It took some doing, and some sticky tack - that box is actually suspended in the air: Now regarding my obsession with this box. Some will argue that Kraft is where it's at, but I've tried Kraft and it is at best a poor substitute. Others will argue that Wal-Mart is the penultimate evil, and belongs in the deepest ring of consumer hell. This may be almost true, but keep in mind that for all of its evils, Wal-Mart is still one ring above Kraft, one cold, icy circumference farther away from Satan and Judas. So there, Kraft-lovers.

Anyway, so I made some mac 'n' cheese, and while I was making it, realized I really didn't want it that much. And then that I didn't really want to work on Quote Book. And then, that I didn't really want to do much of anything, including sleep. It was then, however, that I remembered. Netflix has Star Trek Season 1 on instant play. The more I thought about it, the more TOS sounded like a fantastic idea. So I dug out my GrandTec PC-to-TV converter that i picked up at a rummage sale several years back (definitely NOT recommended, but it does the job and I got it for like $2) and hooked it up with my headphone-to-RCA converter and extension (all of which I had on-hand, of course).

After getting that set up, I queued up Netflix, dished up my mac 'n' cheese, and went upstairs to get my Star Trek Encyclopedia: A Reference Guide to the Future that I picked up at the Safeway prostate cancer booksale a few days back. Yes, I do own the old one I linked to, but that's just fine, because I was watching TOS. Interesting sidenote: I initially figured out it was pre-Voyager by looking up Janeway. She's in there, but listed as an ensign, and barely gets a paragraph. I found that amusing.

Anyway, I settled in to watch TOS, and realized that my laptop was with the TV on the other side of the room, and I had no way of controlling it, since I don't (yet) have a remote for it. I had previously brought down my trusty Marble Mouse, but the cord wasn't long enough. Then I remembered that just a couple days ago, I had purchased a ridiculously long (probably 10-12 foot) USB extension at a garage sale. I had to rummage around for a few minutes before I found it, but find it I did.

So, with my laptop hooked up to the TV, Netflix ready to start TOS, and my mouse at my side, I dug into my mac and cheese and, after forcefully slamming my mouse against my hand a few times (it's not actually so trusty after all), got started. And then the connection was going a little slow, and I looked over and realized my laptop lid was closed. Since I was borrowing a neighbor's wifi, the signal was weak already, and having the wifi antenna horizontal couldn't be helping. I got up, opened the lid, and the buffering instantly sped up appreciably. Satisfied, I settled in, and quite enjoyed Charlie X (I had already seen The Man Trap) and its terribly cheesy effects, somewhat questionable acting, and fabulous geekiness.

*Note to self after Googling for this link - add gVim Portable to your list of must-haves. Awesome.

Friday, June 26, 2009

"I assumed you guys knew how to do math..."

This was the unfortunate assumption that George Vaccaro made when dealing with Verizon. His ordeal is chronicled in his blog. That was three years ago, and resulted in Verizon refunding his money and promising to "supplement the reference material used by [their] representatives" to correctly state the rate as $0.002 dollars and not 0.002 cents. Evidently, nothing has changed, and now AT&T is quoting the cents figure. Fortunately for the world, Adam Savage of Mythbusters (via his Twitter, @donttrythis) has evidently run into a suspiciously similar problem, possibly with an additional but similar confusion as to the difference between kilobytes and bytes.

The purpose of this (supposedly unintentional) tactic seems blatantly obvious, and it works: most customers won't notice the discrepancy, and will just pay the rates. The occasional customer (the aforementioned George Vaccaro, a second case he mentioned in one peterS, and now Adam Savage) notices, and after some wrestling, they quietly reverse the charges with assurances that he documentation will be corrected. They of course never do update the documentation, because that would keep them from raking in massive profits from those who don't notice the discrepancy.

Now, as someone who has a bit more presence than some random customer with a blog, can Adam set this right once and for all, and get the phone companies to finally change their ways? Considering their history, I'm not holding my breath. But here's hoping. I would allow myself to be terribly cliché, but questioning shady, deceptive business practices on one hand and questioning commonly held but uncorroborated public conceptions just aren't close enough for me to swing it.

Saturday, May 30, 2009

Craigslist Double-takes: Part 1

I was surfing the Seattle craigslist today, and came across a couple entries that made me do a bit of a double-take...surely not the strangest craigslist entries, but they made me chuckle a bit.

Firstly, under the "event" category was Christian Pastor Needed For Wedding Ceremony:

We are being married on August 29th, and would like a Christian Pastor to perform our ceremony. It is a laid back, backyard wedding, and we are seeking a professional, warm person to marry us.

First of all, I don't understand how you could not have someone that you would want to perform the ceremony - if the Christian community is that disconnected, we have a problem. Oh wait. I have a whole nother blog on that topic. But even if you didn't have a church per se, what brings you to post on craigslist for a pastor for your wedding? Looking for someone to mow your lawn? Sure. Write a website? Great. Maybe even walk your dog? That works too. But legally bind you in holy matrimony to the love of your life? Really? It boggles the mind.

The other was less outrageous, and more of a double-take. It was in the writing section, and the title was Science Blogging. Okay, I figured, I don't exactly feel like writing about plants and animals and cells and chemicals and stuff, but I could...heck, I could even write a good bit about DNA and enzymes and more complicated stuff like that. But then I read the body of the ad:


Looking for self motivated computer savvy person to write a number (2-3) of blog posts for the site:

www.P212121.com

The site's primary focus is on macromolecular crystallography.

If you are interested, please send us an email including your experience in crystallography and a writing sample.

Now I checked out the blog and all, and it's interesting enough. But it's that last phrase that got me..."please send us an email including your experience in crystallography...and a writing sample." Now I only have a vague idea of what crystallography is. It's what Watson and Crick basically stole from Rosie Franklin and went and discovered DNA with, leaving her to die of ovarian cancer, probably exacerbated if not caused by those selfsame X-ray crystallography efforts.* To just casually throw that out there alongside a writing sample, as if it were "please include your experience in operating an automobile" or "detail your accomplishments in the field of eating dinner" is jarring, to say the least. Not to mention simply titling the post "Science Blogging" when the subject of your site feels comfortable sitting around the table with phrases like "electron spectroscopy", "nanolithography", "photonuclear experiments", and "synchrotron radiation source" is just plain mean.

*There are two things you should know about this sentence: firstly, it's a terribly cynical and pessimistic view of events (but not wholly inaccurate), and secondly, it may or may not be gramatically sound. But it's 3:30am, and I'm blogging about a nasty bit of politics surrounding the discovery of DNA because of a craigslist post. At this point, I relax my standards ever so slightly.

Wednesday, May 27, 2009

A long-overdue explanation

So my girlfriend asked where the name "CommaCommaCrash" came from, and I was dismayed to find I hadn't already written a post on the subject. The name comes from a poem I discovered back in high school, during Web Design A, a class which mainly consisted of sitting in the back row, downloading music with WinMX, and playing ridiculous flash games. Web Design B, by the way, which was the Flash [read: fun] portion of the course, never fit into my schedule, much to my chagrin. But I digress.

The version of this poem that I came across (don't ask me how, it takes me a few attempts at Googling to find this particular version every time) is at the self-proclaimed "Definitive Tech Humor Collection", whose design, in retrospect, is a blight upon the internet (link later, I don't want to ruin it yet). To my credit, I had never actually visited any page except for the text-only poem anecdote, and besides, there are much worse offenses out there.

But more to the point, the poem is a punctuation poem. It goes as follows:

<> !*''#
^"`$$-
!*=@$_
%*<> ~#4
&[]../
|{,,SYSTEM HALTED
As you can tell, this is no ordinary poem. Which is perhaps why I like it - I am no ordinary person. In fact, I did a metric analysis (is that even what you call it? Nope, Wikipedia says it's scansion) of this poem for A.P. English, since its discovery coincided with the poetry unit in said class. But anyway, it is read as each character's name - sometimes rather arcane, arbitrary, or archaic names, but it only works if you read it out loud, to wit:
Waka waka bang splat tick tick hash,
Caret quote back-tick dollar dollar dash,
Bang splat equal at dollar under-score,
Percent splat waka waka tilde number four,
Ampersand bracket bracket dot dot slash,
Vertical-bar curly-bracket comma comma CRASH.
Seriously. If you got here and haven't read it, read it out loud. Go somewhere where no one will give you funny looks if you must. Then read it out loud, go back up to the punctuation version, and see that it actually does read that way. After a few times, you can read it straight from the punctuation. It's magical. Or maybe it's just me.

Anyway, as you can see (helped by my tasteful emphasis), I lifted the name of this blog straight from the last line, because it sounded vaguely geeky, and is an allusion to a poem that I find quite amusing, and which you do too, now that you've read it out loud. Right?

Oh, and most of the pronunciations make sense, but why "waka waka"? It's an allusion to the sound that PacMan (whose open mouth is implied by the angle brackets) makes as he gobbles up dots. The page I found it on asserts that it was voted as the proper pronunciation, winning out over "norkies".

Also, sidenote: who knew that Pacman's name was originally pakku-man (パックマン), from paku-paku taberu (パクパク食べる), a Japanese onomatopoeia* for the same thing? Amazing the things you can learn on the internet.

You can find the full text over at the aforementioned Definitive Tech Humor Collection. I admit, I lifted the intro to the pronunciation straight from the description, but it's only because that is how I find it (really - I Google "punctuation poem to wit magazine"), and I like to think that I would, left to my own devices, introduce it similarly.

*I totally almost spelled that right on the first try. I just switched the last "o" for an "a". So close. Ah well. Thanks, Firefox spell check.

Saturday, May 2, 2009

On Installing

So I am doing a clean install of Vista on a professor's computer today, and there were a few things that, in and of themselves, are not worthy of a post, but together, are a few pet peeves worth mentioning:

That default beep. Laptop manufacturers, you really need to get on this. Every time I install Windows, it of course doesn't come with even the most basic of sound drivers, so when I inevitably do something to anger the computer gods, they let me know with a Thundering Default Beep from Hell. I'm not sure if it's just because I'm never expecting it, or because it really is as earth-shatteringly loud as it seems, but I'm just minding my own business, checking to make sure all of Office is installed, and when I close out of the install, BAM! this horrible noise comes booming forth from depths that I didn't know the laptop had. After almost having a heart attack, I recover to see that it's asking me if I really want to cancel the install. Yes. I do. That's why I clicked cancel. I understand protecting against the accidental click, but there is no need to aurally assault me in the process.
If there's anything good about the situation, it's that I only encountered it twice this time - the second, however, was when I inadvertently clicked the "Network" icon when trying to install the sound driver (the first driver I installed, to avoid these terrible missives), and it once again growled out a terrible warning that I'm sorry, I don't have my tentacles in any network yet. Which I informed it (with a click on the "OK" button) that that was quite alright, because you see, I haven't installed any network drivers yet, and was just trying to install a dad-gum sound driver so that you would stop trying to wake up my roommate when you blasted me with all your might because I accidentally clicked too low.
As a sidenote, I realized as I wrote this that I've never had this problem with Linux in the many times I've installed it, and then I remembered that it's the same reason Ubuntu doesn't come up at 800x600, 16 colors without Internet access or a decent browser. And that reason is because it doesn't suck, meaning it isn't Windows. And I'd forgotten how much better it makes things when you can hear, see, and download things without scurrying off to another computer to download half a dozen drivers. Thank you, Linux, for being awesome.

Speaking of things that come preinstalled with Linux, another thing that always comes up with a clean install of Windows is a PDF reader. Now, on my own machines, I just install SumatraPDF, Foxit Reader, or one of the other fine free, small PDF readers that are readily available. On a computer for a professor, though, I feel the need to actually install Adobe, so that if something goes wrong (they can't fill out a form or something), they can't blame my strange PDF reader.
And every time, I am newly astonished that Adobe Reader is still a gargantuan 41.1 MB download. And this is after being compressed by getPlus Helper, which requires the Adobe DLM (powered by getPlus(R)), a Firefox plugin that is (it assures me) a "sophisticated tool for an efficient distribution of digital goods." I call it bloat, with some nice buzzwords thrown in for good measure. Installing a PDF reader should NOT require a Firefox plugin, a helper downloader, and 41MB. There are plenty of readers that don't require a plugin, because they're small. I could understand 4MB. And 1.2MB is even better. And if someone can do it in 636KB, without a fancy decompressor Firefox plugin, you know Adobe is doing something wrong. And unlike Adobe, none of those dump and then leave installation files on my desktop. If only there were greater consequences for such crimes against computerdom.

Speaking of crimes against computerdom, I had to, of course, install anti-virus software, and then check for updates. Before forgetting that Vista has it built in (thank heavens, the click twenty times, restart the browser, download an ActiveX control or two, twiddle your thumbs, click twelve more times, restart again, and wait twenty minutes to be told you need to update to .NET 6.0 was getting tiring), I typed windowsupdate.microsoft.com in Firefox, not thinking, and got an error page (it's from a redirect, so the link will work in any browser). A text-only, "thanks for trying, but you need IE" page. I would think Microsoft would make a little snazzier than that...but hey. At least it's not bloat.

Saturday, April 25, 2009

VirtualBox: Reliving the Glory Days

I cut my teeth on good old DOS, with Word Perfect 5.1. I have distinct memories of watching my dad in his office, and vividly remember watching him type on his laptop and have words come up on the screen - I thought it was fascinating, and always wanted to play with this machine - something about pushing the buttons and having them come up on the screen was just mind-blowing to my 4-year-old brain. And this wasn't any old computer - it was a laptop! A good old Bondwell B200 - it had a 3-color screen (blue, white, and bluish-white), dual 720k 3.5" floppy drives, and no hard drive. What a wonder it was. We had two of them - I think, hope, perhaps, that we still have one somewhere in the garage.
As I grew in my tinkering, I remember seeing e-mails (on the Windows for Workgroups 3.11 machine we had back home) where you scrolled down, and the text would animate itself, and recombine...the one I remember played with the "GOD IS NOWHERE"/"GOD IS NOW HERE" trick (I was a preacher's kid), and some other things. I figured out how these worked, and dabbled with creating them myself, of course on the good old Bondwell. Unfortunately, the scrolling was far too slow and choppy to actually accomplish anything.
I also would make shapes (crocodiles, I remember particularly) out of the mysterious "Blocking" that Word Perfect 5.1 had, and was confused as to why they never printed out. I also still to this day don't know how to get the menu to show up - Helen, my dad's secretary, always had it up, and I could never remember how she did it, which was the cause of much vexation.
I even wrote poems and stories - one in particular I remember involved Betelgeuse and stegosauruses. Even now I can't spell either one, although I'm pretty sure I got it right back in the day. I'm going to have to dig through some old hard drives and floppies, to see if I can find any of this stuff.
But anyway...what inspired this trip down memory lane? Well, I have for a long time used the excellent VirtualBox to run Windows XP inside of my Ubuntu install, but recently decided to meddle around with trying to get some older OSes running on it - initially Window 98SE, just to have a smaller, faster OS for basic stuff. Well, I still don't have 98 up and running, but thanks to the awesome folks over at VetusWare, I have managed to get my old friend, WFW 3.11, up and running. It took a bit of doing, because the download included folders for each disk, but I needed floppy images to mount in VirtualBox. Since I'm in Linux, however, that's not too difficult of a procedure:
joel@geekmobile:~$ dd bs=512 count=2800 if=/dev/zero of=floppy.img
joel@geekmobile:~$ mkfs.msdos floppy.img 
joel@geekmobile:~$ sudo losetup /dev/loop0 floppy.img
joel@geekmobile:~$ sudo mkdir /media/floppy/
joel@geekmobile:~$ sudo mount /dev/loop0 /media/floppy/
Line by line, this:
  1. Creates a 1.4MB floppy image file, initialized to zeroes (copy 2800 blocks of 512 bytes from /dev/zero into floppy.img)
  2. Initialize it with an MSDOS filesystem
  3. Set up a local loop with the new image
  4. Create a mount point for it
  5. Mount the new loop at /media/floppy
A floppy then shows up in my Disk Mounter applet (highly recommended, otherwise it'll be in your Places menu). I can then copy the contents of each folder into the floppy, copy off the image file somewhere (I created a "WFW311" folder in a "Source Images" folder in my ~/.VirtualBox folder, to keep things nice and organized), clear the floppy, copy the second folder in, rinse and repeat. This gave me image files for all eight setup floppies. After installing DOS 6.22 from a Boot Floppy image, I mounted each WIN311 image and ran through the install fairly painlessly.
I did hit a couple snags, though. After a bit of work, I got it to support 1024x768 using some handy instructions over at the VirtualBox forums. The instructions there for CD-ROM support, however, were less helpful, which was unfortunate, because my next quest - installing the infamous Microsoft BOB - required more than just a floppy could handle.
I finally got it working, and I think the thing that made it work was just throwing the CD-ROM driver in C:\, and not any subfolder. The significant parts of my final CONFIG.SYS and AUTOEXEC.BAT looked like this:
===CONFIG.SYS===
DEVICE=C:\WINDOWS\HIMEM.SYS
DOS=HIGH,UMB
DEVICE=C:\WINDOWS\EMM386.EXE NOEMS
DEVICEHIGH=VIDE-CDD.SYS /D:CD001
===AUTOEXEC.BAT===
PROMPT /NOSTALGIA/DOS622/FILE://$p$g
LOADHIGH=C:\DOS\MSCDEX.EXE /D:CD001
A few things to note:
  • The thing after the /D: is just a string. It can be whatever you want. "MSCD001","IDECD000","KITTENS"...anything, as long as it matches in both CONFIG.SYS and AUTOEXEC.BAT, and isn't more than 8 characters.
  • I ended up using VIDE-CDD.SYS, which you can find in this list, under "ACER". I think the one I found came with a setup program, but I can't seem to find it again. Just the driver should work, though.
  • I thought perhaps just copying it into the C:\ directory had fixed it, but it appears that VirtualBox still hangs, at least with the OAKCDROM.SYS that I tried. So stick with the VIDE-CDD.SYS
  • The PROMPT line is just for fun, it modifies the classic C:\> prompt. I remember our computer had some scripture I think, it's always fun to play with. See the ancient article over at Smart Computing for more info on that.
  • I'm not sure if the EMM386 part is necessary, but it doesn't hurt anything.
Now, I will note that I did actually try "KITTENS", and it does indeed work. Here's proof:
Something about "Drive D: = Driver KITTENS unit 0" makes me chuckle a bit. I think I'll leave it that way.
Anyway, once I got the CD support working, it was pretty straightforward to install BOB - VetusWare, of course, had it available, so I unzipped it, created an ISO out of it with Brasero, the default disc burner in Ubuntu, by simply creating a data project, hitting "Burn", and telling it to make it an ISO (putting it, of course, in my "Source Images" folder). Mounting that CD in VirtualBox and running the Setup from DOS automatically booted Windows and, after hitting Ctrl-Alt-Delete and Esc (the 1024x768 setup is troublesome, but that little hack fixes it), and telling it my name (which is only slightly creepy), I was greeted with this happy little button: I cheerily clicked it, it did the install with ads telling me how wonderful it would make my life, and how great of a company Microsoft is, I found a program group for Microsoft Bob. Double-clicking it opened up a very trippy, very long display test of some sort, that I'm convinced is actually designed to mess with your brain to get you ready for the experience that is MSBOB. These little red tubules squirmed and jiggled...it was quite the experience: Once it started up, after some annoying input validation, I selected the Sun Room for my private area, and went in: A quick scan through and...WHAT IS THIS? GEOSAFARI? I have very fond memories of real, physical GeoSafari units from my childhood...this Microsoft Bob thing might not be bad after all! After some fiddling, I realized I hadn't enabled sound in VirtualBox. After setting VirtualBox to SoundBlaster16 and ALSA output, I installed the SoundBlaster 1.5 driver in Windows 3.1, with Port 220 and IRQ 5, and hurrah! It speaks! After a rousing game of GeoSafari (which was obnoxiously slow, I might add, and kind of creepy) involving, oddly enough, the capital of my birthstate, it's time to head to sleep...the little square clock in my sun room informs me that it is approaching 5:00am. I bid farewell to a sad little puppy, and look forward to adventures with my old friend Word Perfect 5.1 to come.

Monday, April 20, 2009

I like Natan Last

So a week ago, I was making my way through a NYT crossword (April 13th, to be specific), and was pleasantly surprised when the very first clue ("Best-selling computer game in the 1990s") turned out to be the much-beloved "MYST" that I still haven't come close to completing, mostly for lack of trying. I didn't think anything of it, and the other geekier clues, until 37 across: "Widespread Internet prank involving a bait-and-switch link to a music video". The answer, of course, was RICKROLLING (link is just YouTube, no worries). I was duly impressed - who was this crossword author, that had the guts to rickroll (well, sort of) over a million NYT readers? And that's not all. There were some other geeky clues, varying from catering to a geekier crowd to an outright reference to geek culture:
28D: "Nick at ______" (NITE)
33D: "Jobs at Apple" (STEVE) - this is why I love crosswords.  Little puns and twists like this.
 1D: "Owner of the Springfield Nuclear Power Plant on 'The Simpsons'" (MRBURNS)
30D: "'2001' computer" (HAL)
64D: "Letters at the end of a proof" (QED)
I looked up the guy, and it turns out he's a now 17-year old crossword genius. Which makes the geeky clues make a lot of sense.
The end result being I quite enjoyed solving this puzzle, and it made me smile a bit. Kudos to you, Mr. Last.

Wednesday, April 1, 2009

Zuckerberg leads one-man raid on Twitter

In a move not entirely unexpected that some had seen as inevitable after Twitter's rejection of a buyout, and the more recent layout changes to Facebook, Mark Zuckerberg was seen advancing on Twitter's San Francisco headquarters in an FV432 armored personnel carrier on Wednesday. His demands are not entirely clear, but it is presumed that he is trying to enact a hostile takeover of the company of under 100 employees by force. Witnesses report Zuckerberg shouting phrases such as "Got you now, suckas!" and "I'll show you not ready!" Tweets from various employees inside the building now under siege generally had a tone of bewilderment and shock, although they generally were still not ready to give up their company to the marauding Zuckerberg. "Has he finally lost it completely? Is that a tank? Can he do this?" "Should we call the police? The army? What do we do?" "Zuckerberg can't have our company until he flattens it" were a few of the tweets coming out of the building. Meanwhile, rumors of an internal coup back at Facebook while Zuckerberg is away have also been floating around, due to the percieved distates for Zucerberg within his own company.

Monday, March 30, 2009

Cloudy with a Chance of Fail

I felt the need to deviate from the usual geeky tone of this blog to alert you to a terrible occurrence. Many of you may be familiar with the beloved children's book, "Cloudy with a Chance of Meatballs." Well, they're making a movie of it.
I'm calling for a 98% chance of fail. Probably not financially, because America is stupid. But in every other aspect. For those of you not familiar with the original book, you will probably not understand. But if you have, watch the trailer, if you can bear it:
My response was as follows.
If the trailer is any indication, this movie heartlessly and mercilessly destroys and mangles the soul of a children's book that was and still is and always will be treasured by millions of children, including myself, for what? A cheap, two-bit 3D cheesefest, because Jimmy Neutron has already been done.
Gutting a book of all meaning, spirit, and substance for a bunch of gaudy pictures is hardly new to the movie industry, but rarely is it so perpetrated so thoroughly and shamelessly, to such a beautiful, precious target.
Now, I could be wrong. The movie could turn out okay. The scenes that are lifted straight from the book are decent. All they would have to do to avoid crushing the soul of countless children is cut out the first 75%, turn down the color saturation about 80%, cut out the main character or two, and re-frame the entire premise.

The idea of this movie just makes me sad. And angry. And upset. This book could conceivably be a movie, but it would have to be made carefully and lovingly by the likes of Tim Burton, à la Big Fish, not raped and pillaged for financial gain, because we can do stuff in 3D now.

I think I finally know how readers of V for Vendetta feel, and I apologize for enjoying that movie if it was anywhere nearly as heinous and adaptation as this.

Saturday, March 14, 2009

Pi Cookies, v3.0

For the past three years now (ever since I've been in college), I have made pi cookies in honor of Pi Day, based on the fantastic guide put together by one Joseph Hall for Ubuntu cookies. Today is Pi Day, and also no exception. After pondering fancy ways to make a good, decent pi shape, I decided to just eventually go with a double-T type shape, because the dough wasn't nearly as helpful as I had anticipated. Here are some pictures of the first time, freshman year: This is half of the final log, partway through cutting off the sections. You can see that the double-t design worked fairly well. This is missing the top section so far, but you can see how I made three sections of rectangular blue, and three of white, assembling them in this shape. This is them chopped up and on the sheet, and me eating one of the ends that didn't quite match up. This is what they looked like after baking. A reconizable, if not perfect, Pi.

This year, I went with the same basic plan, but wanted to surround them with an outer circle, and maybe make them a little more pi-like. But I used the same recipe, and same basic plan, but this time took more pictures! After some basic sketching, I determined that I should use approximately 1/4 for the pi, and 3/4 for the outside and filling. I simply divided the dough into quarters in the bowl, and added the color separately. I then put the lumps in the fridge overnight (since I mixed them up at about 1am this morning).
This morning, I divided the pistachio-colored section into three approximately equal parts, one a bit bigger than the rest, to make the legs and head of the pi. I then chopped off three hunks from the large blue part that were about the same size as the pistachio parts, to go in between the two pistachio legs. I rolled each of these into a long rectangles, on separate pieces of wax paper. I threw them into the freezer to re-solidify for a bit, and rolled out the remainder of the blue into a flat section as long as the other sections, and about 3 times as wide, since the diameter will be about twice the width of the sections, and C=pi*D, of course. After putting them in the freezer, I realized that they would make really big cookies, so I decided to cut each section in half lengthwise, flatten them out a bit, and make two logs (I did double the recipe). So for future reference, think about how big the cookies will be before you roll them out. I also decided to try putting little divots in the large section to wrap around the corners of the pi rectangle, so it would be vaguely circular. We'll see hot that works out.

Okay, tip. Actually,

VITAL PIECE OF INFORMATION THAT WILL SAVE YOU HOURS OF FRUSTRATION AND TROUBLE

Yeah, that's better. And it's pretty simple:

Never, under any circumstances, put two layers of cookie dough in the freezer with a piece of wax paper between them. This happens if you stack two wax papered slabs of cookie dough on top of each other. In fact, to make sure that this point is absolutely clear, I've made you a nice little diagram to explain it all: Now, from this diagram, you can learn a few things. Firstly, I have marginal, at best, drawing skills in Inkscape. Secondly, I am a generically caucasian, hairless person who happens to own (and wear for Pi day) a Pi Shirt from ThinkGeek (affiliate disclaimer), and has a fondness for jeans. But mostly, you learned that putting cookie dough on top of itself, with only wax paper to separate it, leads only to trouble and sadness. And that, my friends, is the take-home lesson.

Now that I've let the troubled cookie dough sit out for a while to thaw out for a while, I'll go and try to re-form the slabs that were destroyed by this fact. I'll let you know how it works. After thawing for a while, we re-formed the slabs, froze them, and formed them as planned. All pretty much went well, except that we lost a lot of dough with all the forming and re-forming and such, so we ended up only doing the blue strip between the legs of the pi, and just adding blue around it a little bit. This is what the end result looked like: I sliced sections off of the log, and laid them out on cookie sheets: I then put them in the oven at 375 for about 8 minutes, as directed, and they came out looking pretty good: They actually turned out pretty nicely. You can even see my efforts with the angling down of the left side, and the curving out of the right leg on some of them. Very nice. A piece of advice, however: make sure to use the wax paper. It works a lot better than trying to just put them on the pan. But once you have them all done, pile them on a plate, and celebrate. Here is the end result: Not a bad representation if I do say so myself. Next year, I will make more of the blue to surround the pi, and make sure to make the pis smaller initially, because I didn't end up having enough blue to wrap all the way around - so the divots didn't work out as planned. Overall, however, this was a very successful endeavor. Many thanks to Joseph Hall for the idea, and my girlfriend for assisting in the actual making of the cookies. Happy Pi Day!

Tuesday, March 10, 2009

It's official: I have switched to Linux.

Don't get me wrong. I've been using Linux as the primary (and basically only) OS on my laptop for probably two years now. And for most of that time, I would default to shortcuts like Windows+R to run something in Linux, and then use Alt+F2 when it didn't work. Well, I've been using Gnome-Do as of late, and moreso recently. It is, as the title bar will tell you, crazy delicious. If you're familiar with Launchy or Quicksilver, it's like that, only on steroids. If you use Linux, you must check it out. Anyway, that's beside the point. The point is, on Linux, I now use Windows+Space to do pretty much anything. Today at work, I wanted to call something up, and this is what happened:
Windows+Space
...hmm...dang, that didn't work...
Alt+F2
What? That didn't work either...oh wait.
Windows+R
I'm on Windows. Now what was I going to do? Oh yeah...the run dialog won't do that easily.
Start->Programs->Internet Explorer
There. Now what site was I going to test...
And the whole sequence made me smile. Except that I was testing one of my sites in IE, which shouldn't have to happen. And yes, I'm aware that I could have typed iexplorer in the run dialog, but I'm so used to typing something "Internet Explorer" (or, most likely, "Int") in Gnome-Do that I was in the start menu before I remembered that.

Monday, March 2, 2009

Syntax Highlighting for SPIM in Notepad++

For one of my classes we're working with SPIM, and I wanted my code to print out all nice and pretty, which means syntax highlighting. After a little digging through the docs (and finding the counterintuitively placed "View->User Define Dialog" option), I managed to create a user-defined language for SPIM. You can just copy the text below into your userDefineLang.xml to add it, or if you haven't done any user defined languages yet, just download this userDefineLang.xml from my settings and save it to your Notepad++ directory. This file also includes definitions for Smarty as well, just because I didn't see any reason to strip it out. So if you program in PHP and use Smarty, you get a bonus! If you do PHP and not Smarty, I'd recommend checking it out - it makes my life a lot easier.

P.S. I still can't spell recommend right on the first try for the life of me. Stupid word.


P.P.S. When I realized all the angly brackets would mess with the HTML, I hit upon the idea of using a quick
print htmlentities(file_get_contents("/path/to/file.xml"));
in a
php -a
console to HTMLize it, which worked beautifully. Nice.

P.P.P.S. To stop Blogger from inserting <br/> tags all over the place and messing everything up, I had to set "Convert Line Breaks" to "No" in Settings->Formatting. Just FYI.