tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Right now, I'm solely working on getting rid of the sporadic github connectivity errors in the rustpkg test suite. That means changing the tests to create a local github repo, and then changing the behavior of rustpkg build to (when given a local repo) clone it into the first workspace in RUST_PATH, then build that copy.

It's finicky, just getting all this automation of command-line stuff to work and making sure I'm not getting confused about which directories are which. Also, still emerging from the fog resulting from the four-day weekend.
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Crossposted to geekfeminism.org.

The Empowermentors Collective is, in their own words, "a skillshare, activism, and discussion network for intersectionally marginalized people of color in the free culture and free software movement." Also from their Web site: "We see radical potential in free culture and free software (often marketed as 'open source software') to work against ableism, racism, cissexism, heterosexism, sexism, and classism."

I think this collective is a great idea, and while it's not something that is open to me, I'll do my best to spread the word about it. But one place I can't spread the word is on any mailing list, forum, or syndicated blog post associated with my company. Since I work for an open-source company, Mozilla, that might employ people who are eligible for and interested in Empowermentors, that's too bad.

Why is that? The Mozilla Community Participation Guidelines say: "Some Mozillians may identify with activities or organizations that do not support the same inclusion and diversity standards as Mozilla. When this is the case: (a) support for exclusionary practices must not be carried into Mozilla activities. (b) support for exclusionary practices in non-Mozilla activities should not be expressed in Mozilla spaces." Empowermentors is exclusionary: it excludes white people, like myself. I support their right to create a safe space so that people who are oppressed can have one place that won't be dominated by people in an oppressor class who may (even in a well-intentioned way) engage in derailing and silencing. So I can't mention the group in a work mailing list email, or a post on Yammer (if I used Yammer), or in a post on my blog that is tagged so as to be syndicated to Planet Mozilla.

This illustrates a problem with codes of conduct that don't explicitly acknowledge social power dynamics and call out the difference between a group that has a history of being oppressive doing things that reinforce the system of oppression in which it operates, and a historically oppressed group engaging in self-defense. Compare Mozilla's Community Participation Guidelines with the code of conduct for the Open Source Bridge conference: "Communities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society." With this one sentence, the organizers of Open Source Bridge communicated that the purpose of the entire code of conduct is to protect people who are abused, not to protect abusers.

Exclusionary groups that are for oppressed people are a positive force, because they give oppressed people time and space to talk about their oppression and/or just live their lives without explaining -- or worse, justifying -- their experiences all the time. For example, programming study groups that are for self-identified women only are a great thing, because it's easier for women to learn when they don't have to worry that if they say something silly or admit they don't know something, the men in the room will hold it against their entire gender. As another example, when I was in college, I didn't understand why the Black students' organization had to exclude white students from participating. Now I understand that white people dominate almost every space, and having an organization where Black students at an overwhelmingly-white college can talk amongst themselves doesn't hurt white students and helps Black students succeed.

But the Mozilla guidelines lump together these socially beneficial groups with white supremacist organizations or the Boy Scouts of America (which excludes queer men from serving as troop leaders). That's a problem. As the Open Source Bridge code of conduct shows, it's an easy problem to solve, as long as the priority of the people writing the code of conduct is to promote justice rather than to suppress tension.

TMI: Oops

Jul. 3rd, 2013 05:11 pm
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
After talking to Graydon, I determined that the work I've been doing on list and uninstall is misguided; there shouldn't be a database file, since it can get out of sync with the filesystem. Rather, list should enumerate the installed packages in the workspaces in the RUST_PATH, and uninstall should just delete the installed files.

In the meantime, the rustpkg build tests were failing because of sporadic github connectivity errors that were causing unrelated tests to fail, so I have to remove the tests that contact github. This is kind of annoying, since I'd like to have tests for URL-like package IDs.

Four-day weekend starting tomorrow! ...though I'll probably spend a lot of it working, since I'm behind.
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Hacked on the package database more. rustpkg list works! Still with the totally simple text-file scheme I mentioned yesterday, of course.

