August 2014

2425262728 2930

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Friday, September 19th, 2014 06:48

This is the second book in the )so far= trilogy of The Owner books. They're kinda a Polity prequel, in that they're set in the same universe, but way before the Polity actually existed.

Anyway, the title could actually refer to a multiple of things. There's the zero-point field, there's a couple of other things in the book that reaches a "zero" in some sort of "this is where the countdown stops" sense.

It's essentially MilSF, like most of the Polity books ("like the Culture, only not nearly as happy and positive", and the Culture books are not paragons of happiness and positivity in the first place).
Thursday, September 18th, 2014 22:08
1. It was so much cooler today than the past few days omg. Irene didn't have to have the fan on much at all today and we actually went for a walk this evening which we haven't been doing because it was so hot, and it was just lovely. (The walk back home was a bit muggier and still, but on the way there was a really nice breeze.)

2. We got our new fan today and the kitten loves the box it came in. :D

3. I stopped at Trader Joe's on the way home tonight and got some of their Triple Ginger cookies, which are so tasty. I haven't had them in a while and am glad to see they still carry them.
Friday, September 19th, 2014 00:45
Very tired, but too much caffeine and therefore awake and filters are down. Anything you want to talk about is fair game.
Thursday, September 18th, 2014 20:56
What are you currently reading?
Currently reading the first volume of Shirokuma Cafe. I rarely say this, but I think I like the anime better? This is cute and fun, though, and I'm of course going to finish reading it and the other four volumes.

What did you recently finish reading?
I finished reading Himegoto 7 and wow, this just keeps getting more and more fucked up. XD

I also read vols. 5 and 6 of Ore Monogatari!! which keeps getting cuter and cuter. Though it has a plotline that always annoys me, where a character shows no interest in the opposite sex, says they have no interest in the opposite sex, and when this happens I always wish it will turn out they're queer (or ace), but of course in the end they just haven't met the right guy/girl yet. So far the just meeting the right girl part hasn't happened for the character in question here, but I have a feeling it's only a matter of time and if I keep hoping he'll turn out to be queer I'll just be disappointed. (It's not that shoujo manga never has side characters who are gay, but they're usually gay from the beginning rather than revealed to be so later.)

Oh, and I read several chapters of Silver Spoon to catch me up to where vol. 12 starts. I had been reading it by chapters but had fallen so far behind I decided to see if I could find the volumes instead, but then couldn't find vol. 11 anywhere. The raws are up on senmanga, though, so I could just easily read those few chapters there. (I much prefer to read on my phone, though, than have to have a browser open and read at my computer.)

What do you think you'll read next?
More Shirokuma Cafe, possibly taking a break after the first volume to read something else, but idk.
Thursday, September 18th, 2014 20:46
Thursday, September 18th, 2014 18:09
We're on day 3 of 4 in the functional programming community challenge -- we're less than $1000 from our $8192 revised goal!

Donation button

Donate to the Ada Initiative

Thanks to the people who donated between 3:00 PM September 17 and 6:00 PM September 18 who gave permission for their names to be used and/or tweeted saying that they donated; if your name is not on the list and you donated, then you either didn't give permission, didn't use the ?campaign=lambda URL suffix, or something somewhere got messed up; if so, email me (catamorphism at gmail) and we'll fix it.

