Saturday, January 30, 2010

TF2 Dedicated Server

Decided to start a Team Fortress 2 dedicated server. IP is 209.20.81.17; server password is that anime convention at which I see a lot of people-who-read-this-weblog.

The server is being run with a stock configuration, but can be modded appropriately depending on what people want to have.

Wednesday, January 27, 2010

Padding This Blog

I’m installing Windows XP SP3 into a VM, and it’s going to take a while, so figured I’d write up some stuff about the iPad.

First, though, an excerpt from Edward Tufte’s book Visual Explanations. This may be breaking copyright law, and I like the guy and don’t really want to piss him off. That said, forgiveness is easier to ask for than permission, and a picture is worth a thousand words.

The above image is a mockup of a data-rich medical record display designed by Tufte and Seth Powsner. Visual Explanations mentions that the layout and “associated computer program” received a U.S. patent, which means (to me) that there is an implementation of this idea floating around somewhere.

“Somewhere” is the key word, because I haven’t ever seen something like this.

My sample size is admittedly limited, though I think it is larger than what most people experience. At my first job, I built software to track nutritional intake for premature infants. I made regular trips to meet with doctors and nurses for presentations and requirements gathering. A family friend is a nurse at Littleton Adventist’s NICU, and I’ve visited her at work a couple times. My current job involves developing sample management software for Northwestern University’s Lurie Cancer Center, and I visit pathologists and technicians on a biweekly basis.

I have not seen displays of such sophistication in wide use at any of those locations.

That isn’t to say that people haven’t tried. The nutritional intake program I mentioned above, for example, was designed to run on tablet PCs. But it never really worked that way: the program was predominantly used at a traditional desktop computer. (I don’t know if that’s still true, but it was certainly true when I was there.)

There were a few problems. The tablet PCs were too thick to comfortably hold in a hand. Their screens were very low-resolution, running at a very uncomfortable 72ppi or so — a standard screen resolution, but not nearly good enough for prolonged use and carrying. They had exposed connectors and all sorts of miscellania hanging off them. They required a stylus for input.0 And they were quite slow.

So I’m interested in iPad-like devices because, to me, it seems like it’s the tablet PC refined just a little bit to be useful in settings where you want the connectivity of a modern network computer combined with the portability of a clipboard plus a screen that has the resolution to (A) not be painful to look at and (B) communicate and manipulate lots of data in a single glance.

Tufte’s mockup is just one example of what you can do with an iPad-like device in a medical setting. Something else I’d like to try using an iPad-like device for is to speed up inventory management of samples. Instead of having to shuffle between a desktop computer and a staining station (which is slow), or somehow tweaking the equipment to automatically communicate work details to a central server (would be nice, but just isn’t going to happen), you can have your iPad-like device next to you at the station, write in what you’re going to do, commit that data, and then do your work.1

I wrote “iPad-like” because I am not interested in actually developing for the iPad. The $500-per-unit starting cost is a lot to handle on its own, and is definitely the most important factor here; but besides that, Apple’s platforms, as carefully designed as they are, do not interest me because they are not open systems; and I’m so used to open systems that targeting a closed platform like the iPhone OS, OS X, or Windows just feels dirty.2

So if someone else out there can build iPad-like hardware (and please pay attention to the fact that Apple has made their system thin and light with long battery life and a good capacitive touchscreen3 LCD here — slapping in a crappy TN low-resolution panel and some miserable 2-hour battery life will not work!) and load Android, Maemo, or some other reasonably-open-to-fully-free system (on the fully free front: has anyone found a way to get OpenBSD into a form suitable for mobile devices?) onto it, I’d like to see it and play with it. I’m willing to pay a lot for engineering prototypes, though I would like you to offer me a significant volume discount too.

Update: Jay pointed out to me that the iPad has a 9.7" screen at 1024×768. This means (if my math is correct) that the iPad has a 204 ppi screen, which is close to what 10" modern netbooks give you and is 60-70ppi lower than what modern smartphones like Motorola’s Milestone, HTC’s Touch Pro 2, and Nokia’s N900 give you.

Update 2: Actually, the iPad screen is 132 ppi. Whoops.


0 I have no problems with using styli as input devices, but you have to consider the context of styli use. Styli work in contexts like phones, where you can comfortably hold the device in your palm and poke at it with another hand. They don’t work so well in contexts where you’re holding a US letter paper-sized device to read and poke at, unless you’ve got a desk nearby.

