Archive for July, 2009

POSSE Monday: this history of OSS


The day continued with a history lesson.

Most of it is contained in this hastily stitched-together image – click to enlarge.

Notes below mostly courtesy of Ian Weller.

Back in the 60′s and 70′s, what was code like? Pretty much married to hardware and very task-specific. Folks would swap tapes; it was all open and you could contribute back.

Then came the 70′s and commercialization of software, just as software became hardware-independent.

RMS gets fed up in 1984, starts the GNU project, creates the GPL. It uses copyright law (and contract law) to create a new ever-growing commons and led to the creative commons movement and others.

IETF process for interoperability starts in 1986. (Also in 1986: Mel is born.)

1991: linus torvalds. not real professional like good ol’ minix, only runs on i386. (Also in 1991: Ian is born.)

Moving into the future. Now we’re writing modes of communication on the white board. tapes -> floppies -> modem -> unrestricted
internet access -> ??? -> profit!! http, usenet… from a software development/distribution point of view, access to USENET and FTP was big. in other words — the internet evolved quite a bit between GPL and Linux.

NCSA had a web server with a slow release cycle, and so everyone who wrote patches for this server (because it wouldn’t work) came together and created something called “apache.”

Why minix didn’t take off instead of linux: licensing issue.

OSS isn’t about everyone loving each other and their code, there are schisms (i.e., BSD). You have that now, i.e., webkit vs gecko; packaging systems, rpm vs deb vs whatever else.

We’re at the 90s now. residential internet –> growth of web.

1987 — first ever company to commercialize free software. Unless you count IBM. Caldera put together red hat and novell stuff and sold it, we have commercialization of free software after the halloween release of RH Linux.

Mosiac Communications Corporation, 4/4/1994.

1994/1995ish: proprietary vendors start to notice.

win95 -> pulls BSD tcp/ip stack

TCP/IP from BSD happening around ’95-’98…

1998 is the first time we see a large commercial codebase (Mozilla) being converted to an OSS license.

windows 2000 is “mainstream.” the concept of open source is… not really out there. Mindset: “have you heard of firefox?” “yeah. it’s free, but so is internet explorer, so what’s the diff?”

Regarding Sun open-sourcing Java: open source tends to follow open standards, and open standards tend to create open source, and Java is an open standard.

2004: XFree86 –> X.org.

2005: ajax takes off.

And on into the future…

Ian and Mel later gave a short overview of what this history looked like from our perspective – we were growing up while most of this was going on (largely unbeknownst to us).


POSSE Monday: Helping students find projects that make them come alive


An oft-repeated theme in yesterday’s discussion was helping students choose an appropriate problem to work on. “One thing in the community space is figuring out what the proper on-ramps are, not just for students, but for all new participators,” said Greg. “Stuff that isn’t on the critical path, but which is important enough to spend real cycles on.” In other words, legitimate peripheral participation. Building legitimate peripheral participation opportunities is, in itself, a good meta-project for students, who have repeated opportunities to improve the new contributor experience as they hit new aspects of projects when their classes change each semester.

Paul Jones happened to be visiting at the time, and brought up a conversation on reaching out through other disciplines, citing journalism and translation as good examples. (Humph promptly showed us bloggingheads.tv to demonstrate what journalism students could do.) Technical writing is a particular areat that we really need to look at more. Cam Seay, a business professor, echoed the sentiment of needing to make sure that non-code contributors can join the conversation and know that there’s a place for them. “We see OSS as the hardcore coders,” he explained. “We need to broaden that perception.” In the real world, if your shiny technology doesn’t solve anybody’s problem, it is useless.

POSSE Monday

POSSE Monday: (left to right) Christian Jacobsen, Cam Seay, and Dave Humphrey discuss nontechnical contributions to OSS.