AlephCloud Systems -- our first corporate donor! (We'd love more.)
Corey "cmr" Richardson
Eric Kow [ profile] kowey
Jack Moffitt
Philip Wadler

As well as those who donated earlier, but whose names got left off the first list somehow:

Aaron Tomb [ profile] atombeast
algebraic affects [ profile] joshbohde
Bob Atkey [ profile] bentnib
Maggie Litton [ profile] MaggieLitton

And finally, thanks to [ profile] haskellnow, [ profile] haskellorg, and [ profile] lambdaladies for help publicizing!

Giving money is a good start, and I hope that at least some people will be moved to collaborate with the Ada Initiative in other ways. In any case, it shouldn't end there. Here are 12 other things that functional programmers who want to support and include women can do:

  1. Know what intersectionality is
    This is tricky to talk about, because TAI and the loosely affiliated Geek Feminism Blog and Geek Feminism Wiki are all run mostly by white people (like me). We all know there's a problem here; we talk about how there's no excuse for companies and open-source communities to be 100% male, yet we're almost 100% white.

    With that said, to be an ally, being open to feminist perspectives isn't enough. Intersectionality, a term coined by Black feminist scholar Patricia Hill Collins, refers to the ways in which membership in multiple oppressed groups is not compositional. That is, a Black woman's experiences (for example) are not merely the result of composing a prototypical white woman's experiences with a prototypical Black man's experiences; rather, multiple marginalizations compose in a more complicated way. When it comes to understanding a concept like intersectionality, functional programmers have an advantage: like intersectional feminists, we are often criticized for using too many long and unfamiliar words. So we should know as well as anyone that sometimes, technical language is necessary for clarity. (Insert pun about intersection types here.)
  2. Attend an Ally Skills workshop

    The Ada Initiative runs workshops that teach men how to better support women in their workplaces and other communities. I participated in the Ally Skills track during this year's AdaCamp in Portland, and I appreciated that it was designed primarily around small-group discussions of hypothetical but realistic scenarios. For a reasonable fee, TAI will hold one at your workplace, and one thing that donations finance is holding them at nonprofit organizations for a reduced cost. You just have to ask.
  3. Listen to women

    When a woman talks about her experiences, and you have never had the experience of being perceived as a woman, try something: assume she is reporting on her own experiences accurately. Almost all the time, your assumption will be correct. But more than that, it's an important skill to be able to temporarily suspend your programmerly desire to find edge cases and point out errors, and just listen. Listening doesn't always mean shutting the heck up, although sometimes that's what's needed too. Rather, active listening means acknowledging that you understand what's being said: you can do this non-verbally (for in-person discussions) or by rephrasing what the person said in different words to indicate your comprehension and validate what she is saying. In light of point 1 about intersectionality, the more intersecting oppressions somebody has, the more important it is to listen to and let them know that you hear them.

    This doesn't mean you have to believe everything all women say all the time. Rather, it means that there are already enough men in the world automatically casting doubt on everything a woman says, and you don't need to be one more. Indicating that you hear what somebody is saying doesn't mean agreeing. It means that for the moment, you prioritize understanding their message ahead of showing off how much you know or how good you are at debates. You can decide offline whether to agree.
  4. Believe women

    But I just said you didn't have to agree! Well, yes, you don't have to, but in a world that bombards more or less all women with gaslighting, believing a woman is a radical act. In particular, if a woman is talking about her experience of harassment or another adverse experience that typically involves men mistreating women when no other men are present, assume she's telling the truth (and if anything, understating how bad it was). You will almost never be wrong if you believe her, and it's better to have a vanishingly low chance of being wrong than to contribute to the systematic psychological torture of women who are honest about their lives.
  5. Help women get heard

    Say you're in a meeting and a woman says something; it's ignored, and 15 minutes later, a man rephrases the same idea and gets praised for it. At that moment, you can speak out by saying, "How does that compare to the idea that [woman's name] proposed?" This is a non-confrontational way to re-center the woman as originator of an idea. In general, if you're in a conversation and other people are steamrolling a woman or women, say something -- you don't have to say "you sexist pigs, why don't you listen to her?" unless you want to, but there are many different ways to indicate that, if nothing else, you heard her.
  6. Hire women

    If you work at a software company and have any influence over hiring, hire women. The same goes if you work at a university, even if the hiring process is a bit more byzantine. In computer science or in software, anybody who is not a cis man is more qualified than an imaginary person who is identical except being a cis man. Isn't that "reverse sexism"? No, for the same reason that it's harder to do a pull-up with 50 pounds of weights strapped to your ankles than without. Give women (as well as people of color, disabled people, trans people, queer people...) credit for the enormous amount of work they've had to do just to be seen as equally competent to a given man who is actually less competent. In functional programming, nobody would do this work just for fame and wealth, because there is very little of that to be had; someone purely interested in a high-paying job or other extrinsic motivators would never choose our field if they also had to deal with others' bias along with the risk of not getting rewarded at all. The people who do persevere do it because they love the work they do, probably more than you do.
  7. Practice your empathy

    If you have lived your entire life in the Western Hemisphere being seen as a white, cis, abled man, you probably have some work to do here. It's not your fault: it's likely that you've rarely been rewarded for taking the perspective of someone unlike yourself, and indeed have been coddled for solipsistic thinking rather than being encouraged to think of others' feelings. Fortunately, empathy is a skill that can be learned. Kronda Adair's talk Expanding Your Empathy (from Open Source Bridge 2013) is one place to start.
  8. Encourage double-blind reviewing

    This one applies to those of you who review for and/or help organize academic conferences. It is documented beyond a shadow of a doubt that innate bias affects decisions about people's work: when evaluators know that a particular article is by somebody with a name they interpret as female, they grade it more harshly than if all of its authors had male-coded names. Most people don't want to exercise bias against women, but they do anyway, subconsciously. Concealing author names during reviewing goes part of the way towards addressing this problem. It's not perfect, but someone claiming that it doesn't reduce bias is making an evidence-free claim.

    Non-academics can try applying this one by having their recruiting team (if they have one) redact names from resumes during the first round of candidate evaluation.
  9. Show fallibility and humility

    This one has to be exercised carefully, but if you are someone with a relatively high amount of power (for example, if you're a white cis man who has a tenure-track or tenured academic position, or are a manager in an industry position), it's helpful to others around you if you say "I don't know" when you don't know, admit mistakes when you are wrong, and acknowledge when you're finding something difficult. Sometimes people underestimate just how much influence they have. If you're white, cis, and male, whether you like it or not, the people around you will tend to believe the things you say. With that increased power comes increased responsibility: to scrupulously distinguish what you believe to be facts from what you know are your opinions.
  10. Volunteer to mentor women

    For example, the GNOME Outreach Program for Women matches promising women getting started in open source with mentors from various projects. This is one of the most direct, personal ways you can help. If you don't work on an open-source project, find out what your company can do in the way of outreach at local schools, or if you're a faculty member, figure out what your department can do to support women in undergrad and graduate CS programs instead of just tallying up your admission numbers and cheerfully declaring diversity a done deal while all the women get constructively dismissed.

    If you do this, though, be prepared to learn as much from your mentee as vice versa.
  11. Try to be kinder than you have to

    I don't mean that you need to be kind to people who are abusing or oppressing you; you don't. What I mean is that you have the affordance of being patient when somebody asks the same beginner question for the nth time on a forum you're on, or when somebody makes a wrong assumption based on their knowledge of a different programming language. It's easy to lose patience with people who don't know as much as you do; I've done it a lot myself. But it takes very little to make somebody give up on a community that is new to them, and I've personally seen that happening with functional programming. When somebody else genuinely seems to be acting in good faith, even if they're confused or seem to be slow on the uptake, just remind yourself that you have a privilege that they lack (knowledge) and give them the benefit of the doubt.
  12. Remember that functional programming is a part of programming, and programming is part of the world.

    You might react to some of these suggestions with, "what does that have to do with functional programming? That happens everywhere." Indeed. Most of these bullet points are not specific to our field. But global problems must be addressed locally, in the community that you're in. The good news is that everything you do to make functional programming a safer field for women, and genderqueer and non-binary, people to be in will also make programming as a whole that much safer, as well as the world as a whole.

Donation button

Donate to the Ada Initiative
Don't forget to tweet to #lambda4ada when you donate! Suggested tweet, though you're encouraged to use your own words:

I donated to @adainitiative b/c I want @TheOfficialACM events to announce their anti-harassment policy. #lambda4ada

Friday, September 19th, 2014 02:29
The clouds that scud across the the heavens of my moods
are only water, for all they cast me into intermittent
shade. The tears that scour my face are only water, too;
so too my thunderstorms, so too the streams
through which I tread, on which I float, reminded
I can move. My heartbeat echoes through the spaces
between atoms. I am two-thirds water: I'm
composed of opposing forces; it's
the water with which I quench my thirst that snows
bitter-cold upon the seedlings in the garden of my soul.
I am two-thirds water. I am whole.
Friday, September 19th, 2014 01:21
Clearly I am not terrible at writing in general; clearly, in general, I enjoy writing, hence the fic and the poetry and the blog essays. I'm even pretty comfortable sitting down and bashing out an explanation of my work for lay folk.

I think my key issue is probably audience: not knowing what knowledge it is reasonable to expect, and so on. I think this is something that will get easier with (1) practice and (2) better-defined writing exercises - the kind of detail required for a transfer report is apparently huge amounts of extraneous background that you would never include in a paper, and that's some of the stuff that trips me up.

Currently I am working on trying to practice doing at least a tiny amount of technical writing for a known target audience every day. It is hard and maybe my supervisor will hate it, but then again maybe she won't and I'll have a draft paper I can rework then submit?

I also seriously need to work on the fact that I genuinely have trauma around this (partly arising from the winter of my discontent; partly from various other things where I have Done It Wrong and been hideously stressed, as cumulative thingy) (wow I really need that formal PTSD diagnosis) - I go into panic reaction when I start trying to write, I have to come at it sideways - open the file up, do something else, remind myself what else I needed, do something else, open up the necessary adjuncts, do something else, etc - and this is a problem. And. I kept shying away from writing this post because I don't believe I really have trauma; I'm putting it up half-baked as it is because it hurts to look at straight on.

This is a step.
Thursday, September 18th, 2014 19:47
cleaning to-do:
-downstairs toilet
-empty dishwasher
-re-fill and run dishwasher
-kitchen counters
-wash towels
-trash and recycling

-hide laundry that isn't done
-move pharmaceuticals to my room
-upstairs toilet and shower
-make guest bed
-living room?
-dining room table so's we can eat

(t-minus 4.5)
Thursday, September 18th, 2014 15:29
Took a slightly old gabapentin last night out of total desperation. It went ok. It did its nerve pain relief thing. A relief and yet then i was twitchy and weepy feeling and did not like the side effects. Which thankfully just turned into falling alseep and staying asleep instead of waking up in pain a lot of times. Yay? I still felt in less pain in the morning too. Half a tramadol + tylenol + some coffee (bad idea for stomach, but so helpful) NOw I am back home from the Mountain View office on the couch and still able to work but the pain is very distracting and I am close to the edge of Not Able to Work. I realize this means I need to cool my jets completely for a bit. But I want to go to back to school night. One more thing tonight and then I will cool it for days and days I swear to god. Too much pain. I am making an appointment to renew my Medical Use card and another with my regular doctor to talk about help for worsening ankle(s) and general pain control for my upcoming trip in October. I don't see how I could get through it without serious pain meds at least for night time. I am at the point where I will go beg my doctor for pain drugs, a thing I very much do not like to do. Will work for oxycontin. OK. I find these status updates helpful to look back on someetimes when I forget (near instantly once I bounce out of it) that I just recently had a bout of difficult impairment/pain/whatever. Goal: intervene and stop myself before I hit some sort of rock bottom.

I really don't want to go on nerve pain/ssris long term, it was pretty horrible for me even if it worked for pain. Maybe would consider doing it for a horrible month or two though. Effexor sounds like the pits but it is what the pain clinic recommended i think. Its side effects sound more horrible than cymbalta, which was intolerable.... :(

OR... maybe this leg pain is temporary from the injection and will feel better in a few days. fingers crossed?!
Thursday, September 18th, 2014 14:57
The Farmer woke me up at 5:30a this morning for an anxiety dump that...well, there are reasons. Good reasons. I'm rolling with what happened and his ugly texts from the hospital this morning. (He's a hospital chaplaincy intern, not a patient. No worries.)

But I do wonder if our relationship is too damaged to repair. If things are so broken that it comes to anxiety dumps in the wee hours and long, ugly texts that are full of things that...well, no one would want to say or hear. That points in the direction of "bad broken."

I better make my peace and figure out something real soon. Real soon.
Thursday, September 18th, 2014 20:10
"Capaldi's a lot better an actor than most recent Doctors" my tame layman commented at the end of Listen.

To be fair I think he'd knock most of the classic Doctors into touch too (Big spoilers under the cut, by the way) )

Easily the best story for some time, I would say, and the first time I've actually been convinced by Capaldi's performance, and convinced that he has the potential to be an excellent Doctor.
Thursday, September 18th, 2014 10:08
These darn semesters, they just keep jumping up and biting me.

Actually it's been a really good start. I seem to have an eager, interested class, with more talkers than usual--I'd say ten out of fifty have contributed regularly, with a few others chiming in at times. (That's pretty good: before I'd had five or six, so.) I do have a pile of quizzes and paragraphs to mark, but oh well, such is life.

That said, time has a way of getting ahead of me. I'm signing up for an RAship, observing a theory class, and trying to meet deadlines with two of my committee members. (Both deadlines are for tomorrow. What was I thinking again? Oh yeah, that I didn't want to be thinking about deadlines on the weekend.)

