Broken windows, broken code, broken systems

A few days ago, I asked:

I spend a lot of time thinking about the little details in systems – like the number of ephemeral ports consumed, number of open file descriptors and per-process memory utilization over time. Small changes across 50 machines can add up to a large overall change in performance.

And then, today, I saw this article:

One of the more telling comments I received was the idea that since the advent of virtualization, there’s no point in trying to fix anything anymore. If a weird error pops up, just redeploy the original template and toss the old VM on the scrap heap. Similar ideas revolved around re-imaging laptops and desktops rather than fixing the problem. OK. Full stop. A laptop or desktop is most certainly not a server, and servers should not be treated that way. But even that’s not the full reality of the situation.

I’m starting to think that current server virtualization technologies are contributing to the decline of real server administration skills.

There definitely has been a shift – “real server administration skills” are now more about packaging, software selection and managing dramatic shifts in utilization. It’s less important know to know exactly how to manage M4 with sendmail, and more important that you know you should probably use postfix instead. I don’t spend much time convincing clients that they need connection pooling; I debug the connection pooler that was chosen.

The available software for web development and operations is quite broad – the version of Linux you select, whether you are vendor supported or not, and the volume of open source tools to support applications.

Inevitably, the industry has shifted to configuration management, rather than configuration. And, honestly, the shift started about 15 years ago with cfengine.

Now we call this DevOps, the idea that systems management should be programmable. Burgess called this “Computer Immunology”. DevOps is a much better marketing term, but I think the core ideas remain the same: Make programmatic interfaces to manage systems and automate.

But, back to the broken window thing! I did some searching for development and broken windows and found that in 2007, a developer talked about Broken Window Theory:

People are reluctant to break something that works, but not so much when it doesn’t. If the build is already broken, then people won’t spend much time making sure their change doesn’t break it (well, break it further). But if the build is pristine green, then they will be very careful about it.

In 2005, Jeff Atwood mentioned the original source, and said “Maybe we should be sweating the small stuff.”

That stuck with me because I admit that I focus on the little details first. I try to fix and automate where I can, but for political or practical reasons, I often am unable to make the comprehensive system changes I’d like to see.

So, given that most of us live in the real world where some things are just left undone, where do we draw the line? What do we consider a bit of acceptable street litter, and what do we consider a broken window? When is it ok to just reboot the system, and when do you really need to figure out exactly what went wrong?

This decision making process is often the difference between a productive work day, and one filled with frustration.

The strategies that we use to make this choice are probably the most important aspects of system administration and devops today. There, of course, is never a single right answer for every business. But I’m sure there are some themes.

For example:

James posted “Rules for Infrastructure” just the other day, which is a repost of the original gist. What I like about this is that they are phrased philosophically: here are the lines in the sand, and the definitions that we’re all going to agree to.

Where do you draw the line? And how do you communicate to your colleagues where the line is?

This year is so nuts for having conferences in Portland, OR

UPDATED! Just added Open Gov West! Rearranged, and just listing these all in order now. And added #140Conf in Vancouver, WA. It’s close enough. đŸ™‚ And just added Digital Journalism Portland.

For real.

This summer belongs to the nerds, geeks and hackers. I can’t believe that Portland’s tech scene got no love from Portlandia this year. Thank heavens they got a second season!

I did some research, and found TWENTY distinct conferences happening from now through November in the Portland area.

Anyway, there’s a sweet new service that you might not have heard of called Lanyrd, and a quick search over there revealed 20 conferences.

