Chatting with Zeb

[I'm working on an NSF proposal about telecollaboration; I wrote this description of how our family uses teleconferencing to keep in touch from different sides of the country. Some specifics have been changed for the purposes of narrative, but this is pretty much an accurate description of what we do and how it affects us.]

Most Sunday mornings, I sign on to my chat software before I even get coffee -- not because I'm one of those people whose entire social life is on the internet, but because there's a three-year-old boy three thousand miles away waiting to talk to me. I live in Rhode Island, and my nephews, Zebediah and Isaac, live in Seattle, along with my brother Dan and his wife Melissa. On Sundays, as every day, Zeb wakes up early, Dan tries to wake up early, and Melissa sleeps in. Dan takes the boys in to the kitchen and gets them set up for breakfast, Zeb in a real chair because he's a big boy, and little Isaac in a baby chair. Then Dan opens up his laptop computer, plugs in the the tiny webcam, signs on to chat, and asks me if I'm ready to talk to his boys. We spend the next hour or so sitting around the kitchen table, talking and playing with eachother. Zeb and I have been doing this for about a year and a half; we've established some rituals, like always wants to see my power tools, and what my cats are doing. Sometimes Zeb questions me about things he's been thinking about: "Sascha, what do you like about police officers? Sascha, do you have all-weather tires?" and I always ask Zeb what he's been up to. He usually replies, "I don't know?" and looks to his Papa to remind him. Dan says something like, "You went to the train museum, remember? And you saw a tow truck, and..." at which point Zeb pipes up and says "Sascha! I went to the train museum!" I haven't seen Zeb in person in nine months, but I know all about how he talks in complete sentences now, how he can use a spoon himself, how he loves Mars and the Hubble Space Telescope and dragons, how he plays with little Isaac and kisses his head, and how incredibly energetic he can be on a Sunday morning. Saturday nights, Zeb usually talks to his Grandma Deb, and he talks to Grandpa Mark and Grandma Shelley whenever they all happen to be online at once. Sometimes my brother will come online and ask if I can chat, reporting that Zeb has been saying, "Papa! I want chat Sascha!" When one of us appears at my brother's house in Seattle, Zeb doesn't hesitate; he knows exactly who I am, and runs towards me for a hug. "Sascha! Come read me a book! Sascha! Have you seen my fire truck?"

What I've left out of the story is what it takes to make all of this possible. First, the participants: my brother, my mother, myself, and my father are all computing professionals: two hard-core programmers, one master IT problem-solver, and one school media specialist. Next, the hardware: we all have Apple Macintosh computers, and my brother gave each us of an Apple iSight camera, with integrated microphone and noise-cancelling software, designed by Apple to enable this sort of one-to-one video chat. We all have broadband connections and almost all of us have wireless networking, so we can hold our webchats from whatever part of the house we like. Finally, there's a set of behaviors that make it work for us: Zeb runs around a lot, so Dan keeps adjusting the camera to point at him; Zeb's voice is high and quiet, or entirely inaudible if he's too far from the camera, so Dan repeats most of what Zeb says, especially when talking to my mother, who has a partial hearing loss. The video quality is rather poor, especially for small fast-moving objects like Zeb, so my brother supplements the video conferences by frequently posting high-resolution digital camera images of his family. The connection goes down so often that Zeb has learned to explain "There was network congestion, Sascha!" when we reconnect.

[I'm not sure what comes next, in the NSF proposal. "Everyone should be able to hang out with their far-flung relatives this way!" isn't going to be enough to convince hard-core scientists to invest scientific funding. So I'll keep thinking about it.]

And thanks, Dan, for having such beautiful children, and helping me hang out with them!

this weekend is the prepare-portfolio weekend

Screen is done, and that's been occupying most of my weekends since December. I'm working on a grant proposal, but that can wait until Monday. I'm going to teach John Cayley, a cool hypertext poet how to use Java 2D for fine control over the appearance of text in applications for cross-platform deployment -- but that's not until Wednesday. (Yes, I know the effort is probably doomed; not because John's a poet, but because the goal is pixel-perfect rendering on multiple platforms... but we'll see.)

In any case: I have the weekend to my own purposes, and my purposes are this: to press forward with my job search! I've had a few interesting conversations with scientific textbook publishers; since they're starting to do educational software and online services... which I know something about. God, to work at O'Reilly, or Addison-Wesley, or Prentice Hall! Maybe not as a technical writer, but on their tools, their site, on their code examples. O'Reilly!

But I stray from my PURPOSE for this weekend:


  1. Gather ingredients for my portfolio.

  2. Scan things if necessary.
  3. Organize my portfolio. Themes, projects, media, timeline - something that makes sense.
  4. Deploy my portfolio on the web.
  5. Deploy my portfolio as a DVD.

It wouldn't be a weekend if I didn't do some programming, so, I'll probably either learn more about Laszlo, which has a cool, solid approach to authoring rich internet content. They're the creators of the
Behr ColorSmart Colorpicker, which is one of the best things on the web, ever. And I'm very curious to dive into Java 1.5, but I know I'll do better if I only learn one new language/library/application at a time. So this weekend is about focus, and getting things done. It will be such a pleasure to end Sunday night by posting a new version of my portfolio... and so amazing to spend a weekend working only on my own projects!

Peter F. Hamilton and too much nonlinearity

Does anyone actually understand Peter F. Hamilton? I'm reading Pandora's Box -- at only one 1k-pages volume, one of his smaller works -- and it was mostly making sense until all of a sudden a whole bunch of things happened simultaneously to a dozen major characters, at distances of several hundred light years. Now, I'm willing to punt on simultaneity, since Hamilton employs faster-than-light travel in the form of wormholes... but his haracters switch allegiances and bodies and possibly even names partway through, and sometimes they are dead for a few decades before getting re-lifed, and sometimes they forget their own memories on purpose... But still, really I was mostly following it -- socialist terrorism, safe but strange aliens, wormholes, and infinite rejuvenation -- until the narrative suddenly ended up 250 light years away with humans in between the midddle of at least one unknown alien civilization's nuclear bomb party.

On a scale from extremely non-linear and distributed narrative to linear single-person narrative, I've only found three books that go too far towards extremely non-linear:


  • Pandora's Box by Peter F. Hamilton

  • Ilium by Dan Simmons

  • Light by M. John Harrison


Neal Stephenson's Cryptonomicon and Baroque Cycle do meta-linear just right, and I absolutely adore Kim Stanley Robinson's Mars trilogy. I'll even admit to enjoying George R. R Martin's Storm of Swords epic. Looking at my bookshelf, I don't see any books which I found too linear... but then, there aren't many linear books on my bookshelf, except for a few memoirs... although even memoirs tend to be composed in little chunks; August Burroughs begins Magical Thinking, his latest memoir, with a detailed story about being in a Tang commercial which I can't begin to place in the narrative of Running with Scissors, supposedly the memoir of his insane childhood.

I suppose the real literary theorists will argue with my imposing a linear scale on non-linearness. Feel free to suggest a better way of thinking about it, or help me figure out what's going on with the middle five hundred pages of Pandora's Box.

A different side of Providence

For the last few days, I've been taking the bus around Providence... because my car is in need of major repairs, (a new clutch, apparently) and I still need to get to and from work. Providence is very different on public transportation. Providence feels more like San Francisco, on public transportation. (At least, Providence in April feels like San Francisco in March-October.) There are a whole lot more people who are not affluent white college students. The bus routes go through the center of downtown Providence -- Kennedy Plaza -- yielding some vistas inaccessible from a car: Waterplace Park and the skating rink, a plaza at the head of Westminster street, the river walk down along South Main Street... Mostly there are a whole lot more green places, public places, and art places from the bus than from a car. The public transportation system seems to be actually designed to pull people into downtown and create a feeling of liveness there; it works.

I remember wandering downtown as a freshman some spring afternoon ten years ago. This was before Kennedy Plaza was renovated, before the mall, before the traffic flow changes on Westminster... I ran into Garth, a rock-climbing artist who lived in the Milhaus Co-op with me, and we had a sugary greasy lunch at a dark Chinese restaurant on an alley. I went on to the Arcade, then, probably; the first glassed-covered shopping area in the United States, where people could walk between several stores and restaurants without getting rained or snowed on. Built in the early nineteenth century, I think, it's now cramped between too many boxy office buildings. The voluminous (but not tall) semi-industrial buildings, combined with one-lane major streets, create an urban canyon effect, like New York on a 1:4 scale, and even more claustrophobic. My memory of Providence, from my undergraduate days, boils down to "Providence is a hole."

Today I saw a different Providence; not a hole but a presence, a place, a personality, a life. Kennedy Plaza is now a real plaza where people gather; Waterplace Park and the River Walk extend public urban space from the north to the south end of downtown; the Providence Place Mall creates a reason for surbanites to enter the city.

Providence is not just a waypoint for me between a suburban youth and a west-coast adulthood; Providence is a real place, and I live here.

Capturing high-quality video with G3D

My collaborators and I put together a sketch submission for SIGGRAPH '05. Along the way we came up with a process that lets us capture high-quality video with G3D, the C++ OpenGL abstraction we're using for CaveWriting. This technique is a vast improvement over the video capture techniques I've used for interactive 3D graphics in the past, because it captures the actual bits on screen and yields a high-frame-rate video with smooth animation.

(Until recently, we did video capture of interactive graphics either with a digital-to-analog scan converter, or by filming the walls of the cave with the head tracker attached to the camera. These techniques yielded low-resolution images with a fair amount of distortion; they did, however, capture real-time interactions. Based on my preliminary research, standard video capture applications will have difficulty with capturing high-frame-rate graphics which rely on extensive hardware acceleration; the technique described below slows down the frame rate, captures each frame, then re-creates interactive frame rates in post.)

The process has several steps:


  1. Set your rendering hardware to do exactly what you want. In particular, do you want to turn on hardware antialiasing? You'll want to go through the whole process with and without hardware antialiasing, to see what gives you better results after your whole encoding & compression process.

  2. After drawing each frame, capture a screengrab using G3D::RenderDevice::screenshot("grabs/"); This will create a series of dated and numbered screenshots in jpeg format in the grabs/ directory. Interact very slowly! Your motions will be speeded up by a large factor (10-300 or so) depending on many things. You'll have to do iterate through this process a few times to get the timings right.
  3. Assemble the screenshots into a video. On the Mac, using QuickTime Pro, do File -> Open Image Sequence, open the directory with all your images in it, import at your desired output frame rate (probably 30 fps), then save as that same frame rate. You can also do this with Graphic Converter, which (unlike QuickTime) doesn't require registering to use this feature, On Windows, Morgan suggsets using VirtualDub. For Linux, Peter Sibley suggets mencode/mplayer
  4. Tune timings; if your animation is based on real time passing, extend the duration of each tween; if your animation is based on simulation time, slow down the passing of simulation time.
  5. Archive, if desired, and clean up the captured images. Frame numbers just keep incrementing with every subsequent call to RenderDevice::screenshot(), so if you don't clean out the grabs directory, you'll be using an awful lot of disk space, and it will be tricky to identify the first frame of each run.
  6. Repeat steps 2-5 until you have the timing you want. In our experience, we captured about a thousand frames at 800x600 at 1-2 fps; the same program running without frame-grabbing ran at >100 fps.
  7. Edit and title. We edited using iMovie 4, which was acceptable but not great.
  8. Add audio.


  9. Export. Video is huge; for SIGGRAPH we had to get our sketch down from 250 mb without audio to under 40 mb with audio. Video compression is an art, and not one that I know well. If you can recommend good video compression settings for captured CG, let me know. We used MPEG-4 compression with medium quality.

A few suggestions:


  • Leave a lot of time for working with video. Video can bring even blazingly fast computers (like our dual CPU 2 gig ram G5) to a crawl.

  • If you're using linux, figure out how to capture to a local temporary directory (/tmp or /ltmp) rather than using the networked file system.
  • You might have to ask for permission in advance to use local storage.

don't think of an elephant - or - changing the frame on the schiavo debate

I've been reading Don't Think of an Elephant! Know Your Values and Frame the Debate -- the Essential Guide for Progressives" by George Lakoff. I've been trying to apply Lakoff's theories to the Schiavo case, because I see this dissonance between "don't let poor terri starve to death" and socially conservative fiscal policies: "cut taxes on the rich and cut spending, except for on defense."

The religious conservatives are doing a fantastic job of framing the debate on Schiavo; it's how they're getting away with espousing these "culture of life" policies that are so at odds with their fiscal policies. The religious right has framed the debate as "Activist judges are starving and thirsting poor Terri to death." This frame sets up the opposing position as, "We should let people starve and thirst to death," and, "This woman with a vacant grin in a flower nightgown should die." If we (the progressives) accept the religious conservatives frame on the debate, we sound like heartless villains.

Let's consider another frame for the debate, a frame in which this story began more than twenty years ago, not fourteen. Why did a woman in her twenties have a sudden traumatic loss of oxygen to the brain? Could this have been prevented?

Twenty years ago, a young woman named Theresa struggled with her weight and self-esteem. In high school, she weighted 200 pounds, then quickly lost 50 pounds. This rapid weight loss was a symptom of her bulimia, a sometimes-fatal eating disorder. When she went to college and got married, her health stabilized, but after a few years the eating disorder re-emerged. We don't know, today, whether she was being treated for the eating disorder, or what sort of treatment she was in, but we do know that whatever help she was getting wasn't enough. Like many other people with eating disorders, her compulsive behaviors seriously threatened her health. People with bulimia, by definition, alternate between overeating and restricting food, far beyond the behaviors of a normal dieter, and sometimes beyond the limits of human physiology. In 1990, Theresa's compulsive behaviors had caused such damage to her body that her heart could no longer supply blood to her brain. Much of the cortex of her brain died due to hypoxia; only the central, ancient parts of the brain survived.

An eating disorder caused a massive decline in Schiavo's physical health over the course of several years. The state of the art in treatment of eating disorders calls for a combination of social, behavioral, psychiatric, and physical methods, including frequent monitoring of vital signs. Changes in physiology, such as those that surely presaged Schiavo's injury, are corrected before they become life-threatening. Affordable, available, effective health care would have improved Schiavo's health. I do not know what, if any, treatment Schiavo received for her eating disorder, but I do know this: a large fraction of adolescents and young adults do not have any health insurance, let alone access to comprehensive mental health insurance. The Schiavo case should be an object lesson in the risks we face as a society without guaranteed medical treatment for all who are ill, regardless of their ability to pay.

A few years after Schiavo's injury, her family sued her doctor for malpractice. Their suit was successful, and they were awarded over one million dollars, 70% of which was placed in trust for Schiavo's care. Tort reform, as favored by the president and his party, would cap this amount. What would Schiavo's care have been like without this award? Schiavo's case demonstrates that large awards for medical malpractice are sometimes necessary.

The collapse fourteen years ago damaged huge portions of her brain. Look at this CT scan of Schiavo's brain. Her head is full of fluid where her brain used to be. How different would this debate be if this picture of her destroyed brain was shown every time the flower-nightgown-vacant-grin video was shown?

And finally -- she was born with the name Theresa Schindler. Calling her by the diminutive of her first name, as much of the media has done, enforces the idea that there is a person there, and even connotates a child. The media does not usually refer to full-grown adults with diminutives of their first names.

By allowing the conservatives to frame the debate, by allowing their nomenclature and images to infect all media discussions of the Schiavo situation, the progressives have lost a tremendous opportunity to increase awareness of mental illness, to argue for universal health care, to fight tort reform... and we have let the religious right villainize us again.

How many people with eating disorders are "starving and thirsting themselves to death" in the United States today? How many children go to school hungry because their parents can't afford to feed them? How many communities in Africa lack a safe water supply? The conservatives say the strong should take care of those who cannot take care of themselves. I'm glad Schiavo's heart has finally stopped beating. Now let's see what we can do about the millions of people who lack the kind of care that would have prevented this woman's tragedy.

Potentially disastrous user interface mistakes

Since my mac is getting rebuilt in Cupertino, my iPod is just sitting here with nothing to do. I thought I'd try plugging it in to my pc and see what happens. I have a firewire card for the PC because, way back when I thought things would just work, I asked work to buy a firewire pc/mcia card so I could move large files between my mac and my pc on my handy FireFly 5 gb drive. I quickly learned that plugging the FireFly in to the firewire card on the PC got me bubkiss, even though plugging the FireFly in to the firewire port on the mac did exactly what I expected: it mounted the drive. The problem with my Firefly + firewire card + PC system is that the firewire adapter can't deliver enough power to the drive. Oookay, so I need a firewire drive which has its own power. Voila, le iPod.
Now, I'd heard rumors that you have to either get a mac iPod or a PC iPod. This seemed suspicious -- is the hardware actually different? the firmware? or just the disk format? I'd held off on investigating until tonight. I have just discovered BitTorrent as retroactive VCR, so I have a few gigs of season 6 west wing avi's on my big machine, that I have to get to my small machine. So, this might work: connect iPod to big machine via firewire card. Copy large files onto iPod. Connect iPod to small machine via pc/mcia card. View avi's on small machine, which has better speakers. Or, well, that would have been the plan. Here's where it all went wrong: I plugged in the iPod to the pcmcia firewire card, and... a little tiny dialog box popped up. "F: is unreadable. Reformat?"

...which brings us to the potentially disastrous user interface mistake. The default action for that dialog box is "Yes," meaning, "Yes, please reformat my 30 gb storage device on which I have a few years of music and data stored." I jerked away as from a hot flame! My impulse was to unplug the iPod from the Destroyer of Worlds, but I paused... shut down the Destroyer of Worlds... and then gingerly unplugged my sacred iPod.

I will not... I will not connect my iPod to any pc's ever again. That's just the classic "bad defaults leading to disaster" error... and I won't be bringing my sacred pod into contact with the Destroyer of Worlds again.

Never fear; there are other methods! I have an external USB 2.0 DVD-RW drive, but the big machine doesn't support USB 2, just USB 1. Transferring half a gig at USB1 speeds? no thank you. I will try my backup backup plan, which I'm pretty sure will work... and then I'll be lying in bed falling asleep while catching up on the West Wing episodes I've missed.

Technology is just so much fun. Getting technology to do what I want it to do actually helps me sleep better at night.

best free thing on the web lately: david byrne radio

I heard about this on npr and couldn't believe it -- David Byrne is offering his current playlist as a streaming radio station. Scanning through the current playlist, I see a wide range of artists, including Rufus Wainwright, Paul Simon, Gilberto Gil, and Outkast. And that's just the artists I've heard of...

This just seems like an incredible freebie. Like the celebrity playlists on iTMS, but free. Free, legal, and filtered by a musician I respect -- sweet!

BTW, apocryphal rumor holds that Talking Heads got started in
a dark little house called the Vault, which is literally one block from here.
Maybe I'm having too much fun with google maps, but here's directions from here to the Vault.

thank you, applecare

I just talked to AppleCare -- my mac is waiting for parts, but this is a good thing! They are installing a new motherboard and cpu. They don't make the 667 mHz CPU anymore, so I'm getting an upgrade to 867 mHz, free. Yeah!

I send virtual kisses to my brother, who said, "it's a laptop; get the applecare."

I am so excited for Tiger. They're exposing some of GLSL for image manipulation in hardware -- it's part of Core Image. Real-time image manipulation in hardware, specified in a high-level standard language... Ohh, it's so beautiful. I can't wait. But will Tiger include general GLSL support? GL_ARB_shading_language_100? Please? I want to write GLSL shaders on the mac! Badly!

coloring outside the lines

When i was in kindergarten, we did a little art project probably in December: the teacher drew an outline of the digits "1980" on a piece of construction paper for each of us, and told us to color in the numbers. I drew little mice inhabiting the holes in the nine and the eight and the zero, with their little tails hanging over the edge of the holes. The teacher kept coming over to me and telling me to draw inside the lines. I didn't; instead I gave one of the mice a little red and white striped sweater and a hat.

In fourth grade, the teacher assigned homework: to list the primes under 50. My dad showed me how he could write a program to calculate and print out all the primes under 500. He explained how the program worked, and I got it. I proudly brought in the dot-matrix printout, and the teacher told me I had cheated. I was told to redo it, by hand and independently, and I was ashamed. (For the record: 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, and 47.)

Mrs. Humphries, Mr. Stockholm -- I'm glad I didn't agree to be constrained by your version of right and wrong. Brute-force calculations are for people who can't think of a better algorithm, and coloring inside the lines is for people without any more interesting ideas.

Dana's research comps!

Dana Tenneson, the Ph.D. candidate who's been doing the heavy lifting on ChemPad, is presenting his researh comps tomorrow morning at 9 at Brown. An ongoing miscommunication about requirements culminated this weekend in Dana believing he has to hand in a paper describing his research at the same time that he presents the research orally, tomorrow morning. He wisely decided to go off communications since yesterday afternoon, so he can just get the work done without distractions. But I wrote to Andy to clarify/beg for clemency, and it turns out that the paper is not due until next week!. I'm trying to get in touch with Dana to let him know that he only has to do the presentation, not the paper, but he's done such an effective job of turtling that he's unreachable. Poor guy; he works so hard and his work is so good, and he gives himself such a hard time over it. Dana, if you're out there, read your email!

I have no idea how Dana's doing the structure determination for ChemPad, but I know it's not easy, and I know that his code is beautiful.

The current version of the ChemPad tutorial looks very nice, if I do say so myself.

the genius bar

I'm getting psyched for another experience with Apple customer service, namely, the Genius Bar. I made a reservation this morning to go by the CambridgeSide store this afternoon, and then a certified Genius will help me and my poor little mac. At best, they'll sell me a screwdriver with which I can open the case myself and re-seat the airport card and optical drive; at worst, they'll take it in for service right there.

I realized that I'm not going to be able to afford a new mac for a long long time, but also that it's not acceptable that the c key on my keyboard is stuck, there's effectively no cd/dvd drive, and no wifi. At the same time, a co-worker pointed out yesterday that when I leave Brown, they might want the superpowered laptop and tablet PC back, leaving me with only the powerbook. Trying to get a computer job with a malfunctioning/decaying computer is just not feasible... so I'm going to invest some time and possibly a tiny bit of money in getting my mac fixed.

It's embarassing to misspell my own name! The sticky "c" key means I keep typing "sasha" instead of "sascha."

So later this afternoon, I'm driving up to CambridgeSide (a mall with much easier parking than Cambridge itself) and then I'll get my very own genius for half an hour. Then, as the timing works out, I'll have to drive back down to Providence in rush hour traffic. If it makes my "c" key work again, it will be worth it.

A Publication!

I think this makes three, or four:
Next-Generation Educational Software:
Why We Need It and a Research Agenda for Getting It

by Andries van Dam, Sascha Becker, and
Rosemary Michelle Simpson

"The dream of universal access to high-quality, personalized educational content that is available both synchronously and asynchronously remains unrealized. For more than four decades, it has been said that information technology would be a key enabling technology for making this dream a reality by providing the ability to produce compelling and individualized content, the means for delivering it, and effective feedback and assessment mechanisms. Although IT has certainly had some impact..."

mac os x development, and the opengl superbible

I've been programming for, hmm, twelve years minimum, at the most conservative estimate. I just had an experience that should happen all the time and yet I'm pretty sure it's never happened before. Not once.

It's time for me to learn the basics of OpenGL. I've been doing cool stuff with high-level toolkits based on OpenGL, but I haven't done much raw OpenGL coding beyond vertex here, vertex here, vertex there. I did some research, and it looks like
the OpenGL SuperBible
is a good resource to start with. I raced down to Barnes & Noble this morning and bought the book, then came back to the loaded g5 in the cave, ready to struggle for a while to get the examples to work.

I put the cd in the drive. I copied Examples/Mac into ~/src. I double-clicked on Examples/Mac/Chapter 1/Block/Block.xcode. Xcode launched, and then just for kicks I hit "Buid and Go." The example worked the first time, with no tweaking the build setup.

Lately I've been spending hours getting each new library I want to work with set up for each new computer I need to work with it on. Endless invocations of "./configure --another-option=/usr/local/eek" are educational, but they're also frustrating delays on the road to, for instance, using an XML library, or rendering fonts, or vector math, or whatever. It's always, "now where is gcc 3.3 on this machine?" and "urg, why don't I have automake 1.7.5?" and that sort of thing. But not today.

I hereby award one gold star to the authors of the SuperBible (Richard S. Wright, Jr, and Benjamin Lipchak) and one platinum star to the architects of Xcode and OS X.

Seriously -- when has demo source code compiled and run, directly off a book's cd-rom? Not that I can remember in twelve years of coding on Solaris, Linux and Windows machines.

usps.com: how to waste half an hour

I've been working on getting a particularly annoying set of letters out the door. I decided tonight's the night, and printed out the final draft of the letter, five times. I signed the letters, wrote post-it notes to each of the individual recipients, put them in big envelopes, then said, hmm, postage... How about I try usps.com? They advertise like mad that I can do anything online that I can do at the post office, and all I want to do is smack some stamps on there; this should be easy.
No.
The only way to purchase postage for immediate use on usps.com is via a java applet. 7:20 I try it on my mac, in firefox. Nope, I need the java plugin. Firefox makes it easy for me to get the plugin from mozilla.org, although the "auto-find plugin" tool didn't work.
7:25 I try again on my mac. This time the applet loads, shows two buttons "Purchase & Print" and "Cancel." The whole applet is around 640x480, with only the top 30 pixels occupied with these buttons. The rest is blank. I'm dubious, but I hit "Purchase & Print," then I wait.
7:30 I give up on waiting. Nothing's happening, and my firefox seems to have crashed. Okay, on to the PC. I try again in Firefox. Whoops, I still need the java plugin.
7:35 The java plugin is installed, and I try the applet again, still in firefox. This time it shows me a sample label, and a progress bar claiming it's processing the credit card payment, then that it's printing. Except that it's not printing.
7:40I decide to do this in the most typical way possible, the configuration that USPS had to have been thinking of when they wrote this application: IE 5.0, Windows XP, HP DeskJet over USB. Again, I get as far as the progress bar, then nothing happens... I open the java console and it has reassuring comments such as "---sending credit card # to server---" and "---retrieving addresses from server---" -- come on, guys, you're supposed to take the debugging println's out before you ship. Duh. Then IE dies and has to be killed.
7:45 Wait, they have a link for "if your browser doesn't support java," which opens a new window. I go through the shopping cart again in this special, new, non-java window... then when I hit the "Check Out" button, it launches... the very same Java applet!
7:50 I give up. I'm going to drive to CVS and buy a bunch of stamps.

cave success

Yesterday I'd started to feel like I don't have superpowers -- for a week now I've been working on documentation for ChemPad, not writing any code. So I devoted the afternoon to therapeutic programming on Screen: programming that makes me feel good. I had a fantastic day in the Cave: I made text swarm around the user's head, in a path determined by a bunch of sine waves with different frequencies and amplitudes... I could last about ten seconds in VR with words swimming around me before I started to feel very dizzy. That's actually a good thing, in this case, because the point is to overwhelm the user with text. At Josh's suggestion, I tried it out with extruded polygonal text instead of texture-mapped, antialiased, alpha-blended text. Damn, it looks good. Poor Josh brought it up like, "This is just blue-sky stuff, idea off the top of my head, I know it would probably be really hard to do, but it would be cool if the text had some depth." Aha! That's just an option in FTGL. I only had 15 minutes or so to get it to work before we had to go meet friends for Battlestar Galactica, and I couldn't find the depth control. I came back to the cave later that night, after three or four episodes of BG:TNG, and got extruded text to work very quickly. I turned on the hardware-supported full-screen-antialiasing, and now it looks better than the texture-mapped alpha blended text, and I don't have to do z-sorting.

Yesterday's coding demonstrated that the toolkit I'd spent my weekends in January constructing actually does enable rapid design and implementation of spatial text applications for virtual reality. Yeah!!!

fantastic restore-from-backup -- i love you, .mac!

In august, when my mac first started having trouble, I backed up all of the data on my mac using Backup 2. I tried unsuccessfully several times to back up to .Mac, but I just had too much stuff. I wanted one coherent backup, in one file, on one disk, so I plugged in my 5 gb firefly (firewire hard drive, not joss whedon series) and created a 4.96 gb backup of all of my iLife: purchased music from iTunes and all my iPhoto's, most importantly. I also put my most precious stuff -- my writing -- on my ipod, and on a cd, and on a remote fileserver... I had forgotten that I had backed up my iTunes purchased music, though. I thought, there's just too much of it, I couldn't have burned it all to a single cd, and I don't have a dvd burner, so it must be just lost and gone forever... like my Guster album. (Sidenote: Audible.com lets me download purchased materials as many times as I'd like, which is far more convenient than the iTunes music store policy of "one dollar, one download," since I have three machines from which I'd like to listen to audiobooks.)
So, here's the beauty of .mac:
I copied my giant 8-14-04.backup file from my firefly to my desktop, and double-clicked it. Backup launched, all set up to "restore checked files." It didn't have any of the files checked, so I checked the ones I cared about, which was almost everything. It said, some of these items need to be backed up to a folder, so I created ~/Restored/ for that stuff. Spin, spin, spin, then all my data was back!
I "add to library"'d from iTunes, pointed it at ~/Restored/Music/iTunes Library, and <em>all of my purchased music was back</em>. Aah... And I pointed iPhoto at my restored iPhoto library, and it was <em>all there</em>. This has been the most painless restore <em>ever</em>.
To cap off this fantastic experience, I started on a redesign of my home page, using iWork's Pages. It's not much, but ye gods it's better than what used to be there.
My mac is the oldest and slowest machine I own, the only machine with just 802.11b wireless, no bluetooth, no smart-card readers built in, and the battery only lasts about ten minutes... Still, it's my favorite system, by far: the first one I reach for in the morning, the one who sings me to sleep at night, the one on which I do as much work as possible, the one I resent having to put down. It just works the way it's supposed to.
<em>*sighs contentedly, them puts down the mac to go tweak C# on my tablet pc*</em>

podcasting: technology and content exactly when I needed it!

For the last few days I've been looking for free online spoken-word news and commentary. Sure, I can get lots of This American Life and All Things Considered as windows media or real audio, but it's a pain to start and stop, to move from one machine to another, and I can't burn to cd from streaming media. audible.com charges significant fees for downloadable versions of radio programs, like $2.95 for one episode of All Things Considered, and even that isn't released until many many hours after the news is tired. TellTallWeekly has micro-fees for audio content, but, ahem, most of it is either unknown or dead authors. I want to listen to news and commentary while I'm falling asleep, or driving, or, notably, driving in between major radio markets.

Podcasting is exactly what I've been looking for. A few NPR shows and a few BBC shows have started podcasting -- this is just the same sort of content that I'd be willing to pay, and have in fact paid for. I just find the feeds I want, add them to my iPodder subscriptions, then poof! The latest episode will appear in iTunes, and from there, on my iPod.

So, I'm a late early adopter on this one. Still definitely an early adopter as related to the world at large, but my big brother was doing this six months ago. I'm finding the technology just when I want it, just when I want more free downloadable current spoken word audio content.

Can anyone explain why I'm awake at six am? Perhaps listening to a BBC podcast entitled "the Cambrian Explosion" will help me sleep.

how?

How am I going to get out of bed, when in bed I have a purring cat and access to my email and the BBC World Service? Plus there's six or seven inches of snow out there. Days like this I wish I had a coffeemaker...

The reason for getting out of bed, though, is Zebediah. Getting out of bed means I can do my job, which means I can do my job well, which means I can leave this job with great accomplishments behind me, which means I can get a new job somewhere closer to Zebediah.

Getting out of bed is much easier when Zebbie appears next to me, in person, and says, "Wake up, Sascha! Time to put on daytime clothes!"

fantastic, super, great

I've come across several fantastic things in the last few days:
O2 Optix: I'd been seeing advertisements for these new contact lenses, and simultaneously having increasing trouble with my contacts. I'd been using 1-Day Acuvue off and on for a few years now. I started using daily disposables when I was more affluent than I am now, and I got used to the convenience: I put them in if I want to wear them on a particular day, and at the end of the day, I just pop them out -- a maneuver I often perform in bed. Since coming to New England, though, the comfort of my contacts has declined to the point where I would only where them when I was going to be working in the Cave, where cumbersome LCD shutter glasses are required. Even then, I'd have to bring eyedrops and my glasses everywhere, because the lenses would dry out and quickly become intolerable after as few as six hours. I visited my eye doctor yestereday, and he gave me samples of these fantastic new lenses, O2 Optix. He explained that they don't contain as much water, and so they're less susceptible to drying out. When he first put them in, I blinked and exclaimed, "Wow! Those feel great!" The doctor laughed -- "That's probably because of the anesthetic I put in your eyes five minutes ago." Even after the anesthetic wore off, I'm still loving these contacts. No dryness! I do blink a bit more then when I'm wearing glasses, but the blinking isn't accompanied by discomfort, so I'm super happy.

Pages: Brown bought iWork '05 for me; I requested it because I was facing some technical writing and I just couldn't face writing another document in goddamn Microsoft Word. The simple documentation I need to write doesn't need all the power of Dreamweaver, but I'm not good enough with html to make things look just the way I want with just BBEdit. So, I've started using Pages -- so far for one of the few writing tasks less pleasant than documentation: a letter appealing a denial of health insurance benefits. I found the program simple, small, and pleasant. The table editor was just... easy to use. Painless.

I suppose the other fantastic thing is that I just cleaned my bathroom, tip to toe, fore and aft, everywhere. Tomorrow is supposed to be the kitchen... or maybe today. Now I get to choose between tech writing, cleaning the kitchen, and watching Curb Your Enthusiasm. Tech writing and dvd's simultaneously? Hmm.

I'm also trying to decide on a to-do list system. I started reading Getting Things Done, and even started doing it, over winter break... but the in box is an overwhelming pile. I probably do need a physical solution; I switch computers and OS's too frequently (minutes or hours) to use a single application, and a pure-web solution is subject to someone else's control. Any suggestions? There's got to be a perfect mac product out there... Oh yes, and the Palm etc -- nope, no new hardware purchases for me, especially since I've owned two or three palms and always stop using them after a few weeks or a month.