We also need to look at the stereotpyes that students have about themselves. As Greg noted, “there’s this stereotype that coders are socially awkward… that’s not true. Ok, some are that way, but there are a ton of engineers who are exceptionally good at communicating. The communication skills and the ability to work with other people – those are valuable, and OSS provides an opportunity to pick that up. Your coding skills are not central to what makes your community work; your communication skills are.”

Chris provided an alternate perspective. “One problem in OSS communities is that we have a tendency to make everything become code. It all beceomes docbook, or spec files, or whatever.” “Code can be written,” Dave added. “When you lose community cohesiveness, that isn’t as easily replaced. In open source, unlike almost anywhere else, the stuff that goes around the code is more important. To get my code accepted, I have to convince you that you should take it; I have to be reliable and get stuff done.” In a society with no bosses, no corporate structure, and where you can’t be fired, things work differently.

One key part of helping students find their own projects is teaching them how to interact appropriately with the community. Some students come in and all they do is ask questions, but people quickly tire of answering questions when their time investment shows no returns in the same people offering help. Perhaps a student can’t write code that’s needed, but they can test it. There’s always a way to contribute; those that only take from the community don’t succeed. We still have a currency in free software – it’s called relationship capital. The easiest way of building it that always works for anybody is this:

Whosoever asketh for help, verily they ought offer to document that help.  And whosoever offers help, they ought require the help to be documented.  Thus do newbies become contributors.

It is also important to make sure students know there are people with different working styles than the super-über hardcore h4x0rs. This sometimes partially correlates to gender or discipline, though it need not – the key part is exposing students to as many options out there as possible. OSS is so much more than just the code, it’s how it gets deployed – releng (release engineering), QA, docs, wikis, everything. Check out OSBR (Open Source Business Resource) and their July 2009 issue on collaboration, as well as their June 2009 issue on Women in Open Source.

What’s under the surface of what people know about OSS communities? How do we teach our students that it’s not just code, and help them find – with that broader perspective – what they should work on? This is what I gathered from the conversation:

Don’t ask what the world needs. Ask what makes you come alive, and go do it. Because what the world needs is people who have come alive. –Howard Thurman


POSSE Monday: How Seneca got involved


The transcription detail level gets much less ambitious as the day goes on. I’m learning how to pace my hands.

Chris and Dave started by explaining how Seneca got involved in teaching open source. The school had been consuming open source for a long time – 15 years now – made its labs dual-boot in 2001; the challenge was getting things into a situation where the students were not just using, but also contributing.

This finally happened when Dave did a project with a small Canadian company that made (in the pre-iPhone era) a technology that could detect your hand above/near a surface; the company asked Dave and his students to make a demo for them, and Dave said yes. Instead of building the demo on Windows, Dave suggested, “what if we approached Mozilla and said ‘let’s do a touch-based version of Firefox?’” After getting approval from the company, Dave and his students asked Mozilla if they could pay an engineer to visit and teach them for a day; Mozilla responded by sending an engineer for free. It was the beginning of a beautiful relationship.

“The most important thing is learning to do work at that scale within the context of community,” said Chris. “How do you get students to be part of this kind of gigantic process, some of the largest projects in the world? So we’ve developed a series of courses where what we teach is OSS contribution. And that has allowed us to do some really interesting work.”

“Later in the week we’ll look at some student projects, and talk about failures and successes,” added Dave. “But right now, when Firefox ships, I can point you at the features that my students wrote. And it’s really cool to be able to do that, and for students to be able to show that on their resumes. That has had tremendous leverage – so another thing we want to talk about some of those opportunities and challenges for getting involved in that.”

“One thing we need to learn, as professors, is how to bring people in, how to sustain them… One thing we found as a value-add was we brought to our projects what a new contributor experienced, over and over again. We brought an awareness of what’s hard about being new, and also a bunch of people who could fix that – we made tons and tons of documentation, tutorials….” Dave went on to talk about how you could make up all sorts of excuses about your students not having experience or time, but the reality is that there’s tons that those people can contribute – even just making the experience easier for others.