Now I'm implementing the uninstall command while making sure that uninstalling deletes the package from the package database. uninstall is also mildly interesting because the database stores the exact version (filling in 0.1 as the default), but I don't want you to have to specify an exact version when uninstalling; so rustpkg uninstall foo should delete foo-0.5 if there's exactly one version of foo, 0.5, installed. But then, what if there were multiple versions of foo? Should this delete all versions, the most recently-installed one, or error out asking you to be more specific? I'm not sure yet.

I'm still anxiously waiting for bors to merge the pull request I submitted yesterday, for rustpkg build with no arguments; the build infrastructure has been a bit finicky lately.
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Today was my first day back in Mountain View, from which I've been gone since mid-March. Everything is pretty much the same. Except the new people. And there are gummy bears in the kitchens now.

I re-submitted #7419, my pull request to make rustpkg build with no argument work, after some frustrating fumbling around trying to figure out a problem with a test case hanging that turned out to be due to a bad merge that I did. I accidentally un-ignored a test I didn't mean to enable; oops. But with any luck, this change will make it into the impending 0.7 release!

I also worked on getting the package database to work. I decided to start small, by creating the package database either in ~/.rust or (if there's a RUST_PATH) the first directory in the path. The package database, for now, is just a text file that contains a list of package IDs separated by newlines. Simple as can be. Of course, we'll want to store more information about each package, and probably use JSON or something, but I just want to get something working first. I took the "just write the test!" advice to heart -- somehow writing a test is almost always more manageable than writing the non-test code -- and wrote a test that installs a package, then calls rustpkg list and checks that the package ID is in the output.
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Spent most of today trying to figure out why tests failed on my RUST_PATH pull request. I eventually narrowed it down: I was using "" as the default when the RUST_PATH environment variable wasn't set, and using an iterator to parse the result (which is a colon-separated list of strings). When given the empty string, the iterator returns [""] rather than (as I'd expect) []. I wonder if that's actually a bug in the library. In any case, it was easy to work around once I saw what the problem was.

Also figured out why the non-rustpkg test cases I was trying to add yesterday were failing, or at least: the bug from yesterday went away when I rebased, but a new bug happened. That one turned out to be due to recent changes to terminfo that affect how warnings get rendered. The totally-obvious fix was to set my TERM to xterm (oh, emacs shell, why must you always be problematic).

It doesn't feel like a very productive day, but hey, I have four pull requests in the queue. Tomorrow, working on the package database, I guess?!
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Today, implemented #6405; in general, rustpkg commands should do something without an explicit package ID given on the command line. If you just say rustpkg build (or any other command), rustpkg should default to treating the current directory as a subdirectory of the source directory in a workspace, and building the package in the current directory. I submitted a pull request to fix that.

I also went through the 0.7 bugs and added test cases for the ones that had been mysteriously-fixed, but my branch where I'm adding the test cases fails in tests that don't have anything to do with anything I changed (and anyway, I only changed other test cases) so... for now, I'm stumped on that. Is anyone else seeing the rusttest unit tests for the rust command-line tool ICE?)

In the meantime, bors is slow and even my pull requests from yesterday haven't built yet :-(
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Today I finished two pull requests! The first one implements searching for packages using directories given by the RUST_PATH environment variable. The second one makes package scripts more useful by allowing them to call the default build and install logic after doing whatever custom steps are necessary.

Both of these pull requests are incomplete -- there are parts of the original bugs they address that aren't implemented. I didn't implement using RUST_PATH to determine the target directory for installs, and I also didn't teach the rustc driver itself about RUST_PATH. I opened up separate bugs for those (#7402 and #7398).

Likewise, for the package-script patch, I assumed in rustpkg that package scripts only can implement a custom hook for the install command, not for any other commands. I opened up #7401 for that.

