6.29.2009

OpenCongress.org

A group called the Sunlight Foundation is trying really hard to take the Good Idea That Everyone Agrees On, that the activity in government should be open and visible to everyone, and turn it into a Cool Website You Can Actually Visit.

It's called OpenCongress.org and it's as Web-2.0-y as you could possibly want. You can leave comments and discuss bills. There's a Facebook app. You can track things. Etc., etc.

Check it out!

6.28.2009

Stonewall

As you may know, today is the 40th anniversary of the Stonewall riots, which are often seen as the beginning of the gay rights movement. I was going to try to do a little reading on the history of the movement, and talk about how far we've come and how much further we have yet to go. But my friend Kyle basically did all that already, so instead, I encourage everyone to read his excellent post.

6.23.2009

Real-life Version Control

I had an idea today, about Version Control. Since probably half the readers of this blog don't know what that is, maybe this quote from the Subversion Book will help:
Subversion is a free/open source version control system. That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of "time machine."
Subversion, and all the other version control systems out there, were generally designed by programmers, and they tend to also be used by programmers. This is because they tend to include tools that are good for writing code, like "diff," and that programmers are the kind of people that like to find technological solutions to problems.

Other people may have their own methods for version control, usually with pretty bad big-O complexity. Which is computer-science-speak for "wastes hard drive space, and runs slowly." Have you ever seen something like this on your computer?

project052809.xls
project052909.xls
project052909 - 2.xls
project053009.xls
project053009 fixed.xls
project053009 final.xls
project053009 with changes.xls
project053109 with changes 2.xls
project060109.xls
project060109 - new.xls
project060209.xls
project060209final.xls
project060209 really final.xls
project060209 FINAL VERSION.xls

... you get the idea. You don't want to lose track of old versions, because every time you delete
or change something, you know that you might later change your mind and want to revert back to that point. Well that's the whole point of version control, except that it's automated so you don't have to keep changing filenames. Plus it's done in a very clever way so that if you have 25 versions of a 400MB file, it probably won't take 10GB of file space to do it. If you like, you can have multiple people accessing the same repository, which means no more emailing the same file back and forth with minor changes. Even more exciting: You don't need anything fancy like a system administrator or knowledge of how to use Linux.

Anyway, the idea that I had today was "What if other types of engineers could use version control? What if we could version-control real-life things?" So I had an idea for a cute little video that could be used to demonstrate the functionality of version control systems. As far as I know, no one has yet created such a video. And by that I mean I looked on youtube for a few seconds and didn't find anything. Here goes:

A girl opens a drawer and gets out a blank piece of paper. A little blue question mark appears, hovering over the corner of the paper. She gets a pencil and starts drawing a picture of a tortoise. After a little while, it looks like a cute little tortoise, not bad for a first draft. She looks at the front of her desk and sees a little machine with several big friendly buttons on the front. She presses one that looks like a green arrow. Suddenly,
something pokes out of the top of the machine, and a laser shoots down and scans her new drawing. The laser mechanism retracts back into the device. The girl looks down and sees the the blue question mark has been replaced by a green circle.

The girl now cheerfully grabs a bunch of permanent markers from a cup on her desk, and begins to color in her drawing. As soon as she starts drawing, the green circle floating above the corner of the drawing turns red. She keeps going until the tortoise is looking rather adorable, and pushes the green button again. The device laser-scans her drawing, the circle turns green again, and she walks away, satisfied with her new drawing.

Cut to her friend's house. Her friend sits down at his desk, with no paper or drawing of any kind. But he does have the device. He presses a gold button on his machine, and suddenly an exact copy of the girl's drawing appears on his desk, with the green circle hovering above it. He grabs an orange marker and a black marker and starts drawing a tiger, standing behind the tortoise. The circle turns red. The tiger is, of course, ferocious. But it is also very badly drawn. Not seeming to mind, the boy hits the green button proudly. His drawing is laser-scanned and the hovering circle turns green.

The girl now comes back to her desk, and the drawing still looks like it did when she left. She hits a button on the version control device and it instantly changes to include the tiger. She picks up a black marker and adds an outline to the tiger to make him look less sloppy.

Etc. Eventually there would be a part where something goes terribly wrong, and they use version control to undo the changes. Anyway, that's my idea...

6.05.2009

Just ignore them.

This is a lesson that people really need to learn. Just ignore them. Sometimes when something annoys you, talking about it, complaining about it, gossiping about it makes you feel better. And that's great for little things like how ugly your friend's new car is or whatever. But for things like this latest scandal on the gay blogs (this kind of gay blog, not this kind) there is only one right answer. Actually, there's two. One of them is "Just ignore them" and the other is related to that.

