Back from the Grave

This blog has been offline for a couple months now on account of a host transfer.  Restoring WP from a backup is remarkably easy, but it nonetheless requires some directed attention, and I have been keeping myself plenty busy elsewhere.

There is a lot I have wanted to write about, but I encountered a major disruption last summer: I bought a house.  Six months later, I am still dealing with the transition – moving is something I am admittedly terrible at, so there are still boxes lying around the house that need to be unpacked.  That’s also been a major deterrent to learning new technologies, as my home doesn’t yet feel like the oasis to foster appropriate learning just yet.  But we’re getting close!

I actually have a lot I’d like to write about and explore in the coming months:

  • After attending ComicCon this summer I am interested in including more geek culture discussions in this blog.  ComicCon was amazing fun and introduced me to so many top-notch comic books – I fell back in love with the medium after the convention wrapped up.  There’s a lot of interesting stuff to chew over here: ComicCon itself was rife with major gender issues, despite strong attendance by women, and yet I’ve discovered some of the most progressive and groundbreaking storytelling and characters in the comics I learned about through ComicCon panels.  So there is a lot of fun stuff to unpack here; in the meantime, there’s Tiny Heroes, my good friend Mindy’s blog of a similar nature.
  • I am officially a Burner after attending Burning Man for the first time in late summer 2010.  Since I had just moved, my electronics work was limited to some simple EL wire soldering, but I have had a soldering iron and other hobby electronics components for a couple years now without having used them.  Getting over my fear of initially breaking into this stuff was really satisfying.  I do not think I have a passion for hobby electronics on its own, but I love to think about the things that I am capable of making for next year and for other aspects of my life now that I am digging into this new skillset.  So, more Maker-culture style stuff to come!
  • I finally upgraded our workplace install of Redmine recently and have been having fun digging into its backend (a necessity since the upgrade was not without its share of issues) as well as exploring the capabilities of the platform overall.  We have been using a very basic configuration for two years now and I’ve been brainstorming ways to utilize the system’s many configuration settings and plugin options to make Redmine work better for us.
  • I finally finished a yearlong project at work involving internationalization, QA, and version control, among other beasts. I am thrilled to be able to move on to new projects!  The work leaves us with more reliable systems, a better product for our customers and an easier way to identify and fix bugs on international sites and keep all servers up-to-date. Yeah!
  • I committed to developing the android app for my wonderful friends at Baby Ketten Karaoke after being jazzed by the Android talk at Open Source Bridge (way back in June).  I installed the SDK in Eclipse, nodded knowingly as the VM took several minutes to boot, cooed with delight at the Android emulator on my desktop, and shook my head knowingly when the inevitable memory allocation issues arose.  It does not take long to re-acquaint oneself with the achy joints of Eclipse development (quite a steep learning curve to utilize the software well) and I was reminded of the joys of scripting languages.  Then – you guessed it! – I bought my house and haven’t returned to the project yet.  This is also to my own detriment, as I would most likely be one of the app’s most faithful users.
  • That said, my darling G1 is on its last legs.  In the name of financial restraint, I am not replacing it until I have encountered a “crash count” of 500 (any Android “This application is not responding” or “This application has stopped responding” errors).  I actually am on my second iteration of this count as I tried to do the first tally on the phone itself and that went wrong pretty quickly.  So now there is a post-it on the back of the phone where I keep a tally; I’m probably still missing about 20% of the errors because I don’t have a pen nearby when I’m trying to SMS my mom and Maps crashes (this happens – a lot).  Yes, I could do a factory reset on the phone, but that would delay my being able to replace it via this game in the name of financial austerity, no?
  • I am overdue to write an entry about the coder’s sleeping schedule and its relationship to coder culture, especially after being diagnosed with Idiopathic Hypersomnia this last summer.  (The good news about the diagnosis & corresponding treatment: suddenly I feel awake during the day on a consistent basis! So much more room to accomplish things.)
  • I re-installed the operating system on my personal laptop, now entering its fourth year of life, in order to drag one more year out of it before replacing it.  I refuse to buy a new laptop until 1TB hard drives become standard issue (i.e. not just for the heavyweight machines – I like my laptops midsized.)  Re-installing an operating system is not particularly geeky, but this install managed to be rife with disaster, lasting upwards of 2 days (main bottleneck: backing up my data as the OS was gasping for life).  I owe a lot of gratitude to the Ubuntu boot disk (even though my personal computer is a Windows install – don’t hate!  I do all my boring, non-technical stuff on this machine.)  I’m really pleased to see how much the reinstall improved system performance, but I’ve been reminded by Code N Sploders that the constant noise made by this machine is not normal, and the speakers are totally failing (they let out a dreadful howl when bringing the computer out of sleep mode).

I’m also very excited about moving to my new host, as my host is not a company but my good friend Andrew.  My last host was terrible for many reasons, but was a good fit for the initial needs I had for my domain (in particular: getting email and a very basic website set up).  I’m really excited about having Andrew as a host because it means I won’t be restricted to a subset of technologies for hosting the infinite queue of webapps and personal tools that I want to develop (all created to serve selfish means; my motivation for personal projects is still solely rooted in whimsy and personal utility.)

In conclusion: the version of WordPress I was using on my old host was getting very old, so I’m really enjoying the improvements I’m seeing on the newest version.  Looks like it will make investing my time in this blog a much more enjoyable task.  First task: install plugins to scare away comment spammers.

Cheers and welcome to 2011!

Posted in Projects | 1 Comment

A Short Meditation on Paralysis

Note – I wrote this entry about a week ago, but since my current (terrible) webhost enjoys seizing up every time I’m editing a WordPress post, I think I got distracted by sites with actual working webservers and forgot to publish. Here it is now; new webhost in a couple months.

Since writing about Code Anthem in my last post, I’ve been catching up on a lot of posts that I’ve missed (almost all of them outstandingly good), and I’ve found myself sticking on this issue of a “good programmer” and what being able to write good code means. When I read, I agree on the “bad” programmer, management, etc. counts – but I don’t think that understanding those problems automatically makes one a quality coder, and I still wonder about where I legitimately lie on the spectrum.

See, the funny thing is that in the year that I’ve been doing team lead level work, I’ve actually been writing significantly less code than when I occupied a more junior position. I’m entrenched in a lot of “legacy” – not just code, but systems, processes, etc, and it’s actually been a great fit for developing my skills and confidence, especially with the full support of our boss to rip out all legacy and start making improvements. Unfortunately, the system-level improvements need to be ironed out before the code can be, and so goes my focus. I’ve also being doing a good amount of front-end development on top of all this legacy cleanup, but still very little backend work.

Anyhow, this week my frontend work required that I write a simple CGI script from scratch. A really easy coding task, but when I was only about 10 lines in, my good friend Paralysis spoke up: “This can’t be the best way to do this.” Which, for a short moment, stopped me completely in my tracks.

Here’s how this ties back to my internal discussions while reading Code Anthem: descriptively, I should be a good coder; I’m interested in implementing best practices and I generally loathe the “Let’s just get it working” tactic. I have had experience with the coders that Amber mentions – the ones that crank something out quickly sans documentation and leave the pain of maintenance and making sense of everything to the poor suckers that come after them. I’ve been in environments where the “get it working, fast” attitude is rewarded and it’s driven me crazy. But I feel like what I have to offer as a contrast – a strong and inflexible orientation towards quality – can be equally problematic in the most extreme of circumstances.

Without a doubt, the phenomenon of Paralysis has a lot to do with confidence (or lack thereof: fear of criticism). My own gauge of quality works in antagonistic concert with my fear of coming under the scrutiny of others’ standards. Confidence isn’t the only contributor though – a lot of this has to do with simply being realistic and self-aware – knowing that one’s knowledge probably isn’t deep or wide enough to come up with the best solution for any particular programming problem in a finite period of time. Another contributor to Paralysis is empathy: being so acquainted with the pain of maintaining bad code, I cringe at the thought of contributing something that might add to the long-problem in any way, even if it adequately resolves a short-term problem.

Paralysis ruled my first two years in industry. I could tell that my superiors (at least in my first job) didn’t think I was a bad programmer, but they also didn’t understand why I couldn’t get anything done. To my credit, I had a pathetically small amount of mentoring and training for a job I wasn’t qualified for on paper at the time (note: hiring college grads in CS because they are smart – even if they immediately lack the practical parts of the skillset – is admirable, but only if you plan on taking the time to train and mentor those grads once they’ve been hired on – otherwise they’ll flounder for a lot longer than is necessary). But the other major contributor to my lack of productivity was my pathetic dearth of confidence combined with a knowledge that what I was doing wasn’t going to be “the best”.

In the last two years I’ve been able to crawl out of the Paralysis hole a bit. The key is jumping in and writing something and getting it to work – and then refactoring and fixing it up immediately, if you aren’t already doing it as you go. Then clean up and amend the documentation (which I always write excessive amounts of as part of my code, but not in the most organized ways.) This is completely different from the coders who get their first solution working and then move on to the next problem, with a horde of maintenance issues just waiting in the wings. But taking that plunge into “just start writing!” can still be so difficult! In the day I spent on this script, I felt like I spent a couple hours standing on the ledge, looking down at the problem, convinced that whatever I was going to write was going to suck. Then I took the plunge, and big surprise, the fixes came to me as I was writing. As a result, the code I had at the end of the day wasn’t perfect, but it was a lot better and more tightly written than what I had imagined it would be at the start of the day.

I have a coworker who deals with his own version of this, and being an third party to his own paralysis struggle has been really insightful. It’s often really obvious to me when he’s sweating the small stuff, and I can apply this back to the times where I’ve been doing it myself. Learning to distinguish between the problems that do deserve my perfectionist’s hand and those where I’d be better off just applying a band-aid has been really beneficial, even if applying the band-aid is never optimal. At some point, a less-than-ideal solution is preferrable to spending infinite time scheming over the perfect solution and, as a result, never producing anything.

That balance is still really hard to find, though. I think learning to manage the Paralysis beast is going to be one of the struggles of my working life, but it’s also an area where I’ve made definite progress. In my current workplace it bites me for two reasons: 1) I work for a Perl shop and think in a far more verbose way than Perl is usually intended; as a result, I know almost everything I write can probably be expressed more tersely and (arguably) elegantly than initially comes to mind; and 2) Our process hasn’t evolved enough to support code reviews (which I love), so it’s harder to drop “I know this can be expressed more tersely” when I know that my code may not be viewed by anybody else for awhile. The pressure I put on myself to get it right on the first try is a lot higher.