I'm not really sure, from a bug-tracker-philosophy point of view, whether it's better to submit several pull requests over time for the same bug, or close a given bug after I've done a significant amount of work on it and open up newer, more specific bugs. Something just feels better about having older bugs closed.

Alex Crichton did some work on making sure rustc uses LLVM in a thread-safe way, which will allow us to actually re-enable the rustpkg tests (!) So I'm looking forward to that being finished too -- there's a pull request on that pending, and then I think all that's left is manually wiping the LLVM build directories on all the bots so that they rebuild LLVM.
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
After a fun week of conferencing, I spent today working on implementing RUST_PATH and invoking the default build logic from package scripts (the latter is kind of necessary to make package scripts useful). The second one works now, and it's just a matter of automating the test case. The first one, well, it's not done yet and also the test case deadlocks mysteriously, so I have to sort that out.

I'm hacking from the LA area this week, and my first day back in Mountain View is a week from today.
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Open Source Bridge was the first open source conference I've attended, and it left me with high expectations for any other open source conferences I might attend! While sadly I don't think all other conferences are going to have primarily vegan food and stickers about intersectional feminism, I've been glad to be able to connect with people like me. That is to say: people who do open source software and care about equality and liberation from oppression. Most of the time I feel like I either have to hide the aspect of me that gets engrossed in puzzles and problem-solving, or else hide my queer, trans, dominant-paradigm-questioning self. This conference was the few places I've ever been where being both doesn't just seem like something that's vaguely tolerated, but rather, the norm.

...and that's the case even though the only session I attended in its entirety today was Ashe Dryden's keynote on diversity and open source culture :-D Listening to Ashe speak, it was hard to imagine how anybody could deny that the homogeneity of open-source participants is a real problem or that solving it is worth the effort.

While sitting around in the hacker lounge with the other Geek Feminism folks, I started working on the RUST_PATH environment variable. One problem we ran into was that the rustpkg tests shell out to run rustpkg and rustc, and because all the Rust tests get run in parallel, and there's an issue right now with rustc not using llvm thread-safely, stuff goes wrong on some platforms. Since the tests I'll have to add for RUST_PATH will modify the environment, that issue will also block me from checking in this work.

But for now, I'm off to the diversity birds-of-a-feather session.
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Here are the slides for my talk, "Rust: a Friendly Introduction". I'd love to clarify anything that needs it in comments on this post.
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
The first day of Open Source Bridge was great! I noted on Twitter that I attended five talks in a row by women, and could have gone to a sixth if I hadn't wanted to sit out the last session to work on my slides. Also, at least two and maybe three different talks that mentioned intersectionality! This is the only open-source conference I've been to, but I'm getting the feeling it's not a typical one. Also, it's awesome that all the food is vegetarian (and almost all is vegan); it's wonderful to be able to go to a conference and be able to enjoy lunch without worrying that I'll accidentally eat something with meat in it.

For me, the highlight of the day was [personal profile] synecdochic's talk "Kicking Impostor Syndrome in the Head", which was as awesome as you'd expect. The best part was at the end where people in the audience named things our impostor syndrome had said to us at some point and everybody who'd also experienced the same thing raised their hand. Also great was Kronda Adair's talk "Expanding Your Empathy", about the basics of challenging oppression in conversations that happen in the tech world.

Tomorrow I'm looking forward to [personal profile] skud's keynote speech as well as the panel on diversity in open source. And, uh, I'm giving a talk, starting in less than 12 hours. I'll put the slides online soon after and there will be a recording on the conference web site eventually.
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
I arrived in Portland yesterday and spent today working on my talk slides, then giving a practice talk at the New Relic office in downtown Portland. I don't think I'd ever been in that tall a building in Portland before (28th floor), and the audience exceeded my expectations both in size and attentiveness and quality of questions! Thanks to Tom Lee for, somehow, bringing in many interested people. I'm just hoping when I do a final run through the slides tomorrow I'll remember some of the questions and take them into account into adjusting the slides.

