(no subject)
(I would text more people individually, but I haven't transferred over phone numbers to my new phone yet. Whoops.)
We are off the Internets for 2009. Have a great holiday season, and we’ll see you in 2010.
Eastern Bluebirds are rare and specialized in Ottawa. The grasslands south of the airport are one of the few places where we can still find them. In the southern states, though, they're ubiquitous year-round suburban birds. I present the above as evidence :-)
This for me is a case of "coulda been a contender." The bird backed by Christmas decorations makes for a unique and potentially beautiful picture, but that post kind of ruins it--and it's blown out, so I can't even dampen the contrast on it. I share this anyway, because it is at the very least interesting!
Come June, I'll be bringing my zoom lens to Virginia, and then to Outer Banks, in summer, for the first time. I look forward to getting pictures of male bluebirds in their vivid breeding dress, and many others besides.
We hired a new junior dev at work recently, which got me thinking about what pearls of wisdom* I have to impart to new programmers (not that anyone is asking, but maybe I can slip them into fortune cookies or something).
Some things to know as a programmer are general tips, like “if you don’t know what to do with a problem, throw a hash table at it”. Some are things about human fallibility, like “if you find you wrote a bug somewhere, look for where else you might have made the same mistake” and “if you make a change and then the system mysteriously stops working, it’s your fault, even if you don’t think there is any possible way your change could have broken things”. That kind of stuff will get you up to being a pretty decent midlevel programmer.
But when you master the basics and start getting into architecture work, I think the most important skill to learn is when not to do stuff.
If you’re not a programmer you probably don’t think this is that hard, but the thing is that programmers like to write code, which is why they’re programmers. Code is very cheap to produce, so there’s a constant temptation to write down whatever thing you think of. There’s also the Ozymandias thing — if you can write down anything you can think of it’s tempting to create something big and flashy (whether because you want to create a monument to your own awesomeness (a good sign of this is you name all the functions in the project after yourself) or because you genuinely want to help people by solving a big problem which includes the thing you were tasked to solve as a particular case).
Most of the failed (or, let’s say, partially successful) projects I’ve seen or been involved in over the years have suffered not due to lack of coding ability on the part of the people involved but due to excessive breadth of vision. The result is inevitably something that’s so heavy-weight none of the users of the system want to learn it, and also too heavy to change to fit their needs when it turns out they aren’t exactly as originally thought (or when their needs change over time). The best hope for survival with a project like this is to carve off a chunk into a standalone library that does a few things well, and just never touch it again and hope it never breaks, and do all the modifications with wrappers around the outside.
Of course, the flip side of all this is, sometimes it’s less work to do some work. Like, there’s this interview question which I’ve heard about but never actually seen, where the interviewer says “ok, draw me a house,” and if you draw a house you get a lecture about not asking for requirements before starting to build. The thing about this is, if you were going to build a real house, you’d be making some drawings and models of houses to show the person. Why? Because conversation is all well and good, but if you want to decide if a house is going to suit you, you want a house to look at. Furthermore, drawing houses (unlike building them) is extremely cheap — if they look at your house and say “that house sucks, my football team won’t have anyplace to sleep, let alone practice” you can redraw a new house that fits those requirements in about as much time as it took them to express them.
The importance of this depends on what kind of programming you do, of course, but in my line of work (Web-based business-driven stuff), maintainability and change are so important, and the cost of deploying new features is so small, that the goal is really to do as little work as possible. And sitting in meetings hashing out requirements is work, and, worse yet, it’s work that is likely to be wasted since as soon as the customer sees the actual product they will see all the reasons why their original ideas were dumb and wrong.
(N.B.: Hardly any of these gripes apply to my current project at work.)
This is probably one of those things that seems trivial when labelled, but it’s interesting to me because, despite knowing that it’s an issue, I keep doing it — I’ll see something that needs to be fixed and start fixing it and before I know it I have a massively overgeneralized solution that touches a dozen files. Then I notice and delete it all and make the dumb three-line fix instead.
It’s also interesting to me in that it seems to drift into other fields as well. Like, there’s that famous quote by the Little Prince guy about perfection (in writing, I assume) being about taking away, not adding. Or the many-variants joke about the sculptor who says he works by taking the stone and cutting away everything that doesn’t look like a horse. That said, the sculpture one is obviously a joke — I do wonder how much of an issue this is for fields that do have a material cost, since that provides a natural counterbalance to the tendency towards overenthusiasm. I think a lot of the deal here is that code is free to write (except your time), and prose/poetry writing is much the same way — if authors had to pay by the word, I imagine there’d be fewer unnecessary adjectives.
Thinking it over, I don’t know what I’d actually distill out of all this to tell somebody if they asked for advice. I guess I’ll just slack off as much as possible and hope they get the idea.
*It didn’t occur to me until recently how apt this metaphor is. They’re formed over the life of somebody by slow accumulation, usually in response to an irritatant, and are totally useless to the one who creates them since they have plenty more of it where that came from.
I tried to look up the etymology of the phrase to see how intentional this was but didn’t have any luck — just some people claiming it was based off “casting pearls before swine” which seems a little unlikely to me.
I also temporarily forget how vital it is for me to get sunlight. A two-hour hike today at Mud Lake made all the difference in my mood--even though there were only a paltry two bird species for me to watch. (High point of the day: having a white-breasted nuthatch land in my hand for sunflower seed. Prickly claws! :-O He even out-braved the chickadees, not merely taking a seed and flying away, but sitting there in my hand while he cracked and ate it.) The tricky thing about activities that treat clinical depression is that the effect is usually delayed. I don't get out there and within a matter of minutes start feeling better about life. The full effect usually only kicks in about an hour after the activity is over.
Even though I'm not pagan, nor Christian enough to celebrate Christmas in any coherent way, I nevertheless celebrate winter solstice in a personal, biological way. The worst is (or soon will be) over. From here on, the days get longer, the sunlight gets stronger, and my psychological resilience ratchets back up along with it.
ETA: Oh, and giving me a headache.
It must be a nice privilege to tell someone to overlook the oppressive elements of a program, because it was helpful to you.—Beverly Guy-Sheftall, quoted in "The F Word: On Feminism, Being an Ally & Social Justice" by Dumi Lewis.
As you know, Bob, I’m mildly obsessed with how to display data visually. Displaying data well is tough, especially when you’re talking about complex data. When I have to design a chart for some crazy-ass set of data, I often look at how others have done the same thing, and I keep tabs on blogs that cover chart-making in detail. I also like to collect examples of how to do it badly.
Thankfully, as I’ve mentioned before, the DoD is a great source of bad charts.
Look at that thing! Click on it and behold it in its full splendor! Some of the data is color-coded, but there are multiple secondary labels per color. Those secondary labels are on top of the chart, partially obscuring words and the connecting lines. The light green is unreadable, and the light blue isn’t much better. Most of the nodes in this graph are blocks of text, except when they’re not. I know this is a working draft, and I know the chart’s designers are trying to convey a lot of information, but good grief this is bad.
(via TPM)
If I linked to every incident of an author being crazy on the Internet over a bad review, I’d be here all day, but this one is a perfect shining diamond of such crazy. It’s the platonic ideal of an author going insane over a bad review, and will be studied by future cockroach scholars as they comb through our lost civilization trying to understand why we spent so much time on the Internet being stupid.
At Amazon, L.B. Taylor gave a bad review of “Electra Galaxy’s Mr. Intersellar Feller”, an SF romance by Candace Sams. The first comment, by “Niteflyr One”, accuses Taylor of hating the author. Niteflyr One, of course, is the author Candace Sams.
What’s that? A sock puppet right out of the gate? That’s a classic move, the Queen’s Gambit of authors responding to bad reviews. But it gets better! She claims her response was just a social experiment! (“Here’s a run-through of the events of this experiment, for that’s what all this was ‘really’ about.”) The lurkers support her in email! (“For some time now, I’ve been getting messages from more equitable reviewers, agents and editors that this person (Taylor) was ‘known’ in the industry for having some very angry, almost hateful opinions…”) Godwin’s law in action! (“I’d liken their collective attitude to Gestapo tactics, but I don’t think anyone who left comments on the list on behalf of Taylor would know what I was talking about, let alone be able to spell it.”) I don’t actually mind the bad review! (“For those of you who don’t know…I was a police officer for almost ten years. I’ve been called things in languages from all over the world. Taylor and her webspinners hardly bother me.”) All of you people responding negatively are in on it and are out to get me! (“She responded just as I thought one of these nasty little reviewers would…she ran, hid and called out her little army of nothing-better-to-do malcontents.”)
And that’s only one comment! She ran through the whole Kubler-Rossian spectrum of wankery in one sitting.
What’s icing on the cake is her awesome claims. Thrill! to her claim that editors are responsible for the bad books, not authors. (I blame Joss Whedon fans for this defense.) Exclaim! when you realize that she points to Harriet Klausner as a model reviewer, the same Harriet Klausner whose reviews are typically nothing more than plot summaries that may or may not get the plot points right. Marvel! that she thinks that people who post bad reviews on Amazon then buy it in ebook format to sell illegally. Swoon! as she sneers how a sneer is the weapon of the weak.
But none of that can hold a candle to her calling in the Internet FBI. Seriously!
Candace Sams gives up around page 18, but who knows? Maybe she’ll be back!
James Chartrand is a well-known blogger in certain circles through his articles for Copyblogger and his web design and copyrighting company, Men With Pens. Yesterday James admitted on Copyblogger that he’s really a she. She’d adopted a male pen name to make it easier to land freelancing jobs.
You know the punchline, of course: it worked.
There was no haggling. There were compliments, there was respect. Clients hired me quickly, and when they received their work, they liked it just as quickly. There were fewer requests for revisions — often none at all.
Customer satisfaction shot through the roof. So did my pay rate.
This shouldn’t surprise you. Sexism, both overt and subtle, is still rampant. Women make less money than men for the same jobs. One recent study showed that having blind auditions for orchestras, where the reviewers didn’t see the candidate and did not know the candidate’s name, increased womens’ chances in the first round by 50%. For the final rounds? 300%.
Many women writers have used a male name or obscured their gender by using their initials. It’s especially widespread in science fiction and fantasy, where Andre Norton, C.L. Moore, C.J. Cherryh, James Tiptree, Jr., and J. K. Rowling all used a variant on their name so no one would know they were women.
James has taken a lot of heat for this. Not all of it has been from people who want to deny the sexism her experience highlights. Jessica Wakeman, writing at The Frisky, rails against James deciding to “pass” and calling her an Uncle Tom for not fighting the sexism directly, and in doing so shows that she and the point of Chartrand’s experience aren’t even in the same zip code. Wakeman deliberately co-opts racial terms to make her point, which is troubling to begin with, but her point makes no sense. “Chartrand just contributed to the stereotype that male copywriters are more talented than women copywriters,” she writes, which is the exact opposite of what Chartrand has done. Like James Tiptree, Jr., Chartrand ‘fessing up to being female shows that females are indeed as talented as male ones. Like the blind audition study, Chartrand has shown the unspoken gender bias that’s going on every day.
If you’re going to be down on James Chartrand, be down on the persona she created. She not only used a masculine name, she went out of her way to sound as super-manly as possible. As Amanda Hess pointed out, Chartrand’s company is named “Men With Pens”. Chartrand described her lone female employee, Taylor Lindstrom, as “the team’s rogue woman who wowed us until our desire for her talents exceeded our desire for a good ol’ boys club.” She illustrated her blog posts with pictures of naked ladies, and chided mommy bloggers to give more weight to male voices. It’s as if every morning before writing she tied a red bandanna around her head, nodded sagely to her poster of Arnold Schwarzenegger, and downed her usual breakfast of whiskey and cigars. She responded to the sexism she was experiencing by creating a sexist persona.
That’s the real problem with James Chartrand’s story. It’s both a good anecdote about the sexism women experience and a cautionary tale about a woman who decided she had to be a man’s man to get ahead. I’m not disappointed that James Chartrand chose not to fight the sexism she experienced. I’m disappointed she decided to perpetuate it herself.
Ingredients:
Have ready:
Note regarding the seasoning: You could whip up your own Mexican spice mix, but the Old El Paso mix is just about perfect, IMHO, and is findable in most supermarkets. However, check the ingredients. Some time in the past year they snuck MSG (yeast extract, specifically) into their non-low-salt taco seasoning. They may eventually adulterate this one too. The MSG messes up the flavor, gives it a cloying quality.
On to the recipe:
Saute the minced chilis for a few minutes in a small amount of oil over medium heat. Add the ground beef and brown and separate it. Drain fat if desired. Pour into a medium saucepan, add the refried beans and seasoning and mix thoroughly. Leave to simmer on low heat (2-3), stirring occasionally.
Start oven preheating to 350F.
In another skillet, melt and spread a pat of butter over medium heat. Soften a tortilla in the butter for 5-10 seconds on each side. Repeat process for each tortilla (adding more butter each time), and stack softened tortillas on a plate. (After the first few, turn heat down to 4.)
For each burrito: place a softened tortilla on plate and coat with a thin layer of enchilada sauce (about one tablespoonful). Spoon a generous amount of beef&bean mixture into the middle of the tortilla, leaving enough space around the edges to fold and roll it afterwards. Sprinkle with diced onions, wrap up (folding ends in) and place in a non-stick (or foil-lined) baking pan. The beef&beans should be enough to fill up to 10 large tortillas.
Coat with more enchilada sauce (at least another tablespoonful per burrito), then sprinkle generously with shredded cheese. Cover pan(s) with tinfoil and bake for 10 minutes.
Serve with chopped tomatoes, shredded lettuce, salsas and hot sauces. (I like mine topped with Herdez green sauce). Fresh guacamole and/or sour cream optional. Serves 5-7. Reheats well (~1 minute in microwave.)
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 |