On how professors could give back: “There’s a ton of opportunity for teaching inside an open source community. OSS is about sharing code, but it’s also about sharing the how – teaching one another. And as professional educators, we have a lot to give them in terms of knowing how to teach.” The worlds of being a professor in academia and simultaneously a contributor to OSS communities are not perfectly mergeable (for instance, release cycles and academic semesters usually don’t coincide, but both have something valuable to share.


How I learned to talk with people


Doing my homework for the first day of POSSE. It helps that a lot of it was already done before today…

  1. My TOS userpage is [[User:Mchua]] as usual. (I don’t have a course outline to present on Friday, so I skipped that part.)
  2. I already have a Fedora FAS2 Account
  3. … as well as a Fedora bugzilla account.
  4. I now have a Mozilla MDC account
  5. …and a Mozilla bugzilla account
  6. I’ve already got a blog (you’re reading it now) that’s on TOS Planet (you may be reading it there).
  7. One assignment was to talk on IRC; watching the professors explore #teachingopensource-posse made me grin all night. (And I don’t think all of them are sleeping yet, either.)
  8. That leaves the last assignment: create a blog post describing your experience working collaboratively online. For example, what did you find hard vs. face to face communication? how accurate was the final result? what did you learn that you didn’t know before?

I’ve been using IRC for about 2.5 years and text chat for nearly three times as long, and Fardad’s summary of the tradeoffs between online and offline communication covers most of what I was going to say. Here is the rest.

Most of you already know that I grew up with a severe hearing impairment. I’m also something of a quiet introvert (much less shy than I used to be, though). I also don’t look like most people who contribute to the projects that I’m interested in; young (I was a teenage math geek and coder, though I’m less of an age anomaly at 23 than I was at 15) minority females with hearing aids are in somewhat short supply in technology in general, let alone open source. This all affects, in various ways, how I’m able to interact around such projects in person. For instance, it’s extremely difficult for me to follow large group conversations (over 3-5 participants). In fact, it was so difficult that the first large group conversation I ever really participated in was when I was 14 years old.

It was a chatroom.

For the first time, I could follow a rapid-fire conversation – for the first time, I could socialize without straining to read lips – and I found that I liked talking to people. I learned I wasn’t just able to follow a multi-person discussion, but participate in them – multiple ones, simultaneously, and (once I was able to grasp the new flood of subtle cues and tactics I was being newly exposed to) adroitly dance within them, help shape them, steer them, give them form. Not only was this possible and worth it, I was good at it. I then started working hardcore on my real-life group conversation skills, and now I can – sometimes, in certain circumstances, with lots of coping mechanisms – participate in person. Without the taste of success in chatrooms, I probably wouldn’t have been motivated to do that, and wouldn’t have been able to sit around a table and talk reasonably comfortably at POSSE today.

Similarly, nobody online will assume that I’m my teammate’s nontechnical girlfriend, that I can’t understand polysyllabic words (probably a combination of reactions to “child” and “wears hearing aids”), or make assumptions on how I operate culturally or what I’m interested and not interested in, or able and unable to understand, on anything other than the basis of what I say I am and ain’t, can and can’t. All sorts of things like that. Little invisible weights you don’t realize you’re carrying until you’re in a space where they are lifted.

And it gives me time and space. To think. To sit back and take a breath and take a moment without feeling pressured for an answer. To say what I want to say without worrying about interrupting someone. To ask dumb questions that turn out to be not all that dumb – even now, I’ll write, write, revise, take a deep breath, run a lap around the building, then close my eyes and stab the send button with my thumb – I can be braver than I sometimes am in person. The gap is narrowing, though; once I noticed this, just like when I noticed what was happening with group conversations, I started working to close it – once you experience the feeling of empowerment, you want to bring out into as many parts of your life as possible.

I’m probably an extreme case, but online communications were an invaluable scaffolding for me, giving me a safe space to grow up, a space that I could learn to modify. That made a  lot of things possible that just weren’t possible before. (Well, they were technically possible before, but I would never have done them because I never would have considered them – which is effectively the same thing as having it be impossible.) I can never take group conversations for granted. Heck, I never really thought I’d be able to participate in a meeting, and now I teach people more than twice my age how to run them well.

It won’t work for everyone. And the internet’s not magic. But it worked for me, and so I’m glad I had (and have) it as an option.

That’s all.


1:46am, and I couldn’t be happier.


POSSE’s first full day KICKED ASS, more later.

Amusement: Luis Villa noticed that “plastic material normally associated with the sport of swimming” was allowed material for the CA bar exam and now wants to walk into the room with flippers.

Learned that more of my friends from school have gotten married. This makes me feel old. (Yes, yes, this is the side effect of hanging out with people several years older than I am all throughout school.)

INBOX ZERO, W00T. Several hundred emails of travel backlog, GONE. (Now I have an older – but much smaller – backlog from before this round of travel to clear out, but that’s easier.) I need to lower my standards on what makes a good reply…

Tonight I need to prep for the Fedora Marketing meeting, then do my POSSE homework and blog about it. DONE YAY BLOGGING NOW! Then I will sleep. Then I will wake up early and transcribe yesterday’s POSSE events (since by then all the prof blog posts will have trickled in) and send thank-yous. By that time Day 2 of POSSE should be about to start, and Tuesday will begin in earnest.


POSSE, day 0


This morning I had a 3:50am wakeup, 6:10am flight from CA to NC, and was really excited when I landed. Why? The start of POSSE. (Recap: weeklong bootcamp at Red Hat teaching professors how to get their classes to contribute to open source for credit.) We’re twittering at http://twitter.com/posse2009 for those of you you who want realtime updates and like twitter, and hanging out in #teachingopensource-posse on Freenode if you want extremely realtime updates and like IRC.

Finally met Max in person! Have yet to meet Ian Weller face-to-faceApparently neither Ian nor I sleep; we met at 2am. It was nice to put faces to names for all the POSSE profs – Chris and Dave sound different in person than on the phone. I was quiet most of tonight as I assimilated the way everyone talked – takes a while for me to buid a Markov model of new voices well enough to contribute to a group discussion. Some neat things that came up at dinner:

WPI teaches a HTDP camp to high school teachers every summer and certifies them to teach HTDP classes to their students. The kicker: if a high school student takes a HTDP class from a certified teacher, they get credit at WPI. Smart move, especially now that the AP CS test has been discontinued.

Textbooks cost students inane amounts of money; we’ve known this for a while, but the economic crunch is helping to turn things towards open textbooks. Matt Jadud presented an interesting economic model for open source textbooks and an explanation of the value-add of good editing/indexing/design. Also discussed: open textbooks as an attractive feature universities can advertise. “Come here, and you’ll never have to buy a textbook in 4 years.”

Three reasons OSS makes sense in universities (and not just in CS departments, as Cameron Seay was quick to point out):

  1. it makes economic sense – gratis!
  2. the Real World uses open source; when you graduate, the chance you’ll work on/with OSS projects and products is high and growing
  3. we need to teach students how to work on large, distributed, international, complex, jump-into-the-middle-of-someone-else’s-work projects. (Even Andrew Begel from Microsoft Research acknowledges this.) If you’ve never worked on a team larger than 3 people, never worked on a project with more than 10 files… how are you supposed to function?

Me, I stuffed myself with peppers, calamari, artichoke dip, ostrich, risotto, red wine, and asparagus, and learned a lot. Always good to spend time surrounded by people smarter than you, and this week will be fantasticaly full of that. My role this week will default to “ethnographer” – I plan on taking notes as copiously as my hands (and other duties) will allow.


What’s it like in SFO?


I haven’t updated much about what it’s like in SFO. So before I pass out and/or my battery dies (it’s a coin toss as to which will give out first; power or willpower)…

  • Warm.
  • I love my brother. I love that I can get to know him as one adult to another now – it’s nice to grow up with someone, except… I didn’t really. Our teenage years were spent apart because I was away for school, so I’m getting to know him all over again now.
  • Jason (brother), Brian (Jason’s roommate) and I went on a pig-out fest one night, my thank-you to them for letting me sleep on their couch cushions on the floor in my sleeping bag. (Hey. I travel cheap, okay?) In 1 night, we hit 4 restaurants. We were… full. Chocolate souffle is heavenly. Frozen yogurt with figs, honey, walnuts, and graham crackers, too. And the pizza at the dive bar was surprisingly amazing. Fish tacos and beer (for me) at the fish taco place… wings at the pizza place, too… I think I’m still digesting Tuesday’s meal right now.
  • Why is my mom visiting me during a business trip? This wasn’t my idea, by the way. I told her about my upcoming travel, like I always do, and she decided, at the very, very last minute (she arrived Thursday evening)  to book tickets to Stanford to coincide with mine. I mean, I like hanging out with my family and I’m not complaining that I get to see her and my brother after work (and they’ve been good about not fussing about me spending time in the office Doing Stuff, because I’ve been very firm that work is what this trip is for), but, but… I can’t help but feel a little mortified. Maybe that’s the remannts of pride that shouldn’t exist. Karsten, Addi, and Emma think the whole situation is hilarious. I have been told “not to stay out too late on Saturday.” I am not sure if I can follow these instructions.
  • Warm!
  • Stanford’s campus is gorgeous. Also the houses on its land. And it has a lot of land.
  • Sun!
  • Bike lanes are everywhere!
  • Grad program intriguing and more cross-disciplinary than I’d previously thought – win!
  • View from Red Hat office windows is drop-dead gorgeous.
  • Warm!

There ya go.


Riding with Addi and Emma


After a normal (if frantic) day at the office wherein I tried and partially succeeded in prioritizing, I went to pick up Addi (Drupal docs lead) and Emma (online community consultant) from the airport, since SJC and their hotel were both on my way to Karsten’s. Notes in the form of little paragraphs, because I’m sleepy.

Documentation

…is important, but undervalued, along with many other kinds of open source contributions that aren’t code – code is still king for currency in the vast majority of projects. I think this is fairly well-known, so how can we change this situation faster? One way is working across projects, thinking of documentation skills and practices as something that can be shared across multiple project communities. Both Addi and Emma are part of writingopensource.com, which is trying to do just that. Another thing I think we may be missing are case studies of examples of communities where non-code currencies are king. Obviously, writingopensource.com is one. FLOSSmanuals is likely another. Sugar Labs tries to be, but has a mixed hybrid of currencies right now. Moodle may be an interesting study as well. Deliberately constructing experiments to try out alternate currencies is also an alternative.

…is one of those catch-22 situations. Like seeks like, so documenters (or people of the type you don’t have in your project, but do want) take a look at the current crowd and climate of a community and think “nobody like me is here, therefore this place is not for me.” But they’re exactly the kind of people you want, because you don’t have them! Recruitment strategies should change accordingy.

…needs to be written not just for a project’s code, but for its culture. Addi has this awesome idea of doing this in travel guide format – instead of “Brazil” or “Thailand” or “Germany,” you’d have guides for “Drupal” or “Fedora” or “Sugar,” but using the same outline. What are the common terms you should know, the map of interesting places (websites, features) you should see, the multi-day sightseeing tours (here’s the “i18n contributors” trail hike, or if you have more time you could do a scenic drive through Marketing territory), the cultural quirks you might not know (don’t sneeze in public in Japan; don’t private-message people in Drupal). Basically, everything you need to start wandering around, being productively lost. There’s a pun to be made from the “Lonely Planet” travel guides here, by the way; OSS is far from a lonely world.

Cultural context

…is like telling a fish it’s swimming in water. Once you grok, it’s hard to imagine not getting it, or how anyone else could ever possibly not understand this. This is a problem, because it’s still hard for the folks it hasn’t clicked for yet. However, too many newbie experiences still go like this:

Newbie: “How do I help?”
Folks: “Don’t ask! Just try stuff, do what you want!”
Newbie: “But…”
Folks: “Just do it!”
Newbie: *tries*
Folks: “NO YOU DID IT WRONG.”
Newbie: “But you said I should try, and you didn’t tell me that there was a right way to try, and… but… AAAH! I give up.”

…makes us repeat the same party line over and over again, sometimes without considering what it means. “The project is open! Anyone can participate!” is not… as easy as it seems. Anyone with the time to keep up with the mailing list, anyone with relatively fluent grasp of $programming_language, anyone with thick enough skin to not get discouraged by multiple rejections and dead ends, anyone who can make calls at 6am EST on Tuesdays, anyone who… you get the idea. By the same token, Microsoft’s projects are open to anyone who wants to participate. All you have to do is study and gain qualifications to apply for a job there, then get hired, then get put on that project… Basically, let’s not pretend we’re all-inclusive. Let’s figure out who we are and aren’t inclusive of; then we can figure out how we would like to change that.

Drupal

…made a lot more sense after a 15-minute intro crash course over dinner. What made my multi-month fruitless stumblings several years ago not click the same way this just did? Have I gotten more context for open source projects in the meantime? Is it talking with live people who can tailor their explanation to your precise situation so your signal to noise ratio is excellent? All the information they told me is and was avaiable online, it just took me weeks to find the same things they told me in 15 minutes, and those things were the most valuable things I needed to know. Is it… well, I don’t know. How can we replicate that kind of experience without needing to physically meet people all the time? (Can we? Meeting people in person is awesome!)

This reminded me of the previous night when I managed to teach Jason in 30 minutes (in person) all the web development stuff I’ve been trying to explain to him over text chat and email for literally months. “It’s just clearer when you’re standing next to me,” he said. It sure does seem that way. Maybe there’s a magical physical-presence factor. Someone must have studied this before, but I lack the vocabuarly to clearly phrase this in the form of a question. Help?

Cheesecake

… is delicious.


Short links


Things I’ve read that I’d write more about if I had more time, but toss out to the interwebs instead because I think my friends may find them interesting:

Design the classroom of the future! Well, at this point it’s really more results of such, but the concepts are intriguing.

FLOSS roadmap for 2020. That’s Free/Libre Open Source Software, not the item for dental hygiene.

The Federal Public Access bill – I wonder how that’s working out behind the scenes.

An article titled “open course wars.”

And the education open access policy.

“Open” is starting to become a buzzword too, even in education. We need to make sure we keep knowing what this word means.


Things I’m learning from business travel


Sleep is non-negotiable. It’s different having to get up every morning and still be functional. You can’t overdo things and crash; you’ve got to actually consistently be functional. For some reason, I seem to need more sleep when on the road – 5 hours, maybe. It’s weird. Maybe my body doesn’t rest as deeply in strange random beds? Maybe timezone changes actually do affect me?

Transit time is not necessarily rest time.

Travel light. If it’s more trouble to haul it than to buy it if you need it, don’t take it.

Not having access to normal office utilities like printers, copiers, and fax machines adds up in terms of time, hassle, and sometimes even cost. And wifi. I’m seriously thinking about investing in 3G if I keep up this time on the road and the road continues to be in the US, because the $N per month I’d pay to have it vs the X hours per month I’d spend searching for internet or losing productivity due to lack of internet (or to get it in my hotel room when it isn’t free) is probably worth the tradeoff. ‘Course, if I spend a long stint not in the US, things get complicated.

Expense reports can be the bane of your existence. Doing receipts right after you get each one is unwieldy. Keeping them in your wallet is suboptimal. If you keep an envelope for reimbursible receipts (in chronological order) into which you toss things (with ballpoint pen annotations) right as you get them, then… well, we’ll see how that one works out now.

What else is there? Road warrior travel tips?