I had to skip over quite a few slides at the end to stay within the time limit, and while I probably won't get quite as many questions during the conference as I did during the practice talk, I suspect part of my time tomorrow is going to be spent tightening up the earlier part of the talk; I don't want to run out of time and have to skip pointers altogether!

Tomorrow, some combination of attending Open Source Bridge talks and finishing my talk (as is the day-before-talk conference tradition in general, I think), probably while taking advantage of the hacker lounge there.
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Accomplishment of tonight: pull request with new rustpkg tests. I have no idea how this took so long, but apparently automating things and manipulating directories and files is hard? I guess. I am so behind schedule.

With that finished (sort of; despite how long that took, there are still tons of test things to do), that gives me all of Saturday and Monday to finish my talk slides. I'm not terrified or anything, really.
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
My latest post on the Geek Feminism blog is up! Excerpt:

When Coleman says hackers support “a liberal politics of free speech” (p. 15), I was hoping for more analysis of just whose free speech hackers support, but I didn’t find one. In fact, in my experience, the kind of free speech hackers support is quite narrow. Racist, sexist, homophobic, transphobic, and ableist speech must be protected; any criticism of such speech must be suppressed in order to protect the free speech of those who would make remarks that marginalize and exclude (I guess you have to kill free speech in order to save it). Later on the same page, she writes “From an ethnographic vantage point, it is important to recognize many hackers are citizens of liberal democracies, and have drawn on the types of accessible liberal tropes–notably free speech–as a means to conceptualize their technical practice and secure novel political claims” — which I thought was closer to the truth. Consistently with the selective nature of the application of the “free speech” trope, hackers don’t believe in free speech for its own sake; they use it because it’s a powerful tool for getting support.
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
I spent all day getting this rustpkg test to work:
fn do_rebuild_dep_dates_change() {
    let workspace = create_local_package_with_dep("foo", "bar", &NoVersion);
    command_line_test("rustpkg", [~"build", ~"foo"], &workspace);
    let bar_date = datestamp(&lib_output_file_name(&workspace, "build", "bar"));
    touch_source_file(&workspace, "bar");
    command_line_test("rustpkg", [~"build", ~"foo"], &workspace);
    let new_bar_date = datestamp(&lib_output_file_name(&workspace, "build", "bar"));
    assert!(new_bar_date > bar_date);
}

(create_local_package_with_dep, command_line_test, datestamp, are touch_source_file are all functions I had to write as part of the source file.)

It works now! Trivially, because rustpkg always rebuilds everything -- it doesn't do the thing that's the point of make yet, of rebuilding files only when their dependencies change. So if everything else works right, the timestamps will always change. Getting everything else to work right was what took all day. The details are too boring for even me to write about; lots of wrangling with file paths.

I also worked a tiny bit more on my OS Bridge slides, but I need to put some serious time into that before Practice Talk 2: Electric Boogaloo on Monday.
tim: "System Status: Degraded" (degraded)
Close readers of this journal know that after I had genital reconstruction surgery in February 2012, I experienced complications that required an emergency room visit. Everything was fine in the end with regard to my health and body, but with regard to my finances, not so much.

