Improving Gentoo as a tool

Gentoo is a metadistribution, meaning you’re supposed to built whatever you want with it. And we provide some of the tools to make that a reality, but we stop short. We still make it too hard to do what you want with Gentoo. Here’s some of the ideas I want to explore over the next year:

  • Increased binary package support: We already have an experimental tinderbox setup to build packages for a variety of architectures. I want to investigate increasing our collection of binary packages to make a fairly complete installation possible using only binaries.
  • Repositories for user-created distributions: We have tools like Catalyst to create basic installations with stage3 or stage4 tarballs, but it’s still hard to get what you want with them. We should make a repository of Catalyst spec files for a variety of purposes, and we should also add an accompanying mirror of the created tarballs so anyone can use them. We could also revive the Seeds project to create not just vanilla stage4 tarballs but fully fledged, preconfigured installations customized for specific purposes like LAMP servers, development machines, various cluster nodes, GNOME/KDE/Xfce desktops, etc. We already have the possibilities; we need to share our tools.
  • Creating the Gentoo metacommunity: In addition to letting you create your own distribution from Gentoo, I want Gentoo’s community to be what you want it to be. We’re in the middle of adding a few new mailing lists because our primary development list is drowning in noise. We made gentoo-project for non-technical general talk and gentoo-dev-announce for development-related information so developers don’t need to slog through gentoo-dev. I want to take that a step further by forming stronger Gentoo microcommunities around specific areas and moving discussion about those areas to their IRC channels and mailing lists. Our development community has grown too big to keep everything on a general development list. Everyone tries to chip into every discussion, even if they have no relation to it or are unaffected by it.
  • Excellence: Gentoo’s QA is not the greatest. What can we do to improve this? Some automated tools exist for pre-commit checking; can we add anything server-side? Can we add some build servers for critical system packages, so they don’t make it to users before building in a predefined set of common configurations? Can we improve our developer recruitment or add new training for existing developers? How can we renew and strengthen our commitment to excellence? You can’t create a tool with Gentoo if it’s broken.
  • New tools for new places: This is more of an exploratory idea. I’d like a team of contributors to research all the places people use Gentoo, and put together a collection of tools we’re missing. Further, we need to do more extensive research on other distributions to see what sorts of tools they have that we lack. I have no symptoms of NIH syndrome, so I’m happy to pull in working tools written for other distributions; I already did this for many of Fedora’s system-config-* tools last year.
  • Resolving the meta vs. specificity conflict: Gentoo’s status as a metadistribution sometimes produces conflicts between the goals of various projects and teams within Gentoo. Sometimes a person simply needs to make a decision of how to deal with it: pick one, or find a way to do both? Many people remarked over the past couple of years that we’re lacking strong leadership and overarching goals, which would give us some consistent way to decide which projects will “win.” As Seemant has said, Gentoo is a framework, a metadistribution, not a place that forces people to go a certain way. We should strive to enable contributors to follow whichever path beckons to them. But where is Gentoo going, and where should it go? You decide. The innovators and leaders can only suggest places for it to go, so the rest of the community has to follow them to our destination.

Why I volunteer to work on open-source software

A big ruckus came up on the Gentoo development list in the past couple of weeks, and part of it involved Gentoo contributors and their motivations. I’m sure most of us have heard that open-source software is about scratching your own itches, but I’m not sure that everyone really understands what that means.

For me, what it means is that my time on Gentoo needs to fulfill me in some way. If not, then I’ve got tons of other places to invest my free time. It does not mean every change I make fixes a problem I encountered. It does mean every change I make has some return in value. What’s value?

  • Functionality: A feature or bug fix that directly affects a program I use
  • Pride: My reputation as a developer relies upon clean, bug-free code. It’s important that my code is beautiful and functional.
  • Gratitude: Thanks from someone else for the time I spent on their problem
  • Reciprocity: An expectation that others will contribute in areas I care about if I work on things they care about
  • Stimulation: Spending time around other smart people who care about the same things

All of these are selfish, because I’m directly getting some sort of value out of my time and contribution. Many times, Gentoo developers have said they develop for themselves. That’s what they mean. Consequently, the people I care about making changes for are people who give me something I value in return. If you’re contributing in some way, I want to help you. If not, what’s my motivation?

BarCamp PDX: Haskell session

Haskell: How and Why?
Bart Massey, Portland State U.

Functional programming language
– General purpose

The next big thing? Driven by open source adoption

Modularity

You give up global variables, and variables altogether.

Incrementally compiled, like Python bytecode

And now I have to leave to go home…

Increasing contributions and interest via personal project aggregation

I just posted this to the Gentoo development list, but I thought other projects could use a similar idea so I decided to add it to my blog.

Hi all,

I’m sure I’m not the only one with a number of projects I’ll never get to, but I’d really like them to happen anyway. I suggest we create some sort of page that aggregates all of these personal projects together, so anyone can browse through them and look for stuff that sounds fun.

The goal is to increase contributions from outside by giving them a ready list of projects of all sizes and difficulty levels to work on, projects that go beyond what happens at Bugday. Further, it could also help current Gentoo developers who are bored or have lost interest in what they’re doing by helping them to find somewhere new to contribute.

A prototype with just my projects is at http://dev.gentoo.org/~dberkholz/proj/

Thanks for your comments!
Donnie

Learning PHP, Ajax, MySQL

I’m taking over a webapp at work written in PHP+MySQL. I’d like to add some Ajaxy goodness to it because the UI is an ugly POS with lots of pointless page loads for little things, etc. Funny thing is, I have basically no experience in any of these technologies.

Suggestions for the best way to learn them together or separately?

Thanks!