And over the next few days, several people suggested a few more:

  1. Agile Open Northwest 2011, 8-9 February 2011
  2. SearchFest 2011, 23rd February 2011
  3. Python Software Foundation Sprint, Feb 26th
  4. PDX11 Civic Hacking Unconference, April 1-2, 2011 (Plans are coming together now.. so pencil it in!)
  5. Innotech, April 21, 2011
  6. TEDxPortland, April 30, 2011
  7. JSConf US 2011, 2nd–3rd May 2011 (Rumors of crazy fun abound for this, also a party open to the public. Epic!)
  8. NodeConf 2011, 5th May 2011
  9. Open Gov West, 13-14 May 2011
  10. Digital Journalism Portland, 14th May 2011
  11. #140Conf Northwest, 19th May 2011
  12. WebVisions 2011, 25th–27th May 2011
  13. World Domination Summit, 4th–5th June 2011
  14. HotStorage ’11, 14th June 2011 (Third workshop on hot topics in storage!)
  15. USENIX ATC ’11, 15th–17th June 2011 (USENIX’s annual technical conference)
  16. WebApps ’11, 15th–16th June 2011 (Second annual conference from USENIX on webapps!)
  17. Open Source Bridge 2011, 21st–24th June 2011 (Third year! CFP still open!)
  18. IndieWebCamp, 25th–26th June 2011
  19. OSCON 2011, 25th–29th July 2011 (Back in Portland, Again! And @gorthx is on the committee!)
  20. Community Leadership Summit 2011, 23rd–24th July 2011
  21. Vida Vegan Blog Conference, 26th–28th August 2011 (Blogger conference for vegans! Crazy!)
  22. DjangoCon US 2011, 6th–8th September 2011 (Organizer recently relocated to Portland!)
  23. Pacific NW Drupal Summit, October 14-16, 2011
  24. SPLASH 2011, 22nd–27th October 2011
  25. Onward! 2011, 22nd–27th October 2011 (@al3x is on the committee for this!)
  26. Grace Hopper Celebration of Women in Computing 2011, 9th–12th November 2011

Sources: Lanyrd, Plancast, Calagator and the comments.

What other geekery did I miss? Let me know in the comments.

UPDATE:

Here are the conferences without dates:

Event organizers: spaces to have tech events or conferences in Portland

I’ve been asked more than a couple times about places to have events in Portland.

When you google for ‘event spaces portland, or’ you don’t get anything that I’d call useful.

So here’s the list that I’ve compiled:

East Side:

West Side:

Checklist for new event organizers: how to schedule and get people there

I was talking with @schmichael today and he brought up that it was insane how many different organizing tools are out there, and there’s no handy list of tools for new event organizers to use!

So, here’s my list of helpful tools if you’re trying to run an ongoing tech event:

  • Put your event on a calendar like Calagator.org: This may be pretty Portland specific, but if there’s an event calendar in your area, be sure to put your event on it! Calagator is great also because it shows you a list of venues – possible places for you to hold events. When you need space, its likely best to ask other event organizers. In Portland, we have a special list for event organizers. Get in touch if you are an event organizer, and not already on it!
  • Create a meeting event on something like Meetup.org: So many groups still use this. Several PostgreSQL groups do, and PDX Lean Startup Circle swears by it. There’s also Upcoming.org, but we don’t seem to use that as much
  • Create a google group! Mailing lists are still the best way to keep in touch with people. All the research on electronic communication says this. Tweeting is not enough!
  • Don’t put tons of interested people on CC or personally-managed Outlook lists. This is spam, and the people on the CC list can never unsubscribe! It’s not just annoying, it is rude.
  • Make a twitter account for your group! Twitter is a great way for the always-connected crowd to stay on top of what you’re up to. Easy to search, and quick to post. Try out Cotweet if you have more than one organizer!
  • Tell other event organizers about your event. They likely know other individuals and groups that would be interested and can use their best judgement in passing an email or tweet along. Don’t spam a bunch of unrelated groups!
  • Make an event announcement 2 weeks, 1 week the day-before and day-of your event.
  • Include the following in your announcement: event name, date, time, speaker name(s), talk title and location including zip code of your event (so people can use maps to find you easily!)

What else do you think an event organizer should have in their checklist?

She’s Geeky report Day 2!

Photo courtesy of Sarah Mei

I’m sitting in the closing session for day 2 of She’s geeky – tired, but feeling inspired.

The main sessions I participated in were connecting women’s communities, OSCON proposal creation and a session on recruiting. I spent a lot of time talking one on one with a couple community managers, and touched on a ton of issues involving leadership, vision and the future of women in open source.