As far as background, from January-March 2012, I was employed by Mozilla as a seasonal employee (nope, I didn't know software engineers could be seasonal employees either) which meant I wasn't eligible for any benefits, including health insurance. To be a responsible adult, I purchased an individual health insurance plan from HCC, which I found through ehealthinsurance.com. HCC was one of the few individual short-term plans that offered instant approval, which means not asking the detailed health questions that most short-term insurance companies asked. I know from experience that I would be denied insurance by any company that asks detailed health questions, so I had to go with one that offered instant approval. I was hired by Mozilla at the end of that period as a full-time employee with benefits, so I have group health insurance now, but of course it doesn't apply retroactively.

While I was interning at Mozilla but before I decided to (/was forced to) leave grad school, I made plans to have surgery in Feb. 2012. Of course, I didn't think that any individual health insurance plan that I would have would cover the costs, so I intended to pay for the surgery via credit cards, and that's what I did. And if not for what happened after my first surgery, I'd have paid off those credit cards by now.

Infections can happen with any surgery, and I got to be one of the unlucky ones; after returning from Arizona to Oakland, about ten days after having surgery, I got a high fever and other flu-like symptoms. I wrote it off as probably a cold or flu at first, but it didn't get better as quickly as flu would have, and a few days later I made an appointment with my primary care doctor for advice. Just before I left for the doctor's appointment, I felt something wet and noticed that one of my incisions had burst open and was bleeding. I shoved some gauze in my pants and headed to the doctor; she advised me to go to the ER, since I needed a plastic surgeon and that would be the only way to get in to see one on short notice. I ended up staying at UCSF for that night and the next night, and had emergency surgery to stop the bleeding, which was due to a buildup of fluid from the infection. Again, after that, I got better and everything was fine... except for the bills.

When I went to the ER, I provided my health insurance information, knowing my insurance probably wouldn't pay, but I figured it couldn't hurt. And in fact, I was reluctant to go to the ER in the first place, even after the uncontrollable bleeding started. Think about that for a minute. How fucked up is it that I thought about treating unstoppable bleeding at home just because going to the hospital would accrue bills I wouldn't be able to pay?

Well, a few months later the unsurprising thing happened and I got a letter from HCC denying all my claims -- for a total of around $35,000 of costs that were my responsibility (between the hospital bills, anesthesiologist bills, and physician bills). They cited a clause in their policy that states that "Treatment required as a result of complications or consequences of a treatment or condition not covered under this certificate" is excluded under the policy. Moreover, there's another clause, that, similar to many other insurers' trans exclusion clauses, states that "Modifications of the physical body in order to improve the psychological, mental or emotional well-being of the Covered Person, such as sex-change surgery" are excluded. (As an exercise for the reader, you can think of all the things that are wrong or misleading about this sentence.)

In my opinion, HCC's denial of coverage was based on a correct application of the policy, but I believed that the policy itself was discriminatory. It singles out people in a protected class (trans people, as per California's Unruh Civil Rights Act) for poor treatment, as evinced by the use of the non-clinical term "sex-change surgery" to refer to genital reconstruction surgery and other procedures. The medical community agrees that for trans people who require surgery and/or hormones, those transition-related procedures are medically necessary -- not just desirable to improve "psychological, mental, or emotional well-being" (though, like almost any surgery, transition-related surgeries could certainly do that as a side effect -- not being in pain is more fun than being in pain, as a general rule). There is no controversy about that. So the only reason to single out trans people for denial of health care is to take advantage of public animus towards trans people; I'm not saying that executives at HCC necessarily hate trans people, but they know we're politically unpopular and that there will be no broad outcry against denying us care. A health insurance company's job is to stop people from getting health care, so the more unpopular groups they can identify and deny care to, the better they're doing their job.

I wrote a 4-page appeal letter elaborating on this point (and on other issues) and sent it to HCC in September of last year. After about a dozen phone calls and a few more letters sent to HCC, spread out over a few months (every time I called, I was told that the call center employee "didn't have permission to view [my] file"), I filed a complaint with the California Department of Insurance. Miraculously, within a week, I received a UPS next-day-air letter from HCC affirming the denial of my claim. The majority of the letter doesn't deserve the dignity of a response, but the key point is at the end: because HCC is licensed in Missouri, the letter states, they are not subject to California civil rights law -- even though they took advantage of the benefits of doing business in California by selling policies to me and other California residents.

I couldn't believe that this could be true, and I called back the person I'd interacted with at the Department of Insurance. She affirmed that this was true -- saying that in almost all cases, any health insurance company that is regulated in California and allowed to sell policies in California would be subject to California civil rights law, HCC fell into an exception for "health and life insurance companies". Because HCC sells both health and life insurance policies, they are allowed to sell insurance in California but don't have to comply with California law. Rather, they're subject to the laws of Missouri, which has no civil rights protection for trans people.