Okay, so the issue itself is this. A couple of talk radio hosts at some radio station went on an extended anti-transgender tirade a few days ago, saying all these terrible things about transgender kids, explicitly advocating violence toward them, etc. And as I'm reading all this, there are a variety of reactions. The one I've seen the most is "Click here to send a message to the two radio douchebags and ask them to apologize." Well, lots of people did that, and guess what? They refused. Anyone shocked?

Radio people are just people. If you walked past someone on the street, standing on a soapbox, going on and on to all who would listen about how transgender people are subhuman, what would you do? You would not listen. If everyone did that, the guy would disappear. Well okay, not really. But in the case of these radio guys, they really would. It turns out Jeff Atwood recently wrote a post about the same thing. It's a programming blog but the point is the same. People who rely on media to be heard, whether it's the internet, the radio, or whatever, will disappear if people stop listening to them. What those people need is not money, it's attention. Take that away, and they're no one.

My friend Heather was asking last night, is the internet still there if no one is there to use it? Well, in a sense, no, it's not. A blog that no one reads is a lot like a blog that doesn't exist. (Now you're thinking about posting some clever sarcastic comment involving some form the word "irony." But you're reading this, so shut up.) And a radio host that no one listens to is likely to be fired. So rather than contact the idiots and ask them to apologize, how about we contact the station, and let them know that this kind of shit is just not okay. At all. Ever. (In fact GLAAD succeeded in getting some advertisers to stop advertising on the station. For once I think GLAAD is doing the right thing and all the other orgs are wrong...)

Anyway, if you don't like something that a perfect stranger is doing, ignore them. If everyone did that, the world would be a better place overnight.

6.03.2009

Internship: Week 1

So I'm about a week into my internship this summer, and I'm already up and running in a real way. I don't have any dramatic, sweeping observations just yet, but here's a few quick ones.
  • I know everyone's heard of KISS -- Keep It Simple, Stupid. But sometimes you try a little too hard. I had to write a test which would create a new feed. All feeds must have a unique name, so how do you come up with a unique name -- one that you know hasn't been used before? My solution: Search the database for the name "testFeed1" -- if it's already been created, look for "testFeed2." If that's already been used, ... etc. until you find one that hasn't been used yet. Can you guess yet what answer my supervisor told me to use? The answer is: testFeedyyyyMMdd_hhmmss, where yyyy is the four-digit year, MM is the two-digit month, etc. So yeah. KISS.
  • Java can be a little wordy but I'm starting to really like it. If you have Eclipse, it's great, because you rarely have to type any full words. Also dot-ctrl-space is my best friend. "I know this object can do what I want, and the method for doing it is probably starts with 'get' -- how will I find out what it is?" Also the Javadoc tool is great. There's a few annoyances, and some Python features I really miss having, but overall, good times.
  • I might be able to do some kind of research project in the fall that would be a continuation of what I'm doing this summer. More details to come.
  • Software people love silly jokes. You can tell that in every conversation or meeting, they're always waiting for an opening--anything that they can make a joke about. And when it comes, they will pounce on it. Of course you have to make the joke in the exact tone of voice that you would use when you're not making a joke at all.
  • Ping pong Table tennis is a big deal at this company. Seriously.

5.25.2009

The Gay Agenda

