05.27.08

Rape by soldiers

Posted in Politics, Random thoughts at 11:49 am by ducky

There have been reports that peacekeepers have been raping children. This is bad, but unfortunately not surprising.  History seems to show that if you give men weapons, little accountability, and few dating options, they will rape.

There is a solution that seems blindingly obvious to me: send women soldiers.

I wonder if there is a place for an all-women, international peace-keeping army.  I can imagine that would be a great way to serve.

05.23.08

Marriage equality: is the opposition stupid?

Posted in Gay rights at 11:26 am by ducky

The people opposing marriage equality have asked the courts to delay allowing same-sex marriages, on the grounds that there will be a proposition on the ballot in November to write marriage discrimination into the state constitution.

Um, is our loyal opposition stupid?

If there is no delay, then yes, thousands of same-sex couples will get married between June 16 and Nov 4. I can see how my loyal opposition might not like that. It is my interpretation that even if the amendment passes, they will still be married — that the amendment doesn’t have the right magic wording to retroactively dissolve the marriages.

But if marriages are suspended, my loyal opposition will anger off thousands of same-sex couples who were planning on getting married. Their only shot at getting married, then, would be to make sure that the amendment goes down to a screaming defeat. They would donate money and time and talk to all their friends.

You, dear reader, might reflect on Proposition 22, and how it (with very similar language to the proposed amendment) passed with 61% of the vote. However, I will tell you, dear reader, that I worked on the fight against Proposition 22, and the support from the gay and lesbian community was tepid at best. They didn’t see why they should donate money to a lost cause where the worst that would happen is that they would lose the possibility of getting a right that they don’t currently have. There was also a significant undercurrent of sour grapes: “we don’t want your heterosexist institutions anyway!”

The sentiment in the gay and lesbian community is completely different now. They totally understand the importance of civil marriage now. And, if the delay comes through, they will be upset. REALLY upset. They will fight the amendment tooth and nail. If there is no delay, they might get somewhat complacent: “well, too bad for everyone else if the amendment passes, but we managed to get married on 17 June, so we are okay.”

So while a delay would be a short-term defeat for my side, I think it would lead to a huge, enormous victory long-term.

05.18.08

Advice for same-sex couples getting married in California

Posted in Gay rights, Married life at 3:35 pm by ducky

To my gay and lesbian friends, I am absolutely thrilled that you are going to be able to get married starting on June 16th!