Something still didn't sit right with me about this answer, so I thought about finding a lawyer to get advice. But, I had already tried to do that:

  • I talked to a friend who works at the National Center for Lesbian Rights, and he talked to a colleague of his who works at the Transgender Law Center. It appeared that the policy of both groups is not to sue health insurance companies for anti-trans discrimination, because challenging trans exclusion under civil rights law is something that has never been successful.
  • I talked to somebody at the Transgender Legal Defense and Education Fund, and while he spoke with me at length, in the end he said that they weren't willing to take the case because they don't handle cases where a company has an explicit trans exclusion clause; they would only challenge it if an insurer was denying coverage for transition-related care but didn't have a trans exclusion clause in their policy.
  • I spoke directly with an advocate at the Transgender Law Center and sent him a copy of my appeal letter before sending it to HCC, but never received a follow-up response.
  • I called the offices of Christopher Dolan, a lawyer who has done some LGBT civil rights cases, but after receiving an intake interview from a staff member, was told that they would not take my case.
  • Another friend of mine who's a lawyer recommended a lawyer known as the best client-side health insurance lawyer in California, and I called his office, but he never returned my call.
  • I called the San Francisco Bar Association referral service; they took my information over the phone, then called back a few days later and told me they weren't going to refer me to anybody.
  • I called my work's employee assistance program; they referred me to a lawyer who talked to me for 15 or 20 minutes, told me the case was really interesting and that if he had to file a brief on a related topic he would call me for advice (not what I want to hear from a lawyer, honestly), and to call him back once I received a response to my appeal. A few months later when I got the denial, I did call his office back, and they never returned my call.
  • I called the office of Kari Hong, who wrote the excellent paper "Categorical Exclusions", but she never returned my call (and seems to have moved on to other areas of law anyway).
  • I posted a query on LegalMatch, and got some views but no replies.
  • I called BALIF, the LGBT law association, to ask if they did referrals, and they never called me back.