The nice thing is, tomorrow [personal profile] bell and I are going away for the weekend! Yay! It's beautiful fall weather around these parts, but apparently warm and raining where we're going. HM. Oh well, we'll take books and episodes--I think we're going to give Korra another chance, so one thing I need to do is acquire s2 and s3 today before we go. We'll get to see my aunt and her not-quite-so-baby horse that was born this spring, and probably go for a few walks/hikes. And we're going to do the spa massage thing, which will be heavenly, I hope, after this week of packing and cleaning.

(Still need to write that whole post about how we're moving. We're moving! But not until next week; so one thing at a time.)

Anyway, it is BUSY around here. Semesters! Who'd'a thunk it?

But I just had a lovely office hour with tea and no students. How's your morning treating you?

to do )
Thursday, September 18th, 2014 06:46
A week from Saturday, we'll hitch up the rental trailer, fill it with what's left of our belongings (not much, I'll tell you), and drive almost exactly 500 miles to our next home. I'm not exactly excited, but I'm looking forward to it. Not counting work-related stuff, I'm not very stressed at all, so that's good. I tend to like change, and I'll be moving nearer my mom and living in an apartment I like with a person I adore, so mostly, this is happy stuff.

James is a little stressed, but mainly because he spends all day home with no moving work to do. We (mostly he) started doing the work of moving months ago, and it's basically all done. Now we just wait. My last day of work is the 26th. We leave the next day.

Work will go on without me, but regardless of my expendability, I am trying to leave my stuff in as neat and take-over-able a condition as I can for the next guy, who is doing just fine in his training.

I don't have a job in San Diego yet. I'm a little stressed about that, but money will be fine for a few months, and by then I'll know if I can make enough from home to tide me over until I start a master's program in the fall. *If* I start a master's program in the fall.

So yeah. Lots of change, but a relatively small amount of stress. I'm fine with that.
Thursday, September 18th, 2014 00:53
I really really needed a "white flowers and MURDER" perfume for work today. The J-Horror BPAL from [personal profile] synecdochic worked wonders today.

I woke up substantially before my alarm, and decided to say fuck it and get out of bed around 8:30 (only a half-hour early). Then I took a leisurely drive to work, chatting with Nora the whole way (well, post-coffee).

My Overlady popped over to see what was the matter, that I was in at the normal beginning of the engineering day. I explained. Her 12:00 was with someone I have dearly missed; I suggested some choice snippets to mention. Basically no sooner did she pop off to her own office than lb and the angry man with all the tattoos showed up. My cube was a distracting cave of wonders, but we went over the sortable chart of grouses (the wiki page with the timeline of the helldesk software, the sortable wikitable with requested improvements, the R&D end-user profile, and the picture of the ruffed grouse) and made a few edits and priority confirmations before marching off to the meeting itself. Beldorion was not in the office today, and Gramp had a conflicting meeting.

The meeting was on the ass-end of campus, in perhaps literally the furthest building from where lb sits: definitely the horizontally furthest, although there is a diagonal building which may have a little greater actual distance. Some people were at no pains to be friendly to engineering-land. We got there a minute after by my watch, while the people already in the room were giving it a few more minutes to see who else would be there and get the webex started.

I was correct in yesterday's assertion that today's meeting was unmissable. I believe I am recalling my manager verbatim when I relate that her instructions to me were: "Give 'em hell."

In the room: the aforementioned incomprehensible twerp, the highly placed dev running the demo, someone sitting quietly and shutting up, Too Much Eyeliner Lady (somewhere highly placed in local ownership of the helldesk software, but a consummate buck-passer), someone from IT, and then the engineering-land contingent. We were, in order: the Desert Islander, very chill; the Angry Tattooed Man, angry; lb, stern; Azz, by turns stern and earnestly, specifically, functionally constructive. Engineering-land contingent got printouts of the wiki page for reference. lb and I took notes (him every now and then on his phone, me with pen and paper).

The engineering contingent post-mortem lasted the twenty minutes back to engineering-land, with further follow-up to follow at some point I am sure.

Lunch was with Purple, and pleasant. He has an ambitious project to spearhead with the knowledge and blessing of his manager.

Wednesday is the day when the cafeteria does their hump day takeout program: place your order before early afternoon, and you too can take home a corporate cafeteria quality meal at takeout prices. It looked decent, so I ordered.

My Overlady came back from her 12:00 with many bits of information. She perched on my couch and shared the intelligence from this meeting. Oh, my.

My computer's been in need of a reboot for a bit, so I was chipping away at getting the things done that I needed to get done before that point. Eventually it hit mid-evening. I pinged Purple and (after flailing at [personal profile] sithjawa a bit) mentioned the concept of dinner, and did he want any. Which he did. We opted for my cube this time. I have a guest couch! He said he'd be over in a bit, and to feel free to start without him (always a dangerous statement from an engineer). I was just separating the plates when he arrived. It's nice to have guests in my cube! I began to tell him some of the highlight from my Overlady's 12:00.

I heard Designer Sparkles coming out of an office. "There's nobody here at this hour!" she said. "No," my Overlady agreed, "except maybe Azure." Designer Sparkles wandered out of the office in search of places more like home. And as my Overlady came around the corner, there I was! With a Purple in my cube.

Then followed a delightful conversation wherein my Overlady shared intelligence from her 12:00 with Purple, we compared some experiences raising hell in school, and all in all a great time was had. My Overlady headed off in search of her own dinner, and we finished ours. Then Purple went back to his desk, and I had the joy of a very crashed computer in need of some Windows updates. My next task: install Notepad++, because I do much better about autosaving in that than in Windows Notepad. (Which I just typed as Nopetad.)

Parking lot conversation was largely fishbrick. Also puddinghandle, toiletjello, blenderpoop, shortsheet, notebolt, and other mostly theoretical forms of mayhem. To be clear: very few of these are actually good ideas to do! Puddinghandle: mix up some very, very chocolatey chocolate pudding. Put a roll of toilet paper on top of someone's car, to catch their attention. Spread the pudding under the door handle. Toiletjello: this is a Shawn stunt. Mix clear gelatin with the boiling water. Pour into the cold water of the toilet bowls at school. (This works best in a cold climate.) Allow enough time to set before the students come in. Shawn was disappointed in the janitors in that they did not think of the hot water (add more hot water, perhaps from the coffee pot, to dissolve the jello safely) and instead removed it by hand. (Purple: "That would be an unforgettable parfait.") Blenderpoop: targeting the Insufferable Smoothie person, either by actually doing it (ideally with multiple DNA sources) or just leaving a note with a crude depiction of a stick figure pooping in their blender. Shortsheet: this is the classic prank. Notebolt: leave a few spare bolts on somebody's desk with a note saying something like "I think you'll need these." The bolts are not actually from anything they own, but they spend some time looking fruitlessly. (Sort of like releasing the five pigs, numbered 1, 2, 3, 5, 6, into a sufficiently large building.)

Beardwatch 2014: still on.

At the end of the day, I still smell faintly of white flowers, although less like murder.
Thursday, September 18th, 2014 09:40
Last day at work before vacation! \o/

Have so much shit to do, both in terms of travel arrangements and actual work /o\

Clients are going batshit because I'm ~leaving for a month~. In fact I am only going to be gone for 10 working days, the rest of the time the university will be closed anyway, but everyone is being SO UNREASONABLE about this I've started telling people about my upcoming travel rather defensively. SEVERAL people have already used my vacation to somehow imply I'm not working hard enough/my department is screwing them over/etc. Consider that I do not take ANY DAYS OFF during the year in order to take one long vacation in the fall! FFS!

Like, a new client has insisted that we have a "kick off" meeting today. TODAY ON MY LAST DAY before vacation. WHY. The uni will be closed for most of the next month! You will not be at work either! CAN'T WE JUST WAIT UNTIL I GET BACK?

Ugh, a lot of panic like that, and a lot of accusations. "It's all well and nice that you're going away for a month but what are we going to do with this project that isn't done yet????" well, client, AS YOU KNOW, the reason it's not done is not up to me, it's because of IT who can't get their shit together and I have no control over that, and even after I'll leave THERE WILL BE SOMEWHERE HERE YOU CAN TALK TO about your needs during the TEN DAYS over the next month when you will actually be at work. It's not an apres moi le deluge situation! There will still be people here to take care of urgent issues on my projects while I'm away!

Ugh, clients.

ETA: to make this entry something other that 100% whining, have a lovely poem:

To Growing Girls Who Dream of Neverland
by S.T. Gibson

Peter’s not coming, darling. )
Wednesday, September 17th, 2014 21:53
In my initial challenge post, I left the connection between functional programming and the Ada Initiative's mission a bit unclear. I suspected that most people who would already be inclined to listen would already understand what TAI has to do with helping bring more people into functional programming and use their talents fruitfully there.