I wrote some wedding advice for (straight) couples a few years back, and I’d like to give some specific advice to gay and lesbian couples who want to get married in the next few months.

  • Read Lorem Ipsum and/or the EQCA FAQ about the topic. Those are good, but there are a few things they leave out and a few points that I think are incorrect.
  • Consider carefully if you want to get married. I’m a big fan of marriage, but you need to be sure it is right for you. In addition to getting to throw a big party, you become (among other things) responsible for your spouse’s maintenance and their debts.
  • Get married between June 16 and November 4, 2008. There is going to be an initiative in November that will shut down same-sex marriages if it passes, but I hear from reputable sources that even if it passes, your June 16-November 4 marriage will be valid. I am not a lawyer, but I believe it is hard to pass retroactive laws, and the way that the amendment is worded doesn’t do the right magic to make it retroactive. Of course, Our Opposition could always file suit saying that it was retroactive, and they would lose, but that would be a big pain so let’s just defeat the amendment, okay?
  • Ask your wedding guests to give money to the anti-amendment campaign in lieu of gifts. (Or to NCLR, or to Lambda, or to the ACLU.) Remind people that there is a real risk that the next generation won’t be able to celebrate their love and comittment in the same way if the amendment passes.
  • Give money yourself to the campaign, NCLR, Lambda, or the ACLU.
  • Book your venue early. I expect that there will be an enormous demand for venues from June 16-Nov 4! (If you are straight, consider waiting until November 8 to avoid the crowds!)
  • Make plans for your officiant early. Clergy and Commissioners of Marriage might be heavily booked.
    • You can have a friend officiate via the Deputy-Commissioner-of-Marriage-for-a-Day program. Different counties have different rules, fees, and lead times for that program. (Some counties do not participate.) The EQCA FAQ says that there is a 60 day lead time, but I question whether that is true for all counties (or even for San Francisco — the San Francisco site says “You should come no sooner than 60 days from the date of the ceremony” which I interpret to mean as “Your deputization is only valid for sixty days”). When my uncle-in-law got deputized by the County of Santa Clara, he didn’t have to appear in person, he didn’t have to do a training class, but he did have to swear to uphold the U.S. Constitution. Check with the county that will issue the deputization. NOTE: it is not clear if yYou can get your marriage license in one county and the deputization in another. The wedding does not have to be in the same county that issued the Deputization or marriage license.
    • Note that you do not have to be married or straight to become a Deputy Commissioner of Marriage, so you can officiate at your friends’ weddings. Bonus!
    • You and your friends can get ordinated as clergy very quickly over the Internet. It took me less than fifteen minutes through the Universal Life Church. I am not a lawyer, but it sure looked rock-solid legal to me. However, weddings also are about social validation, and using quickie-clergy does sound kind of shady to some people. (Note: I didn’t feel so bad once I looked at what roles were traditionally allowed to officiate, and figuring out what they all had in common. I decided that the common feature was that they had proved that they were able to fill in paperwork correctly, and responsible enough to mail it in.) I would thus encourage you to do Deputy-for-a-Day instead of Internet ordination.
  • You might consider getting married at a County Building and/or doing a joint wedding with some good friends who also will (finally) be getting married. While you are free to do that, as a married person, I would recommend against that unless you’ve already done the big ceremony and party thing. There are (at least) two important functions of weddings above and beyond informing the state that they now have to recognize your relationship:
    • You make it clear to the people who are important to you that this person is special and that they have to treat your spouse as special.
    • The families and friends get to meet each other. While that might not be so important if you’ve been together for a zillion years already, it might be. I was really surprised at how much getting married connected our two families together. (Bad news: you now have to go visit your in-laws at Christmas. You can’t just send your spouse any more.)
  • If you get married at a county building (e.g. with one of their marriage commissioners), then (I think) you can get a marriage certificate right away. Otherwise, you have to ask for it. While my husband and I didn’t get asked for one until we moved to Canada (with different last names), it might be more important for you than for a straight couple.
  • There are lots of traditions associated with weddings. Some don’t really make sense in a same-sex wedding; some don’t even make sense in today’s hetero weddings. Remember, however, that it’s those strange traditions that make no logical sense that bind you most to your community. Why do you do X at a Foo wedding? Because you are Fooian. Doing X tells your guests (and your spouse) that you value being (or being married to) a Fooian, and that you honour the Fooian traditions.
  • There is a huge enormous wedding industry that is designed to extract dollars from your wallets. Remember that it is your wedding and you don’t “have” to do anything. If you don’t want flowers, party favors for the guests, a videographer, or a professional photographer, you don’t have to.
    • Everybody has a camera nowadays, and the cameras take good pictures. We asked our guests to take pictures and send them to us, and it worked extraordinarily well. Hubby and I also sat for a professional photographer in our wedding clothes the day before, and we were really happy with that as well.
    • We didn’t have a gorgeous six-tier wedding cake, and you know what? We were still married at the end of the day. Also, the (flat) carrot cake and the cupcakes tasted wonderful.
    • Unsolicited recommendation: at our wedding ten years ago, Continental Catering in Menlo Park did a fantastic job. A bit on the spendy side, but well worth it. (It was so good that most people didn’t notice that it was all vegetarian.) That was ten years ago, but hopefully their quality would still be good.

Note that there are lots of references to county buildings, county this, county that, but you remember people getting married at San Francisco City Hall. Marriage stuff is administered through counties in California. San Francisco is the only jurisdiction that is both a city and a county. (I think that means it is the only jurisdiction where a mayor could have decided to issue marriage licenses. Thank you, Gavin Newsom!)

05.17.08

Barack Obama: elitist?

Posted in Politics at 12:20 pm by ducky

I hear murmuring that American blue-collar white voters think Barack Obama is elitist.

On the one hand, since I favor Obama, I’m slightly distressed for practical reasons. But as a liberal American, I am secretly overjoyed at how far we’ve come that white folks to find a black man too smart, too successful, too restrained, and/or too cultured for them to relate to. I wasn’t alive fifty years ago, but I have the sense that many white folks thought African-Americans were too stupid, too lazy, and/or too emotional to be fit for many jobs.

