Monthly Archives: October 2006

Invasion

Visitors to my house today included:

Spiderman
A pixie of some sort
A dalmation child — so cute
Snow White
Thomas the Tank Engine
Red Power Ranger
Army guy (with grenade)
Butterfly
Spongebob
Cheerleader / sorority girl?
Bumblebee dog
Pablo, the blue penguin
Jason Varitek
Surgeon (x2)
Ninja (x2)
Some kind of ghoul who was missing some flesh on his ribs
A purple gumdrop
The tiara’ed friend of the purple gumdrop

A small gang of three to five year-olds swirled around, and I couldn’t keep track of their costumes.

Posted in This is who we are | 2 Comments

Narcissistically yours

As seen at The Clutter Museum.

Explain what ended your last relationship?
I don’t really have time to get into it now, but I took a trip to the U.P. in my 1963 Dodge Dart to visit my *ahem* “girlfriend” and came back on a Greyhound after meeting my “girlfriend’s” new boyfriend a few hours after my car’s engine exploded at 1:00AM in rural Michigan. I spent the night in the Milwaukee bus station and returned home with no car, no girlfriend, no cash, and no luggage.

When was the last time you shaved?
This morning.

What were you doing this morning at 8 a.m.?
Crawling along in traffic on 495, listening to NPR.

What were you doing 15 minutes ago?
Finishing a weekend’s-worth of work e-mail.

Are you any good at math?
Am I. But not as good as others in my mathematics program.

Your prom night, what do you remember about it?
Triscuits. I will say no more.

Do you have any famous ancestors?
Yes, and we’re still waiting for our statue in the statehouse. I swear, how many witches do you have to press around here to get some respect?

Have you had to take a loan out for school?
Yes. I’ve almost paid off the first round. See if you can guess how old I am.

Do you know the words to the song on your MySpace profile?
I’m too old cool to date teenagers.

Last thing received in the mail?
The Economist

How many different beverages have you had today?
1

[Answering machine question snipped for assininity]

Who did you lose your CONCERT virginity to?
I think it would be those frickin’ madrigal folks from the Ankeny High School in the 3rd grade. Or Tracy Chapman in 1995. Or The Specials in 1993. Or Little Ed and the Blues Imperials. Take your pick.

Do you draw your name in the sand when you go to the beach?
Beach?

What’s the most painful dental procedure you’ve had?
I had an abcess once.

What is out your back door?
Backdoor?

Any plans for Friday night?
Not yet.

Do you like what the ocean does to your hair?
Ocean? Water? Put my head under the water? Are you crazy?

Have you ever received one of those big tins of 3 different popcorns?
Yes. Good the first day. Not so good after that.

Have you ever been to a planetarium?
Yes. One show was about the near-1 probability of nonterrestrial life. I went with my fundamentalist father. Good times!

Do you re-use towels after you shower?
Yes.

Some things you are excited about?
Peace on earth, goodwill toward man.

What is your favorite flavor of JELL-O?
Cherry.

Describe your keychain(s)?
Kansas City. Schlage. Vita. UM392 (x2). Sentry.

Where do you keep your change?
In my pocket so that it jingle-jangles as I walk.

When was the last time you spoke in front of a large group of people?
I talked about DICOM to the young’uns last month. That was about 20 people. Last November I talked about MATLAB and HDF to about 50.

What kind of winter coat do you own?
Light. Medium. Parka. Today was a light day.

What was the weather like on your graduation day?
I don’t remember. It was May in Wyoming. I think it rained.

Do you sleep with the door to your room open or closed?
It depends on how well-behaved the kitty is.

Posted in General | Leave a comment

Photographs as evidence of change

A few reflections after reading Joel Meyerowitz discuss his early days . . .

One of the things that I love about photographing is that my images reflect what interests me as an artist and who I am as a person at any particular slice in time. On the occasions that I go back and look at my earlier work, I typically remember making the individual images, but I see someone else’s aspirations. Nowadays, these images don’t say anything except to remind me of where I’ve been and to chronicle techniques and motifs that I still use. So, while I’m unwilling to disown these parmelian prints from my first dozen years or so of image making, I don’t feel any great compulsion to incorporate them into what I currently show either. (They may go into Jeff Mather: The Early Photographs someday, which no doubt will outsell everything else I do.)