To a degree, though, working with a lot of legacy code has been really good for coping with Paralysis. Whatever I replace with my own stuff, however imperfect, is still a vast improvement on what was there before, and this has allowed me to spend less time worrying and more time producing. But I still find myself a bit stuck whenever I’m writing something completely new (like I did this week), or I’m making fixes on a large enough level that I have to sit back and make some serious design decisions before moving forward.

In general, I think the humility, self-awareness, and perfectionism that guide Paralysis are qualities that manifest themselves in some degree (perhaps using less loaded descriptive terms) in the mythical “good programmer”. But the mythical “good programmer” is able to utilize the best of these qualities while keeping the negative aspects in check, and is able to move forward on a problem after the proper amount of consideration and at the proper time. That’s something I’m still working on, but it’s heartening to see that I’m doing a lot better than I was at this point a few years ago.

Posted in Anecdotes | Tagged , , , | Leave a comment

favorite tech blogs: Code Anthem

I’ll be honest – I don’t read a lot of tech blogs. I’m not big on the newest gadget, I still don’t know how i feel about the DailyWTF, and I have very little interest in the day-to-day activities of big-name tech companies. Too many tech blogs exude a lot of the elitism and machismo that make me feel more like an alien in tech culture than a participant. There are some exceptions to this that I’d like to read more, like the excellent Silcon Florist, which follows the Portland tech industry. But as I’m just starting to engage myself with building and strengthening the Portland tech community on a business level, I revisit it less than I should.

There are a couple tech blogs that really draw me in, though, and I love them because reading them makes me feel strongly in alignment with my identity as a technologist. These blogs can be especially helpful to read on days where I need to write some code and can’t get my head in the right space, or the (blessedly infrequent, lately) times where I can’t remember why I ever liked programming in the first place.

I covered the first amazing tech blog, Geek Feminism, in this post, and I think I’ve linked back to it in almost every entry I’ve written since then.

The newest blog to earn my endless praise is Code Anthem.

I actually found Code Anthem through Geek Feminism. GF wrote a small entry on why requiring open source contributions from a job candidate can be sexist, with a post from Code Anthem as the starter material for the discussion: “Don’t Judge a Developer By Open Source”. This topic really interests me – because I’m interested in the open source ethos, increasingly use open source technologies, and have an interest in open source development – but the environment still seems incredibly hostile to me, with a high barrier to entry. As a result, I am still in the “incubation” stage of doing open source work, and it sucks to know that I could be falsely written off as a crappy coder because of my lack of involvement thus far.

The Open Source post led me to Code Anthem’s How to Hire Crappy Programmers, and since reading that post I’ve been hooked.

See, here’s why Code Anthem is awesome: since I started working in industry, I’ve felt like there’s an odd mismatch between the way most companies hire developers and the way developers actually evaluate their own skillsets and otherwise behave. When I was in college, trying to port the skills I was learning while acquiring my Bachelor’s in Computer Science to the job postings that appeared on our department mailing list was basically impossible. What was especially shocking to me about most of these companies submitting the postings was that the way they were trying to market themselves to applicants made me, as a programmer, not want to work with them. Even though I’ve struggled with confidence throughout my lifetime as a programmer, I also know enough about my own smarts to see these job postings and say “if this is the blunt hammer they’re going to apply to resume screening, they’re probably going to filter out a lot of decent applicants (like myself).” Unfortunately, this seems to be what 98% of job postings, at least in Oregon, look like. I’ve ended up coping with this weird reality in two ways: one, I’ve gotten comfortable applying for jobs where I’m not qualified “on paper”, because I’ve come to accept that hardly anybody else applying for these positions can be, either. Two, I’ve written this all off as a symptom of an immature industry that has adopted a stupid standard practice because it hasn’t been around long enough to have an actual tested and established best practice in place.

What a treat to see the How to Hire Crappy Programmers post addressing just this issue. And to see the wide-ranging consensus in the comments! I especially loved the folks who reported on the job postings that require x number of years in a technology that has existed for less than x years. This stuff really happens, and I’ve honestly been surprised to not see anybody ranting about it until the comments section of that entry.

With that personal introduction out of the way, Code Anthem is all about this issue of programming talent and how we evaluate it. How do we hire for it? What is a programmer worth? How can companies effectively market themselves to good programmers, and in turn, how can they (fairly) determine that applicants are indeed qualified? These are really difficult questions precisely because we’re in such an immature industry, but also because this industry is rife with really unique challenges that really complicate the evaluation of an excellent coder (for instance, I’m in the camp that an excellent coder who’s also an asshole isn’t actually an excellent coder, because they can’t work with people – others would disagree).

To my knowledge, Joel on Software has been the go-to for this kind of input in the past, but I ran into a problem a few years ago when reading Joel while doing interview training at Google. His writing seemed thoroughly immersed in programming culture as it currently exists and not programming culture as it could / should be (to start out with, more diverse), and as a result a lot of what I read seemed incredibly male-centric and elitist. I consider myself a conscientious and hopefully constantly-improving programmer – I at least bring some unique strengths to my position – but I didn’t think Joel was talking about people like me when he spoke about good programmers (not just in terms of skillset, but also the social experiences that color one’s identity as a programmer). So I take a lot of his advice with a grain of salt – I think it’s really solid, but a lot of the time I wonder if it’s also perpetuating a lot of what’s wrong with the technological community, not in terms of code quality but in terms of social dynamics and diversity – and those latter two do have an ultimate impact on code and product quality.

I’ll admit some of my preference for Code Anthem is probably based on sharing the same gender identity as Amber, its author. I immediately don’t feel left out of the conversation if the person starting this discussion is a woman – because I know (and she has proven, with the open source post and others) that she’s considering a lot of the nuances which men / privileged groups in the field often overlook or don’t have to think about. This doesn’t seem to be to the detriment of the men reading the blog, either, so in my book everybody wins. Gender dynamics aside, I feel like Code Anthem is different “in a good way” because the blog focuses on the infrastructure / ecosystem of the tech industry as the source of poor-quality work more than the programmers themselves. Most of what I’ve read before this has focused disproportionately on the poor-quality programmers. Sure, bad coders are part of the puzzle here, but focusing solely on them won’t solve the overl

The hyper-focus on bad programmers is problematic in a couple of ways. First, a subset of good coders will read these entries and falsely evaluate themselves as a “bad coder” – simply due to their personalities or social conditioning (read: a lot of women). I know I struggle with Impostor Syndrome and until I became lead on my current team I wondered if I was a “bad coder” myself anytime I read a post lamenting their existence. Then there’s the second problem: the “bad coders” themselves don’t realize that they’re bad. They read along with these posts about bad coders and associate themselves with the “good coders’” group and therefore take none of the content to heart (see the Dunning-Kruger effect.) So in my mind, it’s time to stop focusing on the issue of bad coders and instead focus on the entire ecosystem. Code Anthem keeps doing this, entry after entry, and I can tell I love it because I then want to pass on / retweet each and every entry, to technologists and non-technologists alike.

Here are a few posts that I’ve read in the last few days and finally inspired me to post here. I swear, every entry in this blog is rock-solid and addresses one of these tricky ecosystem issues that really merit more attention.

Take a peek at:

Death By Recruiters – why recruiters are generally bad for industry

How to Get a (Programmer) Job In This Economy – I actually went through almost exactly this same thing two years ago, at the start of the recession

Just Technical Enough to Be Dangerous – how to handle the people who over-evaluate their skills and do risky things because of it (been there)

256x Better than a Resume – the reasons why the standard criteria provided by resumes aren’t beneficial for finding good programmers, and some exploration of, “Well, what’s the good criteria, then?” I agree on the “programmer test” route as part of the solution even though the idea of having to draft one up for my own company at some point petrifies me.

Go read! I love Code Anthem because I am passionate seeing these inefficiencies in industry go away. They make the entire practice of hiring and evaluating programmers a lot more painful and unwelcoming than it needs to be. It’s great to see a blog that’s also calling these things out for the crap they are, and discussing good alternatives. The more this discussion is disseminated, the better for any programmer who wants to see a difference.

Posted in Tech Blogs I Love | Tagged , , , | 3 Comments

Intel’s “Generations” Ad

When I do my HTML and css work, I often have episodes of The Daily Show and The Colbert Report streaming on my laptop. Typically the design has already been done for me, so putting it into code doesn’t require a lot of active thought – perfect chance to catch up on last night’s episodes. I’m a fan of both shows, but since Hulu stopped co-streaming them and they moved exclusively back to Comedy Central’s domain, watching the episodes online has become increasingly painful. Core problem? Comedy Central’s horrible online advertising. The ad content is so male-centric that I feel like Comedy Central is telling me to stop watching their programs, even though The Daily Show and the Colbert Report, while suffering from some of the same problems as most of the entertainment industry, aren’t particularly gendered shows. I understand market demographics, but it’s almost as if, in their choice of advertising, the network is operating like women don’t understand humor and therefore have no interest in Comedy Central’s content.

I remember the first week after switching from Hulu back to the Comedy-Central hosted streaming that I was bombarded with tacky Axe ads. The one that repelled me the most was the Clean Your Balls ad. Axe has taken this line with their advertising from the get-go, and has continued to cross new lines over the years. I suppose that’s been a successful tactic because it’s gotten them brand recognition (I’ve bought Axe products as a joke for male friends and family a couple times just because the ads are so ridiculous: “Let’s see the ladies throw themselves at you.”) That said, their ads have left no ambiguity about their intended audience, which sends the message to me as a woman that even if I were capable of appreciating the humor, I’m not welcome. And I am capable of appreciating the humor – I can be as immature as the best of them about sexual humor, from double entendres to taking statements out of context to inadvertent phallic / vulvic imagery – but if I’m being sent the message that “You, as a woman, aren’t supposed to be in on the joke” from the get-go, it stops being funny right there. That’s pretty much the gist of the Comedy Central’s streaming ads. There are exceptions, but the onslaught of the gendered stuff, when it comes on (if I’m watching a week’s worth of episodes at once, they’ll typically all have the same sponsor and set of ads), is so strong that it’s hard to bear.

