Sunday, November 16, 2008

Happy news during the Marriage Equality Protests

While everyone is protesting the California, Arizona and Florida decisions to ban same-sex marriage, Connecticut residents are getting married.

We met Jen and Jenny on our way home from Connecticut. They were recently on local radio, as a couple that won a night's stay in the hotel to accompany their wedding. They were nice to us, clearly happy, and enjoyed their bit of noterity.
So if you're looking for a little happy news in all of this, you found it.

Wednesday, November 12, 2008

Why I was so fond of Google Santa Monica

I'm not sure which note I prefer.

If you can't read that, it says:
"but we'll aim better next time."

Friday, November 07, 2008

The day after election day

In case you missed it: on Tuesday, Barak Obama was elected President of the United States, to the joy of a large number of vocal Americans, as well as citizens of the rest of the world. California's Proposition 8 passed, which took away the right for same-sex couples to marry, and annulled thousands of same-sex marriages (wrong, see update 1, below). Now you're caught up.

Wednesday morning, the day after Election Day, I missed my flight to Dallas. Fortunately the next flight was one hour later, and I was able to get on it. Instead of having an aisle seat, I had to accept a middle seat, but since I only had twenty minutes to catch the connecting flight to Newark, the gate agent was kind enough to put me up near the front of the plane. My companions for the flight were: on the aisle to my left, a young dark-skinned man, probably Latino wearing black sweat pants. To my right against the window was an white man in his late 30’s. He apologized too much. When he came to take his seat, he said “May I come in? Sorry. Sorry. Sorry.” Even when I said “Why apologize?” he apologized.

I shared one or two words with the young Latino man whom I learned was going off to boot camp. So I asked “Why did you decide to go to boot camp? If you don’t mind my asking.” Surprisingly he said, “Tradition. I have an aunt who is a captain, and I’m going to meet her for the first time.” We talked a bit about his plans, his good fortune in being eventually stationed close to home, his good fortune being assigned to drive a tank, and so on. I asked him if he remembered to vote on Tuesdsay. He told me he could not, because he spent the whole day driving from his home to San Jose. That launched a political conversation. I learned about how he and all his friends don't trust Barak Obama: "You know, you can see it in his face." I don't think he meant the color of his skin, I think he just doesn't trust him. I said, "You know, I feel the same way about George Bush." Another example: he said: "Barak Obama wants to cut military funding 20%. That's going to hurt us." and I told him about how at a press conference a soldier told Dick Cheney that he found solders were ill equipped, and the Vice President told that they had to make do with what they had (I was wrong: it was Donald Rumsfeld.)

He said, if the military can't afford to pay us, I'll just be a military contractor.

And I agreed with him that would be bad for America.

Then he said, "Have you heard the Twenty-Twelve prediction?"


"Well, I don't really believe it. But there's a prediction that in 2012, a powerful leader will destroy the world."

"Oh, like Nostradamus? Ha ha, come on. I heard that nonsense in the '80s."

"They said a Muslim leader will take us to war."

Then I looked ahead at the seat in front of me and said. "Barak Obama is not a Muslim. He's a Christian."

"Well, he's got Muslim tendencies."

Now at this point, what I should have done was turn to him and ask, "What the hell does that mean?!" but instead I just repeated my last phrase."

"I don't know," he said.

"Look." I said. "In the 80's they said the same thing, but back then it was an Arab. Now they're saying Muslim. It's just what people say."

"I don't know," he said.

And that ended that.

By now I had finished the drink from the flight's complimentary beverage service, and silently waited for the attendants to collect my trash. I eyed the bespectacled passenger to my right, in the window seat, who suddenly became more appealing. He was reading a heady textbook on developing space flight plans, and I kept wanting to ask him if I could look inside. An attendant started to collect trash a few rows up, so I offered to take the trash from the guy on my right. He accepted and thanked me. We waited for the attendant to come, and I opened my laptop case, and adjusted some of the trash on my tray to make room for the laptop. He politely took back his trash, telling me I didn't need to hold it. So I told him it was no big deal, and I opened my laptop case. He looked at my keyboard and saw my big "Yes We Can" Obama sticker next to the keyboard and said, "Oh, you voted for Obama? Here." and moved to hand the trash back to me. "Just kidding!" he said, and took the pulled his hands back. "Sorry."

Then I got super mad, and didn't talk to anyone at all.

The truth is, yeah, everyone's got their opinions, and everyone gets their facts wrong (Go ahead and research about Donald Rumsfleld's comments. My description was kind of off.) Even in what I believe to be an important and great political victory, I'm still angry that people are replacing "Muslim" with "Muslim tendencies." I'm angry that Californians voted to be documented bigots. And I'm trying to find the place to put my anger. It's easy to be angry at people who are misinformed in a way that disagrees with you, and it's easy to be angry at the Mormons for supporting Proposition 8. But they're not the only supporters, and not all Mormons supported the proposition. They're just the easy target, with a big, unavoidable temple on Santa Monica Boulevard in Los Angeles. It's easy to be angry at friends and family, some of whom I have strong political disagreements.

Nobody's making friends or changing minds that way. I gotta find a different tactic.

Update 1: Existing same-sex marriages are not annulled, though they may be challenged.

Wednesday, November 05, 2008

To the Gay citizens of California

On behalf of the non-gay citizens of California, I apologize. We're apparently a bunch of bigots.

Update: Corrected.

Monday, November 03, 2008

Now, go vote!

Thanks for listening to me pander on and on. Now, please go vote, whatever your preferences. It's the most important (non-emergency) thing you can do tomorrow.

If you don't where your polling place is, Google can help you.

Eclipse Advertising Yes on Prop 8?

I'm very sad.


Vote No on Propisition 8.

Wednesday, October 29, 2008

Protecting Civil Rights This Election

This is the email I sent to my friends and family.
To my Californian and non-Californian friends:

Everyone's aware of the Presidential Election this year. Most are also aware of the fight in California over same-sex marriage: California Proposition 8.

Earlier in the year the California State Supreme Court declared that California's Constitution protects the right of same-sex couples to marry. Prop 8 is an effort to amend the state constitution. The Proposition doesn't mince words. It's titled: "Eliminates Right of Same-Sex Couples to Marry. Initiative Constitution Amendment." The polls show this is a close fight, and in many people's eyes, THIS IS THE SECOND BIGGEST ISSUE OF THIS ELECTION.

It's clear that the outcome of this proposition will frame the debate of civil rights in the United States for the next several years. TO PROTECT SAME-SEX MARRIAGE IN CALIFORNIA, WE MUST DEFEAT PROPOSITION 8. Losing is not an option, and this is understood by people on both sides of the issue. It's understood so well, in fact, that the supporters of Prop 8 are out-spending us.

And here's the part where I'm really dissatisfied. The ‘Yes On Prop 8’ campaign is receiving tens of millions of dollars from out-of-state. ‘No on Prop 8’ needs our donations, even those from out-of-state. [Link:]

Does it really come down to money? Does a defining civil rights victory really come down to collecting dollars? Maybe that's the way it is. Donations turn into air time, and air time turns into influence.

This is the defining civil rights cause of our generation. We cannot afford to lose it simply because the radical right has deeper pockets, and so I'm asking you to make a donation. Any amount is appreciated! And to make it more appealing, I will donate five thousand dollars to the campaign. It is my hope that all of you will collectively match, and then exceed, that amount.

I think about some of the past civil rights accomplishments: the right for women to vote, the right for black people to vote, the right for interracial couples to marry. My default perspective is that these things were bound to happen due to the progressive thinking of the day. I truly believe that progressive thinking will eventually win out, and same-sex marriage will become commonplace throughout the entire United States. Then I think about losing this fight: I think about how 'Separate But Equal' really isn't equal. How then, is the notion of civil union just as good as marriage? I don't want to waste another day with that distinction. I want that distinction to end on Tuesday.