After moving to Massachusetts, lots of things weren’t working for me. “What do I want to photograph now?” I couldn’t photograph the way I had in Wyoming, Canada, and the Midwest; and I wasn’t sure what I was going to do about that. “Is this new work interesting?” My photographs were pretty uninspired, and I could make many of the images in my sleep. I came back frustrated from most excursions because my execution and the vagueness of my vision moved in opposite directions. I was even having serious doubts about the honesty and integrity of so-called nature photographs (especially my own) that removed people from the landscape — from the entire world, actually.

Although photography had been a constant in my life since my first roll of film in 1990, I put my camera aside for a while to indulge my interest in history. Images became adjuncts on my New England explorations. Cameras were just extra tools to make me look harder at where I was. Eventually, when I thought we would be leaving the Bay State, I had gotten really interested in where I was and wanted some images to show what Newton was “like.” People became interesting, too, though I was petrified of photographing unknown people.

So I started by photographing runners along Commonwealth Avenue as they trained for the Boston Marathon. Runners don’t like to stop and are too tired to jabber coherent disapproval while tackling the hills. Those scowls might be from running-induced pain. (The same cannot be said for other pedestrians. That’s why I have no Arbus or Wegee-esque pictures of Jews walking to temple or people sunning themselves in the park. It’s also why I was so happy when Jose and Maria from Brighton wanted me to photograph them as part of the neighborhood after they finished some odd jobs.) On the way, I walked around Newton photographing much smaller things that I was used to and tried to imprint my personality onto the images of the human-made environment.

This kind of stylistic and thematic change is never complete (“ineluctable modality” James Joyce called it) and I made large changes when I started the Commonwealth, High Tension, and Signs of Nature projects and after I had my first honest portfolio review. But the tectonic plates are moving slowly these days, building up energy for some future cataclysmic change. I still have excursions that are more frustrating than productive, but I’ve found that I think more as I photograph, that its become an active process of communication with where I am and the notions I have of place and people. And because of this intention, the activity and the images are much better and dearer to me.

But now it’s late, and I must go. I have a bunch of developed film in need of scans and a couple more rolls to drop off. So I hope to have something new for y’all to see soon.

Posted in Photography | Leave a comment

Lilypaddin’

Deepti-ji beat me to it. This NPR story had me giggling as I merged onto the Mass Pike. Funniest thing I’d heard on the radio since . . . well . . . forever.

Posted in General, This is who we are | 1 Comment

Worth a look (and a read)

Shouldn’t I be at my little club? Oh, that’s right. Here’s some other photography thinking.

Chinese Photography (about.com)

The Value of Space: A Theoretical Sketch for Photographic Art in the Late-Twentieth Century (LensCulture) — “Giotto and other artists and theorists of the early Renaissance altered the course of art with their fundamental conceptions of space related to optics and the camera obscura. Centuries later it was photographers who revolutionized the way we perceive space.”

Going The Long (or Wrong) Way to Brooklyn – Annie Leibovitz (Modern Art Obsession) — All right, I’ve never really gotten into Leibovitz’s work. It’s all so self-similar and hagiographic. The NYT calls it “high-brow, static form of reality television.” Of course, it’s not bad, and MAO gives a nice round-up of the celebrated celebrity photographer and “friend” of house fave Susan Sontag.

Joel Meyerowitz gives a really good lecture. (A year ago I saw him at the MFA and sat looking at Watson and the Shark thinking about what I wanted to do with my work.) He’s engaging, honest, and generates really great images. Oh, and he did a bunch of WTC imagery, not at all like the sublime, quiet Cape Cod photographs. (1 and 2 and 3 and 4)

Ladies and gentlemen . . .

And guess where I’m going over Christmas. Getting warm. Getting warmer. That’s right! The city of fish.

Posted in OPP, Photography | Leave a comment

Comment dit-on “hax0r?”

Maybe I’m just a little slow, but it never occured to me that French speakers might have Internet contractions. (Les enfants these days!) ROTFL if you must.

Here’s an example from a newsgroup that I troll follow:

salut

je travaile sur une carte qui n’est pas niverselle; le probléme que j’ai trouvé c’est avec s-function.

c-à-d, je veux créer le driver avec le s-function . mais j’ai pas pu le faire .