I’ve been seeing a lot of Intel ads on both The Daily Show and Comedy Central’s streams lately, and for the most part their ads are gender-inclusive, whimsical, and paint the company as a futuristic innovator, where robots and 3D creatures work amongst the humans (two examples.) Among those ads, though, is the “Generations” ad, which takes an entirely different tone. Here it is:

On its own, an ad with two stereotypical geeks getting rhapsodic over the latest technology seems totally harmless, but it’s the clearly intentional placement of a woman walking by in the background in each case that started to bother me. I remember my reaction the first time watching the ad – the consistent placement of the woman struck so oddly that I thought I hadn’t watched closely enough and she must have been placed there to react to the guys in a “your enthusiasm is abnormal” way – because why else would they put her there every time, moving exactly the same way, except to provide some sort of contrast? It turns out, she’s not participating at all, whether positively or negatively, and to me this is even worse than her portraying the stereotypical “I don’t understand you geeks” that I was obviously expecting the first time through.

Grabbing this video off of YouTube, I noticed just in the first few pages of comments that this gender weirdness was a huge part of the discussion. And the comments affirmed all the problematic societal assumptions and attitudes that this ad only served to reinforce:

Commenter inflorire captures my sentiments pretty well:

Does anybody else find it weird/annoying that the little sister/girl/hot girl is always walking behind the guys who are talking about TECH STUFF. It’s like the dudes are involved in all the advancements in technology while the girls just hang around in the background passively absorbing the change.. I liked the other commercials alright, but this bugged me.

But these are YouTube comments, and Kohltonc responds to inflorire in a way that reaffirms exactly why ads like this are such a problem:

nahh its like your two typical nerdy guys who are more interested in technology than girls lol

And holmap009 inadvertently reveals the only reason these women were probably even included:

the girl grows up with them……..and get’s hotter!

To round out how the comments summed up everything for me, here’s LaurLive:

This video relates well to all of us geeks out here.

All of us geeks? Because I’m a geek, and I was getting a strong “THIS IS NOT YOU” vibe from the ad (see also: any incidents in the tech community where a guy tries to make a joke by calling on a shared experience that he does not realize reflects only a subset of the community – something that usually says “we’re all dudes here” when we, in fact, are not). I suspect a lot of female geeks – and probably some male geeks, too – would feel the same when watching this. I’m sure not all – some probably saw no issue with it or did relate based on the stereotyped portrayal – but if you have the ad on in the background often enough, like I have lately, it just gets to be too much. Thus this blog post.

Intel has another recent ad with two stereotypically geeky males that I can actually relate to a lot and really love. There are no women in the ad, but that’s not a problem here because the message of the ad isn’t gendered. It’s one of those cases where lack of portrayal leaves room for possibility, versus “Generations” where the women are merely background scenery for the shared experience of geeky friends.

Problematic media, like “Generations”, isn’t unique to Intel and certainly isn’t unique to advertising, which as a rule seems to get great pleasure out of grabbing hold of unpleasant stereotypes in character portrayals and running wild with them. I actually get a huge kick out of analyzing the enormous societal problems that seep into pretty much all of the entertainment we ingest (s.e. smith and my good friend Mindy are two favorites to read for this kind of critical analysis). But an ad like “Generations”, which portrays a major part of my own identity in a way that actively excludes me, stops being entertaining food for thought and really starts to piss me off, especially after the nth run.

A small postscript – these ads heavily rely on the fictional experiences of Intel employees as a storytelling device. When I think “Intel employees” I think about my fellow Code-N-Sploder Sarah Sharp, who does Linux kernel work for the company. She’s a classic example of how interesting and well-rounded geeks can be, and as a real-life example she would fit the “our employees are doing great, geeky stuff” theme of these ads. So, lucky for me, I have a real-life example of what an Intel technologist (and by proxy, any modern technologist) looks like, but for anybody who doesn’t spend their days reading Geek Feminism, and trying to surround themselves with these sort of awesome people, they’re absorbing a far more problematic portrayal.

Posted in The Opiner | Tagged , , , | Leave a comment

Open Source Bridge 2010: Day Four: Family Fun Finale

Well, now that I’ve had over a full day to sleep and veg after the conclusion of Open Source Bridge, I’m feeling a bit more like my normal, well-rested-but-hypersomnolent self again. I felt like such a zombie at the end of the conference that it seemed worthwhile to wait a bit until writing my entry on the final day, even though there is less to report on, in general. How anybody was able to hop from the art museum to Beer and Blog after everything wrapped up is really beyond me.

So, Friday was the unconference day, and this year I was actually able to really participate in it and enjoy it – last year a work crisis kept me from attending more than one talk before going home and crashing.

One of the things I meditated on during the unconference was the larger theme of building a community that ran throughout the entire event; although the conference has a strong local undercurrent, there were plenty of out-of-towners to make the entire conference attendance a separate community from the Portland tech scene on its own. When I have spoken of the “warm fuzzies” I suppose I’m often reflecting on witnessing this community coming together and forming – as well as my own participation in it. By the fourth day of the conference, I think a certain familiarity had developed that allowed us to do things with the unconference that probably wouldn’t have worked on day one.

The big thing that struck me with the best of the unconference topics was the humor. Over the last few years, there have been a number of incidents at technical conferences where the speaker has tried to be humorous, or be edgy, in a way that falls on its face. In the case of most of these incidents, the humor or edginess had a sexist tone that had a marginalizing or alienating impact on female attendees / members of the community; women were sent the message “you are not a real member of this community” – even if this wasn’t the conscious intent of the speaker. When the speaker was confronted on their behavior, the response was, more often than not, disastrous – general defensiveness and an inability to apologize. I also noticed a common thread in these discussions related to our culture as programmers; the idea that being “politically correct” will force us into restraints that will stifle genuine expression and ultimately ruin the culture.

I think one of the hard parts for a lot of women in these discussions is that many of us are types who love heavy doses of inappropriateness; we’re sex-positive and we enjoy making fun out of the social systems that emerge in our society (especially among non-techies and businesspeople) as much as the next programmer. What the defensive types don’t understand is that we can’t enjoy this humor if we’re being sent the message that we’re not part of the intended audience. Even if we don’t feel excluded, most attempts at humor simply fall flat, especially in tech circles.

Being successfully funny without feeling like one is following a comedy-killing strict set of rules isn’t easy. The analytical programmer in me wants to identify a roadmap for humor, but countless comedians can tell you that’s just not how it happens; there’s a lot of trial and error involved. Last fall I regularly attended comedy nights at the Bagdad where this sort of trial and error was on regular display – and watching the learning process in stark display didn’t make the path to funniness any less murky. I do believe, though, that we can be funny, cutting-edge, and even downright inappropriate without making people feel bad, left out, or insulted. And when we are able to succeed at that, it’s pretty great. When nerd culture in particular succeeds, it’s downright awesome, and some of the best humor I could ask for.

That’s what Friday’s unconference was like for me, but I realize that by trying to distill that magic into a blog post, without the context of the community populating the hilarious talks I attended, I’m not going to capture most of what was so great. But I think it’s worth it to present examples of instances where things are inappropriate, vulgar, “making fun of”, etc. – but are also inclusive. The biggest thing I can draw from this is “know your community”, and I speak in far greater nuance than “programmers are overwhelmingly male and socially maladjusted” (which is how I think “know your community” was mis-interpreted in past sexist incidents). I think these instances of nerd humor really make the experience of being a programmer or technical type that much better, but it’s a subtle art that I am no-where near boiling down to the essentials.

My contribution to the unconference was “CatCamp”, which, as I mentioned on day three, started as a Twitter joke and ended up getting enough of a “no, that’s a good idea” from friends at the conference that I ended up making it a reality. When I look at some of the cat content on the Internet, I *do* often end up starting to have Big Thoughts about how the Internet has managed to create a kind of magic that would have otherwise never been possible, and I do think it could make for a good discussion – backed up with plenty of evidence, of course.

I ended up showing up a bit late to the unconference scheduling session (on account of morning snuggling with my own cat), so most of the spots were taken, but Kristen suggested doing it during the lunch hour and as soon as the suggestion was made I knew it was a perfect fit. I spent the morning before lunch populating the CatCamp wiki page with as many links as I could; then, after everybody had been given a chance to grab their food, we sat down in the conference room on the main floor and got to sharing. Kristen had prepared a lightning talk on Laugh Out Loud Cats, a favorite webcomic of hers starring hobo cats. (Now that I know about it, and being the owner of a hobo cat myself, I’ll have to start reading.) She even brought props, and it was a fun way to segue into the rest of the cat content.

I have to say – it was so much fun to share my favorite cat links with an (increasingly growing in numbers) room full of people. There were probably 20-30 of us by the time CatCamp wrapped up, and it was so much fun to see other tech types getting a kick out of the same cat-related things that I do. I was going to start talking about the things we covered, but I’d be repeating the wiki page, so I’ll just share the link to the page again. All in all, CatCamp was a resounding success, and made my lunch hour a lot of fun.

Before CatCamp and lunch, I’d attended a session on Webcomics – we went through the room and each gave a list of our favorite comics; unfortunately it doesn’t look like the list has made its way to the wiki yet. This was a nice complement to the humor of the afternoon: although humor is never a requirement for the medium, I think comics like Dinosaur Comics and xkcd capture some of the best things about nerd humor while still displaying some awareness of the problems with nerd culture (xkcd’s How It Works is a classic example.) Looking forward to getting re-immersed in some webcomics and comic culture in general before attending Comic Con in July…

The two post-lunch unconference sessions I attended were jam-packed with hilarity: first, Selena and Bart Massey’s Advanced Trolling talk, followed by Audrey and Reid’s side-splitting NSFW.

“Advanced Trolling” was spectacularly well-attended. Bart and Selena’s deadpan tips for successful trolling added to the humor, but it wasn’t all sarcasm; a lot of serious observations about trolling, its impact on communities and its presence in internet culture overall were interspersed throughout the jokes. As Bart said, trolling is a phenomenon that is unique to the internet and its social structures. It’s refreshing to cope with the reality of its existence with humor instead of the typical frustration. I loved the astute observations about the heated battles that arise in our communities: trying to start a battle between emacs and vi(m) (or, OSBridge edition: Mac and Linux) is novice trolling; choosing a less obvious field for contention gets you closer to the “advanced” title. The truly advanced troll plants the bomb and escapes and lets the community participants wreak havoc themselves. It brings to mind the fateful submarine incident near the end of LOST… one could say the Man in Black was an advanced troll ;-)