1 If you’ve seen Avatar, try to recall the scene where Dr. Max Patel moves a program from his desktop workstation to a portable viewing device. I really liked that idea. That has nothing to do with the iPad or any iPad-like devices, but having that sort of flexibility in how, when, and where you view and manipulate data in a laboratory is very, very powerful.

2 I’m also not impressed enough by Apple hardware or software to consider the tradeoff, having owned two Macbook Pros (one first-gen, one fourth-gen) and not noticing any real difference in build quality or hardware/software WTFs between Apples and other computer brands I have used.

3 I also have no problems with resistive touchscreens. I recently purchased a Nokia N900 for use as my primary phone and have not had any problems using its resistive touchscreen, either with the included stylus or my finger. But this particular application I’m talking about, I think, will benefit from the lighter pressure demanded by capacitive touchscreens.

Thursday, January 14, 2010

Trip To Trotter's

I’ve thrown this idea around, but writing it down makes it official.

Sometime in the spring, when lots of people traditionally meet up here in the Windy City, I’d like to have dinner at Charlie Trotter’s. It is, from every indication I can find, one of the finest resturants in the United States (and still run by its namesake — imagine that!)

Going to places like Charlie Trotter’s isn’t something I can do frequently, so I’ve got to go for their best offering. Therefore, I intend to book reservations for the kitchen table menu.

Who’s interested? When’s a good time? (As alluded to at the beginning of this post, I’d prefer sometime in May.) I’ve heard bits of interest from people but now’s the time to get a solid count. Charlie Trotter’s recommends that reservations be made eight weeks in advance, so now’s a good time to start planning. (And saving up. Eating there isn’t cheap; drinking there doesn’t help the cost.)

Saturday, December 19, 2009

Windows 7 and Ubuntu 9.10

Stream-of-consciousness log about my experiences on installing Windows 7 and Ubuntu 9.10 on my new computer.

Introduction

The computer is using an Intel Xeon E5520 in a Supermicro X8DAL-i-O board, an ATI Radeon 5850, 12 GB of RAM, and an Intel X25-M SSD. The video card is hooked up to a monitor with a native resolution of 2560×1600.

First installation: Ubuntu 9.10

I install Ubuntu 9.10 to the SSD off a USB stick, using the suggested disk partitioning method. This allocates approximately 71 GB of space to the root (/) partition and 3.5 GB for a swap partition. Installation completes in approximately 10 minutes. System reboot takes approximately 1 minute. The Ubuntu GNOME configuration comes up at 1400×1050; this is because I have not yet enabled the proprietary fglrx driver. I enable the proprietary fglrx driver. Reboot; approximately 30 seconds this time. The Ubuntu GNOME installation comes up running at the LCD’s native resolution. I run updates; this fetches around 80 packages, installation proceeds with no reported errors. Reboot; approximately 30 seconds. The Ubuntu GNOME installation comes up and the system appears to be fully functional.

Second installation: Windows 7

I decided I wanted a Windows 7 installation for Steam-based games. I purchase Windows 7 Professional and create a bootable USB stick (my computer doesn’t have a functioning optical drive). I boot off of the USB stick. I erase the existing Ubuntu installation using the partitioning tool in Windows 7 Setup. I allocate 11000 MB — about 10.7 GB — to Windows 7; Windows 7 notifies me that ~ 27-28 GB is recommended, but does not prevent me from proceeding. (I later find out that Windows 7’s install footprint is approximately 8 GB.) I proceed with Windows 7 installation. Windows 7 installation completes in approximately 10 minutes and reboots the machine. I change boot order to boot off of the SSD.

Windows 7 did not erase GRUB out of the SSD’s boot sector. This triggers an error condition in GRUB, which appears to not be able to boot off of NTFS partitions, which prevents me from continuing with Windows 7 installation.

Third installation: Ubuntu 9.10

I reinstall Ubuntu 9.10 to establish a bootable OS for GRUB. Ubuntu 9.10 setup detects the Windows 7 installation and prompts me to either erase the installation or choose manual partitioning. I choose manual partitioning and install the Ubuntu 9.10 system in the remaining 65 GB or so of space. I reboot the system after the installation is complete. The GRUB boot menu now appears, with an entry for Windows 7. I select the Windows 7 option and press Enter.

