Let's ROCK

Dave Fancella <dave-/[email protected]> Thu, 25 May 2006 03:04:58 -0500
Newsgroups gmane.linux.distributions.rock.devel
Message-ID <[email protected]>
All,

Ok, so I've just discovered rock linux and have been beating around the irc 
channel while fooling with it (Lucifer_arma).  I thought I'd give my 
impressions so far, maybe some of you could respond and help me figure out 
whatever it is I'm trying to figure out.  :)

Some information about myself, more after the article.  I'm one of the project 
admins for Armagetron Advanced.  It's a recent elevation, that is true.  :)  
I've been beating around the free software community at large for some time 
and have been involved with a few projects, put up some of my own code, etc.  
Currently I work as a freelance programmer, go to school pursuing a degree 
that might get me out of programming, and support a family of 5.  My family, 
of course.  In Texas.  :)

I'm looking at ROCK for a whole slew of things that I'll discuss at the end.

First, the good:

I'm more interested in community merits than technical merits.  Not that I 
ignore technical merits, but for most projects, and definitely one the size 
of rock, the community is all important, since I'm looking to join that 
community.  I'm finding the level of help available and the quality of that 
help to be very good, and I'm very grateful for it.  I've managed to achieve 
most of my goals so far checking out rock, the only one I'm waiting for 
depends on a finished build of target crystal, which is in progress as I 
write this.  And for that I'll have to be on my own, away from the irc 
channel.

Rock is wonderful!  This complete automation of the distribution build is 
awesome, and the ability to customize it is great.  It looks to me very much 
like I can do all the things I've ever wanted to do with a LInux 
distribution, but was never able to do with what I ran thanks to all the 
marketing buzz-word compliance.

Now, the bad:

I have to say, for something the size of ROCK, having only 3 developers with 
commit access might be a dealbreaker for me.  The whole purpose of SCM, svn 
in particular, is to enable many *many* developers to work simultaneously on 
a project.  I don't know what the goal of this SubMaster thing is, it sure 
looks neat, but from where I'm standing it doesn't look like a functional 
replacement for developers with commit access.  The obvious conclusion there 
is that developers with commit access are a bottleneck, and I've been around 
enough to feel confident in declaring that even if I don't see direct 
evidence.  The size of the project is enough to justify that, all 3 
developers would have to work on it full-time to keep up with the amount of 
maintenance work needed, to say nothing of developing for the future.  Maybe 
you don't see it that way, that's fine.  Diversity is all about disagreeing 
peacefully, isn't it?  And I can peacefully be on my way if it turns out 
that's the best thing to do, or I can peacefully remain if that's the best 
thing to do.

The extensive use of shell scripting is a double-edged sword.  I put it as 
bad, but it really depends on response.  From my point of view, if ROCK is 
interested in rewriting significant chunks of the shell scripts in Python, 
I'm interested deeply.  I hate shell scripting for one thing, but I'm here 
looking for something I can extend and customize for several purposes, and to 
me that spells Python.  It doesn't spell Perl or C or even C++.  The 
advantage to the shell scripting is that it should be fairly straightforward 
to factor enough stuff out into separate scripts that any application can 
graft onto the top of the system and do real work.  So if the core work is 
done in shell scripting, I could stick a python installer UI and admin 
interface without introducing another dependency (besides python).  If you 
were to rewrite in, say, forth (heh), then I'd have to have forth and python.  
But with the scripting, I'd only need python.  That's neat.  But I don't want 
to sit on my own customizations, I want to give them back and see them 
incorporated into the project and see other people work on them because 
there's no way in hell I can make them the best they can be by myself.  I 
seek to tap the community to improve my own work even as I think I'm 
improving theirs.  It's a symbiotic thing, you know.  :)  So the extensive 
use of shell scripting is a bad thing for me if any of the following 
conditions apply:

1.  The existing rock applications (mine, stone, etc) stay exactly as they 
are, which is the cause of the rough-edged ui and would well prevent the kind 
of customizations I'm wanting to make.

2.  You guys want to move to Perl or some other language that drives me crazy 
and makes me have to take medication to deal with.  Python isn't a 
requirement, I can handle other languages and would be happy to learn a new 
one, Perl and C are dealbreakers for me.

3.  You guys refuse to take Python anyway for core apps, for a reason such as 
"This would cause parallel development of the same features, and we'd like to 
do it this way instead".

Note that none of these conditions are necessarily bad for you.
(Bad for me != bad for you) is True.

Here's what I'm looking at ROCK for:

What got me looking at it was my car computer project.  I'm not just wanting 
to put a computer in my car, I'm wanting to assemble a Linux distribution 
that other people can use to put computers in their cars.  ROCK is an ideal 
platform to do this just like it is.

After that, I resurrected an old idea we'd tossed around in Armagetron 
Advanced, the idea that we could put up a linux distribution that installs 
itself with everything you need to run a high quality game server for our 
game.  ROCK is a good platform to do this.  Add dependency tracking to the 
packages and it's a great platform.  Don't know if it's ideal or not.

This leads logically to my general frustrations with current linux 
distributions.  I left windows because I didn't like being shoehorned into an 
operating system, and now I'm feeling more and more like that's happening 
with Linux.  I used to think there was no help for it and I was looking at 
gentoo to mitigate the damage to some extent, but ROCK has the potential to 
free me from it completely.  I'd like to offer (for sale and for free 
download) some specialty linux distributions.  I have a highly customized KDE 
setup that's geared towards being useful rather than a copy of Windows, I'd 
like to maintain that setup in a distribution for new Linux users, and that I 
can update easily and use it to upgrade my own systems.  I'd like to have a 
specialized "Home server" distribution for running my home server, others 
could use it to run servers in their homes.  The time is soon to come when 
average people who just read email or whatever will need home servers, and I 
think I know what's needed to build it.  There's other things, but it 
basically spells a personal commitment to ROCK, to extending rock to add 
things that I need (that are too difficult to add to other distributions 
because their plumbing is already too bloated with buzz-words), and to using 
it for all of my own needs.  I figure I can finally have a say in how my 
distribution is put together, how it's organized, and how it works, and that 
can't be achieved by joining the MandrivaClub.  That's worth a lot to me, and 
I'm finding ROCk to be a very big find for me, one of those things that 
shatters fundamental perceptions of the world.

Sorry this is so long, thanks for reading, thanks for making this thing, I 
hope it works out for us.  :)

Dave