Trolling Twitter account referenced at the talk: rebastiality.

I also ended up buying the domain during the talk; maybe a silly decision, but I couldn’t help it. Bart was doing a tremendous job of describing a “Advanced Troll Certification Program” much like the many other certifications available in the industry; two days’ instruction available for the “low price of $500.”, as Selena wrote in giant letters on the whiteboard, was where you could find more information on this fabulous certification program, and I was disappointed to see that a site pointing to more information about this joke certification didn’t exist. So eventually I’ll make one, and hopefully employ the assistance of the more design-oriented folks in the community to dress it up a bit better than I can. I realize after the fact that trying to take all the brilliance of that talk and then paraphrasing it into this site all on my own is probably a recipe for disaster. I don’t have to worry about it yet though – I won’t be able to make the site live until I switch hosts, sometime in the next month.

As for the NSFW talk – it was absolutely NSFW. Audrey drew a chart on the whiteboard, graphing the spectrum of “SFW…NSFW” against the spectrum of “Creepy..Fun” (per her talk the day before). We threw out ideas, and a lot of stuff landed near the middle of the SFW / NSFW distinction. Finding “creepy but safe for work” content was remarkably difficult – everything else was pretty easy though.

The SFW/NSFW spectrum is ripe for discussion – for instance, a lot of it is very subjective; a Facebook flash game may not be the best use of one’s time, but does that make it NSFW, as it was deemed on our graph? Related – is a time-wasting site really NSFW, or an indication of some other issues within the workplace, like management or the way workflow is structured? Making the definition of “NSFW” even murkier, a lot of sites that are banned from workplaces are actually banned because they’re bandwidth hogs, not because of their content. Another layer: certain workplaces may include occasionally looking at objectionable content as part of the job; having worked on the AdSense team, and now for a company that provides SEO services, I’ve had coworkers who’ve looked at sites with porn on them as part of the normal task of administering day-to-day accounts. Even as a developer in my current position, I’ve had times where the randomized user data I’ve picked out to validate a change turns out to be for an S&M site or some other sexual content. All this said, I’ve witnessed coworkers looking at NSFW content that clearly has no relation to their workload, and it’s definitely bothered me and struck me as highly inconsiderate. Even though I can spend good portions of the workdays where my brain isn’t at its most efficient looking at non-work-related content – I always make sure to leave the more scandalous clickthroughs, or overtly personal content, for home.

I mention the potential of this interesting discussion because, for the most part, it didn’t happen. We were a little distracted by the ChatRoulette instance we had projecting onto the overhead screen… Reid set up the webcam so that it was pointing at Creepius Bear initially, but when we realized the potential for awkwardness and bewilderment to someone on the other end of the camera viewing Creepius with a room full of people behind him, we changed the view accordingly. That led to pretty much every new chat partner causing the room to crack up. I honestly think we could have kept up with this for hours, although the humor in the erections had long since passed by the end of the first hour. It really is true; ChatRoulette is half masturbators, if not more.

There were a few bits of connection that were cute, though. A couple of girls clearly got a huge kick out of waving at us and having an entire audience wave back at them. Another pair of girls went offscreen and brought back their own teddy-bear as a companion to Creepius. And then there was the guy who threatened to kill Creepius if he didn’t see any boobies anytime soon (although, best moment with that guy: him apologizing to us for spelling “boobies” wrong earlier in the conversation and hearing the audio of us calling him out on it as a group. His insistence on cleavage in light of our presence as a mostly-male group of computer nerds was impressive.) That last one wasn’t necessarily cute, but it was a treasure in itself.

Reid also showed us another set of ChatRoulette treasures he’d created – he superimposed a thought bubble that said “Hmmm” over the screen on the video feed and then mirrored it back to the other person in the chat. As a result, he ended up getting people who’d take the time to pose with the bubble – including some people dressed as “fake terrorists”. He showed us the screencaps he’d taken of assorted people during the experiment and it was definitely one of those “Internet is Magic” moments buried amidst the creepiness.

I have to reiterate what I said earlier about humor and this very careful line – the idea that a roomful of people, mostly male, would be able to sit together and watch ChatRoulette erections as a group without anybody getting deeply uncomfortable (especially the women) sounds far-fetched. But I think it speaks to a lot of carefully-laid variables, most particularly the establishment of the community ahead of time as a safe place to explore such humor, that made it work instead of making it into the next incident reported on the Geek Feminism website. And I think that says something about the humor we’re capable of as a group if we’re willing to be open to feedback, although I hope it doesn’t always need to be as coarse as our NSFW talk was.


Some final thoughts.

First, Open Source Bridge is returning next year – Selena confirmed during our closing session, where she solicited feedback from an audience that clearly had enjoyed a great time throughout the event. I’m really hoping to involve myself in a far greater capacity next year. My on-site volunteering efforts fell the way of my pre-event volunteering efforts (i.e. desire but no follow through – although the on-site was due to legitimate lack of need for my help in the hacker lounge at such late hours), and despite the extra sleep I got, it was hard for me to feel like I hadn’t given back enough – I really wanted to do more for an event I have come to care so much about. Goal before the next round of planning starts is to get the stuff in order that prevented me from volunteering more readily. There’s a lot.

Second, I achieved what I wanted out of this conference, which was a re-connection with my technical self, and with the community at large. Every time I engage with these people, it’s a rewarding endeavor, but it’s easy to forget this when caught up in the busyness of the rest of my life. It was really wonderful to dust off my Twitter account and re-discover the joy of interacting with technical types throughout the event. I feel more “plugged in” to what’s going on and where I want to be, and that’s exciting.

Following through with the technical excitement is, as ever, going to be trickier, because of all of the other things I’m trying to juggle in my life right now. I’m a hobbyist with too many hobbies and a crippling love for sleep, and it’s funny how quickly my extracurricular technical goals go out the window in light of other priorities. I was disappointed to not do more legitimate technical work during the conference itself, but not surprised – there wasn’t exactly a lot of time or mental energy left in the schedule to do such things. I’m hoping I don’t get sucked too quickly back into the craziness of day-to-day life and can take the time to outline the projects I’d like to be working on in the next few months and identify my biggest priorities and the skills I need to learn. I’ve never had so many non-work-related technical projects in my mental queue before, and that’s really exciting, but I’d actually like to cross a few off the list instead of letting it grow indefinitely.

Third, I’m hoping to use the momentum of this re-connection, and the discipline I’ve used with blogging the entire conference, to keep writing here. I was excited when Sumana told me that my blog posts were really valuable to her, because from my admin’s perspective, my only readers so far appear to be spammers (and oh, are they prevalent). I enjoy keeping a technical blog because the women in industry that I admire all seem to be doing so effectively – and I like using this medium to better establish my technical presence online. I think confidence and discipline are the two core issues here, and both of those are a bit easier to manage in the short-term in the aftermath of Open Source Bridge. So, with that said, more soon.

Posted in Conferences and Events | Tagged , , | 1 Comment

Open Source Bridge 2010: Day Three: BRAAAINS

As a person who often feels like I’m struggling with a sleep addiction, it’s interesting to re-acquaint myself with actual feelings of sleep deprivation. There’s a noticeable difference between the sleepy head-cloud I spend the majority of my time fighting as a reasonably well-rested person and the way I feel today. A few hours into the conference today and it felt like a zombie had eaten away the back of my skull (thus the headline). Followed by that weird alert headache I knew so well in my college days. Oddly, I’ve felt more awake sleep-deprived than I do a lot of the time from day-to-day, so the head-zombies haven’t interfered with my ability to enjoy the conference.

The last day of scheduled talks went by in a rush. Tomorrow is the unconference, and especially in the absence of BarCamp this year, I think it has the potential to be tremendous fun.

Keynotes I Skipped

  • Portland Mayor Sam Adams

I know it’s really cool that our city’s mayor cares about our local software community, but I find last night’s Civic Engagement discussion to be a lot more meaningful in that regard, especially due the reputation that Adams has built up as a sucker for photo ops. I saw Adams last year, and rarely find speeches by politicians to be particularly authentic or engaging. As a result, in the battle between an extra hour of sleep and Portland’s mayor, an extra hour of sleep won.

Many Talks Painfully Missed

I’m sure I wasn’t the only one wishing I was Hermione Granger with her Time-Turner for today’s events:

Slides for the Professional JavaScript talk are here. (Woo hoo!)

To be noted: the last three talks listed were all at the SAME TIME (which means there was a fourth at that time that I opted into instead.) The Twitter stream was also packed with statements saying “x talk is the best / most hilarious talk of Open Source Bridge!” about all three. It was utterly painful to be missing so much goodness at once, but so things go. I will try to recoup my losses in the form of session notes and hopeful recordings.

Delightful thing about that magic hour in which so many incredible talks were happening at once: the Internets are Leaking talk started spying on the traffic for the Facebook Stalking talk. That’s conference culture I can believe in.

Talks Attended

Igal’s testing session was excellent as expected, but really suffered for the lack of a noise boundary between our conference room and the one next to us. The problem has been pronounced in the rooms that have been divided only with heavy curtains for the entirety of the conference, but in this case things seemed especially distracting. Still, gleaned some good things from the talk: learned about Behavior-Driven Development, which feels a lot less scary to embrace than Test-Driven Development. I also am glad that Igal covered testing on legacy code, which fits my development use-case so much more than testing for brand new code. The idea that code coverage was more of a social agreement than any strict requirement, as simple as that sounds, helped take away a lot of the intimidating factors surrounding testing for me as well.

I was interested in both DB talks because I’ve wanted background on other options than MySQL. I’m interested in trying out Postgres with a future project, and although the intro talk was rushed (given that it was only allocated 45 minutes), there were enough details covered that it made further exploration sound worthwhile. I’ve also been interested in Postgres simply on account of how passionate the local community seems to be about it.