If you live in California, please vote NO ON PROP 8. And please donate money to the ‘No On 8 campaign’
If you cannot vote in California, please donate money.
No matter what you do, please remember to vote on November 4th! (Direct Donation Link:

 Note, my $5,000 donation has been made

Tuesday, September 30, 2008

More on Santa Monica Recycling

Earlier in the month I posted about a short Q&A from the Santa Monica DPW regarding their recycling program. Here is some follow-up information based on questions I asked not long after the original ones. Again, the responses are slightly edited for readability. (Note: the answer to how we pay for the luxury of dealing with commingled material is great.)

I recommend you read the first set of questions and answers. There's a little bit of context in this conversation that comes from that first one.

Sorry for the delay getting these out.

Recycling pickup isn't really free since we pay for it through our taxes. How much does our recycling program cost?

Just to clarify - recycling in the City of Santa Monica is not paid for through any taxes. The Solid Waste Management Division is in charge of refuse collection, as well as recycling, yard waste and food waste collections (and bulk item pick ups to remove mattresses and other miscellaneous items dumped in alleys). The Solid Waste Management Division is an "enterprise division" that is required to pay its own way. All services we provide are paid for by the actual users. In this way, recycling is "free" because the trucks are already out on the streets collecting everything else and we are trying to encourage folks to recycle through this adjusted fee schedule.

Even though we receive no taxpayer money, we are still required to have our fee schedule and expenditures approved by the City Council.

How much do we pay for the luxury of commingled material?

Our recyclables buyer allows us to submit our items in this way at no extra charge. We receive full price for the recyclables collected by the City trucks. I believe that they utilize Community Service workers to sort everything once it arrives at their facility. In this way, the facility does not pay the "volunteers" and the volunteers repay their debt to society.

Recycling programs across the country cannot pay for themselves. Santa Monica is no different. We encourage people to recycle, but there's a lot of misinformation spread around that is difficult to counteract. Wes Thompson is our Recycling Outreach coordinator and he tries to educate people regarding WHY it is a good thing to recycle.

Once recycling is regarded as something that's "natural" to do (rather than an inconvenience or something "other people do"), a larger recycling revenue stream is likely - due to the increase in the number of buyers available for the recycled items.

Where does recycling money come from?

I hope I explained that with the description of the fee schedule. However, if you mean "in general", then recycling money comes from the commodity buyers.

Regular folks can take their recyclables to the Buy Back Center at 2401 Delaware Avenue. I'm not sure what their rates are, as it is a private enterprise run by the Allen Company. Their phone number is 1-310-453-9677 if you would like to check on the current pricing structure.

Also, if you would like to have Wes Thompson come out to your office and discuss the City of Santa Monica Recycling program, please give him a call at 310-458-8546 and he will be more than happy to help.

Sunday, September 14, 2008

An observation about facial tagging

I am happy to see that the Picasa team launched their new facial tagging feature. I've had the pleasure of playing with it/testing it/providing feedback before its release and am glad to see it released to the world. While it was internal, I did not dedicate my time to seriously tagging photos. Consider: when something is in an internal testing phase, there's always an outside chance that the engineers might have to clear out historical data. Now that it's public, I've tagged thousands of faces.

I discovered something interesting from tagging this many faces. Let me give you some background: the facial tagging feature does two things very well: it can identify faces in a photograph, and it can identify when the same face appears in multiple locations. In other words, it can easily tell you when several photos contain the same person. What it can't do is tell you who those people are -- that's something you have to do. It may know that these are all the same person but only you know that's Chris's Mom.

So here's the thing. While looking at a nonstop stream of faces that represent my entire social graph, I all too often could not name face. Twice so far I failed to recall the name of colleagues I see every day. Often I see faces that I can only seem to tag as "Ellen's baby" or "Chris's Mom." You can get away with that sometimes but you can't get away with it when it's "your coworker who you mostly remember because of the great socks she wears."

This is unsettling. And it's also a good way to test my recall ability. You typically see faces in conjunction with other related faces. With Picasa, facial tagging lacks the context of related faces, and clusters of faces do not appear next to their related faces, so I find myself going from coworkers husband to niece's friend to next door neighbor. In this case, my brain cannot leverage its ability to cache related concepts up front.

Incidentally, what is Chris' mother's name?

Tuesday, September 09, 2008

Wow, Santa Monica really does have resident-friendly recycling.

I wrote to the city in order to clarify the reality of their recycling program. Here are my questions and responses (Edited for clarity):

I hear some people in my office say "it doesn't matter which bin you put your recycling in, it all gets sorted at the end." Is this true?

As long as recyclable items are put in to a "recycling" bin, it does not matter what the items are. Santa Monica has a commingled recycling program in which all recyclables can be placed in a single container. The idea is to make recycling easier and more convenient for everyone. All the recyclables are then sorted by commodity at the recycling center.

Oftentimes I'll see a trash and recycling container side-by-side, yet there are things like plastic bottles in the trash. I have an urge to move things that are recyclable from the trash to the recycling bin. My question is: is that actually worth my time? Does this actually make a difference in how it gets treated?

That said, if recyclables are put in to the garbage, then no - they are not sorted out. All items in the refuse bins are taken to the Transfer Station (not the recycling center) and then straight to the landfill. It is true that sometimes recyclables are sorted out of the trash by scavengers, but this isn't the sort of practice we'd like to promote. So, YES - it IS worth your time to separate out your trash from your recyclables if you are concerned about the recyclables getting to the right location.

Sorting also helps reduce your (or your office's) trash bill, because most of what is thrown out is recyclable. Say an office pays for a 3-yard trash bin to be emptied 3 times a week, but then has the office occupants sort out the recyclables. Recycling pick up is FREE in the City of Santa Monica. If a large portion of recyclables are then diverted out of the trash stream, the office can downsize to a smaller container (perhaps with fewer pickups per week) and realize a significant savings.

It's my understanding that commingling paper with glass makes separating the two difficult. For instance, New York City requires paper to be in one container while glass, plastic and metal sit in another container. In my office, though, we just put everything in one container. Is this genuinely sufficient for Santa Monica recycling?

Different cities have different methods of dealing with recyclables. Some have buyers who want the items pre-sorted, but the City itself doesn't have the manpower or space available to provide the sorting. Those cities require citizens to pre-sort their recyclables. Hopefully, those cities also provide their citizens with appropriate containers for all the sorted items. As I mentioned, Santa Monica utilizes a commingled recycling system in which all recyclable items can be placed in any blue recycling container - even the big 300-gallon ones in the alleys around the City.

How important is it to wash or rinse food containers before putting them in recycling?
Washing and rinsing food containers is voluntary. However, insects and other pests will certainly be attracted to unwashed food containers piled up in a collection bin, so that's something to consider.

Before putting plastic in the recycling bin, I check the number on the back. My presumption is that you recycle 1s and 2s, and dispose the rest. What do you accept? How important is it that I check the number before recycling?

We accept plastic with recycling numbers 1 through 5. This includes soda bottles, plastic bags, meat wrapping film, sandwich bags, yogurt cups, Tupperware and anything else with a 1 through 5 designation. Plastic number 6 is Styrofoam and we do not accept that right now, as it is non-recyclable. Plastic number 7 is "Miscellaneous" and can include plastic made from numbers 1 through 6, so we do not accept that right now, either. If you do not check the number on the bottom of the container, it will certainly be checked at the recycling center.

I hope this answered your questions. Please let me know if you need any additional information about recycling or any of the other programs we offer.
Update: I have added a second set of questions and answers.

Wednesday, August 20, 2008

We're moving!

You heard it here first. We're moving back to New Jersey. Beth's getting a new job, but since there hasn't been a bona fide offer, I won't say anything just yet. I'm keeping my job with Google, I'll just change where I do what I do. Also, we're keeping the dog.

If Beth's job is settled as we expect, she will leave Los Angeles a couple of weeks before me. I will drive with the dog across the country. Whereas last time I drove cross-country over twelve days, this time I don't plan to stop for a couple of days in each city, since I'm currently employed and also because Maggie is not much of a sightseer.

We're still working out dates, but rest assured, by Halloween, we'll be gone.

Tuesday, August 12, 2008

Stick with Draft Blogger

I like the recently updated Blogger in Draft. It contains many long-anticipated features, including a nifty new editor, something I desperately wanted. Don't be fooled by the word draft, it's in good shape.

There's one small problem, though: even though I can create new posts using the draft editor, you're still led to the original editor when selecting edit links straight from the blogroll. That can actually cause some formatting problems, since both editors interpret HTML a little differently.

So for the short term, I wrote a small Greasemonkey script that mutates the anchor tag. Have fun with it.

Sunday, August 10, 2008

Watch your return values

Preface - This post was going to be a one-sentence comment to a post by Jeremy Zawodny, but then I remembered my professor, and it went from there.

I had a professor for two semesters that required that all our assignments were written in C. This was his assignment submission policy:
1) Run lint on all your code.
2) All code must have zero warnings from lint, with no exceptions.
3) Any use of strcpy resulted in a zero for the assignment.