It’s possible that what they are uncomfortable with is Obama not conforming to their image of a black man, and so seeming too slick, too phony. They might also just be uncomfortable about how cool (meaning restrained and unemotional) he is period: it might be that Obama he doesn’t seem like people they know personally, white or black. H. Clinton had more breakdowns and meltdowns, and perhaps that made her seem more genuine. (Also, everyone is well aware that she’s had way more than her fair share of marital troubles and has done the difficult thing and stuck by her man — the tough gritty thing to do.)

If I’m right, then I don’t think Obama can do anything about it. If he starts acting more emotional, that will give people an excuse to use the “bad” black stereotypes that I enumerated above.

“He’s Muslim” — religion or race?

I have also heard that there are people who don’t support Obama because he’s Muslim. While this might be discrimination against (his mistaken) religion, I think it’s more likely that this is actually racism. I suspect that when they say, “He’s Muslim”, they mean, “He is Other, he is from genetic stock that is not like ours”.

I remember at a racism discussion group I went to about ten years ago with a woman who considered herself Christian and whose parents considered themselves Christian. However, the Nazis felt differently, and put her (at a very young age) and her parents in a concentration camp, as her relatives were Jewish. This woman was frustrated by (among other things) her son insisting that they were Jewish. Clearly “Jewish” means both “the faith that you practice” and “who your ancestors were”.

So when people say, “Barack Obama is Muslim”, I suspect that what they are saying is not, “he worships at a mosque” but “his genetic stock is different from mine”. They might be concerned that blood is thicker than water, and that if he gets elected, then he will favour “his people” (i.e. people in Muslim countries) over “our people” (i.e. white Americans)

I can imagine that going to grade school in Indonesia also hurts him with people who think he is Other. I can imagine people for whom going to school in another country is so completely, totally, utterly outside their experience that it would seem suspicious.

If he’s going to be swift-boated, I think this is the topic they will use.

So if I were Obama, what would I do? I’d start releasing photos of Obama as a child surrounded by white Americana. Going to Disneyland. Little League. Blowing out birthday candles. At the zoo with his grandparents looking dotingly at him. The next thing I would do is allow videographers to shoot him playing basketball; how him getting (rightfully) pissed off at something and yelling “Shit!”

05.15.08

California Supreme Court: words matter

Posted in Gay rights, Married life at 2:04 pm by ducky

Today, something that I worked on for five years came to a successful completion today. No, not my thesis: the California Supreme Court ruled that marriage discrimination against same-sex couples was unconstitutional.

In 30 days (when the law takes effect), California will join the Netherlands, Belgium, Canada, South Africa, Spain, and Massachusetts in allowing same-sex couples to get married civilly.

I skimmed the court decision, and it all came down to words. They were very clear that California’s domestic partnership granted essentially all the same rights and responsibilities as California civil marriage. They were deciding

whether our state Constitution prohibits the state from establishing a statutory scheme in which both opposite-sex and same-sex couples are granted the right to enter into an officially recognized family relationship that affords all of the significant legal rights and obligations traditionally associated under state law with the institution of marriage, but under which the union of an opposite-sex couple is officially designated a “marriage” whereas the union of a same-sex couple is officially designated a “domestic partnership.

In other words, does the word matter? And if it does, is it okay to grant the word “marriage” to one group and not to another?

They determined that this was a question of the equal-protection-under-the-law clause, and as such, subjected it to a legal examination called “strict scrutiny”:

in order to demonstrate the constitutional validity of a challenged statutory classification the state must establish (1) that the state interest intended to be served by the differential treatment not only is a constitutionally legitimate interest, but is a compelling state interest, and (2) that the differential treatment not only is reasonably related to but is necessary to serve that compelling state interest.

They decided that the state didn’t have a compelling interest in perpetuating the differing language.

They also pretty comprehensively showed that the different language matters. One example they mentioned is that it is common to be asked “Are you single or married?” To respond truthfully, “I’m in a domestic partnership”, requires disclosing one’s sexual orientation in a situation where they might not want to.