I’m apparently out of the loop when it comes to what’s “hyped” in tech, but I finally clued in that this year it’s been all things database, especially all things that go against the traditional model of a relational SQL database like MySQL. So non-relational databases, and / or non-SQL databases (these two distinctions can cover a multitude of variations), have been a hot topic throughout this conference. The two talks I attended today were only a subset of the larger collection of database talks available. I liked how “Relational vs. Nonrelational” looked at a comprehensive number of use-cases and revealed which specific implementations worked best in those use-cases. As expected, anybody coming in hoping for a declaration of “X database implementation is the best, through and through” came away with the more traditional nuance. Big surprise there – hype is tremendously unreliable.

(Speaking of the “X technology is the best”, I have a little rant stored up about the head-butting between Apple and Linux users at OSBridge. I do find it a little weird that there’s a larger Mac than Linux representation at an open source conference. Just making that fairly innocuous observation is enough to bring out the Mac fans to sell you – whether you want to hear it or not – on why Mac is on the best, an attitude that bothers me with regards to any single-minded advocate of any technology. But this is all for a separate entry.)

Here’s the most delightful thing to come out of Audrey’s “Creepy / Fun” talk: Creepius Bear on Facebook. Lucky for Creepius, he has all sorts of great skeezy apps which he can use to creep out his friends.

Liz Henry and Danny O’Brien’s OpenStreetMap / OpenSeaMap talk, during the coveted “every single talk during this time is the best talk of the conference” timeslot, was a lot of fun and a lovely story of inadvertently stumbling upon a new technical interest and open source passion. I think my favorite part of the talk was Liz mentioning how she became a “data tourist” as a result of her work with the nautical data she’s found for her area: “So this is the famed Beacon 18.” It spoke to a sense that I get when I’m immersed in a project sometimes too – when the abstract thing you’ve been wrestling with for so long finally reconnects with reality. That object you’ve been wrangling in your scripts actually corresponds to this real, physical object, Beacon 18, and although nobody else may understand how cool that seems, Beacon 18 (or the data tourist destination of your choice) might as well be the Eiffel Tower for how much it’s been built up in your head. I can totally relate to that after working with earthquake data at the Southern California Earthquake Center, and I think it’s beautifully geeky.

The OpenSeaMap talk also tied in to a larger ecological discussion that has been amplified by the BP Oil Spill. If we have no data available on our seas, we can conceive of them as empty and formless, and that leaves such bodies to be exploited. Thus tragedies like the state-sized trash pile in the Pacific or the Oil Spill. Pretty poignant stuff.

Code N Splode BoF

All of the familiar faces and a few new faces at the Code N Splode Birds-of-a-Feather meetup tonight. We had about an hour and a half of discussion that covered a real range of topics. Definitely the most (outwardly) social I’ve been the entire conference, but Code N Splode is my “safe space”, so no surprise there. Along those lines, we discussed the idea of creating safe spaces or merely places where people feel comfortable. One thing I really want to examine further in another entry is the idea of “filters versus magnets”, as we ended up describing it. As I mentioned when discussing the Filing a Bug talk yesterday, the tech world is rigged with altogether too many unfriendly filters. They’re a means of keeping people out, and although they may succeed at filtering out the “wrong” people, there will be many who self-select as false positives and choose not to participate simply because the filter is there in the first place. Instead of selecting a social / working group by filtering the wrong people out, wouldn’t it be interesting to dismantle these filters and build up new systems that are based on drawing the right people in?

One thought project from this discussion will be identifying these “magnets”, the things that draw the right people in. Once they exist and start attracting people, these social groups built on “magnets” can establish a critical mass that then starts to change the larger communities around us for the better. Some examples we came up with were friendly and welcoming open source projects, the OS Bridge conference itself, the Geek Feminism blog, and our good friend Creepius Bear (as Audrey pointed out, he ended up being the perfect conversation starter, attracting the people she wanted to talk to about her “Creepy vs. Fun” topic).

Pub / Startup Crawl

Dropped by with some Code N Sploders after our meeting and the atmosphere at Wieden + Kennedy / Urban Airship was really nice, but my social self quickly fizzled out. Lesson learned: don’t combine sleep deprivation with the Pearl District. That said, the pizza was delicious.

My Unconference Talk

Oh, what a fun group of peers I have. I had made a tongue-in-cheek suggestion on Twitter earlier in the conference that I was going to propose an unconference talk with a name like “How the Internet has Improved the Life of the Cat Lady”, where Cat Lady is a nongendered term (I will probably change it to Cat Lover, but that ungendered naming just doesn’t have the same effect as Cat Lady does for describing the men or women who become different people around their felines.). I meant this as a joke, although I think I could probably write a five-minute talk waxing philosophical on how the internet has allowed us to not just enjoy our own cats’ weird quirks, but the weird quirks of cats the world over, and how we can build communities around our Cats in Sinks or Cats Who Throw Up Grass (I have one of each). That said, the Code N Splode ladies said to me, “No seriously, you should do it.” So we may have an unconference session where everybody shares their favorite cat-themed media for 45 minutes. Epic.

More thoughts?

If I have them, they’ve gone somewhere else to hide. Girlfriend’s gotta sleep. Hoping for some fun on the last day, and a sequence of post-mortem entries further exploring the multitude of topics and themes I’ve been able to examine the last few days.

Posted in Conferences and Events | Tagged , , , , | Leave a comment

Open Source Bridge 2010: Day Two: Feel the Love

Day two of Open Source Bridge is complete and the Warm Fuzzies are emerging en masse. As the conference hits its stride, it’s great to see attendees of all stripes step back and say “Wow, this experience here is pretty awesome.” Being able to see many people observe this at once (thank you Twitter!) brings forth an avalanche of Good Feelings. So, no wonder I was feeling a bit of a “glow” when sessions wrapped up today.

I’ve been somewhat disappointed that I’ve felt so shy and antisocial during this conference, but I’m balancing a heavy load outside of my professional life right now and I suppose this is the way things have seeped in. Although I was hoping to do a lot more proactive socialization – introducing myself to people, hopefully striking a connection – I’ve found myself a lot more content to sit back and observe others do the socialization instead. There’s a magic in watching the dynamics of the conference unfold around you, and apparently I am more in the mood to sit on the sidelines than be a direct participant. Except for the effusive tweeting – given how frequently I’ve been posting the last two days, you’d never know my account was mostly dormant for the past 10 months.

On my first attempt at this entry, I tried repeating yesterday’s tactic of a chronological walkthorugh of the day’s events and the talks I attended / wanted to attend, but it was feeling really clunky. So I’m going to try a different tack, and hope it still summarizes the essence of the conference in the way I’d like.

Talks I Watched via Ustream

Well, I had an embarassing morning. One of the current struggles in my personal life revolves around the problems I’ve had with maintaining anything resembling a normal sleeping schedule for… as long as I can remember basically. (I’m finally seeing a doctor for it and am hoping to get a better understanding of things soon.) I think an entire entry could be written about dysfunctional sleep as a part of the identity of many programmers, but for me it stopped being cute once I graduated from college and started working the theoretical “9 to 5″. I really have trouble waking up in the mornings, even if I have an awesome conference to look forward to. So this morning was apparently one of those mornings, and I only became cognizant of my alarm clock at 9:15 am, 15 minutes into Leigh’s talk. After some vigorous mental swearing, I was able to recoup some of my losses by watching the Strange Love Live ustream of the session, but I nonetheless feel like I lost something by not being there in person.

I’m hoping other attendees were able to gain a lot from the talk, though – this talk was totally relevant to all local attendees, as we’ve lacked a common space to meet since CubeSpace’s closure nearly a year ago.

In other news, I totally plan on getting my own copy of Leigh’s great Get Excited and Make Things tshirt.

Talks I Didn’t Attend (And It Hurt)

There were other talks that I wanted to attend and couldn’t on account of another talk talking higher priority, but these were the most painful to miss.

The User Groups discussion wasn’t necessarily going to give me any special insights as the Portland tech community is already ripe with successful User Groups (thus the talk) and I don’t have any that I want to add to the mix. But the panel consisted of a lot of the community’s most interesting and inspiring people, and I find it particularly energizing to watch them do their thing.

As a Perl programmer in my present day job, Modern Perl was probably one of the most workplace-applicable talks of the conference. I have had a generally negative experience with the language, and this is only partially due to the legacy code I have to work with at my workplace. Even “new”, non-legacy Perl code that I have to deal with makes me wince. But I know Portland is home to a vibrant and enthusiastic Perl community composed of some highly likeable people (a couple of Code N Sploders are members). I want to see what these people see in Perl; I’d love for it to redeem itself. chromatic_x’s talk promised to do this on a lot of levels; “Modern Perl” is supposed to be “Perl that doesn’t suck.” But on account of my semi-toxic relationship with the language I opted for another talk during this time, and bookmarked the Modern Perl Blog instead, so that I can examine the topic more thoroughly post-conference.

Amber and Aaron’s talk sounded incredibly interesting and I’m sure I would have found it immensely engaging. That said, the Bug talk I went to during the same timeslot was the highlight of my day, so I don’t regret opting out of it. I’m really happy to see that such thorough session notes have been posted.

This is the second year that Sherri has offered a yoga session through Open Source Bridge, and this is the second year that I’ve had to miss the session on account of fitting in my dinner hour. But I’ve taken classes from Sherri elsewhere and she’s a great yoga teacher. I also think the incorporation of yoga into the conference says a lot about the conference itself – as well as its host city. I want to be a part of a community that encourages balance of the whole self – I also believe that the entire community is better off when populated with well-balanced individuals.

Talks I Did Attend

The Android talk was the technical talk I’ve been craving. I’ve owned a G1 for about a year now, and have been meaning to look into Android development, but the typical “hadn’t gotten around to it” applies. Now I feel a lot more prepared to play around with it. Sean did a great job of lying out a toolkit for getting started with Android development, using RESTful web services to narrow the development scope (the Android apps I use the most often also rely on these services). An Open Source Bridge Android app, using exactly the techniques laid out in this talk, was developed before the conference and complemented this talk perfectly. I’m excited to have some example code to work with and was thrilled that Sean passed on a handful of clients that were ready for use with Android development. That said, the magical idea for an Android app that came to me during this talk would require that I build out the client code as well. I’m honestly looking forward to digging into it, and brushing up on my rusty Java skills.