One idea that resonated with lots of people was the idea of going deeply into identifying the common values of the women who start and lead change efforts in open source. And using that foundation to launch future work.

A few action items came out of it involving creating a set of calendars, using posterous for some more communities, and creating a crunchbase-like database of women in the tech community.

I got a chance to talk to a couple women who are Linux kernel and embedded systems hackers. They’re submitting talks to OSCON thanks to Sarah Novotny’s session on creating talk proposals. So awesome!

Now we’re about to go have dinner, and looking forward to a fun evening after a full day.

She’s geeky: day 1 report

Image courtesy of Sarah Novotny

I got in about 1pm to She’s Geeky, an unconference about women who self-identify as geeks.

I’m here on a mission: to find developers who want to move to Portland! Emma, Urban Airship, Puppet Labs, About Us and BankSimple are all hiring (and BankSimple is even interested in remote hires).

My favorite conference session yesterday was about leadership and management, the difference between the two, and how to work with managers. We had an amazing discussion, with @noisegirl, Allison Randal, and Ursula Kallio leading a lot of the discussion. Topics ranged from how to carve out time for individual contribution when you take on a management role, to dealing with insane micromanagement to exploring the limits of change in an organization.

Another discussion I participated in was “Startup. Now what?” We talked about the issues each woman faced in starting her own business, and I asked a lot of questions. đŸ™‚

I also attended a talk about the commerce department’s Privacy Green Paper. I hadn’t heard of it before, but the response being formulated is here: http://wiki.idcommons.net/Privacy_Green_Paper_Response

The main gist of the discussion was about encouraging congress to think carefully about the legislation and the business environment created (or stifled) by new data regulations. The contention is that activity data stored in “personal data stores” (PDS) is inherently of value — we already know this because our data is bought and sold without our consent or knowledge currently. So, why not create a system where businesses can do this, but with the consent and knowledge of consumers? I’d probably say “citizens” there instead of consumers, but you know. Whatever. đŸ™‚

I’m not sure I fully understand the issues yet. I tried at one point to draw a link between PDS and “owning your own logs.“, but that didn’t seem to resonate. Kaliya said something about respecting definitions, so I think that I still don’t quite understand what defines a PDS.

Or, put another way, I am having a hard time understanding the distinction, because the freedom issues seem to be very much the same.

I tweeted a bit about my thoughts on APIs related to PDS, and here’s one conversation that tumbled out of it:

Welcome, Selena! | LinkedIn
Uploaded with Skitch!

Anyway, much to think about from the first day, and I’m excited to see what discussions unfold today!

#PDX11: Turning things up a notch for Portland’s “software cluster”

So, last night a few Portland tech community folks got together at a bar and talked about the upcoming software industry summit on November 18th. You haven’t heard about it? Well, here’s the lowdown:

Mayor Adams, the Software Association of Oregon and the Portland Development Commission cordially invites you to participate in the development of a key software cluster strategy for the Oregon/SW Washington region. By attending this informative meeting you will play an instrumental part in the process with other top business community leaders.

The deal is: you show up, you get to help direct the resources dedicated to software industry development from the Portland Development Commission, the Mayor’s office and the Software Association of Oregon. That’s pretty much it. The people who go to this meeting are the folks who will be directing the future of the PDC’s “Portland Software Mandate”, which is part of that whole industry “cluster” initiative that targets active outware, advanced manufacturing, clean tech and software. More broadly, this is part of the 5-year plan to guide Portland’s economic growth.

Anyway, you really should attend this meeting next Thursday. If you can’t attend, see if you can get someone you know or a friend to attend on your behalf. We want to pack city hall.

That’s right — we’re meeting in the City Council Chambers. It’ll be great. Please attend! It starts at 4:30pm and goes to 6:30pm. And, if you show up we can lead you over to a sweet afterparty. Seriously. It’s gonna be awesome.