Continuing the second installation: Windows 7

The Windows 7 installation continues; about 5 minutes. The Windows 7 installation reaches its “completing installation” phase, at which point I receive an error message to the effect of “Windows 7 cannot be installed on this hardware.” I click OK; the system reboots. I reach the GRUB boot menu again, and select the Windows 7 option again. I receive another error: “Windows could not complete the installation. To install Windows on this computer, restart the installation.”

So that’s what I’m looking at now. I’m not really sure how to proceed with this.

At least Ubuntu works.

Update (3:47 AM): complete wipe

I wipe out all partitions and install Ubuntu first this time. I create two physical partitions on the SSD: an 11000 MB partition as partition 1, and allocate the rest as partition 2 as an ext4 filesystem. I install Ubuntu to partition 2 and reboot the system to make sure it works. I then install Windows 7 to partition 1. This wipes out GRUB; I will reinstall it later from the Ubuntu installation media. I reboot the system. Windows 7 installation continues. The installation program reboots the system. I am prompted to enter my product key; I enter my product key from my receipt. Windows 7 installation tells me the product key is not valid. I double-check my product key against the receipt; it matches. I re-type the product key. Windows 7 installation tells me the product key is not valid.

Typical.

Update (5:36 AM): Windows 7 installed

Microsoft (or some Windows 7 distributor) seems to be locking ISO images to specific product keys. I was attempting to install Windows 7 using a friend’s image and my key, which did not work. Downloading the image via the Digital River downloader provided to me in the confirmation email I received after purchase did work.

Some observations

  • All three installations of Ubuntu 9.10 were successful, where “successful” means “I had a software loadout where I could use all installed hardware”. Two out of three Windows 7 installations failed.
  • Locking specific keys to ISOs is quite an annoyance, as is the subsequent activation process. There is no reason why I should have to spend half an hour downloading what someone I know has already downloaded. The product key, as far as I know, is my proof-of-purchase, and Microsoft can verify this with whatever invasive activation and verification procedures they clandestinely perform.
  • I would have saved money, time, and immediate inconvenience if I had decided to use an unauthorized copy of Windows 7. I cannot say whether I would have been inconvenienced later by e.g. malware injected into the unauthorized copies, because I have not examined any such copies.
  • Windows 7 does not recognize the RAID controller on my board; I think the drivers shipped on the motherboard CD are required. The default install of Ubuntu 9.10 finds the RAID controller. This isn’t really a problem since I don’t plan on using hardware RAID in the immediate future, but it is nevertheless something to note.
  • Neither Windows 7 nor Ubuntu had the correct driver for my video card in the default install, but the fglrx driver download is on the order of a few megabytes. The ATI Catalyst download for Windows 7 approaches 90 megabytes. I realize this isn’t Microsoft’s fault, but the difference is pretty striking.
  • The Windows Experience Index tool rates my hardware configuration a 7.3 on a scale of 1.0 to 7.9.

Tuesday, December 08, 2009

Announcing Dagnabit

I’ve just released dagnabit, an ActiveRecord plugin for representing directed acyclic graphs in relational databases. The source is online at Gitorious and the library is available as a gem from Gemcutter.

I wrote dagnabit because I needed a way to support fast reachability queries (i.e. “is node C connected to node A?”) in directed acyclic graphs for a work project. Existing dag plugins, at the time, either provided only slow recursive queries (slow when each recursion requires you to hit the database) or had unwieldy code bases.

(You can argue that a relational database isn’t the right place to store a dag. You can argue that DataMapper is the new hotness and ActiveRecord is legacy. I tend to agree on both, though am more cautious on the latter. But sometimes you have to work with what you’re given, for inertial or institutional reasons.)

dagnabit is my attempt to solve both problems. It’s fast and well-tested. (Yes, I know line coverage doesn’t mean much, but it’s a start.) Documentation’s a little dodgy, unfortunately, but I think it’s sufficient to use the library. Let me know if that’s not the case.

Thursday, November 26, 2009

The Side Dishes

Lots of people write about recipes for preparing turkey for Thanksgiving, but there’s not as much out there on the side dishes. So here’s my contribution, a little ditty about mashed potatoes:

