05.17.08
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!”
Permalink
05.15.08
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.
Permalink
05.14.08
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.
Permalink
05.12.08
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.
Permalink
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.
Permalink
05.10.08
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.)
Permalink
05.06.08
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.
- 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.
- 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. 🙁
Permalink
04.22.08
Posted in Canadian life, Random thoughts, University life at 4:29 pm by ducky
Canada made a change yesterday to the International Student Post-Graduation Work Permit. From about two years ago to yesterday, there was a program in place where if you
- graduated from a Canadian college or university
- had a job offer
- applied for a permit
then you could get a work permit for a year at the company you had the offer from. The company would not have to go through a process of proving that there were no Canadians who could do the job. (If you and said company parted ways, you could change the permit.)
One catch of the program was that while you were not working, you couldn’t leave the country without forfeiting the right to that permit. You were legally allowed to be in the country and look for work. (You just couldn’t leave.)
For many people, not being able to leave might not be a hardship, but I have lots of family two hours south of UBC. If something happened to my mother, I would need to leave Canada. So I figured I had to have a job before I graduated, and looking for work while trying to finish my thesis was a pain.
Now, the requirement for a job offer has been dropped, and the period has been extended. I have get the right to live and work in Canada for three years or as long as my program of study was, whichever is smaller. (This probably means two years.) Not only that, it is a totally open work permit. I can work for anyone, and I can even not work for an employer (i.e. I could consult if I can’t find a Real Job).
This relieves the stress of looking for a job enormously!
Permalink
Posted in Random thoughts, Too Much Information at 9:19 am by ducky
I got email from a “Carlie Martindaley” today that sure looks like phishing:
Ducky <at> webfoot.com, (the email address was properly formatted in the message I got)
Hello Ducky,
I am from your Middle School years and finally got your email.
I have fallen in love with your shoes and I just wanted to know, did you spray paint them? They are so shiny, like fresh glass on a mirror, I cannot resist sending this email. Please tell your shoes, I love them, and thier laces are the most beautiful things.
From,
Annoymous
- Starting off with my email address before my name looks fishy, like a computer generated it.
- I don’t know any Carlie.
- I don’t know any Martindaley.
- I didn’t go to Middle School.
- I haven’t painted any shoes.
- I haven’t sent any old pals email.
The strange thing is that there was no call to action in the message! The only links were a mailto URL attached to my email address (I took it out for the purposes of this post) and a generic Yahoo ad at the bottom of the page.
Strange. Maybe the spambots have gotten lonely?
Permalink
04.17.08
Posted in Eclipse, robobait at 1:43 pm by ducky
Eclipse has incremental find!
Control-J will let you start typing to find the next occurrence of what you’re looking for; Shift-Control-J will do incremental find backwards. See Erik’s nice writeup on incremental find…
Permalink
« Previous Page — « Previous entries « Previous Page · Next Page » Next entries » — Next Page »