Monday, July 19, 2010

The Mitsuru Photoshoot

People who have Ashley Riot as a friend on Facebook have already seen a few of these, so you know where they’re coming from. People who have no idea who I’m talking about may or may not have seen these, and it is for those people that I offer the following background.

I was doing a photoshoot with Ashley this past Friday at sunrise on the western edge of Lake Michigan. Johnny Fowle was also around; this will be important later on when I mention how much I didn’t know about composition. The following is a small selection of shots I liked, shots I wish could like but found too much to hate in them (and why — if nothing else, writing that sort of thing down will fix it in my mind), and a couple of silly ones.

I’d like to put these under my standard Creative Commons BY-NC-SA license, but I honestly have no idea how that works in the absence of model release forms. (My understanding is that without said forms, the photographer has no right throwing the images under CC BY-NC-SA. Hell, the photographer has no right to publish; I can only do that due to verbal permission.) Obviously I need to think the legal aspects of this sort of stuff better next time. Until further notice, consider these all rights reserved, if only because that’s the safe option.

On to the images. Click for larger size.

Ashley’s dressed as Mitsuru Kirijo from Persona 3.

I like this shot. You can see the platform we shot on (the blue blanket between her boots), and I need to either find some way of fixing that or discard this shot, but besides that annoyance I am generally okay with the way this turned out. I do regret not gelling my strobe to match the color of early daylight, though; my failure to do that results in some stark contrasts between her front and back, which is made worse by the choice to use the sun for rim light.

Another image in the same vein, but this time framed to eliminate all ground. The shadows on her face are too harsh, and make her look too old: the strobe was too far back, thus too small, thus too hard. I again failed to gel my strobe, too.

If you’re wondering why I even have a strobe in these photos, it’s because I couldn’t think of any other way to light her against the sun. Reflected sunlight didn’t work too well for me: I couldn’t get it intense enough to overcome either fast shutter speeds or very small apertures.

The composition in the prior two shots was greatly assisted by having someone else around (viz. Johnny Fowle), who showed me all sorts of things that I didn’t even know were suboptimal or flat-out boring. This is why I have not, and will not, write about composition of these photos: I don’t have the vocabulary to do so. Obviously I have a lot to learn here; thankfully, I now have a cache of some 4,100 example images to study, so that should be quite a help.

A more tightly framed shot. I don’t really like this one, so…

…here’s one I do like, which is a variant on shooting angle and pose from the previous image. And here’s some reasons why I prefer this image: the light in this one is much softer (because the strobe is closer); the light’s color is much closer to early sunlight; there are actually shadows on her, which adds depth… it’s just all around more visually interesting, in my opinion.

This is a fun and visually interesting angle (and I’m pretty sure J. Fowle shot this one), but the connection between my strobe and radio trigger went bad here, so the light is junk. I did the best I could in data recovery by playing with the histogram and curves, but there’s only so much that you can do.

Finally, a more humorous outtake. We were going for motion in the background, but it ended up just looking like some sort of really unusual flatulence. Perhaps if we had sand coming from both sides of the frame — and if I had captured it just a few milliseconds later — her body wouldn’t have masked the sand as to alter the emission point. Ah well.

Wednesday, July 07, 2010

I'm Happy About Some Things After All

Been tooling around with Canon’s 100mm f/2.8 macro lens lately. Nothing really spectacular yet, though I do like these two pictures that I grabbed at the Chicago Botanic Garden:

Aechmea (overhead view)
Orchid (stigma closeup)

I’ve been flipping through Christopher Beane’s flower portraits, and I wouldn’t be surprised if that’s an influence. Obviously what I’m doing is far worse than Beane’s work, but oh well.

I built an OpenSolaris and ZFS -based file server a few weeks ago, and it’s worked out amazingly well. 4 TB of storage with the ability to survive the loss of any two drives. It came out to just a tad under $1000, which is pretty good, I think. Here is the parts list. (The parts list goes over $1000, but that’s because I threw in a gigabit Ethernet switch, which isn’t really part of the server.)

The file server has so far been storing all my photos, music, and videos, and does some double duty as a VM and disk image host. It’s running PS3 Media Server; from there, I can stream all that stuff to a PS3 (obviously) or my phone. Is pretty nice.

Finally, another word on servers: I’ve been rebuilding my personal servers using Chef, and it’s great.