But on the Haskell subreddit, where a Redditor by the name of LeCoqUser (in reference to the Coq proof assistant, of course) linked to my initial post, one person wrote: "I cannot fathom what this has to do with Haskell or functional programming..." I'm going to give this person the benefit of the doubt and assume they really meant, "What does this have to do with Haskell or functional programming?", and were simply applying a principle that many people like me -- who were socialized by Usenet -- learned: "If you want to know the answer to something, never just ask a question; make a false statement that's designed to get people to answer your real question by correcting you."

And it worked! Here's what I wrote on Reddit. My comment was specific to Haskell because it was on the Haskell subreddit (it's also the community I know the best), but I think what follows applies to all other functional programming language communities too.

Just to clarify why it's on-topic, I'd like to say a little bit more about what the Ada Initiative (TAI) does and how it helps the Haskell community:

  • As has been noted, TAI helps conferences and meetups develop codes of conduct. The ACM anti-harassment policy, which applies to ICFP and other conferences and workshops related to Haskell, is based on TAI's model code of conduct.
  • TAI leads anti-impostor-syndrome workshops for women who want to enter technology. As I tried to explain in my blog post, impostor syndrome is a structural barrier to getting involved in functional programming for many people who otherwise would be interested. Impostor syndrome disproportionally affects women. By helping fight impostor syndrome, one woman at a time, TAI is creating more potential members of the Haskell community.
  • TAI runs AdaCamp, which has a potentially life-changing effect as self-reported by many of the women who have participated -- in terms of building the confidence necessary to participate in tech as a career software developer and/or open-source volunteer. Again, this means more potential Haskell programmers -- there's no sense in losing half the potential audience before they even start.
  • TAI runs Ally Skills workshops, which help men who want to make their tech communities safer for women -- including, I like to think, most of the men reading this -- put their intent into action.

Hopefully that clarifies things, and I hope folks from Reddit will help us reach our new goal of $8192! Money talks, and the fact that we've already raised $4320 [edit: $5557] from functional programmers in less than a day [edit: two days] says to me that most of us recognize that TAI's work is both crucial, and not being done by any comparable organization.

Donation button

Donate to the Ada Initiative

Don't forget to tweet to #lambda4ada when you donate! Suggested tweet, though you're encouraged to use your own words:

I donated to @adainitiative b/c I want @TheOfficialACM events to announce their anti-harassment policy. #lambda4ada