est ce qu’il a qq1 qui as déjàs travaillé avec s-function ?

c-à-d … == c’est à dire … ~ That is to say …

qq1 == quelqu’un ~ somebody

Posted in Bon mots, General | 1 Comment

Software Defect Tracking (part 2)

Yesterday, I wrote about systems for defect tracking. Since one of the main purposes of a tracking system is to enable a high quality process for getting bugs fixed, what does that process look like? As part of an in-class, small-group exercise, we defined a workflow for handling defects. Two other people on my team of four use a workflow similar to what we do at work.

The workflow we presented essentially looks like the diagram below. The bluish boxes are “open” state; and the grayish are “closed.” The lines show state transitions, starting at the top with a new bug report. (The system works well for tasks and new features, too; though features typically benefit from additional processes that don’t appear here.)

Software defect workflowClick for larger


In this system, a notification (typically e-mail) is triggered at each state transition. This keeps stakeholders informed of changes that might impact them. It also helps with accountability — some people work at companies where developers, testers, and managers sometimes don’t “do the right thing” and arbitrarily close bugs. Another accountability feature is a short, recurring meeting where a group of 5-10 people review the new defect records. My workgroup meets every week to discuss all of the new records, looking for problem areas and issues that were incorrectly triaged or improperly closed.

The bug reporter and triage roles appear to vary widely between companies. On one end of the spectrum are top-down organizations where only managers or senior team members can log new defects and a senior manager performs all of the triage duties. In so-called “flat hierarchy” organizations anyone can enter defect reports, and all sorts of people are responsible for triaging and assigning. (For example, little-ole-nonmanager-me triages new defects for my relatively small area and assigns them to everyone in the group.) In this latter case, the weekly review meetings are even more important.

It’s also worth noting that the resolution-integration-verification path is usually iterative, even in the best case where the fix is perfect. Of course, if there is a problem with the software change or if it fails to resolve the problem, the cycle repeats. When a fix is successful, good software development processes require multiple integrations: first on the developer’s private branch and then ultimately on the product’s release branch. (Branch being a source control term here, of course.) Failure at any of these stages also causes the fix-integrate-verify cycle to repeat.

In some organizations — typically places with lots of hierarchy — the defect report may work its way back up the organization to the manager who first triaged it. Some places have a lot of heavyweight processes, I’m discovering. I’m also learning that many of the processes we use at The MathWorks are already quite advanced, especially with respect to testing.

Posted in Software Engineering | 1 Comment

Software defect tracking

I gave my second presentation tonight in my Software Testing Techniques course. Two weeks ago, I discussed software defects with a synopsis of the Coding Horror article Making Developers Cry Since 1995. दीप्ती-जी, my QE, hasn’t made me cry — yet. This week: defect tracking systems. You know, those applications where testers (and everyone else) log the defects that bring us to tears.

Here’s a synopsis:

Purpose of Defect Tracking

  • Ensure that all issues get fixed or closed.
  • Facilitate communication related to defects.
  • Provide a sensible workflow that makes fixing defects easier.

Major Features

  • Issue entry
  • Workflow modeling (ensure high quality process)
  • Change Notification
  • Search and reports
  • Multiuser

How They Differ

  • Who can enter and change issues?
  • Customizability (workflow, reports, fields)
  • Underlying technology — most use RDBMS
  • Who can create a report?
  • Public v. Private reporting — Does every issue get its own URL?
  • Client-server, web-based, standalone
  • Features, cost
  • Logging / audit trail — can help with government compliance
  • Security

Extras

  • Project tracking (requirements, tasks, estimation, dependencies etc.)
  • Source control (SCM) – Link checkins with issues (bidirectionally)
  • Customer interactions (CRM)
  • Help desk tickets
  • Release systems: Build, test, integration systems
  • Web publishing (defects and solutions)
  • LDAP / Active Directory
  • Automatic reporting from applications
  • Documentation systems (release notes)
  • APIs — SQL, RSS, XML-RPC, etc.

A Sampling of Reports and Queries

  • Records by owner
  • Records by component
  • Records by release
  • Custom record list
  • Find/fix rate
  • Aging
  • Dashboards / scorecards
  • Release readiness

Some Defect Tracking Software

