Open Source Bridge 2009

I attended Open Source Bridge was last week, and have to say it was the best conference I've been to (I've only been to half a dozen). The variety of content kept the conference interesting and it was nice for me to finally meet others in the Portland tech community. I took a bunch of notes during the sessions and wanted to summarize them here.

Wednesday, June 17th

Welcome Session

The welcome session started with some statistics that I thought were interesting:

  • About 400 people attending
  • 25% people are presenting
  • 33% speakers are female

How to earn an open source living without taking investors or selling your soul

Brian Jamison from OpenSourcery talked about running a business that generates revenue from Open Source. He had a lot of good ideas, some of which I'm going to try out in Little Stream Software. My favorite idea was something we should all do more often:

"Say *No*, a lot

  • Specific customer
  • Sweat equity
  • Microsoft projects
  • Scope creep
  • Lowering price - you've lost if the customer asks"

Open Source tools for freelancers

Christie Koehler, a Portland freelance developer, went over several open source tools she used. She mentioned a small Python utility called timebook. It's a command line program that you can use to keep a running timer for tasks. I'm going to try it out for a few days to see if it can replace my paper timelog I keep.

How to build a successful open source software consulting company

Nate Aune from Jazkarta talked about starting an Open Source Consulting company. I already consider Little Stream Software an OS Consulting company, based on the work I do for Redmine but I did pick up few ideas on how to generate other streams of revenue (without selling my soul):

  • Custom development
  • Training
  • Support
  • Hosting

Information Security for the Open Source Business

Kevin Kenan gave a session on Information Security. Sadly, it was targeted at larger businesses than so many of the ideas weren't useful to me. A good idea I did get was that products should give their customers a guide showing how to configure the product securely along with the tools needed to test those security precautions.

Cluster Analysis - how to have fun in n dimensions

In Jesse Hallett's talk, showed how to do some Statistical analysis (Cluster analysis) to visually group data. It was a very interesting talk, though above my current math knowledge. He did have pretty animations though.

How to Work with the Government for fun and profit

I made a change at the last minute and decided to go to Deborah Bryant's session on how smaller businesses can win Government projects. I haven't had a lot of chances to work with larger organizations so I wanted to know how feasible it is to work with the local government.

Thursday, June 18th

Thursday Keynotes

The opening keynote for Thursday included a talk by the Portland Mayor, Sam Adams. He mentioned that Portland has a lot of funds for digital improvements but there isn't enough people trying to help. This might be a good opportunity for local tech businesses to pick up some work.

Ward Cunningham gave the next keynote about Innovations in Teamwork. One of his suggestion was that we try to work together more often, because that will lead to more insights and solutions than we have now. Based on that advise, I'm going to try to attend more local user groups.

Unit test your database

David Wheeler from PostgreSQL Experts Inc gave a talk about unit testing the PostgreSQL database. Even though Ruby on Rails doesn't use all of the features for each database, this talk had a few points that are great for writing unit tests against non-database code:

  • Test Driven Development is not for finding bugs, it for your own sanity and checking code consistently
  • If testing an interface is hard, then the function might need to be refactored. Hard to test means hard to use.
  • Tests are about as fast as your code but even then... they are much faster than debugging.

RubySpec: What does my Ruby do?

Brian Ford from Engine Yard gave a talk about RubySpec. I'm really excited about this project because he talked about some very easy ways to get involved and contribute. RubySpec is being used by many of the major Ruby implementations in order compare their implementation against the standard Ruby (MRI).

Configuration Management Panel

I went to this panel looking for a system that would help me automate server setup for myself and my customers. I was looking for something that was easy to use and that would make doing system upgrades simple. After hearing everyone speak, I'm going to take a look at puppet and automateit for my needs. The recording of this session just came online at blip.tv, I'd recommend watching it just to see the panel make offhand remarks at the other projects.

Bootstrapping Your Open Source Business

The GitHubbers never fail to entertain. Some notable quotes:

  • "Taking VC money is like marring a girl"
  • "I'm the CRO. Chief Revenue Officer"
  • "100,000 users on Twitter is the best integration test ever"

Git vs bzr smackdown

Selena Deckelmann and EmmaJane Hogbin paired on a session comparing git to bzr. bzr was my first exposure to a distributed version control system but git was the first one I really understood. From what Emma and the audience were saying, bzr is easier to learn and is good if you work with Windows. They also put up two sites to continue the battle: bzrvsgit.com gitvsbzr.com

Friday, June 19th

Friday was the unconference day. I didn't take many notes but I think Friday was still my favorite day just from the networking and discussions that came up. I'm going to have to attend more unconferences in Portland.

That's my write up of Open Source Bridge. I really enjoyed myself and would highly recommend attending next years conference. If anyone wants some more details about the notes I took, email me me and I'd be happy to send you a copy.

Eric.


On Safari - A web app to check SafariBooksOnline.com

