Do you know what open source software you are using?
OpenLogic's mission in life is to make it easy for enterprises to use open source software, so the first question we ask when we meet with a potential customer is "What open source software are you using?" That's a hard question for a large company to answer. It turns out that the commercial software tracking tools that companies use don't track open source software. They usually have to send out a company wide email asking "what open source software are you using?" They then wait for the replies and compile a large Excel spreadsheet with the answer. If they are lucky, they get complete data with lots of useful information like version numbers, websites, why the team is using the software, etc. We often have to do two or three iterations just to truly understand their needs. So, we decided to write OpenLogic Discovery. (Actually, Rod decided to write it during his RV vacation – hopefully, his wife will let him take his laptop on his next vacation!) Discovery runs on a system and compares all of the files with footprints of about 5000 open source software applications. It then reports back on all the open source software it has found. It finds installed open source binaries, not just source code. It's a free tool – although not open source at the moment – available for download on our website. Check it out. Now you'll really know what open source software you are using!
P.S. We are working on expanding our library of footprints – Discovery knows about 5000 open source software applications right now but we know there are lots more out there!
How does the open source development model affect the software?
So everyone knows that open source software is developed a little differently than traditional proprietary – but how is it different? How does that difference in the development model affect the software itself? That's what the guys at How Software is Built have set out to find out. They are interviewing lots of people about different development models. (I know this because they interviewed me.) You can read my entire interview online – they asked about everything from why would you start an open source application to how does support work to how successful will Second Life be as an open source project. It was one of those interviews where you actually get to think a lot – I'm following their blog as it looks like their other interviews have been as thought provoking as I found mine to be.
One of the things that they made very clear up front is that they are funded by Microsoft. I didn't find them to be biased towards proprietary software at all – as a matter of fact, they seemed very knowledgeable about open source software. I had a really good time talking to them.
Ruby/RubyGems/Rails/MySQL installation h e double-hockey sticks
So I decided to go my own way since I don't really like installing via a package manager. IMO, package managers are good for installing shared libraries and the like on Linux, but major apps like Subversion and PostgreSQL and stuff like that I like to install where I want them so I can maintain them easier and have them all in one place. So I understand that I made things harder for myself from the get go since I didn't want to use the "opinionated" way of doing things, and still I think it's worthwhile saying that I find it ironic that the technology intended to make one's web development life so easy and fun is not easy and fun to install on Linux. This is the common statement I found on the web and in books about how to install Ruby and Rails and MySQL: "On Windows, Instant Rails provides a self-contained Rails environment… On the Mac, Locomotive is a self-contained Rails environment… If you are running Linux, you know how to suck bits off the Web. Start with the Rails Wiki, and find instructions for your flavor of Linux." Not a good sign. It took me forever to find releases of the projects out on the web since I was looking for binaries and they just don't exist. This *really* bothered me. I love Linux for doing work, but the compile-from-source thing just drives me bananas. There are always problems and it takes forever to compile and make and make install and understand all the options on each of the commands and finally after 3 days of research you can finally get the stupid project installed. So I had to compile Ruby from source. Then I had to go find RubyGems and compile it from source. At this point I was ready to pick up my computer and throw it off the 4th story of the building where I work. So I succumbed to the "opinionated" recommendation to use RubyGems to install Rails. That worked thankfully. And now all I had to do was install MySQL. So off I went to find the source since I quickly discovered that MySQL doesn't like to make the source easily accessible anymore so I had to really search around for it. Finally, I found it at: ftp://ftp/mysql.com/pub/mysql/src/. Once again, back into the weeds trying to get MySQL to compile and install. So here are the steps I did to get this stuff installed – which took me approximately 4-5 hours. 1. Ran the adept package manager to install libraries such as irb, rdoc, etc. In a shell: 2. Found and untarred the Ruby 1.8.5 source distro. (http://rubyforge.org/frs/?group_id=426) 3. Renamed the directory to ruby-setup and created a new ruby-1.8.5 directory. 4. Cd into the ruby-setup dir. 5. Ran ./configure –prefix /path/to/ruby-1.8.5 dir. ran make and make install. 6. Added RUBY_HOME to my path. 7. Found and untarred the RubyGems 0.9.4 source distro. 8. Renamed the directory to rubygems-setup. 9. Cd into the rubygems-setup dir. 10. Ran sudo /path/to/rubybin/ruby setup.rb. (I just discovered there is a better way to do this. http://rubygems.org/read/chapter/3) 11. Ran sudo /path/to/rubybin/gem install rails –include-dependencies. 12. Added RUBYOPT=rubygems to my profile. (This is necessary to have ruby run apps with rubygems loaded automagically) 13. Found and untarred the MySQL 5.0.42 source distro. (ftp://ftp/mysql.com/pub/mysql/src/) 14. Renamed the directory to mysql-setup and created a new mysql-5.0.42 directory. 15. Cd into the mysql-setup dir. There is a very helpful file called INSTALL-SOURCE that outlines all the necessary steps – including a nice section on the configure options. 16. Did all the MySQL steps – about 10 in all. Finally everything was installed – this took me the entire morning. After coming back from lunch, I actually started a sample app using the book Rails for Java Developers. Amazingly, there was a mistake in the instructions and when I got to the part about running the stubbed out tests, I got a bunch of failures which the book did not mention. If you get some errors running rake the first time after creating an app in Rails, check that the .yml file has the correct named variables for the test to use. The test referred to :first, but the .yml file had one: as the variable. Sort of close, but not close enough. So could someone please package a self-contained Ruby on Rails environment of binaries for Linux like the Mac and Windows versions? I would buy you a case of barleypop. '8~)
Efficient and Effective Open Source Policies
I blogged a couple weeks ago about the OpenLogic-hosted panel at OSBC consisting of three enterprise visionaries sharing advice on creating open source policies and managing open source risks. In Part 2, I wanted to share the highlights from their advice on open source policies.
Policies should address acquisition, usage and contributions of open source
Jon Stumpf, AIG: “The policies that you need to create need to address three distinct buckets: the acquisition of the technology, governing what you will do with open source technology inside your company, and the rules by which you will give back to the community.”
Repositories are important
William Hurley, BMC: “I would say the most important thing around policy is having some sort of central repository for all of this knowledge and information that is easily accessible so you have a policy that empowers the individuals to adopt open source and drive things forward.”
Make your approval processes repeatable
Tim Golden, Bank of America: “A [policy] review board has to learn to ‘templatize’ their behavior. If they’ve done a pattern once, then that pattern has to be wholly applicable to everything that comes afterward.”
William Hurley, BMC: "You also should have a way of keeping track so that you don't get a lot of situations where the same thing is created over and over again."
Leverage existing processes where you can
Jon Stumpf, AIG: "In dealing with the minor variations that open source brings, the majority of the processes you’re supposed to have will suit you well when bringing new technology in. We don’t have a specific open source review board…. We forced open source into the processes that we had. Looking at open source as a being technology that will flow through these processes will tend to expose gaps or deficiencies in the processes you have for closed source. It actually helps improve those processes. Using the processes we had was more cost effective.
Create lightweight processes that can scale
Tim Golden, Bank of America: “Something that looks really good on paper doesn’t exactly scale in reality. As you’re writing the policy, if you want to save yourself two or three downstream revisions, you really need to be thinking about the greater context and whether your policy can scale.”
Don't forget the lawyers
Tim Golden, Bank of America: “You need legal advice through all of this. If you have a bunch of technologists sitting around creating a policy and they think they are doing the right thing and they think they are acting on behalf of the legal department, when you actually go to enact the policy, the lawyers are going to show up and you’re going to slow down. Have a process where lawyers are engaged, early and often, and you usually have a much better outcome.”
Thanks to Tim, Jon and Bill for sharing their experience.
Is 2008 the year of the desktop?
Halmaka John thinks that 2008 is the year of the desktop. I think he did a good job of describing the things that don't work well enough yet. Hopefully this will serve as a call to arms not only to the open source community – who has been working really hard on this issue for a long time! – but also a call of arms to the hardware companies that could help. Here are some of the things he listed that I think still need work:
- Plug and play video chips, networking hardware, storage devices, USB thumb drives, etc.
- Wireless support for all the common security protocols with a use model (turn it on and it works) that rivals Windows.
Note that the hardware companies could help with specs and hardware and allowing people to create open source drivers and software – they wouldn't necessarily need to do any coding or release any of their software as open source. Here are some he listed as missing that I think are already there:
- A browser, e-mail client, office suite, photo editing tool and a GUI for setting configuration preferences.
- Stable and reliable.
- No command line required. (Ok, maybe this one isn't quite there yet.)
I think he missed:
- Great power management tools. Things like hibernating well triggered by actions like shutting the laptop.
What else do you think is missing?
Do you work better when you work for free?
So I've been asking if you are working for free and then you get paid, if you no longer get paid, will you continue working (for free)? Jimmy Guterman asks a related question, "Do You Work Better If You're Working For Free?" I don't know but I'll add two points:
- Another example to back up Jimmy's hypothesis that you do work better if you are working for free: I just finished reading Rebel without a Crew: Or How a 23-Year-Old Filmmaker With $7,000 Became a Hollywood Player and director Robert Rodriguez definitely finds that working for nothing, he did a lot better than the paid people at the studio. He started making movies because he loved making movies and he was much more efficient than the people that got paid to make movies.
- You do better work when you love what you are doing. Most people that are working for free are doing something that they love. Unfortunately the same cannot be said about people working for a paycheck – most people do not love what they do for a living.
So I would definitely say you do better work when you work for free if you haven't had the chance to do what you love for a paycheck. The question remains, once you get paid to do it, will you ever go back to doing it for free? And the new question is now, once you get paid, will you still love it? Will you still do as good of work once you are getting paid?
Movable Type is now open source!
Six Apart will be releasing an open source version of their product Movable Type. I think this is great. Many in the blogosphere have said that Six Apart has been forced to move to open source because its largest competitor, WordPress, is open source. (Both WordPress and Movable Type are blogging platforms.) Maybe. Maybe customers had gotten used to WordPress' modularity and wanted the same from Movable Type. On the Movable Type website they say that their customers wanted an open source version:
our customers and our community have asked for an open source version of Movable Type. Many customers and developers in the Movable Type community were looking for a version of Movable Type that they were free to modify for their own needs. Additionally, there are community members who are looking to bundle an open source distribution of Movable Type with other open source products.
It's hard for an existing product to release as open source – what are people supposed to work on, fixing bugs? But in the case of Movable Type, I think they will benefit from the WordPress model. People know what blog plug-ins should look like. They know what they can add to the Movable Type platform.
I think I'm a case in point that Six Apart will keep and make new customers by being open source. I've been debating moving my personal blog from the Six Apart platform to WordPress because I love all the plug-ins that exist for WordPress. But I love the Six Apart support service – I regularly dig myself into big trouble trying out new things and they always help me set things straight again. Six Apart has been adding plug-ins and new features to their platform and hopefully now that they are open source the number of new plug-ins will grow even faster!
P.S. This blog uses WordPress.