Accordingly, we conclude that to the extent the current California statutory provisions limit marriage to opposite-sex couples, these statutes are unconstitutional.

WoohoooOOOO!!

I was sure that this would happen in my lifetime, but thought it would take longer.

05.14.08

Eclipse: double source windows?

Posted in Eclipse, programmer productivity at 12:51 pm by ducky

Andrew Ko, whose papers I have mentioned before, observed in An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks that

When investigating [navigations back to previously-seen code fragments], nearly all seemed to be for the purpose of juxtaposing a set of code fragments while editing many dependent fragments. … Although Eclipse supports viewing multiple files side by side, placing any more than two files side by side would have incurred the interactive overhead of horizontal scrolling within each of the views.

Meanwhile, from my user study, I believe that the Package Explorer is usually not worth its screen real estate and the Outline View is probably harmful (which I will explain below). If I close the Package Explorer and the Outline View, on my 24″ monitor, I have oodles of room for two source files side-by-side. I think that is probably the way to go.

Package Explorer

Developers used the Package Explorer to find classes that had interesting strings in them. For example, in the Arrow task, they would do a “visual grep” to find classes that had the word “Arrow” or “Line” in them. Generally, however, they would explore the first class they found with “Arrow” or “Line” in it. While that happened to be okay in the Arrow task, it is easy to imagine situations where the first class could be uninteresting or even deceptive. I have come to the opinion that it is better in most cases to use Control-Shift-T to open the “Open Type” dialog, where you can enter in the string you are interested in. (Note that you can use wildcards, e.g. “*arrow” to find all Types that have the text “arrow” anywhere in their names.)

If you use the Open Type dialog, you will immediately (because it immediately displays matching type names as you type) have a very good idea of which / how many classes have that text in them. You are not going to miss one, and you are less likely to get distracted by the first one you see.

Now, I saw a very small number of cases where the Package Explorer was useful. For example, in the Output task, one guy looked at package names and guessed (successfully) that “proguard.io” might have something to do with IO. So I don’t think you should do away with the Package Explorer, but minimize it most of the time.

Outline View

As for the Outline View, you can search for strings in the method/field names using Control-O. Just like with the Open Type dialog, you can search for strings (including wildcards). Even better, with Control-O,Control-O, you can see what methods are inherited.

I don’t think I ever saw anyone wandering aimlessly (i.e. not doing a visual grep for a specific string) around the Outline View and having any good come of it. So I don’t think the Outline View is worth the screen real estate.

05.12.08

it's not just me!

Posted in Hacking, Random thoughts at 8:31 pm by ducky

It’s not just me! Someone else gets frustrated by Web sites that won’t allow dashes or spaces in credit card numbers!

It is just unfathomable to me why any Web site would not insert the ONE LINE OF CODE to handle spaces and dashes. I am glad to see that it’s not just me.

overzealous security

Posted in Canadian life at 12:14 pm by ducky

There were some stories recently about how the Vancouver Olympic Committee was looking for 900,000 person-hours of additional security from private-security firms in the three months before the Olympics. From the article, they are worried about weapons of mass destruction and attacks on “soft targets” like restaurants and hotels.

Um, excuse me: but how does posting a rent-a-cop outside Joe’s Bar and Grill keep a van full of goons with submachine guns from attacking it? How does posting a rent-a-cop (or even ten or one hundred) from setting off a truck bomb as it passes over the Lion’s Gate bridge?

It seems to me to be completely, totally, utterly pointless to spend more money on private security agents. All that will do is make people uncomfortable. If they really want to be effective, they need to spend money on more and better investigators to find the baddies before they get very far, more and better border agents to find munitions before they get in, and more and better bomb-sniffing equipment (to help find the munitions).

This is nothing but security theatre, and I resent my tax dollars being spent on it.

05.10.08

geek humour

Posted in Family, Hacking, Random thoughts at 9:38 am by ducky

My husband and I are geeks. This manifests itself in many ways. One way is that when we moved up to Canada from Palo Alto, we numbered all of the boxes and logged all of the contents of all of the boxes.

In anticipation of our move to a tiny tiny apartment in downtown Vancouver, I packed up a box of books and class notes to take down to our storage locker in the US. Jim said that he’d been assigning new boxes numbers in the 200 series — 200, 201, etc.