But — back to the PDX11 thing. One thing we talked about during the meeting was that we’re having problems communicating to everyone what it is that we’re doing with this whole “portland/pdx software cluster strategy”. It’s a mouthful to say that, and once you take another step and try to describe who is involved and why, things get muddy.

What if we just made a hashtag for it? What if we created a community site to start hacking on our city’s approach to software industry? To have public conversations about what’s next, and to bring to the table all aspects of development: education, small businesses, big businesses, hobbyists, investors and an epic number of volunteers.

Our first stab at this is to create pdx11.org. There’s nothing there yet (sorry, just bought the domain name), so this is your opportunity to help create this thing.

Last night, as we tried to come up with a concise name for what we were talking about, people started to giggle, and laugh at “turn it up to 11” jokes. Next year is 2011, so this thing has an expiration date (deadlines – my favorite procrastination ending technique). Because really, we’re kicking off this thing and wanting to deliver in 2011 on some initiatives. Which if you’re not aware are:

  • Creating a Knowledge Network to support local user groups – group convened by Warren Harrison of PSU
  • Developing a business mentorship network – group convened by SAO’s Matt Nees
  • Enhancing a financing network – group convened by Gerald Baugh of the PDC

These conveners are here to be project managers in the best sense — to find out what it is that *you* want to have happen, and then to communicate, document and follow up with public and private partners who are *making* these initiatives happen.

But back to PDX11. We wanted a name, a brand, something that made it easier for us to talk about with and recruit people inside the community, a connection point for locals, and a launchpad for outsiders to check us out.

If you’re up for helping to build the site, contact me directly (selenamarie -at- gmail -dot- com) and we’ll get going.

Otherwise, we’ll see you next thursday!

UPDATE:

For those not familiar with the PDC surveys, here are links to the results in SlideRocket format (meh):

Survey 1 Results
Survey 2 Results

GSoC Mentor Summit: Day 1

Today was the first day of the GSoC Mentor summit. I attended a few sessions and had several interesting hallway conversations with developers and leaders of projects from all over the world.

First, I attended a discussion about book sprinting, and did a recap of how our latest book sprint went (blog post to come!). We discussed the advantages of having the same group of people to two book sprints as a group, and how things seemed so much easier the second time around. We also had copies of the book that we’d hand-bound there to share. Lunch was spent chatting with Noirin and others about food, culture, travelling lots, and the hilariousness of having “Sotomayor” as a surname in Washington DC these days. Happy to have met a couple more Apache Foundation folks, and lovely to talk about names with an OpenNebula contributor. I also spent some time chatting with Greg Stark about the session on retaining students, and go over a few bits of inspiration he had for encouraging students to work on the more mundane aspects of PostgreSQL development.

Next I stopped upstairs to have a chat with Asheesh Laroia about new things he’s been up to around promoting free and open source community. He’d run a class recently to introduce new students to open source (at Penn State), and had some thoughts on what we should do next to make open source communities more welcoming. He also talked to me about Fedora Design Bounty, and how that model might be applied to other projects. Genius idea, and after reflecting on the idea a bit, maybe we could try it in pgsql-advocacy. Maybe. đŸ™‚

I then breezed through the Chocolate session. Yum!

And went off to see about Bradley Kuhn‘s session on options for joining or starting non-profits around free software. He’s now executive director of the Software Freedom Conservancy, and was giving out great advice around picking an umbrella organization, making the right choices early about where to put money (don’t use your personal paypal account!), and notes on where to go for help if you’ve got questions about what to do next. Not sure where the notes are for that session, but I’m sure contacting him for more information about Software Freedom Conservancy if you’re interested is an option.

Then we had the great Git Migration discussion. The notes were wonderful, and it seems like many people were either considering or were in the middle of a git conversion process. Two PostgreSQL developers were there, including Magnus Hagander, whose voice wasn’t working so well. I helped out a bit by giving a rough overview of how our process had worked, and pointing people at the many resources and tools Magnus and others who worked on the conversion made available.

Afterward, I sat down for a bit with Zooko to talk about Tahoe-LAFS, which appears to be an encrypted, distributed document store database with a http interface. Sounds really cool, and I’m interested in trying it out.