Jaan Williams, who was a huge part of the No on 8 campaign, recently posted what you might call The Gay Agenda (or actually the GLBT agenda) on Twitter. Rather than retweet it (since it's several tweets long) I thought I would re-post it here. So here it is.
Marriage equality is great; it's just not the be all end all of our rights. We still need employment protections, hate crimes protections. We need to repeal adoption bans, work for second parent adoptions. We need anti-bullying laws, we need protection from discrimination in accommodations and housing, we need healthcare reform and educated providers. We need immigration rights (w/other CIR), a repeal of DADT, repeal of DOMA. We need a repeal of the APA's definition of gender identity. We need reform in the way identity documents are used, created and maintained. We need to stop no-match letters coming from social security. We need better education and prevention on same sex/queer partner abuse. We need awareness and education for EMS staff about trans people. We need more AIDS prevention/living w/AIDS programs in general and in communities of color. We need broader recognition of all family structures. I could go on and that is the point. I care passionately about the right to marry. I spent 6 months working on the No on 8 campaign. We can just not believe for 1 minute, regardless of what happens on Tuesday, that marriage is our only fight and that it is only in California.

5.22.2009

Plans for summer

Just wanted to take a second and lay out some plans for the summer before I start my internship on Tuesday. Whether I actually stick to all of these, well, we'll see.
  • Get feedback. In my last two internships I didn't ask for feedback very often. I guess that's probably more typical for the real world, but what I'm used to is school where every single assignment has a grade associated with it, so you know exactly what you did right, what you did wrong, and how to improve for the next assignment. So this time, I want to try to check in with someone as often as possible, to get some feedback. This is my only internship-related plan so far. I'll probably add more once I get there.
  • Read some books. Like a lot of people, I don't read enough. I mean, I read a lot of blogs and websites and stuff, but that doesn't really count. So I'm going to try to read some actual books this summer. Probably starting with the one Andy gave me that I never got through.
  • Continue the conversation. A few weeks ago, I tried to start a conversation with the handful of people I know who voted yes on prop 8. It went well, but I didn't have enough time to devote to the conversation. Regardless of the decision this Tuesday, I want to continue to talk to them, understand their reservations about same-sex marriage, and debunk any misunderstandings they have about the situation.
  • Do some coding. Of course I'll probably be doing a bunch of coding at my internship, but if I have time, I'd like to do some little project of my own as well. I don't know what it would be... just something fun. Maybe learn a new obscure language.
  • Fun stuff. Besides hanging out with band people at orientation gigs, I'll probably try to spend some time at the beach, in West Hollywood, and of course Catalina and Lake Tahoe. This is my last summer before graduation so it has to be fun!

5.12.2009

How to Repeal "Don't Ask Don't Tell"

I've been reading the new study that just came out from the Palm Center at UCSB, entitled How to Repeal "Don't Ask Don't Tell".

What many people probably believe, and what I believed until recently, is that since DADT was created by Congress, it would take an act of Congress to eliminate it. Such an act already exists, the Military Readiness Enhancement Act, first introduced in 2005, although I think the Let the Gays Serve Their Country If They Want To, For God's Sake. Don't You Know We're At War Right Now?! Act might be a more appropriate name. In any case, as the study points out, many people in Congress don't want to do anything without consulting with military leaders first. Military leaders don't necessarily want to do anything either. Obama wants to do something but knows that it might be unpopular with many people. Basically, everyone is waiting for someone else to act.

But what I didn't realize until just now, is that Obama can effectively stop this ridiculous policy immediately if he wants to. He can tell the military to stop investigating whether people are gay. (In the recent case of Lt. Dan Choi, there wasn't much of an "investigation" -- he came out willingly on national television). This might be somewhat unpopular because it could come across as circumventing the laws that Congress has created, instead of getting them repealed via the appropriate channels.

But there is something else he can do, even for Lt. Choi, and the thousands of other soldiers who are already known to the military to be gay. According to a law passed after the Vietnam War, "the President may suspend any provision of law relating to promotion, retirement, or separation applicable to any member of the armed forces who the President determines is essential to the national security of the United States." (pg. 11 of the study) Typically, this is used to force people to stay on duty after their normal term of service ends. (The "stop loss" policy.) In this case, it would be used to keep someone in the military who actually wants to serve. This doesn't provide a long-term solution, but maybe after a few months of gays serving openly, if the sky doesn't fall and the world doesn't end, Congress will understand that this is the right thing to do.

Hm, wasn't I thinking almost this exact thought, a few months ago? Oh, right. "Now that gay couples actually have gotten married in this very state," I said, "surely people will see that these marriages had no effect on them, and will live and let live." Ugh.

Personally, I think it would be better if the change comes from Congress, but it's clear that the president needs to act quickly and assertively, either to get the Congress to step up, or to simply make it happen directly. Otherwise, we'll be stuck with this same dangerous, stupid, offensive policy for years and years. He needs to just be the guy that goes, "Okay. This is what we're doing."

Lt. Choi's new organization, Knights Out is asking everyone to call the White House today and "flood the switchboards" to ask the President to repeal this law. They offer a sample script but if you can just speak honestly about your opinion of this policy, I think that would send a stronger message. If you've read this far, I'd say you're probably well-informed enough to do that. 202-456-1111. Please call and express your support for ending this ban. This is not a "gay issue," this is a "let's treat everyone equally" issue.

I'll finish up this post with a quick quote I found in the study, and to keep this blog from getting too serious, a video from The Onion.

“Equal and just treatment of all personnel exerts direct and favorable influence on morale, discipline, and command authority. Since these key factors contribute to mission effectiveness, efforts to ensure equal treatment are directly related to the primary mission.”
(Department of the Army. (1973). Improving race relations in the Army: Handbook for leaders. Washington, DC (Pamphlet Number 600-16), page 2.


'Gays Too Precious To Risk In Combat,' Says General