I think that's everything. The only thing left to do that I can see is to go through BALIF's member directory, which they do have on their web site, and just start calling every lawyer on it. I intended to do this for a while, but I kept putting it off because I just couldn't face the thought of being told by cis people things like "why do you want health insurance to cover your cosmetic surgery?" and of wasting a lot of time on something not likely to produce results. So at this point, I'm admitting defeat. I have about $11,000 left to pay off to UCSF that I'm paying at an installment rate of $1000 a month; between that, student loans, paying off my credit card debt that's mostly from the original surgery and the revisions that I needed (though that's almost all paid off now), and the high cost of rent in the Bay Area, it'll still be at least a year before I get to see much of my paycheck. It'll be more than a year before I get to start saving for retirement. When all this is over, I'll have spent my first three years out of grad school -- after already getting a late start and leaving without a degree -- completely unable to save any money, almost entirely because of medical costs that would have been covered by insurance if I wasn't part of a socially stigmatized group. I could have saved that money for retirement, put it towards a down payment for a house, saved it towards being able to have a family one day, any number of things... but other people got to take it from me simply because I'm trans.

My understanding is that trans civil rights groups (and there are very few civil rights groups to begin with that defend trans people's rights) prefer not to pursue cases like mine because they think it's a better strategy to work with employers to lift clauses in their policies, on a company-by-company basis. I see this as a trickle-down approach to social justice, and like most trickle-down approaches, it benefits those people who are already the most privileged. The solution proposed is for everyone to just get a job at Google so they can have trans-inclusive insurance... but what if you're in a class of people who can't just get a job at Google? Oh, well. I'm personally in that category of the lucky few who have job options that come with trans-inclusive group health insurance, but my company still has trans-exclusive insurance (and, of course, due to the specifics of how I was hired, I wasn't even covered by their insurance when my emergency happened). And I like working at my company, and don't want to take a different job just for the health insurance.

Before all this happened, I thought that all it would take to challenge trans exclusion clauses would be for someone to be willing to be a test case, so long as they lived in a state that had trans civil rights protections. Well, now I see that I was wrong. I would have been happy to be a test case, since I don't particularly care about getting negative publicity (being a trans man, I would be unlikely to face the same kinds of negative consquences as a trans woman who outed herself publicly as being trans), but that didn't matter, since no one was interested in representing me.

And, of course, it's possible that even the world's best lawyer couldn't have won my case because of the health-and-life-insurance company loophole. I don't know enough about insurance law to know. That's why I wanted to hire an insurance lawyer. The individual health care policy industry seems to be a particularly unethical and exploitive corner of a morally bankrupt industry. And this is a good time for me to acknowledge that the basic issue here is the US's for-profit health care system, something found almost no where else in the developed world. If our failure to take care of each other -- even people different from ourselves -- hadn't created an industry whose purpose is to take people's money in order to stop them from getting health care, there would be no incentive for insurance companies to deny care to people in marginalized groups. That said, I think it's possible for different groups of activists to address different problems; we have to fight for a better system at the same time as we work to make the current system less blatantly unfair.

I feel like what I've achieved in my life so far is pretty close to the maximum for what trans people are allowed to accomplish. My lifelong depression has always stopped just short of being suicidal; I have a graduate degree, have never been homeless, and have a stable professional job and a high income. I'm pretty close to the trans ceiling, then -- and a whole lot of that is because I'm a trans person who was coercively assigned female at birth and who presents in a way that people recognize as falling within what men are allowed to do most of the time. I don't want to downplay any of my privilege here. Still, if the best that any trans person can hope to accomplish involves being in major long-term debt, there's a problem, because in that case why should anybody try hard when they're designated as subordinate from the start? Looking at the CNN.com story that featured me along with five trans women, a few months ago, is one way to find further context.

I'm okay with giving up this fight, but I'm not okay with not leaving a public record of what happened, so for posterity, here's my appeal letter in PDF form and here's the response from HCC denying my claim; also, here's the response from the CA Department of Insurance declaring that California has no authority to regulate HCC, also in PDF. For context, you also might want to read all of my previous surgery posts (but, warning: all of them contain explicit body and/or sexuality details about me): first, second, and third.

If you're wondering what you can do:
  • When you get an unsolicited email from a recruiter, ask them if their company has trans-inclusive health insurance, and then post the results here.
  • Find out whether your employer has trans-inclusive health insurance. If not, find out why not and pressure them to change. It's especially important than people who are not trans do this, both because they can do so with less personal risk and because their requests will be taken more seriously.
  • Donate to the TGI Justice Project, which doesn't focus on health insurance but does advocate for the most vulnerable trans people.
(I'll add more ideas if I think of them.)

Edited July 11, 2013 to add letter from CA Department of Insurance
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Today:

Worked on my talk some more. Got through all the slides except for some extra ones at the end that I suspected I wasn't going to use anyway.

Gave a practice talk, via videoconference, for my team. Felt about 100 times better about the talk after that. Among other things, the amount of time I'd estimated it would take was correct down to the minute. (So I probably don't need those extra slides.) Got lots of helpful feedback, esp. from Graydon and Brian.

Cleaned up my bit-rotted pull requests, all of which are now currently in the bors queue (crosses fingers).

Over the weekend I'll hopefully wrap up the Great Rustpkg Test Overhaul and implement RUST_PATH. And work on the talk more, since I have one more practice talk to go in a week-and-change.
tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Almost done with a very rough draft of my slides for my Open Source Bridge talk! Visually, they're crap, and reminding me why I'm not a graphic designer even though I pretend sometimes to have opinions about visual presentation. But they're good enough for me to give my practice talk to my team tomorrow; hopefully I'll have enough time to clean them up that the form won't distract everyone from the content.

The main thing I'm frustrated about is my own inability to find Good Examples. I could, of course, write examples that illustrate what I want to teach; mainly, I want to show how Rust's trait system works and how borrowed, managed, and owned pointers work. I think traits and the memory model are two of the biggest advantages of Rust, and rather than trying to cover everything about the language in an hour and a half (impossible), I want to focus on two features that are likely to be at least somewhat different from languages the audience members will have used. That's all very well, but I've had a hard time finding particularly good examples in existing code -- I found some small examples, but the slides I worked on today were ones I'd planned to use to present two "extended examples" that would each take several slides to cover. Traits are used less in existing code than I would have thought (being a relatively new feature) and are often just used as containers for methods rather than abstractions that have meaning that could be explained independently of code. Borrowed pointers are used everywhere, but most uses of them are actually pretty simple.

So that I would have something there, I used code from the Container and Map traits and the HashMap module in the standard library, but that feels unsatisfying since hash maps are such a textbook example. I really want to show what makes Rust different! So, I posted a query on the mailing list, and already got two good suggestions -- one from Jeaye pointing me to glfw-rs and one from Daniel Micay suggesting using iterators rather than hash maps if I'm going to use an example from the standard library. I think that's an especially good suggestion; iterators almost qualify as a third central-aspect-of-Rust aside from traits and borrowed pointers.

I give talks infrequently enough that I forget how much work preparing one is. rustpkg is getting sadly neglected, at least over the past two days. I envision weekend work on the horizon, and a lot of it.
tim: protest sign: "Down With This Sort of Thing" (politics)
I read a tweet from Neil deGrasse Tyson that someone retweeted in which he says: "Advice to Students: When choosing a career, consider jobs where the idea of a vacation from it repulses you."

I like snorkeling. My job doesn't involve snorkeling. Does that mean I should quit my job and find one that requires snorkeling? I don't think so, because there aren't too many jobs that involve both snorkeling and computer programming, and I like programming too. Maybe there's some marine biology job somewhere that would require me to do both. Well, what about riding my bike? I still wouldn't be able to do that as part of my job. I like many things, and am unlikely to find a job that involves all of them. On the extremely rare occasion that I'm allowed to take a vacation that doesn't involve having surgery, I do things that I like to do that I can't do at work.

I'm poly, which means that when I have relationships, I prefer them to be based on informed consent rather than rigid rules that originate in cis men's need to control everybody else's bodies. That's not necessarily right for everyone, I'm just talking about me. One of the great things about being poly is that I don't have to find a single person who can fulfill all of my needs. I don't expect to be able to do that. So why would I expect one job to fulfill all of my needs?

A worker who doesn't want to take a vacation is a manager's dream come true (and in the Bay Area, it's said that companies like Netflix that have unlimited paid time off actually exert intense informal pressure on workers not to use any of it). Such a worker can potentially make management very happy. I've never heard of a CEO who never took vacations. The people I know who measure their job satisfaction by the number of hours they work are usually software engineers -- people who labor so that other people, generally not working 90-hour weeks, may profit. (It's true that in a startup, people may work long hours in the hope of profiting themselves, but this certainly isn't the norm.)

The US provides workers with the least amount of vacation time in the world. For middle-class Western Europeans, a job with three weeks of paid vacation time -- considered generous in the US -- would be shocking. Does that mean that Europeans who are scientists, engineers, teachers, and doctors love their work less than American scientists, engineers, teachers, and doctors love theirs?

Neil deGrasse Tyson might love his job enough to never take a vacation, but I don't love my job less than he loves his just because I sometimes want to do things that aren't in my job description. Different people are different; liking more things doesn't make a person less virtuous than somebody who likes one thing to the exclusion of all others. Just as we create unrealistic expectations by enforcing lifelong monogamy to the exclusion of all other ways to structure relationships, and teaching young people that they can undoubtedly expect to find just one person who can give them everything they need, we also create unrealistic expectations by teaching the young that they can expect to find one job that they love so much they never want to do anything else.

Profile

tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Tim Chevalier

November 2021

S M T W T F S
 123456
78 910111213
14151617181920
21222324252627
282930    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags