home icon contact icon rss icon

Archive for Blog

Breathing in a good night's sleep

inhalable drug could replace the need for sleep

Read: Ramayan 3392 A.D.

Read: Ramayan 3392 A.D.

Ramayan 3392 A.D. book cover

Review: 5/5

A fantastic retelling of the epic Ramayana set over a thousand years in the future. The story is exactly as it should be from the brooding Rama to the terrible Asuras. Very well done.

Read: The Principles of Beautiful Web Design

Read: The Principles of Beautiful Web Design

The Principles of Beautiful Web Design book cover

Review: 4/5

A great book on the theory of design for webpages. The book covers key design principles for layout, color choice, textures, typography, and imagery.

6 Megapixels is the ideal digital camera resolution

It turns out that six megapixels is the ideal digital camera resolution. Less than six and there is too little resolution, greater than six without significantly increasing the size of the camera and there is too much noise

Hacked version of Super Mario Bros.

video of a hacked version of Super Mario Bros. — hilarious if you’ve ever played the original

Merry Christmas

I hope everyone had a great time yesterday. We sure did!

If that weren’t reason enough to be cheery: Ruby 1.9 has been released, and it has a ton of new features.

A small selection: Classes no longer inherit class variables, String.each_char passes each character, not byte, bytes of a String can be accessed with String.bytes, Enumerable is part of the core, and hashes preserve order. Sweet!

Christmas Music, FTW

For a while I’ve been trying to liberate our music from the confines living room (it has the receiver and our tower mac with all of our music) into other areas of the house, particularly the kitchen. It’s much better to clean and cook with music than without, after all.

For months we’ve just been plugging an iPod into a dangling headphone connector plugged into Sarah’s old Aiwa stereo up on top of the cabinets. This solution lacked the ability to sync the music playback from room to room and only played back iTunes media: music, podcasts, etc. But it did work well enough to be a long-term temporary solution…until my iPod broke (clicking hard drive and all). Clearly, it was time for a change. True, we still have Sarah’s iPod and two laptops with perfectly working headphone outputs but it was time for improvement.

I considered just buying Airport Express, a nifty wireless network product from Apple that can connect to a stereo and allow you to play music through it. Playing back music in the kitchen would be as easy as selecting (‘kitchen stereo’) as an output. Nifty and wireless, but also over a hundred bucks and with the same restriction on content as the iPod. My ears desired a grander array of audio choices. Why stop at music when I could be playing DVDs and television in the kitchen as well? But how?

Being busy at work I just went with a laptop plugged into the stereo playing Pandora or Last.fm, not too bad. But then came the second catalyst for change: Christmas and, by association, Christmas Music.

Christmas music has always been big in my family. Growing up, we kids always looked forward (some of us more or less than others) to the time of Christmas music. While there were a few cassette tapes in rotation, the two that stand out for me are A Holiday Celebration by Peter Paul and Mary and A Christmas Together by John Denver and the muppets.

When my break from work started on Friday I started pondering a real solution and had a real duh moment. We have a receiver, a receiver with a speaker B option! All we needed was plenty of speaker wire.

Ten bucks and a hundred feet of (cheap) speaker wire later I connected two speakers from Sarah’s old stereo to the ‘B’ output of our living room receiver. Now whenever we want to hear music from anything playing on the reciever we just have to click a button on the remote and the sound is duplicated to a speaker in the kitchen and one in our other living room, nicely spreading sound throughout our first floor.

Hark the sound of Tarheel voices

Lewis and Jessica at his Graduation from UNC, 2007

It had to happen someday. As of last Sunday, Lewis is a graduate of UNC-Chapel Hill. The dynasty is now complete. Five siblings, five UNC graduates. 1988-2007. Go Heels!

Finished: Assassin's Creed

Finished: Assassin’s Creed

Assassin's Creed Cover Art

Review: 4/5

Absolutely superb graphics. The game world is fully realized with three sprawling cities (Acre, Damascus, and Jerusalem) as well as miles and miles of connecting countryside (explored on horseback!) in the year AD 1191. With each cities tumultuous streets packed with citizens going about their business (giving loud speeches against this or that public figure, hawking wares, carrying goods, begging for money, etc.) the game does a great job of creating the illusion that the game world doesn’t revolve around the player/character. You truly feel as though you are an intruding outsider, a sword in the crowd waiting for the chance to strike. The assassinations are tense and exciting but for me the true fun is the exploration of the vast game environments.

Mathematics of Traffic Jams

Even geeks go to a crazy place when the discussion turns to the mathematics of traffic jams. Here’s a nicely animated explanation of how traffic patterns should work

Read: Prince Caspian

Read: Prince Caspian

Prince Caspian book cover

Review: 2/5

The story was decent enough, but it was over almost as soon as it began. The characters weren’t fleshed out at all, we are told what happens more than we are shown, dialog is extremely matter-of-fact, and the Aslan as Christ allegory is more than a little heavy-handed. I never realized just how good Harry Potter was to the world of children’s literature.

Watched: I Am Legend

Watched: I Am Legend

I Am Legend movie poster

Review: 2/5

Great portrayal of a World Without Us style NYC, but unfortunately the movie gets worse the closer it gets to logical thought.

Watched: The Golden Compass

Watched: The Golden Compass

The Golden Compass movie poster

Review: 3/5

It’s no Fellowship of the Ring, but this was a pretty decent fantasy flick. Loved the armored polar bears, but the anti-Christianity theme seemed a little shoehorned.

Desktop Tower Defense

Desktop Tower Defense – a highly addictive flash game wherein you design a layout of towers to stop creeps from crossing your desktop. The creeps (except flying creeps) can’t move through or destroy your towers so they have no choice but to wind through the maze of towers you construct. The game prevents you from sealing the creeps into an unsolvable maze. Seeing a stubborn creep manage to wind its way through your maze only to be done in by your last killzone? Priceless.

Read: Atlas Shrugged

Read: Atlas Shrugged

Atlas Shrugged Book Cover

Review: 1/5

The worst book I’ve ever read to completion. This was my Everest. After 1000+ pages of horrible writing, interminable dialog, and philosophical ideas that can’t even properly exist in a fictional construct designed to promote them I feel like I can get through anything. I’m giving it a generous .5 for nifty 50’s era science fiction and .5 for a mildly interesting plot about “important” people suddenly vanishing. More thoughts on this book in an upcoming blog post.

Watched: House - Season Two

Watched: House – Season Two

House - Season Two DVD Cover

Review: 4/5

With a first season (and character introductions and dynamic) out of the way the season season of House delivers with some interesting characters arcs culminating in a fantastic season-ending cliffhanger.

Watched: House - Season One

Watched: House – Season One

House - Season One DVD Cover

Review: 4/5

The show is actually much more enjoyable than I orginally gave it credit for. The medical hand-waving is ok, but the real draw is Hugh Laurie’s excellent acting and the delicious soap opera dynamic of the cast.

Garfield without Garfield

want to make the comic strip Garfield funny, weird, and sad? take out everything Garfield says

Fear brains, not robots

Forget the robots, we should fear the disembodied brains that can fly F-22s. Does this count as artifical intelligence?

cinco!

my niece’s portrait of her ugly doll – how awesome is that?

New research into resuscitation

turns out that when someone’s heart and brain goes without oxygen for an hour, their cells only die after they get oxygen

TriLUG December Social 2007

TriLUG December Social 2007

Report Discussion Wiki

Long and potentially boring work story, feel free to disregard.

Many departments in the library have been asking for a document management system for quite some time. Specifically, asking for wiksi. I should know because I used to be one of the people in another department asking for them. In Reserves, with no server access, I ended up setting up a tiddlywiki on a network share drive. It worked for our three person group, but obviously wouldn’t scale much beyond that.

Desktop and Network Support (where I work now, a group in the Library Systems department) used to use (well, is actually transitioning away from) an in-house php application called SysDocs to store documentation. It worked well enough for simple things, but lacked features like effective searching, inter-document linking, etc. to be generically useful. Unfortunately, it worked well enough to resist all efforts to change it. Since I started this job last December I’ve been urging wiki software as an effective replacement.

Unrelated to work documentation, but wikis also happen to be one of the trendy library buzzwords associated with (sigh) web 2.0 that, for better or worse, are getting some major play in discussions on exactly what we as a library could be doing with this whole internet thing.

Enter a friend and coworker of mine in the Unix group of Systems who, fed up with the constant delay in actually deploying a test rollout of wiki software, went ahead and deployed a test rollout of mediawiki on our pre-development server. Happily, the first wiki he deployed was a documentation wiki for our department. Since he knew that I was a fellow advocate, he brought me in to pull over some of the documentation from SysDocs and help sell it to the crowd. I was able to do so with some success by volunteering to take charge of the content transfer if necessary. We are now in the discussion phase for rolling out wikis to departments that request them. All well and good.