#3 was my first lesson about buffer overflows. (We all used strncpy.)

One of the lint warnings pertained to unused return values. For instance, the method signature for printf is
int printf(char *format,...)
How often is printf's returned value given attention? It represents the number of characters written to the stream, or a negative number on failure.

Our linter complained about unused return values for typical uses of printf like:
We were required to either accept and process the return value, or explicitly disregard it:
(void) printf("--done.");
This was one of my earliest impressions of studying defensive programming.

In Java, the method has a contract that requires you to pay attention to the return value, and the reason may surprise you:
public long skip(long) throws IOException
The skip method may, for a variety of reasons, end up skipping over some smaller number of bytes, possibly 0. This may result from any of a number of conditions; reaching end of file before n bytes have been skipped is only one possibility. The actual number of bytes skipped is returned. If n is negative, no bytes are skipped.
So, you supply a distance to skip, and you likely expect the same value back, at least, most of the time. What amazes me is that the documentation even addresses the common expectation: sure EOF is one way skip(n) != n, and then says, twice, that there may be a "variety of reasons" and a "number of conditions." The author is trying to make up for a troublesome API with special javadoc.

Forget that oftentimes there's no documentation and hence, no contract, you still can't expect that documenting unexpected behavior is going to result in proper use of the API.

Present day, Java has Findbugs, The Lint Of Java (zero results, you saw it here first!) Java's classfile format and FindBugs' semantic analysis makes it much more powerful than lint, it can identify this issue with From the description as Findbugs reports it:
This method ignores the return value of which can skip multiple bytes. If the return value is not checked, the caller will not be able to correctly handle the case where fewer bytes were skipped than the caller requested. This is a particularly insidious kind of bug, because in many programs, skips from input streams usually do skip the full amount of data requested, causing the program to fail only sporadically. With Buffered streams, however, skip() will only skip data in the buffer, and will routinely fail to skip the requested number of bytes.
That's great, but there's a problem, and that comes with expanding the API. If I build my own API with its own nuances, someone needs to write a FindBugs detector. (Hint: be careful writing a clever API!)

It seems draconian to enforce a policy of "always address return values" with Java outside academia since there's no easy way to mimic the explicit cast to void. Otherwise you wind up with unused local variables, which becomes yet another code smell.

In the end all tools like FindBugs and lint only augment the human analysis that accompanies development.

I hope students today are being told that they cannot turn in any Java assignments without running FindBugs.

Saturday, August 09, 2008

One year ago

Part one: the past

My mother died one year ago, or just over one year ago, depending how you look at it.

Last July 21 was a Saturday. My wife and I spent the day at my company's rather successful summer picnic. Beth and I had a wonderful afternoon socializing, playing with adults and children, and feeling generally pretty good. We left the party around 5PM, and I was still a little drunk. This was no issue since we planned to spend the evening watching a movie on TV. At home we ordered some take-out Chinese food, and settled down with our new dog, Maggie, who we finally became accustomed to, and she, thankfully, to us.

Some time around 6PM my brother called to say that mom had collapsed. Her boyfriend discovered her on the floor, and she was at the hospital. He didn't know anything else. I said "I'll get on a plane right now." but he told me to wait. Ten minutes later he called back: "It's a cerebral hemorrhage." Still, no more details. I told him I would come home, but he impatiently told me to just wait. He called again after ten more minutes: "You have to come home right now. The doctors say she's not going to leave the hospital alive."

So Beth and I managed to get me packed, get a plane ticket, and out the door in short time. Only one plane ticket was purchased; Beth was incapable of leaving until the following day. Maggie, who was by now generally happy and comfortable with us, felt all our stress and would not stop barking and meddling. It was very tense.

But we had a pending issue: our other brother was nowhere to be found and we needed to find him as quickly as possible. After several phone calls we discovered he was in Albany, but didn't have any contact information. Everyone we spoke with helped us collect some data, and also said they would do whatever we needed. Luckily, one of them is the most reliable person I know for just such an issue, so when I said: "Steve, here's what I need: find Peter." we all knew that the job would be done. And he got the job done.

Getting through the airport that Saturday night was a breeze. Although there were long lines, every staff member treated me like I was beyond first class when I explained the situation. I was intentionally terse: "I'm the guy who bought his plane ticket 30 minutes ago because he has to go home for a family emergency." Not "I'm the guy" as in, "I'm the guy you just spoke with" but rather, "I'm the general profile of that customer." I was moved to the front of every single line.

At about 10:15PM I settled in to my window seat for the red eye home. It was during the pre-flight security briefing, when there was nothing else to keep me occupied that I finally broke down. I cried quietly but uncontrollably. The flight attendant brought me a box of tissues.

A stewardess came around to deliver the first round of drinks. This was an overnight flight, there was no more food to be served. I hadn't eaten since before the holiday party ended, and was coming off a couple too many drinks to boot. I prepared a long message on my handheld phone so that I would not have to speak over the passengers. The note was also crafted to fit on one screen so the flight attendant would not have to figure out how to scroll the screen. She arrived and I showed it to her: "Going home for a family emergency. Got my ticket last minute, and had no dinner. Is there anything more substantial than peanuts? Also, OJ no ice please." (This, it turns out, was early training for Twitter.) She returned five minutes later with a microwaved Chicken Parmesan sandwich. I'm positive they store these for just such an emergency. It made me feel taken care of.

Two days later, on July 23, the doctors turned off the life support system to my mother and she died. She was buried two days after that. In those intervening two days I took care of calling almost all the friends and family. Mom's red address book is still sitting at my computer, where it's remained, untouched, for at least 11 months. Also I wrote a eulogy, which I presented at the funeral. I worked very hard on it, and I'm not ashamed to say that the hard work paid off. I've considered sharing it several times on this blog, but its consideration caused me to discover that there are just some things best kept private.

This intervening year was very difficult. The first three months back at work were unsurprisingly unproductive, and I was sullen and unfriendly, particularly to my wife. The following three months were also unproductive, but now they were surprisingly so -- I was not getting back on track. However, I was much nicer to my wife. It was only the following six months when I was able to function at full steam and resume feeling good about myself.

Of course Beth was a big factor in my recovery, but what neither of us expected was how important our new dog, Maggie, was in our mutual recoveries. We poured all our love and attention in to her, and we're still just crazy about her. As I admitted in last year's post about Mom's death, Beth and I used to confess to each other "If mom died I don't know what I'd do." Now we confess to each other "If Maggie dies I don't know what I'd do."

Part two: the recent past

My mother died one year ago, or just over one year ago, depending how you look at it.

This past July 23 came and went, and while I recognized that a Gregorian year had completed, it surprisingly remained a fairly non-day. But I did speak to my brother, which is not something I do every day, and it was on his mind too.

The following week I noticed something: when faced with a trauma that gets easier with time, you go through phases. During the first phase, you think about it all the time. During the second phase you think about it every day. During the third third phase, you don't think about it every day. That week I discovered a phase in between the second and third: you think about it every day, but you're not completely sure.

