Posts Tagged ‘Fedora’

Lessons from Mozilla, that apply to other communities

John Lilly, CEO of Mozilla, shares some insights and thoughts on Mozilla, and its a most interesting presentation to go through. The insights are (drizzled with some of my comments):

  1. Superior Products Matter – Without excellent experience and utility, the rest is meaningless. This is true, even with MySQL – our aims and values have always been performance, reliability and ease of use.
  2. Push (most) decision-making to the edges – I understand that as make sure your community has a significant voice (kind of like Wikipedia’s anyone edits policy, but there’s patrolling). He also suggests that on a regular basis, you need to have surprising innovation – things that blow people’s minds. In Mozilla’s case, there are a set of core values that everyone agrees too; decision making is with the module owners (very much like how the Linux kernel, tends to run), after all, groups have different ways of working. Mozilla has decision makers, that are even outside the “official” organisation – i.e. community has a voice. And communication, is key.
  3. Communication will happen in every possible way (so make sure it’s reusable) – this means via Wikis, blogs, the bug tracker, IRC, forums/newsgroups, mailing lists, audio, video, Skype chat, real-life get-togethers, and probably more. Writing notes, and sharing them, might be useful – I’ve found that the Mozilla Weekly Progress Reports on Planet Mozilla (and especially from Zak Greant) to be really useful. I’m thinking of something similar, in the MySQL (and other Sun open source communities) scope. A lot of decisions tend to be taken up on IRC, and people go on hacking on stuff, without writing documentation (worklogs/blueprints), or consulting with the mailing lists – I guess we all have communication improvements in us.
  4. Make it easy for your community to do the important things – Here the highlights are SpreadFirefox, Mozilla QA, localisation and more. A focus “to help others do more” should be the mantra of every community! I see it as very easy to translate Drizzle now, that its on Launchpad, but its not the same with MySQL. Translation, documentation, non-code related tasks tend to increase community contributions – though, what do you do when you already have an excellent manual?
  5. Surprise is overrated – John suggests that surprise is the opposite of engagement, which is true – no one likes surprises, and everyone wants to feel they’re important and had a role to play when something has happened. The “inner circle” needs more participation. I remember back in the days of Red Hat Linux to Fedora… there was something called the “Fedora Merge” group, and this allowed externals to provide significant decisions towards the direction of the Fedora Project. This was eventually eclipsed by fedora-maintainers, and the various boards like FESCO, and so on. As a participant in the Merge group, I felt like I had a voice, and was part of the “cabal” (there is no cabal), or the inner circle, so to speak – decisions I made, mattered. The inner circle grew, so that everyone (a maintainer, i.e. a person who “deserved” a voice) could feel included. Similar things happened for documentation, marketing, and so on, with various members and boards.
  6. Communities are not markets: members are citizens – John stats that citizens are more than consumers, bystanders and stake-holders – we are all citizens in the community (whether you’re a paid staff member, or an external). The best citizens even challenge the status quo, propose improvements and make the conversation richer – I think we have this, via Planet MySQL. The question though is, are we as Sun, listening to the citizens?
  7. The key is the art of figuring out whether & how to apply each of these ideas – John suggests experimenting, trying new things, and then measuring the reaction.

Of course, back to point #6, engaged citizens are noisy is highly true. But the old adage of people complaining because they care, is probably a good thing to remember. Expect noise, demands, threats, contradictions, and more. You can’t please everyone in a healthy community, but they will help you make decisions.

A most interesting presentation, and there’s a lot to learn from Mozilla, for other communities to apply.

workbench-5.1.1-alpha on Fedora 9

So, you want to compile Workbench for Linux, on Fedora 9. You need to install the following packages:


autoconf automake libtool libzip-devel libxml2-devel libsigc++20-devel libglade2-devel gtkmm24-devel mesa-libGLU-devel mysql-libs mysql mysql-devel uuid-devel lua-devel glitz-devel glitz-glx-devel pixman-devel pcre-devel libgnome-devel gtk+-devel pango-devel cairo

I feel I’m being too liberal with dependencies, but I’m not about to strip it, I just want to get it working first :)

You need to have ctemplate and ctemplate-devel installed from updates-testing-newkey (relevant koji build log).

By default, configure.in in Workbench looks for “google-ctemplate”, as opposed to just “ctemplate” as Fedora calls it. You can fix this (easy), or “cheat” – in /usr/local/include you can do sudo ln -s /usr/include/ctemplate google. Take your pick.

Now for the fun. Fedora includes gcc-4.3. Ubuntu ships gcc-4.2. Let’s just say gcc-4.3 got stricter (its C++ header dependency streamlining related). So strict, they have a useful porting to gcc-4.3 guide. Just FYI, I believe OpenSUSE is also shipping a more modern GCC (I expect the next Ubuntu release in the coming month to do the same).

So, start getting used to doing the following in files that lead the compiler to fail:

  • #include <cstring>
  • #include <algorithm>
  • #include <memory>
  • #include <climits>
  • #include <cstdlib>

This will help get rid of error messages like: error: 'memset' was not declared in this scope. This stuff is already fixed in trunk (or the patch is being applied).

You will need to pick up cairo from source. Why? Because --enable-glitz isn’t on by default in the RPM spec file (similar with Ubuntu). The glitz backend is apparently still a release preview and doesn’t fully work yet. (I have spoken to Alfredo, and he says he’s just removed the requirement on glitz in trunk).

Now, once you’ve built cairo with glitz, before running ./autogen.sh, do: export PKGCONFIG_PATH=/usr/local/lib/pkgconfig. Then go ahead and make it.

There are still plenty of warnings that spew by. I have this vague idea that once Workbench for Linux sits on Launchpad, we’ll run a janitorial tree that fixes warnings in the code. A great way to garner community contributions!

Anyway, a lot of this is either fixed or patches will be applied to trunk. I expect a mysql-workbench-5.1.2-alpha out sooner than you think to eclipse 5.1.1-alpha. Again, superb work Alfredo (and MikeZ and the rest of the GUI team).


i