I looked at several defect tracking solutions while researching and compared what I read to my experiences with my company’s in-house problem tracking tool. Once a system has covered the basics of defect reporting, tracking, and notification (that is, company-wide communication about changes in the state of a defect), it’s worth asking how else a defect tracking system can add value to a software organization. The amount of extra “value” available from defect tracking software appears to vary directly with the size of the budget one can set aside for buying an off-the-shelf package (e.g., JIRA), configuring an open source product (such as Bugzilla), or building a solution from scratch (like what we have at the office).

Depending on its size, a software organization may benefit from a number of extra features that aren’t directly on the defect-resolution path. Many organizations want to share the state of externally reported defects with their customers. Similarly, companies often wish to integrate their development databases (containing defects and customer-reported enhancements) with their documentation and marketing departments when it comes time to create release notes and “what’s new” documents. Integrating source control and build mechanisms with defect tracking makes verification easier, facilitates compliance, and aids managers in determining release readiness. Many of the software products currently available support all of these tasks and have customizable workflows that model high-quality software development processes (such as those in the Capability Maturity Model).

Also, defect tracking systems can handle more than defects. Software enhancements and maintenance tasks usually follow the same pattern as bug fixing — triage, development, integration, and verification — though they differ in scope and often require additional process modeling. But, it can be hard to bolt these extra features onto a product that wasn’t designed to handle them; in addition to picking a configurable, modifiable system, choose one whose defect workflow also makes sense for projects.

Coming up: a defect/feature tracking system workflow. Plus, more photography and whatnot.

Posted in Software Engineering | 1 Comment

Software testing weblog

Yesterday I mentioned Perl. Today my other course gets a shout out.

Here are some software testing weblogs:

Oh, and here’s a case study with examples. More than 100,000 automated test cases. Damn!

Posted in Software Engineering | 1 Comment

“नमस्ते , world!” Programming goes multilingual.

I turned in my Perl Programming midterm assignment late last night. It’s hard to believe that the semester is half over after only four weeks . . . thought I’m not complaining. I enjoy the class, though I’m still undecided about Perl as a language. It has some serious flaws from a software engineering standpoint; though it does so many thing so effortlessly that you can almost forget about them — at least when you’re writing the code the first time around.

But Perl has one feature that every programming language should have: support for multiple character sets as part of the language. And not just in strings and comments. That’s so 2002. Perl allows letters and digits from all of UTF8 to be used in variable and function names. So instead of the 60-or-so characters most languages allow (including one dear to my heart), programmers have their choice of thousands of characters.

Here’s an example, which you can download if your browser is challenged. And if your Perl is rusty, those things with “$” in front of them are variables, and “@_” contains the arguments to a subfunction. Notice how I can use Hindi characters in variable names alongside Latin characters.

#!/usr/bin/perl use utf8; use strict; binmode STDOUT, "utf8:"; my $नमस्ते = "namaste"; my $सलाम = "salaam"; my $word1 = "नमस्ते"; my $word2 = "सलाम"; print "$नमस्ते ($word1) and $सलाम ($word2)!\n"; findChar("न", $word1); findChar("े", $word2); findChar("म", $word1); findChar("म", $word2); findChar("स", $word1); findChar("स", $word2); sub findChar {   my $character = shift(@_);   my $word = shift(@_);   if ($word =~ /$character/)   {     print "Yes, I found \"$character\" in \"$word\".\n";   }   else   {     print "No, I couldn't find \"$character\" in \"$word\".\n";   } }

Here’s what this looks like when you execute hindichars.pl:

namaste (नमस्ते) and salaam (सलाम)!
Yes, I found "न" in "नमस्ते".
No, I couldn't find "े" in "सलाम".
Yes, I found "म" in "नमस्ते".
Yes, I found "म" in "सलाम".
Yes, I found "स" in "नमस्ते".
Yes, I found "स" in "सलाम".

Consider what this means. As America worried about Y2K, the Perl folks flattened the programming world. (Apologies to Thomas Friedman; but, hey, Nandan Nilekani had to tell him about the rather obvious facts of globalization, so I don’t feel so bad.) Anyway. Software engineers no longer need to learn English (or another language that uses the Roman alphabet) in order to develop software. Of course, they will still need to know enough English or French or German or Spanish to understand other people’s code and use many public APIs; but everyone, everywhere can program in their own language with comments and variables that make sense to everyone in their community. One day, when my job gets outsourced to India or China, the work I do now may be implemented by someone writing the whole thing in Hindi or Tamil or Chinese.

