bzr vs git - the open source conference proposal

Selena loves Git and I love Bazaar. And like all good nerds we've spent a fair amount of time talkin' smack about the other's version control system. And I say "all good nerds" because Sam and I tend to "fight" about version control systems at DrupalCon as well (alcohol is optional, but hand waving is mandatory). See in the back row of that photo? It's Victor Kane. His new book, Leveraging Drupal, also talks about version control systems for Drupal.

After a little bit of discussion (and after I stole Selena's git slides to give a bzr talk) Selena and I decided that maybe there ought to be a conference presentation on how to choose the best version control system for your work environment.

Like all good things open source this presentation is going to be built under the release-early-release-often model. It's not a place to talk smack though. It's a place to talk about how you should go about evaluating a version control system for your work environment and it's hosted at www.bzrvsgit.com and/or www.gitvsbzr.com. If you want to have your ideas added to the list, please tweet or dent using the hash tags #bzr, #git, #bzrvsgit or #gitvsbzr. Got something longer to say? Blog it and then tweet/dent it with a link to your blog post!

Our list of community contributed topics currently includes:

  • CrashTest_: You know, I am sold on bzr, however I haven't yet figured a way to incorporate VCS into my workflow correctly. Confused.
  • sdboyer: ooh, #bzrvsgit - i want use case comparisons, ie, "Exporting the current tree," and compare possible gui/cli approaches
  • thesethings: You have to acknowledge how tools "up the stack" (Iike clients, github,launchpad) greatly influence the decision. #bzrvsgit
  • mikl: well, I suppose that’s mainly a speed vs. features comparison, so both of those :) #bzrvsgit
  • datawench: i'm currently using nothing, but haven't really hit a situation yet where it shouted its necessity. am edging toward, though

We'll be checking the official Web sites for Git and Bazaar for these answers. That means both projects will end up stronger (and with better Web sites) as a result of your questions. Start asking now and let's make version control easier for everyone no matter which platform they choose!

PS We want to help you choose the right version control system. The answers may lead you to use something other than Bazaar or Git. Tweet/dent your questions using the hashtag #vcs if you are feeling anti-#bzrvsgit.

My theming toolkit

During my DrupalCon presentation I asked themers to blog their toolkit so that we can learn from one another and work towards a "best practices" toolkit. There were lots of fantastic ideas during the session and I'm hoping that people will blog their toolkits.

Here's a summary of some of the tools that I use (and that I talked about during my session):

  1. Browser plugins--make your browser a Web development environment instead of just a Web browsing window. Firebug allows you to edit your CSS files on the fly and to easily locate any element in the HTML source for your page. Victor Kane also recommends the Web developer's toolbar.
  2. Testing services--stop asking your friends to take screen shots for you and start using one of these two testing services. The free service BrowserShots.org is perfectly suited to most people. It gives free screenshots from a variety of different configurations. The paid service, BrowserCam.com, is perfect for those who need to test interactive features as well. I have a BrowserCam account that I use to test fly-out menus on the sites I build.
  3. The Drupal Devel module--a helper module for Drupal developers and themers. This module comes with an amazing Themer Info tool that allows you to "see" the contents of node and page variables.
  4. Personal design library--Web sites change. Your favourite site today might be completely different tomorrow. Find a tool which allows you to save your favourites into a reference library. My favourite of tool is the browser plugin, Zotero. It was originally created for researchers, but it works well for designers too.
  5. CSS Grid Systems--these CSS frameworks allow you to quickly create new Web sites that work in "all" browsers. One of the best documented grid systems is 960.gs. There is also a Drupal base theme that uses the 960 grid and a comparison chart that summarizes which of the base themes use what grid system (if one is used at all).
  6. Version control--I don't care which system you use, as long as you use something. I personally enjoy the distributed version control system, Bazaar. A short tutorial of how I use it to upload my theme files to a Web server is available on the Bazaar Web site. 

What's in your toolkit? 

PS The Themer's Toolkit is available online as a video and as slides. The information presented here is also available in more detail in Chapters 2 and 3 in the brand new book Front End Drupal (pre-order today from Amazon.com and give a little love back to the Drupal Association while you do it).

I'll vote for you, if you vote for me

I've been spending the weekend at SCaLE in LA. It's been an absolute experience. The first day was the Women In Open Source mini-conference. There were several excellent presentations and great discussion. I think we may have even made progress into creating a more focused and intentional WIOS day in 2010. I am planning a longer post on this when I've digested what happened and how this will affect the future.

The second day I went to a few talks and wandered around the booths and generally met up with old and new friends. For me it was really interesting to see the epiphanies that people were having in talks like Stormy's. In her talk she was talking about how you can use open work methodologies in all kinds of businesses regardless of whether the business is working with open software. To me it all seemed obvious and I was a little bit confused by the talk. But the chatter afterwards made me realize that the way I run my business isn't the same way that others are forced to work at their jobs.