Seven days ago another significant day passed: the day of the annual company summer picnic. Was that the acknowledgment that a year had passed? No, though once again, it was on my mind.

Four days ago Mom's condo sale completed, and three days ago, her estate dissolved. The majority of the work to get this done fell on my two brothers, since I live so far away.

Tonight was the start of Yartzeit - the mark of one year according to the Jewish calendar.
Sidebar: why don't Jewish calendar days match up with Gregorian calendar days? That's well covered elsewhere. Suffice it to say that both calendars operate like a rolling cylinder with a weight attached to the inner side; sometimes one is ahead, sometimes the other.
This the last of the four events that could mark the passing of a year: the Gregorian calendar, the company picnic, the chronologically convenient end of Mom's estate, and Yartzeit. It is on this last day that I choose to acknowledge her passing, and so tonight I lit a memorial candle, and wrote this, and continue to think about her.


I said I would not share the eulogy I wrote for Mom. It will continue to be kept private, but I'll make one part public -- my favorite, in fact. It contains a superb tactical edit from my dear friend Mark. It's written as if I were talking directly to her:
You should know that Teddy is responsible for telling me that you love getting flowers. Boy this make acknowledging you on Mother's Day, or really, any day, very very easy, and whenever you called to thank me and describe the flowers, it made me feel like I hung the moon.
Mom, you've been gone for a year and while I miss you all the time, you still make me feel like I hung the moon.

Sunday, July 13, 2008

Only at the L.A. Dog Park

You won't see these at dog parks in any city in the United States outside the Los Angeles area:
  1. A woman dressed like Marilyn Monroe: platinum blond hair, carefully done, a knee-high green and yellow polka dot dress, tight green sweater, black cat* sunglasses, a pink parasol, and white five-inch heels. Everybody watched her climb the dirt hill, amazed someone would come to the dog park in such long heels.

  2. A woman whose breasts were so gigantic, she could only be in the adult film industry.
* for lack of a better word

Thursday, July 10, 2008

Don't forget about Google Browser Sync!