Hmm. This sounds like (a) the continuation of globalization in high tech, and (b) the next step in the evolution of software programming. Companies that have already harnessed English-speaking talent to produce quality software will now have a larger pool to choose from. And programming languages that don’t support Unicode as an essential part of their syntaxes are going to go the way of the Cobol and Fortran dinosaurs. Maybe not overnight — I don’t see an enormous Hindi comet on the horizon — but think about VMS, people. VMS.

And as long as I’m speculating, I see something else in my crystal ball: a translator that converts software’s source code from one natural language’s lexicon to another without changing the way the code works. It will probably be written in Perl. In India.

Posted in Computing, Software Engineering | Leave a comment

Symbols


Okay, everybody. I’ll be writing soonish about symbols, visual history, and artistic intention; but I wanted to give you all a chance to ruminate on this 2003 photograph, “Awakening,” by Chitra Ganesh. What does it mean to you?

Posted in OPP, Photography | 2 Comments

Present at the Destruction


Fifteen years ago I helped destroy the world.

In the summer of 1991 I hitched a ride with a group from the University of Wyoming’s high school program on their way to F.E. Warren Air Force Base. Some friends of mine were in the nuclear power “class.” Somehow I was put into the sports nutrition course, but my peeps knew that I would want to take this afternoon trip from Laramie to Cheyenne.

“Before we go in to the launch control center, I need anyone who brought a camera or recording device to surrender it for the duration of the tour.” The airman was trying in vain to open a display case with a scale ICBM inside of it. “F.E. Warren Air Force Base is the command and control center for twenty launch control facilities. Each facility has an underground launch control center that can launch ten missiles, each of which has ten warheads. The warheads on the Peacekeeper and Minuteman III missiles each have a yield of 300 – 350 kilotons.” 350 kilotons? That’s more than fifteen times the destructive power of the first atomic weapon used in war. “All right, let’s go into the control center.”

The launch control center was a drab concrete pill-shaped bubble buried under the Wyoming prairie. The computer consoles along each wall seemed oddly old-fashioned for something meant to destroy the world. Very solid state. Not very James Bond-like at all. Two extremely solid chairs sat on metal rails that ran the length of the console.

“A couple of you can take a seat. Go ahead. Strap yourselves in.” I desperately wanted to sit in one of those chairs, but it wasn’t my trip, so the guy next to me buckled in. “The rails allow you to move around while seated but keep you from flying all over the place if a MIRV explodes overhead.” It would be a few more years before I saw Slim Pickens ride a warhead out of the belly of a B-52 in Dr. Strangelove, but I imagined riding out a thermonuclear rodeo at ground zero shortly after the missileer did his or her final act.

The Cold War had theoretically ended a year before when G.H.W. Bush took Strategic Air Command off 24-hour readiness. But the missileers still took their jobs very seriously. “When the order to launch comes it will come through this device.” He pushed some buttons and with a whir a paper tape came out of the console in front of the person next to me. “One person will take the code book and read the day’s code to the person who sets the cypher.” He gave that day’s secret and the boy of sixteen next to me fiddled with something and with the airman’s help ran the tape through a different machine.

“Now the launch system is ready. Here take this key . . . and one for you. Okay on three, turn the key a quarter turn clockwise. Notice how the stations are at opposite ends of the facility? That’s so one person can’t turn both keys at the same time. One. Two. Three. Turn!”

There it is. J. Robert Oppenheimer quoted the Bhagavad Gita, “Now I am become death, the destroyer of worlds.” But right then I, I had become death. Destroying the world seemed so simple: an order, a paper tape, a short turn of the wrist, and an agonizing wait for assured destruction.

“Do you do this often?”

“We regularly run drills on the actual equipment to keep our skills sharp. When the time comes we want to be ready. Being a missileer is a very prestigious position.” Prestige in the destruction of humanity. It was unreal.