Slides from the talk are online as well!

The Space Exploration talk was pure fun. I don’t find the idea of sending mini satellites into space to be that personally exciting, but I *do* love the idea of working with all of the great space data that is already available and currrently being collected. It connects me with my Inner Geologist, born of my two summers with the Southern California Earthquake Center in college (they, in turn, have ties with JPL and NASA, so it’s easy for me to see the path between earthquakes and space), and any chance I have to do that makes me happy. I’m excited to start playing with and contributing to Galaxy Zoo. What a treat!

I also loved some of the larger themes that Ariel brushed upon in her larger talk. What makes a “real” scientist? Are “real” scientists the only people who should have authority to explore space? How can the open source ethos and collaborative efforts help us expand our understanding of space, so that we aren’t reliant on the government models (like NASA) as the sole means for advancement? What can I contribute, even as an amateur?

Schwern’s “How to Report a Bug” was the highlight of the day. Not just for the content of the talk, but for the social dynamic that emerged in the session’s duration. The talk captured the essence of this conference, and left me giddy. The content is really worth digging into, as well.

“How to Report a Bug” felt like 2010′s Assholes are Killing Your Project. In other words, commiserating about the exaggerated Asshole Problem in technology (especially Open Source) with people who also hate it, and don’t accept that “it’s just the way things are, deal with it”.

I’ve probably mentioned this before: the tech industry is packed to the gills with “filtering mechanisms” that have been put in place to scare away people who are, to put it simply, “technology duds”. In the case of bug reports, these would be the people filing a bug that says “How does email work?” for a completely unrelated technology (as one extreme example). Of course, these filtering mechanisms tend to keep out a lot of good people, too, who have no interest in the “gating” or hazing process as a prerequisite for participation. Schwern’s talk examined the issue: why does this filtering mechanism exist in the case of filing bugs for open source projects? What do we lose out on as a result of this filtering mechanism?

The conclusion was that, although handling bugs can be a pain for anybody, and a lot of this can be the result of the difficulties of dealing with people in general (assholes or not), the real pain is caused because the bug tracking software sucks. I totally see this. If resolving a bug is cumbersome, you set up walls to discourage people from filing bugs. If rejecting “dud” filings, duplicates, or other problematic tickets is immensely difficult, you will go above and beyond to ensure that such filings don’t get through the filter. Unfortunately, as a result, your user base becomes mostly invisible. It’s so much fun to see concepts that pretty much every developer can agree with (Bugs help drive a project towards improved quality; they are the lifeblood of a project) contrasted with the patterns inherent in the system that seem to exist as antagonists to the concept. I feel like that’s the best way of dismantling the many counterproductive habits of tech communities – by establishing a concept we can all agree with, and then pointing out how our current way of doing things is working against that concept. How powerful is that?

Schwern’s talk focused on the two things that discourage users from filing bugs: walls and hate. Walls are the concepts discussed above; the unintentional assholery of the filter. Hate is the assholes in all their glory, from the curt and dismissive reply to a bug, to outright hostile defensiveness. It’s the exact reason I don’t want to file bugs – I don’t trust myself to deal appropriately with such behavior; it’s good at stoking the emotions. The “hate” portion of the talk is where the session really got fun; Schwern tried to stoke these emotions in us before we jumped into some examples of combative bug reports and the exchanges that followed them. This “connect with your hate” exercise mostly involved liquor, and suddenly the talk involved an open bottle of Old Grand Dad bourbon being passed around the room; Schwern took swills while transitioning between slides. I don’t think anybody started feeling hateful, but boy we were having fun. This is why I love programmers – the ones that “get it” are such a delight.

The talk wrapped up with a larger discussion on “How to be a Better Person” – because, in general, to handle both reporting and receiving bugs as a non-asshole adult, you need to be mindful, balanced, and emotionally in check. You have to be aware of the impact that a defensive or curt response might have on a developer or bug-filer, and take the extra time to choose your words carefully. You have to have such a grip on your emotions that even the inevitable poor responses to your carefully-chosen words can be handled with grace. That takes quite a bit of personal development and constant hard work, but Open Source Bridge is the perfect environment for such a discussion. Being a better person in day-to-day interactions with the community ultimately feeds a healthier community. Once we’ve started that journey ourselves, how do we encourage other community members to do the same? I’m hoping that this is a discussion that picks up again at the unconference.

(I didn’t even mention the “Howard Dean Strangling a Kitten” slide. Yes, it was Photoshop, and yes, it was part of the whole “Hate” portion of the talk.)

I’m not sure why I went to the “Foundations and non-profits” talk. It examined the question of “when should an open source project become a non-profit, or join an umbrella non-profit?”, and I don’t have any sort of project like that in the mix. I suppose it could have been the Googler in me, wanting to support a fellow Googler as an alumnus. Or my inner altruist. Either way, the talk was interesting if not personally useful. It’s really fascinating to learn about all of the components that go into orchestrating an open source project, especially on a large scale: things go far, far beyond just writing code. And, for the record: I learned that creating a non-profit out of your open source project is difficult, expensive, and time-consuming, so the best route is to start by latching on to an umbrella non-profit, and moving to your own non-profit when you start to need its benefits (like independence).

Birds of a Feather

I attended the Civic Engagement Meetup after dinner and was treated to an engaging conversation between city and PDC officials and BoF attendees, who represented a lovely spectrum (tech business owners, local developers, those still looking for work and exasperated by the employment problem). This is one of those topics where my interest snuck up on me and then really grabbed me, so it deserves its own entry (which I will probably write asap post-conference). Audrey’s blog and Silicon Florist are great starting places for this discussion; they’re certainly two resources that “planted the seed” for this interest.

I would have liked to attend the Open Data BoF. The topic is interesting to me, the social dynamic of BoFs can be a lot of fun, and some of my Geek Feminism heroes were in attendance. But I was tired and desperately uncomfortable after a day confined to conference seating, and the BoF was starting late (8:30 pm).

Last Bits

I was something of a crazy cheerleader for OS Bridge before the event. I think the event has something for everyone, even developers who mostly deal with proprietary technologies, but I surprised myself with who I tried to sell the conference to. For instance, during a chance run-in with my ex-boyfriend, who I’m not on good terms with, I found myself raving about the conference and encouraging him to attend (even though it’s to my benefit that he hasn’t been there). Similarly, I have been heavily pushing the conference on the other two developers on my team, especially because I knew the talks that grabbed them would be totally different than the ones that I was interested in. One of my coworkers loves to obsess over technical details that make me want to gnaw off my arm, and I saw a place for him at this conference. But the response from both him and my other developer peer (who actually attended the conference last year) seemed tepid at best, even after I convinced my boss to let all three of us attend the conference.

What a treat, then, to spot both of my coworkers attending sessions today. I worried that they’d be caught up in work and might not take advantage of the opportunity, but I was excited to see them in presentations that I wasn’t attending. I think we all stand to gain from bringing our different conference experiences back to the workplace; that’s the fun of these events as “professional development” opportunities.

Slightly related, there’s a discussion to be had about the pros and cons of having a conference that is so local I can return to my office two blocks away between sessions. But that’s probably also for the conference post-mortem.

Looking forward to tomorrow but not looking forward to the draining nature of a conference schedule + my lack of sleep this week catching up on me. I suspect the return of NapCamp will come tomorrow – sneaking power naps into the gaps in my schedule. Bodes poorly for feeling more social, but as long as I’m feeling boisterous during the Code N Splode BoF (and the Code N Splode ladies are good at bringing that out of me), I’ll be happy.

Posted in Conferences and Events | Tagged , , , , , , | Leave a comment

Open Source Bridge 2010: Day One

Well, the first day of Open Source Bridge has come to a close.  I expected to be writing this entry at the Hacker Lounge while I was volunteering as coordinator there, but Christie (amazing volunteer lead) informed me that the lounge was pretty dead.  As a result, I’m still writing during the wee hours of the night, but I’m doing so while attending to some cooking and cleaning that I didn’t think I’d have time for this week.  It’s bittersweet – I desperately needed the free time but I am sad that it didn’t look like any late-night hijinx were shaping up.

However, the hacker lounge (at a great central location in the Mark Building of the Portland Art Museum earlier today – you hit it basically right after you come inside the building), was a hubbub of activity during the core of the event, as this photo I took literally minutes before a session started shows:

Open Source Bridge Hacker Lounge

My biggest disappointment with the event so far has been personal; I felt tired and a lot less social than I would have liked for an event where, imho, it’s tremendously easier to be social and get to know folks than at larger conferences. I definitely had a lot more of that last year, but today I mostly kept to myself, even with local friends, who I mostly exchanged smiles with. That has a lot to do with a bunch of stress in my non-professional life more than anything about the conference itself. Even yesterday when I showed up to help with event setup (which was blessedly overstaffed – I stuffed some nametags and then headed home), both Christie and Sherri commented on how tired I looked. Nothing like going into a conference feeling tired, and knowing that your sleeping schedule is likely to be compromised in the week ahead with a conference that pretty much packs in a 24-hour-day of geeky goodness.

Outward social disappointment aside, I actually “came to know of” quite a few awesome people throughout the day’s events. I followed eleven new people on Twitter today, and I suspect to add an additional number tomorrow. This event in general has been a great chance to re-acquaint myself with Twitter, which I fell out of using when my personal computer was in the shop for a solid month last August. I’ve been using Facebook more heavily since then, but today’s conference was a reminder of why Twitter provides a great connection to the “life force” of tech communities. I repeated what I did last year with regards to note-taking during sessions, mostly because I get a kick out of reading the tweets of those attending the sessions I had to miss (if only there weren’t five at once to choose from!). Once again, I was really pleased to see that, by and large, during any one session time, every talk available was considered a winner. Gave me warm fuzzies for pretty much everybody involved in this conference, from planners to speakers to attendees.

To get on with the show, here’s an overview of My Day in Talks:

One overarching theme with regards to the set of talks I attended today was that they didn’t necessarily teach me a lot in the immediate sense but gave me a Whole Lot to Chew On and Research Later. To that degree, the talks had a bit more of a cultural than technical slant, but not exclusively. My main worry with these type of talks is that it is so easy to get caught back up in the craziness of life before really letting the fullness of the content sink in. To that end, I hope doing some mad tagging this afternoon helped, but we’ll see.