Google seems to be announcing quite a lot these last few days. I'm sure you're familiar with Lively, and you may know about some of the awesome developer tools (they even released the C++ style guide, for pete's sake.)

Something that will get lost in the shuffle among all this news is the open sourcing of Google Browser Sync. Google's not developing it any more, so hey, they put it out there to see if the world at large can do something useful with it. From the Google Open Source Blog:
While we're no longer doing active development, we've released the code in the hopes that those folks who asked for it will use it to develop something cool. For example, it would be great to see the server ported to Google App Engine, or support for Firefox 3 implemented.

You can check out the code using any Subversion client, and we have posted a short tutorial explaining how to build and run it.

More people are going to know that Google Browser Sync went away than those that will know the code has been made available, so doing it can't really undo much damage that might have come from criticism. It just smacks as a classy move by the small team responsible for Google Browser Sync, and also as a classy move by Google for having a culture that allows its engineers to open source its products.

Speaking of which, have you looked at protocol buffers?
Note: My opinions. Not my employer's opinions. Even my cat would have different opinions, if I had a cat.

Monday, June 23, 2008

Screencast: Using Property Testers in the Eclipse Command Framework

Eclipse 3.4 (codename Ganymede) is on the verge of release. Having struggled with the Eclipse Command Framework, I decided it would be valuable to provide a screencast demonstrating the component I thought needed the most clarification, and where I spent the most time spinning my wheels: the property testers extension point.

Was this worth the amount of effort I put in to it? I can't count the number of hours it took to create my first screen cast - I needed SnapZ Pro X, IMovie '08 and finally, Gliffy, Screen Flow and The Gimp. One thing I learned through this exercise: making a crisp screencast is hard work.

I hope it is useful to you.

Using Eclipse Property Testers with the Command Framework from Robert Konigsberg on Vimeo.

Saturday, June 21, 2008

The winner of Who vs. Whom

I have been happy to watch old episodes of Get Smart since they are getting some airplay in conjunction with the recent movie release. Some things about the old show are interesting. For instance, I was shocked by the more flexible use of racial stereotypes and words that would now be considered slurs (something even emphasized in the title of the show's final episode, I Am Curiously Yellow.) I wanted to pick out some of the parts of that episode in a separate post, but for now this will have to do.

The following is a clip from an episode from their first season called KAOS in Control. Maxwell Smart and Agent 99 are trying to interrogate a suspected KAOS agent. In this scene, Max is the only one who doesn't understand the difference between 'who' and 'whom'.
OK 99, I think we can start with the interrogation now.

Check 86!

OK Ratchett, start talking!

Who pays you?

Who do you report to?

(whispers) Whom.


Look, I'll tell you everything!

Just a minute Ratchett. (To 99) Are you sure it's whom, 99?

Yeah, I think so because, um, whom is the objective, you see, in view of a preposition.

(impatient) I would *like* to *make* a *statement*.

(Facing one direction) Who do you report to? (Facing the other direction) Whom do you report to?

(Exasperated) It's *whom*.

It is? Oh! Well, then in that case maybe you can tell me, *whom* had access to the retrogressor!
So you see, the joke is on Max because even when they explain how to use 'whom' he immediately misuses it.

I thought about how hard it must be nowadays to make jokes about the nuances of the English language. There was only one way to resolve this: Search Result Battle!
A search for "Who do you report to"
yields 10,200 results.

A search for "Whom do you report to"
yields 872 results.
So it doesn't look good for 'whom'. Popular opinion sides with Maxwell Smart. Sheepishly I must admit I would have agreed with him too.

If you're interested in the clip, I've attached it below. The particular scene starts at about 0:43.

Update (June 23): My friend Maria summarized the whole article in five words: "Grammar jokes are not in."

Wednesday, June 04, 2008

Time for me and The Facebook to part ways

To my friends on The Facebook:

The time has come for me to close my account on The Facebook. It's been great and it's been nice to reconnect with many of you, but now, not only do I find myself spending more time on it than I would like.

This isn't a referendum on The Facebook, it's a referendum on my time. See, I spend a lot of time on The Facebook, and I just don't feel that I'm getting the value out of it that I'm putting in to it.

The clincher came this morning, when I chatted with one of my colleagues:
Me: Can you help me with something that will take just a moment of your time?
Him: Sure, whatdya need?
Me: I need you to make a decision for me. But I'll give you no data. All I want from you is 'yes' or 'no.
Him: Shoot.
Me: I won't give you the question.
Him: Or really, no data?
Me: Really.
Him: I've flipped a coin.
Me: OK.
Him: Tails.
Me: So was that Yes or No?
Him: Oh, I don't know. It's tails.
Me: OK that doesn't help me. Let's try again.
Him: OK, this time tails = no.
Me: OK.
Him: It's tails.
Me: Perfect. The question was "Should I delete my Facebook account?"
Him: So you're not going to delete it?
Me: No, I will.
Him: What?
Me: There's this poem which I'm about to butcher [ed: which I then did.]
The poem comes from Piet Hein, and I'm copying it from Nelson Minar's weblog:
Decision Making
Whenever you're called on to make up your mind
And you're hampered by not having any
The simplest way to solve the dilemma you'll find
Is simply by flipping a penny

No, not so that chance shall decide the affair
As you're passively standing there moping
But as soon as the penny is up in the air
You'll suddenly know what you're hoping

Helpful advice at a time like this.

This doesn't mean I no longer want to be in touch; I do. It just means I would just be happier using other online media to do so. You can still find me on Twitter, FriendFeed or even my occasionally updated blog. If you use gmail or AOL instant messenger, give me your account information, and we can chat that way. Or you can even send me email through the traditional means, and I certainly hope you do.

Keep in touch. - Robert

Good Math

Conversation between me and my wife about our dog, Maggie:
Her: "She only pooped three times today."
Me: "No, she pooped four times!"
"You're a liar."
"I'm a liar? OK, let me count. How many times did she poop with you today?"
"And how many times did she poop with me today? Hmm.. let me think. It was FOUR! So how many is that in total?"
"And what's the percentage increase between the number of times she pooped with you compared to the number of times she pooped with me?"
"... Zillions! A Zillion percent!"
"Infinity. I'm infinitely more productive than you. Remember that tomorrow."
"That's what you get for calling me a liar."
This really belongs on twitter, but I couldn't get it under 140 characters.

Monday, May 26, 2008

Becoming a Java Master, con't.

Last night I read an interesting post by Steve McLeod, titled Becoming a Java Master. The article suggests these "books, techniques, and qualifications that help you become a Java Master." You can browse the article to see what he suggests: a good series of books and a Sun Certified Java Programmer certification. I think these things are helpful, but not nearly enough. Of course, everyone takes their own path to mastery, mine involved a job with some of the greatest engineers I've ever met.

Note: I don't consider myself a 'Master', and that's in part because it's hard to use that phrase when I see names like Bob Lee in my inbox almost every day.

All of Steve's recommendations are good, here are some others:


  • Participate in a reading group. From a personal perspective, the thing that worked best for me was to skip participating and go straight to leading the group. Occasionally, (and this depends on the group,) you don't need to be a subject matter expert to lead a reading group, just a desire to learn a topic, and a few people who will look to you to set the group's tone. I find that the fear of embarrassing myself as an unprepared leader is usually enough to get me through a difficult book. (Except that one time when we read The Haskell School Of Expression. I make no apologies for that one.)

  • Read Java Puzzlers. It doesn't feel like a mastery-type book, but only because it's so much fun.

  • Read the Core Java books. They are invaluable references.
Get Inside
  • Read some of the JDK source. Do you know how ArrayList got its name? Have you tried to understand ConcurrentHashMap from the inside? Go find out.

  • Try to write something meta, like a class file decompiler, a custom classloader, or a debugger. You don't have to finish it, and it doesn't even have to have to be revolutionary. You're doing it for yourself so you come away with a bonafide understanding of the insides. (Personally, I started writing a decompiler in 2004. When I got hired by Google, I stopped putting time aside for it.)
Be Like A Master
  • Regurgitate what you have learned. You choose the format: a blog, an online document, an open-source contribution, a presentation. Heck, you can even write a book. Regurgitating the information helps you become a subject master.

  • Participate in Java Ranch or any other online forum, and the answer questions you find online. Answering other people's questions is a great way to reinforce your own knowledge. Of course, use it to ask questions about things you don't understand. A true master knows it's good to ask questions.

Thursday, May 15, 2008

Google hosting Eclipse Developer Day

From Ian Skerrett's post:

I am excited to announce a new event called ‘Eclipse Day at the Googleplex‘ to be held June 24 at the Googleplex in Mountain View, CA. It will be a half day event that features technical presentations on various Eclipse projects (Equinox, ATF, ECF, CDT and Mylyn) and using Eclipse to build applications for Google Android and GWT. I am also pleased that Michael Gilpin from eBay will be presenting how eBay is using Eclipse. btw, Michael has already written some articles about Eclipse at eBay. It is a great mixture of Eclipse technical content.

Mustafa Isik suggested the idea while he was a summer intern at Google last year and we have great support from people internal to Google. Special thanks to the Google Open Source Program Office for sponsoring the event and making it possible.

It is free to attend the event but you need to register on the wiki. Space is limited so please register early.

I am one of the Googlers who has been working with Ian on getting this going, so I'm excited to see the promotion. Please don't hesitate to let me know if you have any questions.

Wednesday, April 30, 2008

Renee Montagne at Google Santa Monica

This morning I was asked if I listened to NPR. Apparently, I gave the right answer, because I got to have lunch with Renee Montagne, the noted NPR host of Morning Edition. There were 9 of us including Renee and her editor. We discussed all sorts of things, including "The way things used to be," some possible ways to use technology to solve news research and collaboration for reporters, and "When are you going to be on "Wait, Wait, Don't Tell Me"
(she's been on it twice. Here's one.)

All-in-all, it was fun and interesting, and thanks to Renee I have joined the Facebook group "All I want for Christmas is Carl Kasell's voice on my answering machine".

Tuesday, April 29, 2008

Vacation Days 12-16: Krakow

Click here to view pictures from days 12-16.

This is probably going to be the longest single post about our vacation.
I should explain.

The whole reason we took a trip to Europe was because I was to spend a week working at the Google Krakow office. Today was my first day in the Krakow office.

For the most part, over the next week, I worked and Beth napped, ate and visited local sites. I worked.

Here are some of the interesting parts of that week.


Monday morning in Krakow, my first day of work! I checked the online map to find my way from the hotel to the office, it was less than a 10 minute walk. Beth and I grabbed breakfast and headed for the building. It wasn't too far a walk, very close to the Old Town Square.

I arrived at the Google office, a three story salmon-colored building with large wooden doors and tall ceilings. I entered to discover that this was the first day that Google Krakow had two offices. I was in the original office, and the new office was half-way back towards my hotel -- directly in the Old Town square.

I walked over to the new Google office, accompanied by one of the Krakow field techs who pointed out some of the local Krakow history as we walked. We arrived at the new office just in time for the engineers to enjoy a champagne and strawberry celebration, and an exciting speech from the local site director.

The two offices were very different. The old office had large ceilings with dark rooms, and large wooden doors that slammed loudly if left to close on their own. The new office had bright natural light and almost no offices. The old office had 1.5 bathrooms on each floor, and by that I mean each floor had its own shower and two rooms for toilets. The new office had several bathrooms, all in the far corner of the office, far away from where everybody sat.


Tuesday morning I spent an hour showing a few engineers some of the work I have been doing, in an effort to help them be more productive. It was a successful hour, peppered with phrases like "Cool!"

Tuesday for lunch I went out with a few of the people I spent the morning with. It was a great opportunity to just speak with people without worrying that I was a tourist. At the table, only 1/3 of us were Polish, so I felt very comfortable in the group. One of my colleagues ordered some kind of liver, which he claimed was "the best liver he ever had." I hate liver but I had to try it if it was really that good. I would say that I agree with his sentiment. It was the best liver that I also ever had, but it was still liver. Nyuch.

Tuesday evening I was invited out for a couple of beers with two engineers: Ilona and Dmitry. Ilona was from Poland and Dmitry from Belarus. (I later learned that Dmitry was married two weeks prior in Belarus, where his wife remained.) Beth was happy to stay in the hotel room, and I thought it made sense: Beth just wouldn't have fit in. In the meantime, we had a really fun time. The beer was tasty, and I had a chance to eat a Polish Sausage soup and a standard dish called Bigos. I discovered that Dmitry and I shared an interest in Stanislaw Lem. Dmitry did not know about the exhibit at the local gallery, he did know that Lem was buried nearby and he invite to take me to see it. In return, I would take him to the gallery.

During the evening, Ilona asked me where my favorite place was. I told her it was Chicago. (She did not hide her disappointment. I think if I said "a lake by a mountain" she would have been happier.) But I described why I liked it so much and then said, "but the problem is, in the winter, it gets so cold!" Dmitry, the Belarussian, said, "Oh really? How cold does it get?" and then Ilona and Dmitry high-fived each other for putting the American in his place. It went back and forth like that all night. I had fun.

We stayed out way too late and I was happy about it.


Wednesday afternoon I gave a presentation to the engineers at the office. It's not the best presentation I've ever given, probably one of the worst. On the positive side, I managed to deliver the information I needed to deliver, but I'm certain I wouldn't have done a better job if I made it to bed on time the night before.

By Wednesday evening I was desperate for a meal without meat. Beth took me to a vegetarian restaurant where we shared a delicious plate of samosas.


Thursday morning I arrived to work to discover a camera crew setting up for the day not far from the office. In fact, I would be able to watch the camera crew from an office window.

Dmitry and I took a ride to see Stanislaw Lem's grave. It was the most beautiful day, and the first one since going on vacation where I saw someone in shorts. The cemetery was plain looking with a lovely view. Lem's grave was quiet and well adorned by visitors' flowers and rocks.
The grave had an inscription, "Feci, quod potui, faciant meliora potentes". Later I asked for a translation and received it: "I have done what I could, those who can will do better." The view from the cemetery was lovely.

Dmitry then took me to
Kosciushko fort and correspondingly the Kosciushko mound, one of the highest points and best views of the area. By the way, did you ever wonder how to mow a very steep hill?

We returned to the office around noon. Here's a video of me biking through the streets.

Upon return to the office I watched then
film the commercial for a while longer. At one point in the square we saw the commercial, a dude dressed as beer, and an dozen sexy female police prowling the street (I am told they were marketing Axe body spray. Whatever. After watching that, I'd spray it on my food if I had to.)

That evening we ate at the fancy shmancy restaurant in the square. Drat that I can't remember its name. The food was wonderful and the service was too. White gloves and silver serving trays and everything. I'm not expensing that meal.


I had a somewhat ordinary day at work, though I took an hour to show Dmitry the gallery of Stanislaw Lem sketches, and also introduced the Krakow office to the idea of a reading group. Having recently finished leading the Santa Monica Google office through the famous book Design Patterns, I led the Krakow office through two design patterns to give them an idea of what a reading group can be like. The Krakovian Googlers were an amazingly smart bunch of people, and were all well prepared, not because they did the prerequisite reading, but because they knew it so well.

Beth visited the grounds of Wawel Castle and had another easy day, which made her very happy.

At the end of the day, Beth and I shared a few beers with colleagues, and we returned to the hotel. The staff was kind enough to let us use an unused room to shower in the late afternoon, since they knew our next step was to take an overnight train to Vienna! But more on that later.


I'd like to add a quick note about the nature of doing laundry when visiting Krakow.

The past Friday, when we first arrived, we asked people at the front desk of our hotel how we could get our laundry done, they said there were two choices: we could leave the clothes at the hotel to be dry-cleaned, which was very expensive, or we could bring the clothes to a dry cleaner, which, if I managed to consider it, was also very expensive. Maybe they didn't understand. I explained that we wanted more of a washer-dryer style of laundry. The people at the front desk said they understood, but in Krakow, everyone had their own laundry, and nobody did it out.

"But that's strange. In America we ..." and really, does any sentence that leads with that really help create understanding between our nations, or does it just make me look like a boob?

So, with two pieces of luggage full of clothing, we looked for the dry cleaner. We got lost part way there, and I stopped to ask an old man for directions to the dry cleaner. Though the man didn't speak English, he managed to explain to us where a honest-to-goodness laundry service was, nearby. We walked to the laundry, and it was clear: this was a laundry that specialized in dealing with hostel visitors. It also advertised itself as the first, and only, laundry business in Krakow. This makes sense: as Krakow becomes a more popular tourist destination, there will be more laundry services, but I guess for now, there is only the one. Fortunately, they were willing to wash all our clothing and deliver it to our hotel all for the approximate equivalent of $30 USD.

Sunday, April 27, 2008

Vacation Day 11: Auschwitz

Click here for pictures from Day 11 (Auschwitz)

We woke up very early to catch the bus to Auschwitz. The ride was about an hour, and we were shown a short film based on the Russian soldier who was assigned to document their discoveries there. The tour started somewhat at the sign which one tour guide called the "famous ironical sign, Arbeit Mach Frei." Our guide spoke very softly, and didn't seem to give too much information (for example, "I will show you many photographs during the tour and this is the first one.") We switched to another guide, who had much more information to give. Surprisingly, this turned in to an interesting situation.

Most people on the tour were not familiar with the details of the Holocaust or the Concentration Camps. Having had what I'll call a significant amount of education in this area, I found the tour guide's information to be not new. This isn't a criticism per-se, because there's a difference between talking about something in a classroom and being at a site. However, most other tourists seemed somewhat unaware of the details. One tourist asked lots of great questions. "Did anybody know what was going on?" "How can people say this never happened?" Based on one of the questions, our tour guide made a statement like so: "What I find is that Jews come here and they think they are the only ones who suffered. They don't realize other people were died here too. One Jewish tourist was smoking a cigarette and I told him to put it out, and he said 'I don't have to, I'm Jewish.' The Germans are much more respectful when they come here."

This shocked me, and it took me a long time to figure out my thoughts and feelings. How do I express my anger at her racist generalization without being labeled a self-righteous Jew? First I checked both with Beth and the man asking all the questions if I had heard her correctly. Had she really generalized to such a large degree? Both Beth and the other man agreed. Fortunately, the other man said, "I don't think what she says is entirely true." It took a while and some conferring with Beth for me to speak with the guide.

I said, "I have some thoughts about what you said. I agree with you that some Jews have a righteous indignation about the Holocaust, but I also know that I was taught that there were Poles and Russians gays and Gypsies that suffered at the hands of the Germans."

She replied, "Oh, so you had a good education."

"Yes. And I also think that it's not accurate that you say that all Jews are a certain way."

Quickly she turned to respond to the whole crowd, "The problem is that some people come here and think they have the facts. There was one tour guide who was talking about some things - facts. Some people complained: 'How can you say that? How dare you!' and so on. They got that tour guide fired. I should clarify: when I meant 'Jews', I didn't mean American Jews. I meant Israeli Jews."

I wonder if she realized she was revealing her racism twice, explaining her first racist comment with another one. What can I tell you? she's probably right to be upset that her colleague was fired, but there's racism everywhere, and it's tough to talk about one's feelings on race quickly, in front of 30 people.

After viewing Auschwitz we took the bus to Birkenau, three kilometers away. I would have liked to walk there if we had thought about it.

I assumed the trip would be emotionally draining, but in fact, the only part that was emotionally tough was my conflict with the tour guide. I seemed to be no other emotional backlash. Before leaving, Beth took picked up several stones from the ground so we could bring them to my family's graves the next time we go to the cemetery. I'm not entirely convinced they're appropriate for my family's graves for a variety of reasons, but we have them.

We returned to Krakow by 1PM and had a fabulous lunch, and walked through the city most of the rest of the day. The next day was my first day of work in the Google Krakow office, and I wanted to be ready.

Vacation Day 10: Krakow

Click here for pictures from Day 10.

This morning we headed to St. Mary's Basilica in the center of Old Town. Beth was there the day before, and she told me it would be spectacular. She was right, it was the most beautiful church I've ever seen, only excepting Hagia Sofia in Istanbul, and even then, this was more beautiful than Hagia Sofia in several ways. The accompanying photos really show how great it was.

We walked from the church to the Krakow City Tours office for our first tour of the Salt Mines. Some people say the Salt Mines are "can't miss." I'd say it was impressive, and I'm glad I went. The clear amount of effort that went in to building churches and sculptures in to the mines is quite remarkable. You can actually host a party or concert in the mines, or stay there overnight, benefiting from the healthful salty air.

In the early evening Beth took a nap and I went to the hotel restaurant. It was very difficult to order a plain salad. "Can I get a plain salad?" "No, you can get anything on the menu." OK. So I ordered two helpings of the "beef carpaccio on greens" appetizer, and had them hold the dressing and cheese, beef on the side, so I could eat some if the greens proved too small. Undeniably the dish was excellent, but this proved to be a perpetual problem with the restaurant: they were too fancy for stays of any length.

When I returned to the room Beth complained about noise coming from nearby pipes, and changed rooms. This room was as wonderfully decorated as the first, photos are in the album.

Monday, April 14, 2008

Vacation Day 9: Krakow

Click here for pictures from Day 9.

Morning at Hotel Gródek! This was a planned lazy day. After a quick breakfast, Beth went to find good tours for the salt mines and Auschwitz, while I walked to the local gallery with the Lem exhibit. The gallery was small and attended by a young woman who was kind enough to explain everything to me, since I could not read Polish and she had excellent English skills. The gallery had several sketches, many of which I had seen in The Star Diaries. In fact, most of the drawings recalled stories from The Star Diaries. There was also a sculpture Lem made, and some other sketches related to his suggestions for a statue honoring Chopin. This was a genuine highlight for me, and speaking with the woman, whose name, I learned, was Martha (named after the Beatles song.) She claimed she learned English so she could understand Beatles songs.

Back to the hotel for lunch and Scrabble. This hotel had a fabulous chef who created excellent sauces. This was fantastic, except we really wanted something reasonably light. So we asked to share a salad, and a meat dish (veal?) with potatoes and spinach. Unfortunately, the salad was covered in oil and the spinach turned out to be a tiny soufflé. (Additionally there was a lovely appetizer, complements of the chef, consisting of chicken, some cheese, greens, and the superb red peppercorns we had throughout most of our stay in Krakow.)

We napped and wanted to head out to dinner. We asked for a recommendation for a vegetarian restaurant, and they gave us one with a promising name: Avocado. They gave us a recommendation in the Jewish district. We decided to walk there, but started by heading in the opposite direction for 20 minutes, as a way to walk off some of the rich food we ate. I marveled at the large number people with dogs, most of which were allowed off leash. This made us miss Maggie even more.

We had difficulty finding the restaurant based on the markings the hotel staff made on the map. We gave up on finding Avocado, and looked at two or three other restaurants, none of which appealed to us. We found Avocado while walking out of the Jewish district. It was about two blocks from where the map marking suggested. We went in, ready for our meal, and marveled at all the vegetarian choices lavished with meat. I wasn't happy with the choices but by then we settled for the least damage: Beth had soup, and I had a chicken dish. Back to the hotel, called friends and family (Thank You, Skype!) and sleep.

This was an excellent lazy day.

Vacation Day 8: Prague -> Krakow

Click here for pictures from Day 8.

We really felt comfortable in our hotel room. I make fun of the large amount of plastic, but it was a comfortable hotel. We didn't have much time this morning since we had an early train to take us to Krakow. After a quick breakfast, Beth and I hurried to Wenceslas Square, the site of the Velvet Revolution. This was our fastest sightseeing / walking trip of the vacation (so far), with a very quick pace and deliberate speed. We went, we saw, we came back, and rushed to the train station.

We believe this is where Bongo decided he was grown up to have adventures of his very own. We agree, but we will also miss him. He was Beth's traveling companion for ten years.

This is also where Beth's watch decided to have adventures of its own. We're fairly certain someone stole it off her wrist, and we know who it was. It's the same person who was very interested in having Beth open her purse to look at her train ticket. Tsk.

The train to Krakow was an 8-hour direct shot. It was not as nice a train as the one two we took from Germany, and the early part of the trip the train was packed, and uncomfortable, but we had the car all to ourselves after about four hours. The time passed quickly, and the countryside looked much more bleak the further east we went. I worked on the this diary and Beth read and napped.

We arrived at Krakow at about 9PM and took a quick taxi to the hotel. The hotel was actually in walking distance, but we were told some adjacent parts of the walk might not be safe. Since the taxi was a mere 10 Zloty (about four dollars) we saved the effort.

Hotel Gródek is gorgeous. The staff is very friendly and helpful, if all very young. The room was beautifully furnished, and included paper slippers (to keep my feet clean, yay!) We decided on dinner at a place known as having the best pierogies in Krakow. It was closed and had a sign in Polish. I think it was closed for repairs. We adjusted the plan and ate at a nice looking restaurant off-the-street. Beth started with a pilsner and I had my one and only wodka of the trip. Nobody told me I was meant to shoot it back instead of sipping it, Alas. Beth ordered pierogi and I had pork stuffed with prunes in a plum sauce, with an accompaniment of vegetables and rice. The vegetables and rice both had butter, just to ensure there were no lingering health benefits. All the food was brought to us on trays, which we thought would be the typical style of serving food (it was not) and the service was the slowest we'd seen, and hoped that was not endemic of Krakovian service (it was.)

We learned something quickly in Krakow: tips are not easily added to a credit card payment: either you have the cash up-front or you don't tip. Some places had exceptions to this rule, but for the most part, if you didn't have cash, tipping was awkward.

Walking back from the restaurant we passed a gallery near our hotel that had a banner that read

"Stanisław Lem - rysownik 13.03 - 26.04.2008"

I had no idea whether Lem was well regarded in Poland, or even if there might be something interesting for his fans near Krakow. This was better than any church we might find, so Beth and I agreed that I would go there by myself, probably the next day.

Vacation Day 7: Prague

Click here for photos from Day 7.

We woke up in our fancy Boutique Hotel Josef, enjoyed the view a bit and went down to breakfast. The Hotel Josef had the best breakfast of all the hotels through our European trip. Not only did it have the largest variety of foods, but it also had them well separated, so for instance, Beth, who can't eat kiwi or other tropical fruits, was able to eat all the other fruits. (Every other hotel served most fruit together, with kiwi.)

Ignoring the original plan to stay away from Jewish monuments until Auschwitz, we walked out toward the Jewish Center, and purchased tickets for the entire Jewish Museum, a series of synagogues turned in to exhibits. But first, we walked in to an active synagogue with connected kosher restaurant and looked around. Beth enjoyed herself but I sort of froze, due mostly to my lack of reasoanble skill in Czech, Yiddish and Hebrew. I was afraid that anything I said would portray me as a disrespectful American. We left that synagogue quickly and went on the museum tour, starting with a sad Holocaust memorial and exhibit adjacent to a cemetery that was almost as jumbled as these European city streets seem to be. Once again, Beth and I agreed to visit no more Jewish museums until Auschwitz, after this one.

That said, the Museum portion of the exhibit was great. There was a large variety of information about Jewish history in Prague including pieces of religious and secular history, as well as details of the pre- and post- Holocaust era. It was clear that Jews in Prague are enjoying a rare period: only the last 20 years (post-Communism) have Jews in Prague been able to express themselves with this much freedom and openness. Anti-semitism isn't dead in Prague, but it may be the best time in history to be a Prague Jew.

After the museum we headed for lunch and ate at an Italian restaurant. The food was spectacular. As we found out during the trip, Italian food was a good typical fallback as both familiar and a change from the typical heavy meat dishes. Prague's Italian food was the best.

We next went to the St. Nicholas Church in the main square for an organ concert with operatic accompaniment. Something was odd about the performance. The brochure didn't have a bona fide date on it. There was another brochure for a performance the next night. It was my suspicion that they had an endless rotation of organ performances, day after day (except probably Sunday.) The show lasted one hour and was very good, ending with Ave Maria. Surprisingly, there weren't too many visitors, but that worked to our benefit since the benches were heated, and we took up more room. Beth found out the next day that the singer who accompanied the organ player performed two hours later at another church, also concluding with Ave Maria. This sufficiently confirmed my suspicions about the regular nature of the performances.

We returned to the hotel where we showered and dressed for dinner. The hotel made us a reservation at a restaurant. We wanted something inexpensive, but the concierge sent us someplace where they admitted it was not cheap, just not very expensive. I couldn't help but feel the hotel had an advanced arrangement with the restaurant. That said, the concierge got us one of the best seats in the restaurant, and the food was very good. I had salad and a plain pasta. Beth had a wonderful tomato soup with basil oil and a veal with potatoes. Her dish was delicious but she could not finish it. I insisted we take it back to our room, even though there was probably no opportunity to eat it. (It turned out to be a perfect lunch for the next day, so Beth in the end was happy with the choice.)

I'd like to point out here that the way the concierge seemed to operate in what did not seem like our interest, along with the machine-like nature of the organ performances left me with a bad taste of Prague: this was the tourist sector, but people should do a better job hiding the tourist machine.

This is disappointing, because otherwise, Prague is a beautiful city, and clearly has lots of fun things to offer for the visitor.

Sunday, April 13, 2008

An advertisement seen in Vienna

I checked while in Vienna and was presented with this ad:

I couldn't understand why this Viennese ad was in Arabic, and I wondered what it was referring to: was my PC infected with an Arabic virus? I clicked the ad which took me to this page (URL

A little searching turned up a site suggesting possibility that this particular green card service is not a scam per se, but not necessarily recommended.

Can anyone tell me what the advertisement's text says?

Vienna in 13 words

I want lernen eine Deutsch mit many Englishwörtern und esse many grosse Marzipancroissant.

Friday, April 11, 2008

Integer.getInteger. Are you kidding me?

Photos and diary are on haitus. Now a little technology.

I just discovered a method introduced in Java 5: the method Integer.getInteger(String):
Determines the integer value of the system property with the specified name.

The first argument is treated as the name of a system property. System properties are accessible through the System.getProperty(java.lang.String) method. The string value of this property is then interpreted as an integer value and an Integer object representing this value is returned. Details of possible numeric formats can be found with the definition of getProperty.

So let me see if I understand:
  • Integer.valueOf(String) converts a String to a number by assuming the String is a numeric representation. In other words. Integer.valueOf("12345") yields the number 12345.
  • Integer.getInteger(String) converts a String to a number by assuming the String is the name of a system property numeric representation. In other words. Integer.getInteger("12345") is likely to yield null.
Why would anybody consider this a sufficient distinction? How many bugs are people going to create by using getInteger when they meant valueOf and vice versa?

This type of overloading is called near-phrase overloading. I just made that term up right now. It's when people use very similar words to mean different things. Consider two words x and y, their general meanings gm(x) and gm(y), and their meanings in a given context, cm(x) and cm(y). If
distance(gm(x), gm(y))< distance(cm(x), cm(y))
then it's a bad use of x and y! Go find another x and y for their contextual uses. Really, they could have called it getIntegerProperty.

This is the worst case of avoidable ambiguity I've seen in Java; I expect better coming out of them.

Update: it turns out there is something worse: Boolean.getBoolean("true") is usually equal to Boolean.FALSE.

Monday, April 07, 2008

What kind of blog is this: The threshold of separating online personae

I got a comment recently:
Anonymous said...

Bloggers shouldn't feel compelled to add new entries every day or week. With Google reader, for example, it's easy to keep track of what's new.

I added this blog to my Google reader hoping to read technical stuff. The personal lives of programmers are like the lives of all the rest of us, that is to say, probably not very interesting except perhaps to friends and family.
So, I'm sorry that this person posted anonymously because it means I have to reply to him on the blog, rather than just to him. I guess this response is really mostly for that person. (Yes, I refer to him as 'him'. I hope 'he' will understand if 'he' turns out to be 'she'.)

Dear person: I'm glad you are interested in what I have to say about technology, and I clearly appreciate your feedback. Look at the size of this response! While your post is a bit proscriptive and presumptive, I think you make good points, and did not intend to malign or be snooty. I want to address your points. At the same time, I just want to be clear: I'm not terribly interested if individuals read my blog or not, but by that I mean, I won't change the amount of effort I put in to it. Blogs, like web pages, are very personal and self-involved efforts. It's all about me. I've heard that MST3K worked that way: they wrote their show for themselves, and it turned out some people liked it. Like that.

I have been, for almost four years, using this same blog for both technical and personal posts. Recently, the posts became more personal, and I realized it was important to separate the two. You'll see that in early March I announced my intention to eventually split off this blog into two, leaving Blatherberg as it is, and moving the technical posts elsewhere. What happened? I went on vacation. Some time after I return I'm going to be pretty happy to do this. I still haven't posted my thoughts about EclipseCon. I also want to use it as a place where I can publish some of my externally-safe company blog posts.

I am intentionally posting daily updates. I have been encouraged to continue to do so by the people for whom they are intended, which as you pointed out correctly, are my friends and family. However, none of them are not going to get a subscription to Google Reader for me. I use Google Reader, but they sure don't, and this vacation isn't going to change that. Not even my friend Pete, who just reads each and every blog, one at a time, every day. I can't seem to convince him. That said, I wanted to merge the two worlds together, combining photos and blog with my friends and family, without having to repackage them together. Perhaps that is a flaw of the blog? Why do I need two blogs? I'm one person, it should be easy enough for me to segment in to two very distinct faces (and no, not by the labels which can be as free flowing as I want my artsy pants to be.) Find me a blogging service that does that, let's me create two distinct buckets, where all posts go in Either A Or B, and I'd look at it.

You could, if you liked, use Yahoo! Pipes to filter my posts, but the nature of labels makes this somewhat unreliable.

Incidentally, this problem compounds a little bit when using FriendFeed, because hey, should I have two friendfeed accounts? One for my personal self and one for my technical self? (It's my guess that you actually found me through my FriendFeed feed.) Do I need two twitter accounts? I think this is a bit of a flaw in the whole online persona thing, particularly for people like me, where the amount of work required to separate the persona may be too close to the threshold of acceptable confusion. But separate them I may have to do, particularly if I want to use blogging as a way to create a good technical persona.

So there's a little bit of technology in there, rather, a commentary about blogs and one the flaws of blogs and RSS and so on. My friend Mark would have more to say on that, but he can put it on his own stupid blog, if he ever made one. :)

But look, if you made it this far, I hope you'll stay. Don't leave, not yet. I will be back from vacation soon, and when I am, I'll focus on getting the technical blog all fixed up and ready to go, and when I do, I'll announce it here, on this blog. I'd love for you to read it if you find it interesting. If you feel like you must unsubscribe from this blog, then please, do so, but then find a way to send me your email address, and I'll just tell you privately when I get it set up.

Thanks again for your comment. I hope this reply was useful for you. It was a useful thought exercise for me.

Sunday, April 06, 2008

Vacation Day 6: Frankfurt -> Dresden -> Prague

Click here for photos from Day 6.

The day started by going to the Hauptbanhof one final time to return the rental car, and leave for Prague. It was a stressful morning because we could not figure out the precise location to return the car, which caused tension and unhappiness. We had two trains to take: one to Dresden, which would take us across Germany close to the Czech border, and another from there to Prague. With a one hour wait in Dresden, the total trip was about six hours.

We had a 6-seat car all to ourselves, which gave us lots of room to stretch out. We read, I worked on photos and the diary. Beth napped.

The ride to Dresden was wonderfully picturesque. It was difficult to choose which photos I should publish on-line, so I published a lot of them.

In Dresden we had time to kill. Like Würzburg, I couldn't help but think how the beautiful train station was, in contrast to how the city was demolished during World War II.

I looked for an English language book or magazine. I had no luck but I skimmed some of the German technology mags. I read a Java magazine and an Eclipse magazine. There were articles about the Google projects Android and Google Web Toolkit, and one about Mik Kirsten and Mylyn. I was sorry I couldn't understand them.

However, by now I had gotten pretty good at being able to pronounce German phrases, and I finally managed to say "Vo ist" to get most of my queries across. Maybe this will come in handy later on.

Beth found a lovely market in the station called Marché, the freshness and quality of the food was truly amazing. It was great to have a nice healthy, primarily raw salad, and Beth's golash was very good. Beth also got yeast almond rolls that she claims were "fabu". I agree.

We boarded the next train to Prague. Nobody asked to see our passports when we crossed the border. When we first entered the Czech Republic, Beth gave me a kiss and said "Welcome to the Czech Republic!" I said, "Maybe we should play some czechers! Maybe we should czech it out!" And Beth said: "Czech, Czech it, yeah" We are original.

We arranged in advance for a car to take us to the hotel. This is generally considered a wise move in Prague because the taxi drivers are notorious for ripping off tourists. Our driver was an aggressive driver, even to go so far as drive the wrong way down a one-way street. This street turned out to be the one where our hotel was. I'm still sort of puzzled by it.

Hotel Josef is a 'boutique' hotel. Indeed it is. Plastic and bare and clean. It seems to cater to the Americans (given the large number of Americans in the hotel) but then again, so does Prague in general. Don't get me wrong, this is a fabulous hotel. It amazed me how we really did not need to know any Czech to get around.

We took some photos of the view from our room and went out to walk the streets. We went to Staroméktske to kill some time. We watched the Astronomer's Clock tick 7 and then got dinner.

Back to the room, and then to sleep.