Earlier today I launched my very first Sinatra app, OnSafari. OnSafari is a tool to check if a book is available on Safari Books. I'm been a member of Safari Books for several years now and I'm constantly wondering if a book I'm looking at at a bookstore is on Safari or not. OnSafari will let me enter the book's ISBN number and will search Safari Books' website for the book.

Technology

My main goal with building OnSafari was to learn a few new technologies that I haven't had the opportunity to use yet.

  • Sinatra - Sinatra is a micro Ruby framework for building websites. It was very easy to pick up and learn how it works thanks to the documentation in the Sinatra Book. I'm definitely going to be using Sinatra again.

  • HAML - HAML is a templating language that uses white space to generate a HTML document. I didn't like the idea when I first heard about it but after using it for OnSafari, I'm starting to warm up to it. The templates are a lot easier to read but I did run into some unhelpful parsing errors. I think I'll give HAML another try on a future side project, but I'm not ready to recommend it for a customer project yet.

  • SASS - SASS is part of the HAML project and does basically the same thing but instead builds CSS files. I started to use SASS for the basic design. Once I integrated the final design though, I ended up dropping SASS in favor of vanilla CSS. Like HAML, I'd like try SASS out on a side project before I recommend it.

  • nokogiri - nokogiri is a HTML and XML parser. Since Safari Books doesn't have an API, I had to page scrape to "search" for books. I've already used Hpricot so I decided to give nokogiri a try. I had no problems with it, even when parsing Safari Books' JavaScript laden pages.

  • Heroku - Heroku is a hosting environment for Ruby Web application. I decided to try and host OnSafari on Heroku since they have been marketing themselves as the "Instant Ruby Platform". They really aren't joking, I was able to setup and deploy OnSafari in 15 minutes. That included making some code changes to accommodate their (lack of a) file system.

Summary

Overall, I'm very happy with the results of OnSafari. I learned a lot and was able to successfully build a site I've been wanting for awhile. I think my biggest surprise was how easy it is to host on Heroku. I'm now considering moving several other applications to their service, so I don't have to administer their servers anymore.

If you have a Safari Books account, I'd appreciate it if you would give OnSafari a try.

Eric

Tags:

A Positive Change for the Rails Community - RailsBridge.org

As any community grows, it will encounter challenges. Depending on how the members respond, the community will grow, shrink, or even be wiped out completely. Last week the Ruby on Rails community was presented with a challenge during a regional conference. Without getting into the details, the community mishandled the challenge and hurt many members of the community. Instead of complaining about the incident, I decided to team up with some other people in order to try and improve the community.

RailsBridge.org is born

After talking with Mike Gunderloy and a few other Rails community members, we started up RailsBridge. The website explains the purpose of the project perfectly:

The RailsBridge Mission: To create an inclusive and friendly Ruby on Rails community.

The RailsBridge Guidelines:

  • First, do no harm. Then, help where you can.
  • Bridge the gap from aspiring developer to contributing community member, through mentoring, teaching, and writing.
  • Reach out to individuals and groups who are underrepresented in the community.
  • Collaborate with other groups with similar goals.

The website has some more information about the project's goals, but my goal is to make the community more welcoming to new members. To do this, I'm going to be helping out with project Dana Jones is starting, Creating Courseware for Newcomers to Rails. If you would like to help make some positive change in the Ruby on Rails community, sign up for the group and let your voice be heard.

Eric


Redmineblog.com - The Official Redmine blog

I'm happy to announce the launch of one of my Redmine side projects, the RedmineBlog.com. It will be the official blog for Redmine and will be another place the community can meet and topics discussed. From the About page:


We will be writing about various components of Redmine and it's community including:

We will try to make our content general enough to be used by anyone who currently runs Redmine or is evaluating Redmine, but we are targeting a few specific types of users to start:

  • Seasoned Redmine users who are looking for regular updates and upcoming news
  • New users who need detailed information on a specific topic
  • Ruby on Rails developers who are wanting to get into Redmine development

If you are interested in Redmine, I'd appreciate it if you would post any comments you have and subscribe to the RSS feed. Thanks.

Eric

Tags:

Redmine Budget plugin v0.2.0 released (finally)

Budget Screen

I've just uploaded a new release of the Redmine Budget plugin. The Budget plugin is a plugin for Redmine to manage the set of deliverables for each project, automatically calculating key performance indicators. This is a long awaited release that will fix many of the outstanding bugs and incompatibilities that have cropped up.

Download

The plugin can be download from the Little Stream Software project or from GitHub.

Changes

You can see more details on the Changelog and Roadmap pages.

Help

If you need help, my Redmine bug tracker is open to the public and you are welcome to ask for help there.

If you are currently working on a Redmine plugin and need help or have an idea for a plugin you would like developed, please contact me. My company, Little Stream Software, specializes in the development of custom Redmine features and Redmine plugins.

Eric