The server known as extremely.overused.name runs, among other things, my private Team Fortress 2 and Counter-Strike: Source dedicated servers. Running these servers requires a bunch of supporting infrastructure:

  • 32-bit compatibility libraries (since the server code is a bunch of 32-bit proprietary binaries and I run 64-bit OSes)
  • firewall setup
  • screen, just because it’s useful
  • a web server for efficiently serving game assets

and some other stuff.

Well, instead of having to remember to install all that, I can just encode installation and configuration rules as Ruby programs. Provisioning and convergence can then be done automatically. Woo.

Another project in the same vein as Chef is Puppet, which is being used by the Free Software Foundation.

I’ll get around to posting my Chef recipes sometime, if anyone’s interested.

Saturday, May 15, 2010

Pointless Nerdish Notes On Web Design And Culture

A quickie.

It’s a little mindblowing that it’s just a font tag (which, FYI, has been deprecated for over a decade). Classes appear in the rest of the page (mostly for link styles), so it’s clear that someone running Naenara knows about them.

One explanation is that the body text was mechnically transformed from some word-processor format to HTML.

However, if that’s the case…man, what a lazy and incompetent way to treat Dear Leader Great Leader.

Friday, May 14, 2010

Information Presentation And United Airlines' Check-In Process

Some observations about information presentation and design at United Airlines’ check-in counter at Chicago O’Hare International.

There is a large video panel suspended above the queuing area for U.S. flights:

That panel displays the same 3-1-1 liquids policy slideshow loop that plays above the check-in machines:

It is a terrible waste of a large canvas.

Why not move departure information from its current location, which can only be read from the queuing area for international departures (and even then, not very well)

to that large screen? Or, if visibility is still a problem, how about these four LCD screens suspended above each queuing area that, again, are redundant:

Why not use those to display flight status? Result set faceting is built-in: if you’re queuing in the domestic flights area, you’re only going to want to see domestic departures. Sure, there’s more flights than will fit in a single page, but slow, periodic pagination through a result set might work to solve that problem. It’s not like queues move particularly quickly at O’Hare. (If they move at all.)

These changes would increase visibility of flight information for travelers. Sure, most people receive updates on mobile devices, but those can lag behind information displays in airports (at least, the updates I receive via United EasyUpdate do), and looking at a large, well-designed information display is much more convenient than busting out a mobile device and poking at it.

These changes would also assist travelers in making last-minute itinerary alterations, such as in the hypothetical scenario in which O’Hare and United jointly fuck everything up by cancelling loads of flights, booking you on a flight due to leave the next day at 6 AM, and only having three agents available for handling check-in and negotiating alternative flight solutions, thus instigating additional missed flights, impatience, two-hour-long wait times and a reminder of why one should always expect failure from the US airline industry — and, indeed, any organization that doesn’t have a human face you can punch.

Just a thought.

Friday, February 12, 2010

Email Services

I am looking for an email hosting service that satisfies the following criteria, in descending order of importance:

  1. They state how and when they read my email. (Example: “Your incoming mail is read by our spam filter.” Ideally, they’d describe what filters they use, so that I can read up on them and become more educated about how my mail is processed.)
  2. Should the hosting service be forced to cease operations due to financial trouble, they provide at least one week notice so that I can get any messages which remain on their servers into local storage.
  3. Should the hosting provider be coerced by law to reveal my mail to (say) government authorities, executives, or any third party that would normally not be privy to my email, they notify me. (This includes when my account is swept up with many other accounts.)
  4. Reasonable cost, where “reasonable” is less than or equal to 50 USD per year for (say) a gigabyte of storage space and double that amount in bandwidth. I’m willing to pay some more to be left alone.
  5. The hosting provider actively maintains a “canary” for times where warrants issued as part of (3) forbid notification. Such a canary does not directly contravene law, but rather provides an indication that extraordinary circumstances are at hand. (An example.)

Here’s what I’ve tried so far:

TuffMail passes all of these except for (2) and (5). There is also uncertainty with regard to (1): for example, they state “We do not visually examine the contents of Your email unless we have to do so in order to resolve technical problems” — is that technical problems that I report, or any technical problem for any user? Anyway, I’m not too worried about (5) yet, but (2) is a bit disconcerting: in their terms of service, they state that they can shut down whenever they want and that I have no recourse.

Pobox, HushMail and FastMail don’t spell out when they read your email in their privacy policies.

Gmail is right out.

Running my own mail server is a start to solving all of these problems (assuming a non-hacked machine), but I cannot devote the time to do that.

Not using email is, sadly, not an option. Too many people rely on me having an email address.

Ideas?

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.