A short bus ride later and we were standing next to metal tracks and an enormous concrete slab, the source of all of this potential destruction. A short elevator ride later and we were standing inside the Minuteman III missile silo. The floor swayed gently with each step. “Both the missile next to you and the access gantry float. This makes it less likely that one will bump into the other accidentally in the event of earthquake or nuclear attack.” I reached out my hand and touched the unnaturally smooth metal next to me. This was unreal; the source of all my mortal fear as a child was against my fingertips. I was touching the devil’s trident. “There is no warhead on this Minuteman rocket now. We’re moving it.”

Topside, the airman pointed out a large semi trailer parked near the hatch. “That’s the kind of vehicle we use to install, remove, and transport warheads.” Though he didn’t come out and say it, I got the sense that there was actually a warhead in the trailer at that moment.

After our brief flirtation with power, we were regular high school students again. We visited the mall in Cheyenne — one of the three in the state — and on our way back to Laramie, we pointed out all of the nuclear facilities along the roadside as if finding them were a game.

Posted in This is who we are | Leave a comment

Colorful anniversaries in 2006

At the previous camera club meeting I told a few people about a couple of color-related milestones that celebrate anniversaries this year. Perhaps it’s hard to get excited about color science, but I will try again.

Happy Birthday, CIE Standard Observer

Color is an experience. Colorful light leaves a source of illumination, strikes a surface with its own color properties, and reflects in a different direction. The color of the reflected light is a combination of the illuminant and the colored object, but there’s no actual “color” until the light is lucky enough to strike the retina at the back of someone’s (or something’s) eye.

(Technically, the illuminant has a particular spectral power distribution, or SPD — think of the rainbow and make it brighter in certain parts and darker in others and then compress that thought into one ray of light — and the colorant has its own SPD, which is how likely it is to reflect the different wavelengths of “pure” white light. The reflected light ray has an SPD that is the elementwise product of the two SPDs, which basically means that when white light strikes an object whose SPD is active in the red part of the spectrum, red light is reflected; or when green light strikes a white object, green light is reflected. It also explains why if a more-or-less pure red color strikes an object that doesn’t reflect red light, that object appears black — even if it reflects other colors perfectly well. See, linear algebra isn’t really that hard!)

While “colorful,” reflected light doesn’t have any particular color, per se, just the capacity to cause a particular sensation of color. Enter an observer, in particular her eyes and brain. When light strikes the retina, the three types of cone cells there react to the different wavelengths in the SPD in different ways. The combination of the responses from these three cones causes the sensations of redness/greenness, blueness/yellowness, and lightness/darkness which are sent on to the brain. This is the basis of the “opponent theory of color.” Remember that term for later.

In turns out that the three cones’ responses to color stimuli are fairly easily modelled. Years ago, color scientists had volunteers look at a split screen with a known color — that is, a known SPD — on one side and a tunable set of pure red, green, and blue lights on the other side. The observers changed the color combinations to match the known color. After enough volunteers matched enough colors, it was possible to generalize the visual system’s response to all colors into a set of three “cone response functions.” In 1931, the CIE standards body published these color matching functions, and the model became known as the “standard observer.”


The l, m, and s here correspond to the sensitivies of the long-, medium-, and short-wavelength cones — the red, green, and blue curves, respectively. What’s interesting here? Notice how the red and green curves more or less overlap. Timothy King (an anthropology grad student from Stanford) reasons that long-wavelength cones are a recent evolutionary adaptation of medium-wavelength cones, making it possible for us to experience red as a distinct color from green. Also notice that the red curve is steepest where the green curve is flattest, and vice versa; because the cones work together to determine color, this relationship between the cone responses allows for very fine color discrimination.

(In 1964, the CIE published new color matching functions that use a 10-degree visual field, instead of the 2-degree field used in 1931. For perspective, the width of your finger at arms length is approximately one-degree. Turns out, the eye has a different distribution of cones at the fovea than it does a bit further out. Oops! I have included the updated 1964 curves below; but 42-years isn’t a good special anniversary, so we’ll pretend it didn’t happen. Okay?)


(You can get the MATLAB code to generate cone response functions, label plots with spectral colorbars, convert SPDs to sRGB, and do other color-scientific things on the MATLAB Central File Exchange.)

The standard observer’s cone response functions are interesting enough, but hardly worthy of standardization by an industrial illumination group. No, the real power of the standard observer model is the fact that you can take the three cone response curves, combine them with a spectral power distribution (again via linear algebra), and come up with three numbers that tell you exactly what color an object appears to be. It encapsulates many of the complexities of the human visual system and of colorful SPDs and compresses them into three values. The CIE cleverly called this color system “XYZ” — presumably because it’s hard to think of any color terms that start with X, Y, or Z.