And then it got to the Weakest Geek competition. I was exhausted. Beyond exhausted. You know when you're so tired that you forget your own name? Yeah. I was that tired. We got through the first round of questions and I had no idea who I wanted to vote off. So I turned to the guy next to me and said, "I'll vote for you and you'll vote for me." He said sure. And I wrote down a name. And then I realized that I might not have written down his name. So I turned to the guy sitting next to me did what I had to do, "What's your name?" Joe. Joe. Zonker. Brockmeier.

Yes. I. suck.

Fortunately I don't think he was too offended. And fortunately I got voted off.

zonker gave the keynote this morning and it was quite excellent. My rough notes follow. A little tip for presenters: zonker uses cue cards which means he isn't tied to the preview on his laptop. I haven't noticed many other speakers doing this, but I absolutely think this is a wonderful idea. He also used stuffed animals (geckos and penguins) to buy attention and love from the audience.

Reaching the Masses by Joe "zonker" Brockmeier

Notes on the keynote presentation at SCaLE 7x.

• The chief problem is no longer technical. The problem is education and getting the word out.
• Have goals. Have very realistic goals. "We want more contributors." "Great." "What kind?" Need to have ways to measure your progress.
• Opt-in to send your hardware information is really important because you can use it to lobby vendors.
• Mailing lists are not the right tool if you want to have a detailed conversation. Move talk to the wiki. There are fewer arguments on a wiki because argumentative people don't bother to sign up for an account and take the time to not be friendly.
• Have a solid project infrastructure--y'know the Fail Whale.
∘ unclear trademark guidelines. Legal infrastructure. Software Freedom Law Center.
∘ have docs for beginners.
• "leader get out of the way" lead AND get out of the way as a spin on: lead or get out of the way
• If you step away, and no one steps in maybe it wasn't that important in the first place.
• When you are distributing your project make it really easy for everyone to install your software. It's not good enough to have svn and git repositories. It's barely good enough to have a .deb if it doesn't install really, really easily.
• Evangelists: know them and love them. Developers were asked to look at the people who don't self-identify as a developer. You need these people. You need them to help your project to succeed. "I've read some of your documentation." If you have a very small project your first step might be to recruit amplifiers who can help bring people to your project.
• Freedom is important. But people don't realize how important it is until it's taken away. You'd think that it'd be easy to explain DRM, but it's easy to download iTunes to iPhone. It doesn't make sense until someone can't move a movie to a device that is connected to a computer. Then it starts to hit home.
• If your software isn't better than proprietary, you're going to lose. Be sure to sell the community in why you are better than proprietary.
• "a non-practising journalist" not "former". Be cautious when you work with a journalist. How will what you say to a journalist look when it's in print. Assume nothing is off the record. Reach out to journalists who cover the area you're in. Not press releases and things that are really meant for investors. Make it personal. Offer to help journalists. Coverage means more users and more contributors. Everything you say online (and not just to journalists) is fair game. Be careful.
• Become the media yourself. Don't wait. Finding authors who can hit your deadlines. Offer to write tutorials and HOWTOs. you can make money doing it by writing for magazines. $200 for your project for the article pay can be contributed back to the project you're writing about.
• Your project should have a planet feed and a news page. You need to have things for Google to pick up for journalists to pick up. Podcasts.
• Even if you know that something is off the record. They can find another source for the same information.
• Collaborate with other projects. Where is there duplication and figure out where you can eliminate that duplication between the two projects. Spreading Linux first and openSUSE second. Expand the philosophy before you extend the brand.
• Do something even if it's wrong. Stop talking about things and start doing things. Even if it's wrong.
• Schools want to use old machines and community projects as well. But the hardware vendors are less likely to support this, but they're trying.
• Determine the baseline you are trying to address when preparing your marketing material and your documentation. School teachers are not the same as SCaLE attendees. You can't boil the ocean, so don't try to hit everyone with a single document. Run your documents through people that are an example of who you're trying to reach.
• Why didn't you advocate for community managers in your talk? What are your goals though? it's good for projects that have the money to hire one.
• Q: How do you sell the transition costs? A: Look for pain points where there is a return on investment. Don't try to get people to switch based on freedom--they will find new pain points that will really negatively impact you later. Focus on green field adoption where they've already made a decision to switch.
• Linux Dairy Council. groups.google.com/group/linux-dairy-council

Git for Teams

Git For Teams

Best selling title from O'Reilly media. Covers essential skills needed to use Git in a team environment.

Available from O'Reilly media, and better bookstores worldwide.

Collaborating with Git

Collaborating with Git

Practical how-to videos to get you, and your team, up and running with Git. A complementary video series for the book, Git for Teams.

Available from O'Reilly media.

Drupal User's Guide

Drupal User's Guide

Site building for Drupal 7. Includes in-depth information on Drupal's most popular site building modules, SEO and accessibility. Two complete case studies are included in the book along with the tools you'll need to build (almost) any Web site with Drupal.

Available from Amazon.com.

Front End Drupal

Front End Drupal

The industry go-to for learning theming in Drupal 6. A great companion to Lullabot's book, Using Drupal.

Available from Amazon.com.