FreeBSD and Mozilla as examples: The abstract

I’m looking at some other projects for examples of how they run things, in addition to referring to a few books I’ve got lying around. For anyone interested, the books are Free/Open Source Software Development, a collection of papers edited by Stefan Koch, and The Cathedral and the Bazaar.

Here’s a few of the major points, some drawn from Koch’s book. Many of them may seem self-evident, but they’re easy to forget about when you’re trying to figure out what to do with 250+ developers.

  • Developers prefer more loosely controlled projects with a flat hierarchy, relying on individual autonomy, tacit norms and self-organization rather than commands, control and explicit rules. FreeBSD and Mozilla projects rely on requesting contributors to follow rules of conduct rather than technical control mechanisms, although Mozilla was moving toward a strongly controlled modular setup.
  • On a related note, the release plans are the only plans. There are no plans on more detailed levels and no timetable for the contributions that will eventually lead to the next release.
  • Community testing is essential for finding and removing bugs. Keeping the developer and user communities close-knit aids bug-fixing, as ESR writes: “Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.” Despite resistance from some users who want to remain purely users, we need to keep our community cohesive between developers and users to get the benefits of the open-source model.
  • Openness is a primary principle. In nearly all cases, code, lists, bugs, and tests are available to everyone.
  • A key motivation factor for contributors is quickly seeing the results of their work. We need to keep the bureaucracy required to contribute from becoming too complicated and time-consuming, or we will lose potential developers.

Next time, I’ll talk a little bit about each project’s rules and recommendations.

Considering 2005 goals

An annoying bug with hardened systems keeps cropping up. I wish it would just go away, hide in a corner and die.

In other news, I’m working on a list of 2005 goals for the desktop project. It’s sometimes difficult to separate desktop goals from Gentoo-wide goals — perhaps I shouldn’t try. One is simply a subset of the other.

Gentoo does a great job of “microgoals” within individual projects, but it has trouble tying them together into distribution-wide “macrogoals.” As a result, a lot of times it seems as if we don’t have a cohesive vision to base our progress on. Improving that is a personal 2005 goal.

Over the next week or two, I’ll probably be writing more about how we can create cohesive goals and improve our development methods, and other, established open-source projects we can learn from, such as Mozilla and FreeBSD.

Pegasos back in action

I picked up the Pegasos from Scott last night and didn’t delay a moment before slamming Gentoo back over its measly Debian and YDL installs.

The previous hardware problems disappeared — I compiled all night long and into today, and I heard nary a whisper from the hardware. Props to the folks at Genesi and bPlan for working with me on this and fixing the problem.

At the same time, I managed to run into a huge bug in glibc somewhere. So the system is mostly non-working at present because portage died most of the way through installing a broken glibc.

Most of my executables don’t run, and I’m afraid to log out of ssh because I don’t want to have to figure out how to get back in neatly.

In other news, I’m setting up a few VMWare installs to see how the “competition” is: Just did FreeBSD tonight, later will do Fedora and Ubuntu. Maybe others if I really get bored.

New Xorg hits the Gentoo masses

I just released 6.8.0-r4 into testing yesterday, two days before I go on vacation. Now that takes planning.

Interesting features:
[old] Docs install to /usr/share/doc/xorg-x11-6.8.0
[old] Man pages install to /usr/share/man
[old] Fonts install to /usr/share/fonts
[new] /usr/X11R6/lib moves to /usr/lib

So, what’s left in /usr/X11R6, you ask? bin/, include/ and a few backward compatibility symlinks. bin/ will be the next to move — it probably will happen in 6.8.2.

Merry Christmahannukwanzakuh to you…

I just got my Christmas presents from my mom. I sent her this huge list of books from Amazon, expecting her to get a couple. She bought all of them!

Fortuitously, I overslept today so I was here when the UPS guy arrived.

She got me “The Art of Assembly Language” and “Writing Great Code, Volume I: Understanding the Machine,” both by Randall Hyde. I’m excited to start diving into those.

Also, I’m fully stocked on quantum chemistry — seven new books ranging from symmetry and spectroscopy up through the basic dogma, electronic structure theory and computational chemistry.

Unfortunately, I won’t be able to make it to church Christmas Eve, as I do almost every year, because we’ll be driving up to Portland to stay the night before flying to Minnesota early Christmas Day. That week off will definitely be nice, though. I’m getting a little broken down. I’ve been missing a day of work/school about every two weeks, because I’ve just been overworking myself.

Hope everyone else enjoys the break as much as I will!

MOPAC7 works!

Oh by the way, I finally found a distribution of MOPAC7 that works. I needed to hack the Makefile a little once it was generated to work around problems with MAIN__ and main() in libf2c so I could actually get a binary. But other than that, it’s been great!

A couple of possible ways to “fix” the MAIN__ problem:

1. Add this to your C source:
int MAIN__( )
{ return(0);
}

2. Add this to LDFLAGS:
-Xlinker -defsym -Xlinker MAIN__=main

Incidentally, I got Tinker working too. Apparently Firefox sometimes doesn’t like downloading complete files. wget –passive-ftp worked perfectly.

So now I’ve got a quasi-complete computational chemistry workstation here. Just gotta get some molecular dynamics stuff on here — already got quantum covered, as far as free programs go.

My next plans include NAMD, plus the usual Portage stuff such as Ghemical, MPQC and GROMACS.

Usability and installers

Reading Havoc’s blog reminded me of how I wanted to focus on usability, primarily to help in the creation of a Gentoo installer. It’s a little bit of a weird project, because it has two distinct target audiences: automated deployment and (clueless?) end users who want/need a GUI installer. So it’s been interesting.

The code is getting near finishing up a working alpha — but we’re looking for experts in OO and Python to help look it over and chip in some ideas, answer some questions and maybe write some code. Stop by #gentoo-installer on Freenode IRC if you’re interested. Experts on UI design are also welcome.

I read another quick thing on usability the other day, perhaps linked from gnomedesktop.org?

It also reminded me of my need to actually read Joel Smolsky's “User Interface Design for Programmers.” I’ve owned it for months, but it’s still a ways down on the “when I have free time” list.

Scientists should not maintain software

I’ve been diving back into computational chemistry programs in the last couple of days. There should be some sort of law that says all scientists must hire a real programmer to maintain their programs. I’m trying to get a couple of programs working, called MOPAC and Tinker — both of which are in Fortran, of course.

I know MOPAC used to compile a couple of years ago, but no longer — and nobody’s updated it, and nobody’s fixed it that I can find. The only distribution I’ve found besides the public domain stuff is FreeBSD, and MOPAC’s marked broken on >=5.0.

As for Tinker, well … I can’t even untar the source. My system is broken somehow, and I have no clue what the cause is. But the source is all up on its homepage, and the build process is incredibly obscure.