The “color matching functions” that convert an SPD into XYZ appear below. Blue is X, green is Y, and red is Z. It’s worth noting that the Y value closely models the overall response to lightness, and that its peak is in the green part of the spectrum. That funny red bump over in the blue end of the spectrum just highlights how XYZ is a constructed model of vision, unlike the cone response functions.


Bon Anniversaire, Monsieur CIELAB

Like any model that squeezes out a lot of information, XYZ isn’t perfect; two illuminants with different SPDs can look the same when illuminated by two lamps with different SPDs, for example; that’s metamerism. But it does provide a unique way of specifying any observable color, and it’s the basis of modern colorimetry and color management systems.

But it’s hard to work with XYZ and think about the properties of real colors at the same time. Is that (X,Y,Z) triple more red or green? Dunno. Run it through a separate transformation and find out. What a pain! (Once again, the most fastidious among us usually are the most unpleasant to talk to.) Wouldn’t it be great if there were a color system that had the following properties?

  • Every color can be expressed
  • There’s only one way to specify a particular color
  • The way to specify that color doesn’t depend on the device displaying or observing the color
  • It’s modelled on the human visual system
  • Only three values are needed to express a color
  • The three values relate to meaningful values
  • It’s easy to translate to XYZ and a given RGB triplet

Thirty years ago the CIE — yes the same standards group that created the standard observer model — published CIE L*a*b* (or CIELAB) which aims to satisfy all of those requirements. Every observable color is uniquely represented. The L* value gives the luminance (essentially the brightness) of the color in a perceptually uniform way. The a* and b* values refer to the red-greenness and blue-yellowness of the color, respectively. (Remember the opponent theory of color?) And it’s extermely straightforward to map XYZ to CIELAB and back. It’s not hard to convert an RGB triplet to CIELAB, either; but unlike L*a*b*, the color of an RGB value depends on the individual values of red, green, and blue that you’re talking about — plus a particular color of white. I’ll let you wrap your brains around that for a moment.

CIELAB also has the useful property of being more-or-less perceptually uniform. As you move one unit in any direction, the perceived “color difference” is the same (more or less) as a similar move for any other color. How do we know this? Human observers, of course. Sit people down and ask them to quantify the difference between color A and color B. (Personally, I think this would be about as much fun as spending hours changing the perscription in my eyeglasses — “Is one better or Two? A or B?” — but that’s the glamorous life of science.)

To Infinity and Beyond!

Anyway, the CIE standard observer and CIELAB present color as a universally describable phenomena. The reality is that it’s actually much more complicated. Remember that color depends on a lot of complicated processing in the eye and brain after the cones have been stimulated by light. The color of the thing around an object changes the way we perceive the color of the object itself (regardless of its SPD). Ambient lighting causes our brains to adapt to colors (so-called “white adaptation”). And so on.

Color scientists and the CIE are hard at work to develop “color appearance models,” which present a richer (and far more complicated) numerical description of how we perceive color. And maybe next year I will tell you about CIECAM 1997 and 2002.

Posted in Color and Vision, Computing, Fodder for Techno-weenies, Photography | Leave a comment

Alas, not a no-hitter

My last cryptic post left a few wondering. But baseball superstitions have few equals.

I kept getting distracted from my course readings as the Tiger’s Bonderman retired the first six batters then the first twelve, and then got the next three out. Yes, Bonderman was perfect through five innings, before giving up an extra-base hit in the sixth.

But superstition requires that no one talk about a no-hitter while it’s happening. So you can ask things like, “Have the Yankees had any baserunners yet?” But that’s just so that you can make sure that you’re actually seeing what you think you are. I vaguely remember the Fox sportscaster mentioning somebody else’s no-hitter at the end of the fifth inning. (Broadcasters are always doing foolish things like that.)

Alas, once again, no perfect game.

Posted in Baseball | Leave a comment

The game

Yes, I’m doing my homework. And, yes, I’m watching the Yankees-Tigers game. And, yes, it’s very exciting. And, no, I can’t talk about it now.

More — hopefully much more — later.

Posted in Baseball | Leave a comment