The conference-opening keynote was Danny O’Brien presenting Free Speech, Free Software Across the World. Despite Danny’s insistence that his speech would not be funny, he was a really charming speaker and I definitely cracked a smile (or a chuckle) quite a few times, even amidst the 9 am mental haze. O’Brien discussed the victory that is open source software being used worldwide, and he also discussed some of the (negative) consequences that come as a result of this usage. It was an excellent exercise in checking my privilege, as a citizen of a society where the data I create is unlikely to be used against me (at least by the government). O’Brien’s best example of a way that open source can be “used for evil” came with regards to the “default settings” that we take for granted – even if a program is intended to be customized after launch, the default becomes “the way things are”, and this can become a problem when your default is non-encryption and verbose logging (two examples). Logging in general was placed in a new light – while helpful debugging tools for developers, oppressive regimes can use logging data to identify and then punish activists who disagree with them. Although data retention policy has become a hot topic in the U.S. lately due to Facebook’s careless attitude about privacy, it becomes clear that the stakes are even higher in countries where a company with the wrong data management policy can become an accessory to an oppressive regime.

I opted for Matt Youell and Markus Roberts’ When Everything Looks Like a Nail over Hal Pomeranz’s The Return of Command Line Kung Fu for the long morning session. I saw all three speakers last year, and although I loved Command Line Kung Fu, I also felt like I hadn’t spent enough quality time with Hal’s corresponding Command Line Kung Fu Blog in the past year to justify a return visit where I’d get full benefit. I plan on spending some time with the blog following the conference, and in the meantime I heard that the Command Line Kung Fu redux was great. I went the more masochistic route with Matt and Markus, who have a knack for coming up with the most painful programming scenarios I can imagine, all while packaging them in a humorous container that allows one to forgive such sins. Last year, they started out the journey of pain by showing code excerpts that clearly looked like one language (say, python), but when the full script was revealed, were actually another language entirely (let’s say C).

The kind of exercises that Markus and Matt embark on in these talks (last year’s Spindle, Mutilate, and Metaprogram and now this year’s) would normally make my blood boil. They bring to mind an exam I had in my senior-year college programming class, that I had with a professor who was fond of similar experiments in coding torture. I had an exam question that presented a section of code, with directions that said “This code compiles. What is x?” In the code, x is named no less than 10 different times, as an identifier for variables, classes, and other code components. My default response is “Screw x, no code like this should EVER be written,”, but despite my immediate negative reaction to this stuff, my old professor, and Markus and Matt, are really pretty likeable. So I keep paying attention to the exercise. What I liked about today’s presentation was that they did try to close out with a point to all of this self-flagellation by way of code, which was very much a “larger thing to chew on” but still a pretty good conclusion.

That said, “Looks Like a Nail” led us through various situations where we were presented programming problems and given one tool (the proverbial hammer) to solve these problems with. We started out with SQL (one code excerpt included bits that were “supposed to work in 2016″ for some painfully slow graphics rendering). We moved to the ed text editor. We then looked at a program that used sound as code and also introduced a hypothetical alterna-universe where jello was used as a conductor of that sound. It got pretty out there, but Markus and Matt had the props and humor to guide us through, and at the end the lesson was: even if you start out with a hammer, we’re ingenuous enough people that we’ll use that hammer to construct other tools to make our jobs easier. So although none of us are in real-world situations where we’re limited to one obscure technology to carry out our whims, it’s a nice insight on human innovation and the continuous improvements we make in order to make the art of creating that much easier.

After lunch (which was uneventful – I am using the time all week to check in with my office instead of playing at the food carts, which is a judicious but unfortunate choice), I had my most difficult decision of the day – three talks that I desperately wanted to attend. I ended up opting out of Chris Messina’s Activity Streams, Socialism, and the Future of Open Source talk (luckily – he posted his slides! – ready to be devoured later). I also opted out of Moonlighting in Sunlight, which was all about the legal issues that may arise when one has a full-time job and is contributing to open-source projects. I first became aware of this issue a mere month or two ago during our negotiation talks at Code N Splode, and I’ve been eager to learn more since then. If I revisted things, this is probably the talk I would have attended, as there aren’t session notes yet and it seems like very practical information for a person who keeps intending to get involved in an open source project… eventually. I work for an employer who has been burned in the past by non-compete agreements that have been too lax, and since has introduced a more strict NDA, so I will definitely be at least going from the presence of this talk and re-reading the documents I signed when I started my job, and doing some web searches on the topic. In the meantime, Sumana’s session later in the day (to be detailed momentarily) was a nice complement to this talk and filled in some of the gaps.

The talk I ended up attending was HyperCard 2010: Why Johnny Can’t Code. I admit I went to this purely out of nostalgia, as I fell in love with HyperCard in late junior high / early high school when it was used in the occasional computer and science class project (I am lucky enough to have a father who realized what I was doing at the time was a form of programming and that I might be interested in pursuing it further, because I didn’t make that connection at all!) Presenter Devin Chalmers was similarly nostalgic for this technology, and we got some great context about the overarching goals of Hypercard’s creators (Alan Kay and Bill Atkinson), as well as some choice quotes. This was the talk of the day that was heaviest in “bigger questions” and more abstract culture issues. Nostalgia is a deceptive beast, and although older computers did necessarily require users to be more of a power user than they are today, we programmers forget that such a requirement excluded a LOT of people from computer use – the user base was drastically smaller than it is today. I’ll be interested to see what the programmers of the future, who are just being exposed to their first trinkets now, have nostalgia about in 10-15 years, like Devin and I have about Hypercard. Hypercard was a great swiss army knife of an application – but as Devin pointed out, a world of task-specific applications have come out of the woodwork to fill these use cases, from presentation software (I had to use Hypercard as a PowerPoint of sorts in a high school Biology class) to Facebook or the assorted smartphone apps that allow you to keep track of x, y, and z. An audience member also mentioned Scratch, which I’m interested in playing with later. Initiation experiences to programming were especially interesting to me in college, but since then I’ve let go of the passion – the Hypercard talk brought back a lot of that overall discussion, but the more practical side of me was nonetheless second-guessing my session choice. Isn’t that how it goes with conferences that are packed with great options?

I spent the mid-afternoon session at the Open Government Directive talk, which was a well-scheduled panel discussion about the challenges presented by using technology and the open source ethos to inspire civic engagement online. I was introduced to two projects, White House 2 and Democracy Lab. One of my note-taking tweets was also misread as my taking a stance as a small-government conservative (I’m definitely not) – and re-reading it I see that; woe be the problems when you’re limited to only 140 characters and someone peeks in without prior context. The comment was mentioned in the context of the challenges that partisanship presents in these endeavors, in particular: if a project is about improving government overall, what to do about the ideological conflict presented by conservatives or libertarians, who have totally different goals in mind – because they don’t necessarily want better government (they want smaller government)? And that is as political as I’ll get here (I’m generally not a fan of such discussions in the public sphere).

Post-coffee-break, my next session was Encouraging Open-Source Work at For-Profits with Sumana Harihareswara (I also mentioned this talk in my “Looking Forward to Open Source Bridge” post last week). This talk was a pleasant surprise in that it went far beyond “how to encourage your boss to consider the LAMP stack versus a proprietary web platform”. In fact, we hardly dwelled on that – instead, we talked about cultivating the open source ethos within the workplace, with some great, anonymized real-life anecdotes of where the open source philosophy in a for-profit workplace can go horribly awry (or be implemented in portions that suffer without the whole). Sumana posted her entire session in the session notes post-talk, so I won’t go into too much detail here, but I thought her thread on avoiding isolationism was the most important. This industry has an isolating tendency in general (both as organizations and among individual workers), but understanding that innovation is always a byproduct of being tapped in to a larger ecosystem is important (a story about a company where the employees were only allowed to use email and were not allowed to do any research via the internet – it gets worse than I am explaining here – was an utter nightmare). We’re also likely to make better choices when we avoid isolationism – a lot of companies choose a proprietary solution because it’s “what they know”, and in that case, it’s a good option to be the “innocent pain in the ass”, as Sumana put it, and suggest looking into other options.

In general, it was great to see a Geek Feminism author be such a confident and entertaining presenter. Sumana spoke without slides (because she said she’d rather have no slides than bad slides, and had been busy at another conference before this one), but did so in a way that kept the audience engaged. If I haven’t made my status as a Geek Feminism fangirl clear enough yet, here it is again. And I get a real kick out of things when it turns out that fellow female technologists are such kick-ass presenters.

The final presentation of the day, A Naive Developer’s Guide to Venture Capital, was also the most disappointing, although it was to little fault of the presenter (she, like most of us, wasn’t able to effectively shut down a Presentation Derailer, and I can’t blame her. I was passive-aggressively tweeting about it instead of trying to step in myself.) I felt like I was back in my introductory CS class in college, where Joe Programmer is required to take the 201 level class, but thinks he is so above it already, and as a result (for reasons that are still incomprehensible to me) asks obscure questions that have no bearing on the fundamentals of the subject matter throughout the class. When I took said 201-level class, my professor had trouble dealing with these guys because it was clear he enjoyed discussion about the unrelated details, like a lot of tech types do – and as a result I ended up writing a pretty scathing review of the class in general when I was done. My view towards the “presenter” has softened significantly since then, and I generally feel that the blame lies solely with the derailer / heckler for putting the presenter in such a situation where they have sole responsibility to get the discussion back on track. It’s just common courtesy, nevermind acting like a mature adult, to go to either a class or a conference presentation and defer to the presenter as the expert. It’s common courtesy to think ahead of time before you interject with a question or observation – “is this to the benefit of the whole audience, or just me? Will there be an appropriate time to ask this later?”. And it’s just outright rude to dominate the flow of the presentation if you’re an audience member. The presenter is the one who went to the work of submitting the talk proposal, not the attendees. So keep quiet until the scheduled moment to follow up with questions and feedback.