Now, I’m getting ready to head off to the party for the evening. Great day!

Training lessons learned: Code dojo, whiteboards, interactivity

Training can be an incredibly boring, frustrating exercise. Often, I have friends who don’t bother to attend sessions or tutorials during conferences. Instead, they cherry-pick friends and colleagues that they can work on code, gossip or brainstorm with in the hall while others sit passively in lectures. When I think about it now, knowing this about my friends is what motivated me to start Open Source Bridge.

The PostgreSQL training I gave to Ondo State was specifically targeted at developers. I used material End Point had from previous trainings, and added few new things designed to meet the needs of fledgling database developers. The high points I wanted to hit were: schema design basics, user defined function development and highlight developer-friendly features of Postgres that they should be aware of.

One big obstacle for me was that they would all be using Windows as their primary operating system. I develop exclusively on UNIX-based platforms, and so I had to spend a little time getting re-acquainted with Windows tools. pgAdmin III was essential, and I was happy that a new version was released along with version 8.4 of Postgres.

Also, while the concepts are the same, the built-in monitoring tools for Windows are quite a bit different, and I used freely available material from my Postgres colleagues who support Windows for a couple hour tutorial on interactive troubleshooting.

When trying to explain concepts – like replication, or basic database terms – it really helps to have a whiteboard. I was working with a group of people with diverse IT backgrounds, and often, I asked individuals to try to explain in their own words various terms (like “transaction”). This helped engage the students in a way that simply stating definitions can’t. Observing their fellow students struggling with terminology helped them generate their own questions, and I saw the great results the next day – when students were able to define terms immediately, that took five minutes the day before to work through.

Finally, one important request from the client was that some time be spent mentoring developers on standards, best practices for development and coding style. To accomplish this task with fourteen students in such a limited period of time, I decided to conduct a series of coding sessions where students and I took turns at the keyboard programming as a group. We call this coding dojo, a concept built on the Coding Katas from Dave Thomas.

Overall, I prefer interactive training, where students are not only encouraged, but forced to interact with each other and the instructor.

When I sent out the CFP for MySQL Conf yesterday, lots of people asked me for suggestions on talk topics. In general, I recommend that speakers focus on a particular take-away for the audience, and mention specifically what a person sitting in is going to learn *and* apply immediately. Not every talk can be interactive, or give people chunks of code. But *every* talk should have a clear goal, and leave the audience educated. The best leave them inspired!

PostgreSQL at MySQL Users’ Conference 2011

So, I’m on the committee for MySQL Conf this year, and the committee is specifically seeking talks about PostgreSQL. The idea is to broaden the scope of the conference to include a lot of different open source database technology, including a bunch more about Postgres.

The theme of the conference is “the ecosystem and beyond”, which was chosen specifically because the open source database world has exploded and grown so much in the last three years. Below is a slide from a presentation I made last year at LinuxConf AU about the growth in free and open source (FOSS) databases:

We’ve seen a half-dozen forks of MySQL appear, exponential growth among “NoSQL” databases, and now, a powerful release from PostgreSQL. It may seem odd that the name of the conference didn’t change to reflect the change in focus – but this is the largest FOSS database conference I know off – weighing in at over 2000 people last year. Given the community that’s grown around it, I understand why they are keeping the name.

The content will still largely focus on MySQL — the core, the many forks, and the community around it. But we’ll also hear from many new, successful database projects, and definitely hear from PostgreSQL. To do that, though, I need you to submit talks!

The submission deadline for all proposals is October 25, 2010!

Topics for consideration include:

  • Innovative uses of Postgres
  • Data warehousing and BI
  • Architectures based on Postgres
  • PostGIS
  • Government + Postgres
  • [your favorite web framework] + Postgres
  • Performance and optimization
  • Security and database administration
  • “In the cloud”
  • Business and case studies

If you’ve got an idea, submit a proposal today!

Please contact me directly for feedback, help with submissions or help generating ideas. And if you’re submitting, please just drop me a line to let me know! I’d love to hear from all that are interested.