Wednesday, September 17th, 2014 21:33
1. It's been two weeks since I had an eye appointment and ordered new contacts and they still hadn't called me to tell me they were in, so I called to check this morning and they said they had part of my order in but not all of it. Then they called me back this afternoon to say it was all there and ready! (Except by then it was too hot for me to want to go out, so I still didn't actually go pick up the contacts, but at least I know I can do so whenever I want.)

2. I made cornbread and chili for dinner and it was super delicious. It was just canned chili and cornbread mix from a box, but I added cheese and corn to the cornbread, as well as the green chiles Irene had grilled the other day.

3. Another person wanted to park in our driveway as well, and at first Irene told her yes, because it seemed like she would just be there for a couple hours in the mornings before the other guy came, but this lady kept wanting to stay longer and do this and that and it was really stressing Irene out but she couldn't say no, so today when the lady came back after her class I gave her her money back and just told her it wasn't working out, so that's over with, thankfully. It would be nice to have money from two people using the driveway, of course, but not when it's causing so much stress.

4. It seems to be cooling off tonight (and was actually not terrible during the day today, either).

5. Damian is finally sending Irene her stuff. It should be here next week!
Thursday, September 18th, 2014 04:13
post-tags: instagram, crosspost Ube (purple yam), langka (jackfruit), and macapuno (mutant coconut) ice cream cones. #filipinofood #sounforgettable
Thursday, September 18th, 2014 02:10
post-tags: instagram, crosspost Um heck yes I am getting the Pili ice cream cone trio. … what was that about dinner first? :O
Wednesday, September 17th, 2014 15:47
The kid has finally been taken away for a few hours by another worker and the house is totally quiet. Ahhhh, bliss.

The replies to my last entry actually made me REALLY HAPPY, as did taking my painkillers, and lying around a lot on a heating pad. Also today I decided to take the kid to the Beacon Hill Children's Farm, and it was AWESOME. There's a free petting zoo, and then an entire park full of delightful walks and several large sculpture/fountain/spray-park installations where kids press the button and ginormous jets of water shoot out. It is the PERFECT place to take that kid. The only problem is that xe really really wants to feed breadcrumbs to the ducks, which the park discourages (I didn't know, so when the kid was distracted with a fountain I surreptitiously dumped 3/4 of our bread crumbs in a garbage bin).

Tonight we're going to see Emily and go swimming. My supervisor suggested that some of the kids might like to meet my cat and consequently they'll go "Can we see Emily?" and I'm like "TWIST MY RUBBER ARM also I need to pick up a jacket from my room." So now I'll take some of them by in the evening to feed, pet, and play with her. She's not a therapy cat for me yet, but she is in a way for some of them; she's very responsive to good things and very direct (though gentle) about expressing her displeasure. They're learning the basics of cat behaviour (one kid now quizzes me all the time, "If her ears are like this, she unhappy? She gonna use her claws?") and attuning to another animal's emotional state to decide how to act (as I coach, "she's biting you, time to stop petting her").

Something I've learned: If you join OKCupid and say right at the top of your profile, "If you are a guy I am going to ignore your message, I'm only here to meet ladies" it is actually a really nice experience! OKCupid lady flirting actually happens and you meet cool people and if someone messages you on Sunday and you don't reply until Wednesday and explain you've been swamped with work she's like "Cool, I understand," and you get on with talking!

It was a little vexing at first because I signed up as "bisexual, only here to meet women" and they kept suggesting me to men as a match (GRR) but that disclaimer has kept things cool. I wanted to note the bisexuality because some people have Stupid Opinions about bi people, but if I want to meet men I will not do it through a dating website, where the very air around them reeks with desperation and shattered hopes.

Meanwhile here are a bunch of stoats.
Wednesday, September 17th, 2014 15:34

Donation button

Donate to the Ada Initiative

Don't forget to tweet to #lambda4ada when you donate! Suggested tweet, though you're encouraged to use your own words:

I donated to @adainitiative b/c I want @TheOfficialACM events to announce their anti-harassment policy. #lambda4ada

So far, the following people from the functional programming community have donated to the challenge, as well as a number of anonymous donors. If your name appears here, it's because you checked the box that says it's okay for TAI to share your name, for which I thank you as well -- knowing who has donated so far makes it easier for other people to decide whether to donate. If you want to be as cool as these folks, then donate and (optionally) tweet about it!

In addition, I made an additional matching donation of $64 (on top of my usual $80/month), and my fellow challenge organizers Adam Foltzer, Clément Delafargue, and Chung-chieh Shan have donated as well. If your name doesn't appear here, you want it to, and you donated between September 1 and 3:00 PM Pacific Time on September 17, email me at catamorphism at gmail and I'll add it. (If you donated after that, don't worry, I'll be doing more thanks posts!)

In alphabetical order by first name:

Aaron Levin / Weird Canada
Alejandro Cabrera
Ben Blum
Bethany Lister
Carlo Angiuli
Chris Martens
Colin Barrett
Colin Gourlay
Dan Peebles
Daniel Ross
David Van Horn
Dylan Thurston
Edward Kmett
Florent Becker
J. Ian Johnson
Jon Sterling
Joshua Dunfield
Lars Hupel
Manuel Chakravarty
Pat Hickey
Prabhakar Ragde
Wouter Swierstra

Thanks as well to everybody else who has tweeted under #lambda4ada so far! Keep it up.

To all of you on this list, as well as to the donors who preferred not to be named: thank you! And if you haven't yet donated, you still have until Friday, September 19 at 5 PM for your donation to count towards the challenge. We have more than satisfied our initial $4096 goal, and are trying to raise $8192 by Friday. What's more, if we raise $16,384, then the four of us will record a version of "There's No Type Class Like Show Type Class" and share it with the world. We appreciate your past and incoming donations, tweets, and blog posts!
Wednesday, September 17th, 2014 22:32
And not doing it.

I suppose this is because I feel a bit like my life is essentially quite boring. I'm currently freelancing, and trying to work my way up into at least decent part-time hours without falling over, which is proving challenging because I fall over at the least little bit of stress.

(And I mean last week was almost a complete bust because of this and this week is all about the recovery.)

I'm still learning German. I think I'm getting a bit more fluent. I'm trying to get a handle on what kind of future I might have. That's a bit difficult, because depressed-brain is still a bit prone to saying "NONE LOL" and predicting that my health issues will kill me in a few years so what's the point. So some days even looking at the future without cringing away in fear is really hard, and most days, let's be honest, I don't really bother.

Money stuff is going a bit better since I got new budgeting software about six months ago. It's really making it much eaiser to plan ahead and figure out what I need to do with my money. It also helps that I'm earning some. Not a huge amount yet, but more than I was on JSA.

I'm RPing a lot, and thinking a lot about my characters without actually doing much writing on the novel or anything else (despite mostly making it to writing dates each week). The problem is there's so much I want to make a priority, and having limited energy and limited time and all the rest of it (really the energy is more of a problem than anything else), it gets really hard to prioritise and decide what I actually want to focus on.

Not sure what else to talk about. I'm keeping up with Doctor Who, though I'm really ragey at Moffat for various reasons. I'm occasionally reading fic and being a bit anxious about Yuletide nominations. I'm still not really reading printed books very much, though I'm reading a lot of articles in Pocket instead. Not sure why I'm finding books so hard but that's been ongoing for... a couple of years?

I am trying to diversify a bit socially, but coming up against the same old demons of "you've had depression for the past six years and you managed to nuke 90% of your social circle". Which makes me feel guilty about trying to renew old friendships and anxiousa about trying to start new ones. It's awesome.

I think that might be about it for now!
Wednesday, September 17th, 2014 12:46

It might be good for the world, though temporarily stressful for one's marriage, to edit an anthology together, as Leonard and I discovered when we created and published our speculative fiction anthology Thoughtcrime Experiments together in 2009.* Despite the risks, maybe you should become an editor. "Reader" and "writer" and "editor" are tags, not categories. If you love a subject, and you have some money and some time, you can haul under-appreciated work into wider discourse, curate it, and help it sing.

Thoughtcrime Experiments cover You can do this with lots of subjects,** of course, but doesn't it especially suit science fiction and fantasy? We love thought experiments. We love imagining how things could be different, with different constraints. I love enlarging the scope of the possible, and both the content and the production of Thoughtcrime Experiments did that. Neither of us had professionally edited science fiction before, we released it under a Creative Commons license,*** and we wrote a "How to Do This and Why" appendix encouraging more people to follow in our footsteps.

Every story needs an editor to champion it. One thing we conclude from this experiment is that there aren't enough editors. We were able to temporarily become editors and scoop a lot of great stories out of the slush pile....

It's well known that there's an oversupply of stories relative to readers. That's why rates are so low. Our experiment shows that there's an oversupply of stories relative to editors. By picking up this anthology you've done what you can to change the balance of readers to stories. I wrote this appendix to show that you've also got the power to change the balance of editors to stories.

Another way to enlarge the scope of the possible is to seek out, publish, and publicize the work of diverse authors.***** But if you don't explicitly say you're looking for diverse content and diverse authors, and make the effort to seek them out, you will fall into the defaults. I ran into this; I did not try hard enough to solicit demographically diverse submissions, and as a result, got far more submissions from whites and men than from nonwhites and nonmen. However our final table of contents was gender-balanced, and at least two of the nine authors were people of color.

And if you do not explicitly mark characters as being in marginalized demographics, the reader will read them as the unmarked state. Here I think we did a bit better. And our selections caused at least one conversation about colonialism, and really what more can you ask?

Mary Anne Mohanraj and Sumana Harihareswara at WisCon in 2009(To the right: E. J. Fischer's photo of me with Mary Anne Mohanraj at WisCon in 2009.) It turns out that Thoughtcrime Experiments made a lot more things possible. For example, we published "Jump Space" by Mary Anne Mohanraj, a story that stars a South Asian diaspora woman. I remember sitting in my brown overstuffed chair in my apartment, reading Mohanraj's submission, completely immersed in the story. As I emerged at the end, I had two simultaneous thoughts and feelings:

  1. This is the first time in a whole life of reading scifi that the protagonist has looked like me. This feels like a first breath after a lifetime in vacuum.
  2. Why is this the first time?

Mohanraj, encouraged by the response to "Jump Space", wrote a book in that universe, and may write more. The summary starts: "On a South Asian-settled university planet" and already my heart is expanding.

And then there's Ken Liu.

It turns out Thoughtcrime Experiments restarted Ken Liu's career. Yes, Ken Liu, the prolific author and translator whose "The Paper Menagerie" was the first piece of fiction to win the Hugo, Nebula, and World Fantasy Award, and who's been doing incredible work bridging the Anglophone and Chinese-speaking scifi worlds. You have us to thank for him. As he told Strange Horizons last year:

I wrote this one story that I really loved, but no one would buy it. Instead of writing more stories and subbing them, as those wiser than I was would have told me, I obsessively revised it and sent it back out, over and over, until I eventually gave up, concluding that I was never going to be published again.

And then, in 2009, Sumana Harihareswara and Leonard Richardson bought that story, "Single-Bit Error," for their anthology, Thoughtcrime Experiments ( The premise of the anthology was, in the editors' words, "to find mind-breakingly good science fiction/fantasy stories that other editors had rejected, and release them into the commons for readers to enjoy."

I can't tell you how much that sale meant to me. The fact that someone liked that story after years of rejections made me realize that I just had to find the one editor, the one reader who got my story, and it was enough. Instead of trying to divine what some mythical ur-editor or "the market" wanted, I felt free, after that experience, to just try to tell stories that I wanted to see told and not worry so much about selling or not selling. I got back into writing -- and amazingly, my stories began to sell.

There is no ur-editor. It's us.

And there is no ur-geek, no ur-fan. No one gets to tell you you're not a fan, or to stop writing fanwork because it's not to their taste, or that you need to disregard that a work is insulting you when you judge its merits.*****

The Ada Initiative's work in creating and publicizing codes of conduct for conventions, in creating and running Ally Skills and Impostor Syndrome workshops, and in generally fighting -isms in open culture, helps more people participate in speculative fiction. TAI's work is even more openly licensed than Thoughtcrime Experiments was, so you can easily translate it, record it, and reuse it to make our world more like the world we want. For everyone. Please donate now, joining me, N.K. Jemisin, Mary Robinette Kowal, Annalee Flower Horne, Leonard Richardson, and many more. You can help us change the constraints -- help us edit the world.

I'm gonna close out with one of my favorite fanvids, an ode to fandom. This is a different kind of love song / dedicated to everyone.

Donate now

* Some couples can basically collaborate on anything together. Leonard and I, it turns out, can get grumpy with each other when our tastes conflict. Just last night he pointed out that the multi-square-feet poster I presented at PyCon (mentorship lessons I learned from Hacker School) barely fits on the wall in our flat, anywhere, and will be the largest single item of decor we have. My "it would fit on the ceiling" well-actually gained me no ground. I pointed out that it would easily fit over the head of our bed, and mentioned that after all, some couples do put religious iconography there. I backpedaled off this in the face of his utter unconvincedness, and suggested that we *try* it above the TV. It now watches over us, slightly overwhelming. He might be right.

** Maybe you heard about The Aims Vid Album, encouraging and gathering fanvids to the tune of Vienna Teng's Aims? Which is FANTASTIC AND AMAZING and omg have you seen raven's "Landsailor" vid?? I have all the feels about that vid.

*** Although not as free a license as we sort of wished. In retrospect I wish we'd gone for an license so we didn't have niggling questions about whether our sales counted as commerce, etc.

**** Strange Horizons is seeking out submissions from new reviewers, and a Media Reviews Editor. Why not you?

***** I particularly like Patrick Nielsen Hayden's formulation:

I think it's fine to ignore and not read something because the author has called for harm to you or to people you care about. Art and politics can't ever be completely separated. As a general rule of thumb, when we think our approach to something is politics-free, that generally means the politics are so normative as to be invisible.

Cross-posted to Cogito, Ergo Sumana.

Wednesday, September 17th, 2014 09:25
My injection site/bad leg are truly hideous the last few days. I powered through the weekend on tramadols (about 3 per day plus codeine at night, and i had coffee 3 days in a row on vacation) Now down to only painkiller at night and tylenol in day but today I need to kick that up a few notches. I just want to lie on ice packs/heating pads and writhe around. God.

Lots of meetings today. I would like just a little cup of caffeinated tea....
Wednesday, September 17th, 2014 09:41
Every time Slacktivist links to the Velveteen Rabbi, I o_O a little bit. But when he links to the Velveteen Rabbi talking about her article "Fan fiction and midrash: making meaning" in Transformative Works and Cultures, the whole Stay-Puft Marshmallow Man just comes crashing down. I mean it's awesome. But surreal.
Wednesday, September 17th, 2014 13:16
These are quite useful it turns out! (Cut because I would imagine mostly dull.)

Three tiny things forever )
Wednesday, September 17th, 2014 11:30
"Stemettes" is an absolutely terrible term to use for female undergraduates in STEM fields. No. Wow. Inarticulate fury.
Wednesday, September 17th, 2014 10:16

My Sugru arrived today, which put me in a mind to think about small household repairs.

The absolute best way I've found to not procrastinate about sewing repairs is to keep a threaded needle next to the place where I sit to get dressed in the morning. If I see a small hole, I can fix it straight away in less than 30 seconds, which stops it becoming a big hole.

(I wondered if this was too obvious to be worth mentioning, but I only figured it out a couple of years ago, and I'm nearly 40 and have been sewing since I was small, so.)

Have you got any handy hints for household maintenance?

Wednesday, September 17th, 2014 01:11
Discussions with [personal profile] norabombay about various items including Original Male Dog? Always in order. Discussions with [personal profile] sithjawa about the most random stuff? Also always in order.

Came in to an amazing slice of blackly hilarious helpdesk software trivia that made my Overlady start swearing (louder) and made our manager laugh, say something bleak, and then shake her fists.

Received an invitation to sit down in my place amongst the yelliest of the people giving helpdesk software feedback, tomorrow. They will demonstrate to us some things which they think will fix some of the worst of the issues. I will, of course, be taking notes.

There was a pleasant interlude involving a bunch of 45+-year-old dudes talking about the future of mobile security, to a crowd who appreciates the ability to break shit. After both Purple and Mr. Zune said that they couldn't go but were interested in hearing about it, I took notes. My contribution to the evening involved the question: So when your mobile phone, which is basically the key to your entire life at this point in the future, gets pickpocketed off you on BART -- and your data is fine, it's all locked up -- how screwed are you, exactly? I asked this because there had been a lot of focus on how to secure various things and when to distrust more than you already distrusted, and yes those things are important, but a lot of people overlook the fact that any small, portable, and valuable item can and will disappear in the presence of a trained pickpocket.

I came back to find that:

a) the clueless wonder who seems to be the forward-facing face of the Let's Fix This Helpdesk Product had managed to do it again


b) crisis involving my Overlady's travel.

Both of those were straightened out. The hold music for the travel place was not bad, my cube was in need of some straightening, I got my notebook set up for tomorrow's meeting, and (once I got through to a real human) the source of the problem was one of those minor typos which can result in general catastrophic but ultimately temporary failure. I had been worried that it was the sort of thing which would ultimately require my Overlady's personal intervention, but it was all good.

The helpdesk, on the other hand!

The ticket I had filed was because of an error in their notification emails. This is one of the ones where my age and experience are a distinct advantage. I remember reading multipart emails in a text-only email reader. I was on mailing lists in those days. I am familiar with the way these things look, and the way they are supposed to look. So when the Sortable Chart of Grouse was being compiled, I chose one of the items I thought more low-hanging to make sure was formally filed.

The basic concept is this:

In the context of emails from the helpdesk software, links are not intended to be optional extras. Links are intended to be, among other things, tools for resetting one's password, tools for re-opening tickets which have been closed before their time, and tools for reading and interacting with the entire ticket and all its gods-given comments. While you probably could read the contents of the email, and then go to the website and hunt down the ticket based on the information in the email, that is not actually the recommended workflow. The links are intended to be integral.

Once you agree that the link is integral to the experience of this notification, the second part begins.

Some people, whether by virtue of them being a technological monk having taken a vow of poverty, or on a mobile device, or some other reason, have mail readers which only give them the text/plain part of a multipart message. further explication, and ranting, ensues. )

So after that, I washed my coffee mug, Purple wrapped up what he was working on, and we headed out to the parking lot. As we chatted about this and that (including security, and how sometimes people who are not entirely clueless about security will go for a less-secure choice to make sure that they're not permanently locked out of their shit, when the consequences of a bad guy getting into their shit are less terrible than the consequences of them getting locked out of their shit) and watched the night. Purple remarked that the security cart was moving sort of like a wooden duck in a shooting gallery. I wasn't sure if this security guy was That Security Guy. I mentioned that if he was, I kind of hoped he was getting the wrong idea, even blah blah blah. Purple pointed out, quite astutely, that people are kind of bad at the "maybe they like me?!?!?" perception check. He had a story (an ex was into him when he wasn't sure she was, and it was good). I had a story: Fencing-Dave. (And my scary, scary father.)

I will be back at bad hours of the morning. Because tomorrow's meeting is unmissable.
Wednesday, September 17th, 2014 07:10
This is crossposted from, my personal maker blog. If you want to link to this post, please use the original link since the formatting there is usually better.

With my travel and work schedules, I haven’t had time to hack my original MicroView, but the replacement ones arrived while I was out at ABQ Mini Maker Faire! So of course, I had to try *something* now that I can actually flash things to it.

Here’s my current very simple program: a smile with a wink!


Although it’s probably better with video

And of course, it’s more fun if you can also check out the code so I dumped it into my git repository. Here it is in case you’re not feeling like clicking through:

 * microview_wink: a simple winking face animation for the MicroView
 * Created by: Terri Oda 
Wednesday, September 17th, 2014 07:06
via at September 17, 2014 at 02:00AM:





I literally didnt recognize her

It’s almost like the character makes a difference. It’s almost like Bella Swan is a terribly written and completely flat character and no actress could have believably put emotion into her portrayal with the lines and motivations they were given. It’s almost like when she’s given a decent character she can give a great performance. IT’S ALMOST LIKE SHE’S AN ACTRESS.

NGL, when I saw the first row of the pictures I thought it was outtakes from Winter Soldier.

And now I am picturing KStew here as a much younger Natasha, which gets interesting fast.
Wednesday, September 17th, 2014 01:11
I use the Pinboard popup with tags bookmarklet to bookmark links.  Problem is, I have a lot of tags.  So many tags, the tag cloud isn't helpful.  Is there a way to have the bookmarklet display only a particular tag bundle?  Because that would be very useful to me.

A lot of what I bookmark is fic, and the fandom specific tags are no problem to remember to add (fandom, characters, etc.)  But the general tags, I often forget what I have tags for or what the specific tag is.  (Do I have a tag for time travel?  Wing fic?  Episode tags--or do I call it something else?)  I already have a tag bundle for those, but it would be nice to just have those to glance through when making a new bookmark.

Tuesday, September 16th, 2014 22:32
First, there was the adventure of leaving my trainee/successor guy to his own devices today. He rocked it, so yay!

Next adventure: rescue [personal profile] stonebender from a speeding (okay, mostly stopped) train.

Adventure #3: dinner and Opinions! with [personal profile] wild_irises, [personal profile] wordweaverlynn, and [personal profile] pokershaman, followed by melon and Opinions! with the same folks, plus bonus [personal profile] starlady.

Adventuring is tiring!
Tuesday, September 16th, 2014 21:30
1. Day off tomorrow!

2. It's been sooo hot lately and while it's supposed to cool down a bit later this week, it's supposed to get hot again after that, so we've been having the fans going almost non-stop and this morning got a bit of a scare with our good fan when it took about five minutes to turn on. This happened once or twice before a while back, but I thought that cleaning it out had taken care of the problem but I guess it's just getting old. Anyway, I ordered a new fan off Amazon tonight and it's supposed to come Thursday. It's a Vornado, which I have heard a lot of good things about, so I'm hopeful it will help, not just in case our other fan does die on us, but because the house just gets so hot and doesn't cool down until the wee hours of the morning, even with fans on, so maybe a third (better?) one will help.

3. I made hot dog fried rice again tonight. We have a ton of hot dogs Irene grilled last week and no buns, so I've been chopping them up and putting them in fried rice and it's super delicious. (Also super easy, since the hot dogs are already cooked, I use frozen mixed veggies, and I have a bunch of garlic fried rice seasoning packets, so I just toss those in and don't even have to do any real seasoning.)
Tuesday, September 16th, 2014 22:23
One little sleep-deprived outburst in class about being tired of listening to the opinions of old, straight, cis, slim, upper class white men vis a vis my theology has turned into "You need to be in counseling to deal with your anger issues." Uh huh.

I see you there, seminary, defending the oppressors this whippersnapper was raging against. Gotacha.
Tuesday, September 16th, 2014 20:08
I'm happy to report that the community challenge has raised $4394 for the Ada Initiative as of this writing, passing the $4096 mark just five hours after the first blog post. Thanks to Adam, Clément, Ken, and everyone who has donated so far!

Since leaving our friends who were just getting ready for bed when the original blog post went live wouldn't be nice, we're increasing the goal to $8192. If we raised more than $4096 on the first day, can we raise a little less than that with three days to go? I think so!

Donation button

Donate to the Ada Initiative
But that's not all! We're adding a stretch goal: if we raise $16,384, then Adam, Clément, Ken, and I will record Ken's classic filk "There's No Type Class Like Show Type Class" and post the recording on YouTube (or another video sharing site of our choice), illustrated by some informative graphics explaining topics like "polymorphic recursion" that the song mentions. We are putting our mouths where your money is. Tell your friends! Tell your colleagues! Tell everyone who doesn't wish you any specific harm!

Remember: donate, then tweet:

I donated to @adainitiative b/c I want @TheOfficialACM events to announce their anti-harassment policy. #lambda4ada

I'd love to link to more blog posts from folks writing about why the Ada Initiative's work is needed, and why our conferences need strong and clearly advertised anti-harassment policies. Just drop me a line (full contact details in my original post).

Still no response (as of this writing) from [ profile] TheOfficialACM after 15 mentions -- maybe 15 more will do the trick?
Tuesday, September 16th, 2014 22:59
hoooooooly shit, the Orioles cinched the AL East championship tonight. THE ORIOLES.

(Also, that 9-1 win-loss streak they're on? Yeah, guess which game we were at. If you say 'the one where they lost', you know how my life works. Heh.)

SO GLAD we bought partial season tix for next year so we can get priority on buying postseason tickets. \o/
Wednesday, September 17th, 2014 00:43
post-tags: instagram, crosspost The potato puffs: buttery mashed potatoes encased in shattery-crisp skin that crunches like Korean-fried chicken skin.
Tuesday, September 16th, 2014 16:36
I'm working a long week so I've been at work a day and a half already and I have a day and a half to go and an even more difficult client coming than the one I saw off this morning, and fuck my liiiife.

Wanna curl up and cry.

Animal pictures accepted if no more sophisticated or tangible measures of comfort available.
Tuesday, September 16th, 2014 14:03
ACPI is a complicated specification - the latest version is 980 pages long. But that's because it's trying to define something complicated: an entire interface for abstracting away hardware details and making it easier for an unmodified OS to boot diverse platforms.

Inevitably, though, it can't define the full behaviour of an ACPI system. It doesn't explicitly state what should happen if you violate the spec, for instance. Obviously, in a just and fair world, no systems would violate the spec. But in the grim meathook future that we actually inhabit, systems do. We lack the technology to go back in time and retroactively prevent this, and so we're forced to deal with making these systems work.

This ends up being a pain in the neck in the x86 world, but it could be much worse. Way back in 2008 I wrote something about why the Linux kernel reports itself to firmware as "Windows" but refuses to identify itself as Linux. The short version is that "Linux" doesn't actually identify the behaviour of the kernel in a meaningful way. "Linux" doesn't tell you whether the kernel can deal with buffers being passed when the spec says it should be a package. "Linux" doesn't tell you whether the OS knows how to deal with an HPET. "Linux" doesn't tell you whether the OS can reinitialise graphics hardware.

Back then I was writing from the perspective of the firmware changing its behaviour in response to the OS, but it turns out that it's also relevant from the perspective of the OS changing its behaviour in response to the firmware. Windows 8 handles backlights differently to older versions. Firmware that's intended to support Windows 8 may expect this behaviour. If the OS tells the firmware that it's compatible with Windows 8, the OS has to behave compatibly with Windows 8.

In essence, if the firmware asks for Windows 8 support and the OS says yes, the OS is forming a contract with the firmware that it will behave in a specific way. If Windows 8 allows certain spec violations, the OS must permit those violations. If Windows 8 makes certain ACPI calls in a certain order, the OS must make those calls in the same order. Any firmware bug that is triggered by the OS not behaving identically to Windows 8 must be dealt with by modifying the OS to behave like Windows 8.

This sounds horrifying, but it's actually important. The existence of well-defined[1] OS behaviours means that the industry has something to target. Vendors test their hardware against Windows, and because Windows has consistent behaviour within a version[2] the vendors know that their machines won't suddenly stop working after an update. Linux benefits from this because we know that we can make hardware work as long as we're compatible with the Windows behaviour.

That's fine for x86. But remember when I said it could be worse? What if there were a platform that Microsoft weren't targeting? A platform where Linux was the dominant OS? A platform where vendors all test their hardware against Linux and expect it to have a consistent ACPI implementation?

Our even grimmer meathook future welcomes ARM to the ACPI world.

Software development is hard, and firmware development is software development with worse compilers. Firmware is inevitably going to rely on undefined behaviour. It's going to make assumptions about ordering. It's going to mishandle some cases. And it's the operating system's job to handle that. On x86 we know that systems are tested against Windows, and so we simply implement that behaviour. On ARM, we don't have that convenient reference. We are the reference. And that means that systems will end up accidentally depending on Linux-specific behaviour. Which means that if we ever change that behaviour, those systems will break.

So far we've resisted calls for Linux to provide a contract to the firmware in the way that Windows does, simply because there's been no need to - we can just implement the same contract as Windows. How are we going to manage this on ARM? The worst case scenario is that a system is tested against, say, Linux 3.19 and works fine. We make a change in 3.21 that breaks this system, but nobody notices at the time. Another system is tested against 3.21 and works fine. A few months later somebody finally notices that 3.21 broke their system and the change gets reverted, but oh no! Reverting it breaks the other system. What do we do now? The systems aren't telling us which behaviour they expect, so we're left with the prospect of adding machine-specific quirks. This isn't scalable.

Supporting ACPI on ARM means developing a sense of discipline around ACPI development that we simply haven't had so far. If we want to avoid breaking systems we have two options:

1) Commit to never modifying the ACPI behaviour of Linux.
2) Exposing an interface that indicates which well-defined ACPI behaviour a specific kernel implements, and bumping that whenever an incompatible change is made. Backward compatibility paths will be required if firmware only supports an older interface.

(1) is unlikely to be practical, but (2) isn't a great deal easier. Somebody is going to need to take responsibility for tracking ACPI behaviour and incrementing the exported interface whenever it changes, and we need to know who that's going to be before any of these systems start shipping. The alternative is a sea of ARM devices that only run specific kernel versions, which is exactly the scenario that ACPI was supposed to be fixing.

[1] Defined by implementation, not defined by specification
[2] Windows may change behaviour between versions, but always adds a new _OSI string when it does so. It can then modify its behaviour depending on whether the firmware knows about later versions of Windows.
Tuesday, September 16th, 2014 14:03
I come bearing two useful utilities that each help you do things with the web from the command line:

* jq is a wonderful utility for working with JSON data, similar to how you can use awk for line-by-line text
* pup helps you parse HTML as a utility, inspired by jq
Tuesday, September 16th, 2014 14:00
The moral of today is that checking my school email always results in a disaster. Being laid low by some random feedback is always a possibility, but it's been happening every time I check the blasted inbox these days.

Shape up or ship out seems to be the message. How to shape up when I can barely function, though...?