Me: “Jim, would you be a name service for box numbers?”

He pulled out his PDA and got ready.

Me: “Um, ‘Hello.'”

Jim said nothing but was suppressing a grin. He continued to say nothing.

Me: “Doh! Right! Carriage-return, carriage-return!”

Much laughter ensued. We are such geeks. 🙂

(When taking DIRECTLY to Web servers, i.e. not through a Web browser, you have to issue a command like “GET / HTTP/1.0” and follow it with *two* carriage returns. One won’t do, and it’s a really easy mistake to make.)

(PS, Yes, I know that HELOs (used in email protocols) don’t need two carriage returns.)

(PPS, Yes, I know that technically it’s CRLF, CRLF, not CR, CR.)

05.06.08

Wish list: wonder-code-coverage tool

Posted in Eclipse, programmer productivity at 4:06 pm by ducky

In previous posts, I talked about wanting a code-coverage tool to use while debugging, and how EclEmma did most of what I wanted. After my user study, where I dissected in detail how seven professional programmers did four twenty-minute programming tasks, I am even more convinced that a wonder tool would be highly, highly useful to people. I want the wonder tool to colour and present source based on whether code was executed between a user-defined start and stop point.

  1. As I mentioned in the first post, I’d like to be able to start and stop collecting code coverage information. It would be nice if I could set START LOGGING and STOP LOGGING breakpoints, so that lines of source would be coloured based on whether they were executed inside the “active” regions. Being able to do this would mean that I could greatly narrow down what code was involved in a particular feature, and not have all the code touched by initialization routines touched.
  2. I’d like the number of times that a method gets executed to influence the Mylyn degree of interest. I’d like Mylyn to restrict what classes/methods Eclipse showed me (initially) to only those which were executed between the START LOGGING and STOP LOGGING breakpoints.

For example, I could bring up a GUI application, hit the Suspend button, set a START LOGGING breakpoint, hit resume, and resize a window, and hit the STOP LOGGING button. The PackageExplorer would then only show me the methods involved in event handling and resizing a window. Most of the event-handling code would probably be done by .class files, so it probably would only be the code related to event handling.

I believe that this would have helped my user study subjects enormously. They overwhelmingly used static tracing (i.e. jumping to references or declarations of selected methods) to find where things happened in the code, but they frequently got caught by differences between what static tracing told them and what actually happened. Examples:

  • All seven subjects searched for an unusual string related to the given task in a GUI, which seemed perfectly reasonable. However, that string appeared in a superclass of the object that was actually instantiated. Jumping to declarations (via F4 or hyperlinks) took them preferentially to methods in the superclass. Four of the seven subjects never noticed that there were interesting subclasses. If, however, they had been using my wonder tool, the first time they jumped to a method that the subclass overrode, they would have seen from the source code colouring that that method never got hit.
  • In one task, important code was not broken, but flat-out missing. Subjects usually found the right method pretty quickly, but then assumed that — because that method didn’t have the needed code — that it didn’t get executed. “Oh, here’s where the start-of-line decoration code is, now I just have to figure out where the end-of-line decoration code is.” Had they seen that that method got executed, they might have realized faster that the end-of-line decoration code was simply missing.
  • In another task related to incorrect output, to statically trace through to bug’s location meant going through six methods whose names and comments made it look like they were related only to input. Setting a START LOGGING breakpoint where it wrote “Writing output…” to stdout and a STOP LOGGING breakpoint at the next stdout status message, then the subjects would have been able to see that the “input” methods were involved in writing the output, so they might have been willing to push through them.
  • One task that asked the subjects to do something when a pane got resized was so difficult that nobody solved it. In addition to problems with language (Is that pane a Window, a View, a Drawing, a Pane, or a Panel?), it can be tricky to get from the place where a GUI widget gets set up to where the event gets handled. (In this case, they needed to find what methods were executed when a pane was resized.)

With my wonder tool, subjects would be able to get a list of all the classes and methods that were involved in the resize. By browsing that list, they would have a better shot at finding a method that they could use.

I think it wouldn’t be too difficult to implement this — EclEmma has already done the lion’s share of the work — but I doubt it’s compatible with finishing my thesis. 🙁