Almost. We didn’t quite move fast enough and some departments have started up one or more wikis on pbwiki.com or in strange internal formats (e.g. tiddlywiki, yes I know), which my friend and I will have to (being the resident “wiki team”): convince them that moving to a library hosted wiki is better in the long run, and figure out how to transfer the data from these odd places into a mediawiki instance.

So that’s the state of wikis. Now on to the “Report Discussion Wiki”.

Every few years the library brings in a library consulting firm known as R2 to evaluate workflows and make recommendations for improvement. After a week or so of interviews and analysis the firm writes up a long report (76 pages in our case) on its recommendations. What does a library do with reports, especially a huge university library? Why, it talks about them. Meetings about the report, meetings about the meetings, committee meetings, meetings of committees, etc.

To solicit and organize comments on the entire report from all the affected staff, one of the library higher-ups was going to: get the report in word document format, turn on “track changes”, email it to the few dozen people who would be commenting with instructions to just edit and add comments directly to the document, and finally go through each of the few dozen returned word documents by hand and collate the comments and suggestions.

(a pause for that to sink in)

My boss found out about this crazy (albeit awe inspiring) plan, and decided that our brand new wiki making ability could be just the solution. Wikis allow editing and commenting from many to form a cohesive whole. So my friend was tasked with setting up the wiki instance, and I was tasked with transforming the report into a wiki format in such a way that it would be easy for non-technically oriented people to add their comments. Ah…there’s the tricky part.

Converting the text of the report to wiki formatting was cake thanks to textmate and regexes. The report was broken into a dozen sections of moderate length, so it was clear that an article with for each section would be perfect. I created a navigation box for the top and bottom of each article that let readers easily go forwards and backwards. Each section in the report was nicely organized into headers which directly translated into a semantic wiki article format. The only tricky part was that whole “easy to add comments” thing.

At first I just created a nice BIG link to the discussion page for each article at the top of each article. The discussion page had a header describing how to add comments with a link to a comment help page if they needed a refresher on syntax and the like and another BIG link to ‘Add Comment’ which was an alias for ‘edit this page’. That worked alright, but the editing window presented from the ‘Add Comment’ link had a lot of scary syntax (the header of the discussion page). Not good.

I realized that since we are dealing with non-technical people then they probably wouldn’t really feel comfortable self-organizing the discussion page with relevant headers either. So I hit upon seeding the discussion page with the same headers that were in the article. This made the discussion page nicely organized and easy to read, but even more intimidating in the editing window. Now worse.

Then came my big breakthrough: each of the discussion headers has its own “edit” link. Clicking on the edit link takes the user into an editing window just for that header section. Instead of seeing all of the headers and comments, they’d only see the header for the section they were editing and any comments made on it so far!

Using some mediawiki variables I made a generic “Add Comment” link to go at the end of each header section in the main article that takes the user from the section straight to an editing page for that corresponding section in the discussion page. I wrote a full description of the technique in my new techtips section.

Success! The formatting won over many people who thought that commenting on the report in a wiki format would be too complicated to be useful and my friend and I both got kudos at the first big report discussion meeting. Wikis, FTW!

Designing a Report Discussion Wiki

I was recently tasked with converted a large document into an easily commentable wiki using mediawiki. Here’s how I did it:

Start an article using one or more headers to organize content.

  (article)
  == Header 1 ==
  Content content content.
  == Header 2 ==
  More content.

Mirror the headers in the discussion page

  (discussion)
  == Header 1 ==
  == Header 2 ==

Now, notice that each header in the discussion page has its own edit button. We are going to use this to add an ‘add comment’ link to each header in the article. To do this we’ll have to go pass two arguments to a full weblink: action=edit, and section=(the appropriate section number). The section numbers start with 1 for the first header and increment up. To make this link as generic as possible we’ll use mediawiki variables to construct the link:

Add an ‘Add Comment’ link from the article to the corresponding section of the discussion page

[{{fullurl:Talk:{{PAGENAME}}|action=edit&section=1}} Add Comment]

Add this text wherever you’d like the ‘Add Comment’ link on the article page. I found that after the content of each article works well. So we end up with this:

  (article)
  == Header 1 ==
  Content content content.
[{{fullurl:Talk:{{PAGENAME}}|action=edit&section=1}} Add Comment]
  == Header 2 ==
  More content.
[{{fullurl:Talk:{{PAGENAME}}|action=edit&section=2}} Add Comment]

Now when users click ‘Add Comment’ on the article, they are taken straight to an editing view of the corresponding section of discussion page. Easy!

WaterRoof

WaterRoof: firewall management for OS X

Funny Farm

Funny Farm: an addictive word association game