Boil potatoes until soft, mash with butter (or perhaps olive oil would also work) and chives. Sprinkle in a small palmful of kosher salt and freshly ground black pepper. When potatoes are mushy, add a couple dollops of sour cream. Mash again until all ingredients are well-distributed and set aside.

(Yeah, mashed potatoes are easy to do. So what? They’re hearty and add a lot to a meal.)

Sometime during this week I’ll also have to figure out how to prepare kalbi short ribs, which I suspect has a lot to do with getting the marinade right. Should be fun; any tips are appreciated.

Tuesday, November 03, 2009

Takoyaki

Next entry in the cooking saga: takoyaki. Nothing fancy; just the standard complement of konbu dashi, egg, all-purpose flour, pickled ginger, octopus, green onion, sakura ebi, bonito flakes and so forth.

Motivation: I discovered that a takoyaki grill attachment exists for my multi-cooker gadget. I picked one up at Mitsuwa. New toy syndrome dictates I use it. You get the idea.

No picture because my efforts were consumed before I could get out my camera and lighting gear. Besides, my three attempts really sucked, at least visually. Now that I’m more familiar with my equipment and the grilling technique, my future attempts should be marginally better.

Some notes:

I cheated on the konbu dashi, and I feel quite disgraced at doing so. Instead of preparing the stock from kelp, I purchased konbu dashi soup base. Making dashi isn’t hard (seriously, just like most any stock it comes down to “boil, reduce, repeat”), but in my contemporary contempt for contemplative decocting I took the easy way out. I was also very hungry and was cooking after work.

Not sure if I’d detect a difference in the taste of the final product, but damnit, it’s the principle of the thing. Just need to make time to do it right…

The takoyaki grill attachment illustrates the heat gradient of the multi-cooker gadget painfully well. Learning to work around the hot spots will be an interesting challenge. One solution is to toss all the fancy electric gear and go with the tried-and-true gas-fired setup, but that’s not practical in an apartment setting. A griddle mounted atop our existing gas range might do better, but it is not as convenient as an electric multi-cooker, nor is it as easy to clean.


Next on my reading list: this book. Sure, it’s all about French cooking, but it’s supposedly a classic, and French cooking technique is hardly dead. If nothing else, it’ll be a nice change of pace from this.

Sunday, October 04, 2009

Real Artists Ship

I am a phony.

Was reading over the Google Wave developer’s guide today. It occurs to me that the Inkboard software I had a hand in building so long ago, and have now (unfortunately) abandoned, would be a perfect candidate for a Wave application.

Before I started reading over the Wave documents I was playing with the Raphael vector graphics library and building some graph layout prototypes. A Javascript and canvas-based graph editing system would be extremely useful for my current work project.

But…blah. I have massive inability to commit. How do you say “damn it, I’m going to do this” and make it stick? I’ve been trying to decide based on how cool I think something would be, but that doesn’t seem to be working.

Friday, September 25, 2009

One Man's Trash

http://iasaweb.korora.net/uploads/0773df9c4bfb8b40b6dfa31d3d810a0a/RIAS_2_3.pdf

If you’re familiar with my old Flickr account, you might find the cover image familiar. Whether or not you do, check out the bottom of page 2, and all will be clear.

The editors of the IASA online journal seem to have a habit of using material under appropriate Creative Commons licenses for their covers, so it’s not like I’m pointing out an anomaly in their publishing. I guess it’s just neat to see something that I deemed a throwaway shot — useful for nothing else beyond posting to a photo bit-bucket — actually be useful for someone else. And now I sort of regret deleting my Flickr account. Oh well.

Thursday, September 24, 2009

AWA 15 Photos Up

A selection of my AWA 15 photos: http://photon.ninjawedding.org/awa15

I’m trying a presentation format akin to the grids I used in Brad & Liz’s wedding book. Let me know what you think.

When viewing the gallery, you can pull up the full size of any picture by clicking on it. I’m toying around with the idea of adding comments via Disqus or some such.

For web types, you can check out the Javascript and CSS that drives the thing by viewing the source. (The Javascript is horrendous.) Also feel free to check out the Haml and Sass from which the gallery was generated. Both are quick hacks and are very messy, but should get the basic ideas across. If I end up liking this format I’ll be cleaning it up for incorporation into a gallery generator.