What really struck me about the heckler in this particular presentation was that the session was clearly framed as an introduction. I can totally understand going to a presentation as a hobbyist who is looking for some morsels to chew on on – in fact, I think many of Friday’s unconference sessions will probably be a lot like that. But this session was clearly NOT that sort of gathering, and as a result, having an audience member interrupt with his own insights every minute or so was immensely aggravating. My blood started to boil when the derailer challenged the presenter on some of her assertions midway through the talk, because in his experience the international world of VC was different – nevermind that she had started the talk from the get-go by explaining that her expertise was specific to the Silicon Valley area. Amy was a brave soul and finally spoke up and said that perhaps said heckler should save his questions for after the presentation, so we could make sure to finish – of course, the heckler wasn’t really asking questions, he was trying to give his own presentation in parallel. It was infuriating and distracting and it really kept me from absorbing the original presentation.

The talk ran long (and when it’s the last talk of the day – my body had been stuck in a seat all day, and was screaming for movement), which was expected due to the heckler, but was also a disappointment because that’s when things really got interesting. I suspect I am like a lot of programmers who see the VC world as a “necessary evil”; I find that a bit of bile rises in my throat when I think about it. The VC model is, so far, the proven way to fund technology and innovation, but it’s rife with problems. The VC industry is demonstrably sexist and therefore perpetuates the already miserable gender disparity in the tech industry (here is one article from TechCrunch supporting this statement; it is not the exact article I read at the time it came out but reports on the same research). There are also a multitude of problems with the industry being almost exclusively located in Silicon Valley, and requiring most companies to be based there as a result. There are countless innovative people who want to start businesses all over the country, but they, like myself, DO NOT WANT TO LIVE IN SILICON VALLEY. Like a lot of systems in business, VC is rife with inefficiencies, but learning more about it seems the straightest route to figuring out how to work with the system for the better. I know that Portland really suffers for this – we have a lot of innovation but the disconnection from the Silicon Valley VC and corresponding executive talent hurts our growth (Silicon Florist discusses this in far better detail).

Anyhow, I mention all of these complexities because that’s what drove me to the talk, what drove me to fight the bile in my throat and learn more. Joyce Park, the presenter, was doing a great job of being pretty real about the whole process and some of the ridiculousness that is inherent to it. It’s just too bad that a heckler derailed the bulk of it, and I was left to fume from behind my computer. In the moments that I was tempted to speak up, I suspect that I would not have handled it like an adult, because I was so miffed. Amy was far more diplomatic!

…and, approximately 3500 words later, that’s all for Day One of the conference. It’s about the time that my Hacker Lounge volunteerism would have wrapped up anyhow, so I need to be heading to bed – given that tiredness has been the biggest impediment to my fully enjoying the conference. I am looking forward to more fun tomorrow – a mind buzzing with more “tech concepts to investigate” than I can possibly manage at once, a smattering of cool and inspiring people, and most excitingly, all sorts of tech women that I am seeing at this conference for the very first time and can’t wait to learn more about. There is a lot to love about Open Source Bridge, but I will reiterate how much I love its ability to attract so many amazing technical women. Can’t wait to see more of them tomorrow!

Posted in Conferences and Events | Tagged , , , , , , | Leave a comment

Next Week: Open Source Bridge 2010

Next week (June 1-4 to be precise) marks the second annual Open Source Bridge conference here in Portland. Last year’s conference was dreamed up as an initial response to a Portland summer without OSCON (it was held in San Jose last year), and what resulted was a unique treat of a conference that was as socially invigorating as it was intellectually stimulating. My experience with tech conferences in the past has been admittedly limited, but last year’s Open Source Bridge brought forth a feeling of intimacy and warmth that was a welcome contrast to the sterile isolation I’m used to in the tech world.

Although the makeup of Open Source Bridge attendees and speakers weighs heavily Portlander, there is nothing about the content of the conference that benefits Portlanders exclusively. The conference is a great opportunity to learn a new skill, sharpen a pre-existing one, or take an entirely new tack on something old and familiar. The sessions are informative and incredibly practical – this year, I plan on attending a few talks that should have immediate application to my day-to-day work, as well as sessions that explore some tech concepts I’m familiar with but have never taken the time to learn about in any degree of depth. I can’t wait to revisit that exciting mental buzz of so many interesting tidbits bouncing around in my head (although I’m not looking forward to needing to temporarily shelve what I’ve learned not long after the conference wraps – I’m in the middle of preparing for a move and have to limit my out-of-work tech play).

One big thing has changed in the tech world since last year’s OS Bridge conference, and that is the existence of the Geek Feminism blog, which started publishing posts in August of 2009 (a couple of months after OS Bridge 2009). I’ve mentioned in previous posts that the Geek Feminism blog fills a massive void in the tech world, one that the community has desperately needed to fill for years and years (I would have experienced so much less pain and heartache if I’d had the blog around during my college years and my first years in industry – and that’s just me personally; there’s clearly a larger societal impact that is even more important).

As some women-in-tech research has cited, we yearn to see those who are like us (people we can identify with) in positions of visibility and power. Role models are really important – they help us see what’s possible. Whether or not they’ve intended it, the ladies at Geek Feminism have joined the cast of my own role models. They wow me with their confidence, their grasp of fundamentals in both tech and feminism, and their ability to explain (and combat) the social problems in the tech community succinctly and effectively. As a result, I’ve become way too excited about the Geek Feminism contributors whose names are attached to these talks and Birds of a Feather sessions – there are so many of them attending, and none of them Portlanders!:

Sumana Harihareswara is presenting The Second Step: HOWTO encourage open source work at for-profits. (A talk one I know one of my co-workers has tagged as “most interested in attending”.)

Liz Henry is presenting X Marks the Spot: Applying OpenStreetMap to the High Seas.

Leigh Honeywell is Wednesday’s keynote speaker(!) and presenting The Rise of Hacker Spaces.

Kirrily Robert is leading the Open Data BoF.

These are all fantastic topics on their own, but do they shoot to the top of my “to-attend” list because of the presenters? Of course! I admit my bias. Real role models have been hard to come by as a female programmer, and I’ve been so blessed to finally find a wealth of them over the last year or two. For this reason (among MANY others that I haven’t delved into on this post!) I can’t wait to attend OS Bridge next week – I’ll be surrounded by so many tech women that I admire, and you bet I’ll be feeling starstruck (in a geeky way, which mostly involves all emoting done via computer) – not just from the Geek Feminism contributors in attendance, but also from the local women I see every month at Code N Splode, who out-impress any sort of “dream tech role model” I could have imagined on my own.

I am hoping to do some blogging while the conference is underway, especially about the talks that I find the most interesting. I’m also going to be volunteering at the 24 Hour Hacker Lounge during the hours of midnight and 4 am (i.e. my best hours, for better or for worse). I missed the phenomenon of the Hacker Lounge last year because I was busy with work, but I read about it on Twitter and can’t wait to be a part of this year’s iteration. Next week looks to be a lot of fun, and that it’s done in the name of “professional development” is icing on the cake.

Posted in Conferences and Events | Leave a comment

VirtualBox on the Command Line: Renaming a Virtual Hard Drive

The invisible Programmer Antagonist who lives in my head, who is an expert in all technologies including VirtualBox and knows all Best Practices under the sun, asks me “Why do you want to rename a virtual hard drive? Have you considered that the renaming of hard drive is not a feature of VirtualBox for a reason?” The Programmer Antagonist inside my head doesn’t actually know the reason because he’s self-constructed and I personally don’t know why it’s a bad idea, but I give developers the benefit of the doubt so “surely there is one”; feel free to provide your ideas. Needless to say, though, this inner critic has made me drag my feet about making this, my last of the “VirtualBox on the Command Line” posts (for now – this covers the scope of the stuff I’ve messed around with). I feel nervous about sharing because it’s a hack, but at the same time, hacks can often save the day, especially if it’s as a result of a feature that is not built in but you still need to use (I’ve also had to develop similar hacks for my company’s version of redmine for features the devs have probably left out of the UI for good reason – like removing watchers that are not myself from tickets and deleting write-lock comments that won’t get emailed to stakeholders as a result of the write-lock.)

The truth is, a few months back I ran into a pretty good use case for renaming hard drives. I cracked into a pre-configured VirtualBox system and found a set of machines with names akin to these:


When I listed the hard drives, I’d get something like this:


Really, I’ve just made up some names here and introduced some arbitrary inconsistencies, but take a look at these and you get an idea that there was supposed to be a consistent naming scheme to these machines and hard drives and that the current names clearly don’t follow it.

Consistency is pretty easy to add to the machines themselves because VM renaming is easy. Not so with renaming the hard drives. And the other problem with renaming the hard drives isn’t just for consistency’s sake – when I dug deeper, I found configurations between machine and hard drive that were doomed to confuse any person who tried to administer the system in the future. By this I mean that a machine like stageweb_a would be pointing to the hard drive named stageweb-d.some_subnet instead of the logical stageweb_a hard drive. So things were bonkers.

Anyhow, let’s say we want to rename a hard drive from “horrible_name.vdi” to “excellent_name.vdi”.  Its parent machine (the VM) has already been renamed to “excellent_machine”.

Start by shutting down the parent machine and detaching the hard drive:

VBoxManage -q controlvm excellent_name poweroff

VBoxManage -q storageattach excellent_name --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium none

Now, clone the hard drive and give the cloned hard drive the new name. This is the “hack” for renaming.

VBoxManage clonehd horrible_name.vdi excellent_name.vdi --format VDI --remember

(The –remember option “opens” the hard drive and otherwise registers it with the VirtualBox system on the host machine.)

Now, mount the new hard drive to the host machine, and restart the host machine:

VBoxManage -q storageattach excellent_name --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium excellent_name.vdi

VBoxHeadless -s excellent_name &

Confirm that you can access the machine with the cloned hard drive attached. If this is the case, you can remove the old hard drive:

VBoxManage -q closemedium disk horrible_name.vdi

rm /home/addie/.VirtualBox/HardDrives/horrible_name.vdi

(Obviously, you’d be in your own home directory here and not mine.)

This is clearly not perfect, but given everything I’ve documented so far, it’s actually pretty repetitive of stuff that’s already been done. Still, it’s worth it to document the actual process just to show how the renaming of a virtual hard drive is possible – albeit by cloning, which preserves the content but not unique identifiers like the UUID. For me, the content is more than enough, so this has worked for me in cleaning up my VirtualBox systems.

Thanks for reading and hope these commands have been of some help!

Posted in Today I Learned... | Tagged , , | 4 Comments