Author Archives: Jeff

About Jeff

I'm a Christian Linux geek man person. Sometimes I have something to say.

OHIO LinuxFest is teh ROCK!!

OK, if you know me and you don’t know about Linuxfest, then crawl out from under your rock, click the link and check it out.

 The Fest takes place Saturday October 30, in Columbus Ohio at the Convention Center.

I went last year and really enjoyed it, and this year it looks like it’s grown considerably. IBM and Digium had a big presence at the show last year and are sponsoring again this year. IBM’s keynote on virtualization and the company’s commitment to Linux was pretty cool.

One sponsor I did not appreciate was Astaro. They sent a speaker who’s talk was nothing more than an advertisement for their products with no actual content. I left 20 minutes into the talk after half the people walked out.

This year Jeff Waugh is giving the opening keynote. Jon “maddog” Hall is giving closing remarks. Ted Haeger and Chris DiBona  will be there. Red Hat, Fedora, Linspire, NetBSD/FreeBSD, Novell and GNOME (among others) will have booths. The Linux Link Tech Show guys will be there. And best of all there will be Live penguins!

They’ve got a blog if you want to follow the news. If you’ll be there, by all means look me up. I’ll be around.

New Documentation site for Jokosher!

The Jokosher project has a development site using Trac. It’s a good setup for software developers because it combines a source code repository with a wiki, allowing code, bug-tracking and documentation all to happen in the same place. We did most of the documentation for Jokosher 0.1 there on that site.

Before the next release, though, Jono wanted to have a separate documentation site. This minimizes the number of people who need accounts and SVN access on the developer site. It also gave me the opportunity to look into a setup better tuned to documentation, rather than software development.

We settled on using MoinMoin, mostly because it supports DocBook/XML natively, is written in Python, has great theming support and seems to be actively developed. We used two wikis, one at http://doc.jokosher.org that has been themed to look almost exactly like Jokosher.org, and a second at http://userdocs.jokosher.org that looks more like a wiki.

The first site appears to the “casual observer” as just another page on jokosher.org, but it can easily be updated by me without giving me FTP access to the server. It also lets me post documentation in DocBook/XML, which we couldn’t do with WordPress.

The second site will be open to anyone who wants to edit, and will give us an easy to use place for documenters to collaborate. As new documentation is finished it can be moved to the main docs site for users to access.

Eventually this will all be integrated to look like one congruent web site, even though it’s 3 sites (jokosher.org, doc.jokosher.org and userdocs.jokosher.org) on 2 different pieces of software (WordPress and MoinMoin).

Server rebuild – with Gentoo

I have an old machine I’ve been using as a server for the past few years. It serves my mail, CVS, MySQL; acts as a home webserver (for internal use and testing) and MoinMoin wiki. I built it mostly for fun, but I seem to be relying on it more and more.

I’m currently running Fedora Core 4 on this machine. It’s actually been running Fedora for over 2 years now and has been continuously upgraded since Core 1. Aside from power outages and moving to a different home, this machine has only been down to boot into a new kernel.

Since Fedora Core 4 is end of life I now have the option of upgrading yet again or switching distributions. I love Fedora on the desktop but I’d like something more stable (as in “doesn’t change much”) on this server as I just don’t feel like messing with it.

So here I will relate the process I went through to pick a new distro. Maybe someone will find it interesting.

The Victim

  • Processor       AMD K6-3, 400MHz
  • Motherboard  ASUS P5A Socket 7, circa 1998
  • RAM               384 megs PC 133
  • Hard Drive   Samsung 40 gig (jumpered to 32 gigs per BIOS limitations)

This system is crusty and old, but it works. This motherboard has been in near constant service since 1999. The original CPU fan died so I wedged an Athlon cooler in there. It barely ever gets above ambient temperature!

The Criteria

Here are the criteria I used, mostly in order of importance.

  1. Stable – don’t make me upgrade every 6 months. Updates more oriented to bug fixes and security.
  2. Easy – basically this means Red Hat based. I won’t have to learn anything new.
  3. Fast – optimized for i586 or preferably K6-3 would be a plus.
  4. Minimal – smallest install possible, with few packages installed by default.
  5. Apache 2 – I’m used to apache 2, and would prefer it over 1.3.
  6. Different – This conflicts with “Easy” above, but it would be nice to learn a non-Red Hat based distro if there are enough other incentives.
  7. Up-to-date – I don’t want bleeding edge, but I think the 2.6 kernel by default is reasonable.
  8. Big package selection – my requirements aren’t huge, but I’d like to do everything I want without having to go outside the package management system and standard repositories.
  9. Python 2.4 – MoinMoin likes the latest Python it can get, but this isn’t a huge factor.

The Distributions

I compiled my ratings in a spreadsheet. Each distro could get up to 1 point per category. I gave the top 2 categories – stability and ease – up to 2 points.

(Sorry about the crappy table. I blame WordPress.)

Distro Stabl Easy Fast Mini apache2 Diffrnt UTD Packgs Py2.4 Total
Gentoo

 

 

1

1

1

1

1

1

1

7

Arch

 

 

1

1

1

1

1

 

1

6

Slackware

2

 

1

1

 

1

 

 

1

6

CentOS

2

2

 

 

1

 

 

 

 

5

FC5

 

1

 

 

1

 

1

1

1

5

FC4

 

2

 

 

1

 

 

1

1

5

Ubuntu

 

 

 

 

1

1

1

1

1

5

Debian

2

 

 

 

 

1

 

1

 

4

Gentoo
As you may have guessed, this is the one I chose. I’ve tried Gentoo before and always got fed up. This time I’m going to go for it. It loses on my 2 top categories – stability and ease – but the other pluses won out. It can be optimized for my CPU. It is as minimal as I want. It has the packages I want in versions I want. It’s definitely different and will teach me some new stuff. It has as big a package selection as I could want. Since I can control everything I can overcome the stability issue as well with a little research. I think this shows one of the virtues of Gentoo: it can be bent to fit many niche applications.
Arch
The only point Arch looses to Gentoo is on package selection. I found the installation to be needlessly complex and the instructions unclear. It’s also i686 specific, which means it’s not for me.
Slackware
Slack is very stable, fast and minimal, but a bit too behind the times for me. I’ve been running 2.6 kernels for years, and would like a distro that has as well. I also like package management that involves dependency resolution. A computer can figure out what depends on what. I shouldn’t have to.
CentOS
This was initially my top choice. It would be easy to move to CentOS and keep all the familiar Red Hat goodness, but gain stability and long support cycles. In the end, though, a thirst for the new and the need for a fast, minimal distro won out.
Fedora Core 5
It would also be easy to do an upgrade or an install of the latest Fedora on this machine. I know I’d be doing it again in 6 months, though. A ‘minimal’ install these days is getting to be about 1 gig, which is a bit much. I’m running into some SELinux problems on my other FC5 machine (the way I have MoinMoin configured it does some things that are unusual and insecure ). I know how to write my own policy to get around the problems, but I’m tired of dealing with it. FC6 is supposed to have easier SELinux tools. For a home server I don’t need the security.
Fedora Core 4
It’s end of life. I could get updates through the Fedora Legacy project, but I’m already running into packages that are older than I’d like (like MoinMoin and MySQL). There’s also the hunger for something new which is really the reason I thought about changing in the first place.
Ubuntu
I’d really like to run Ubuntu, but I don’t think it’s to be. They’ve got a server version now, but it’s not attractive enough in enough areas to make me leave Red Hat land. People who like Debian love Ubuntu, but I’m not one of them. I may put it on a desktop some day but I’m not going with another rapid-release-cycle distro on the server.
Debian
I’m just not a Debian person, it seems. It’s known for being stable, but more stable than I can deal with. Even ‘Etch,’ the ‘testing’ version is a bit crusty for me. I’d have to lose some newer packages I really want (although it seems to be an excellent platform for MoinMoin). I’ve also seen Debian stable servers crash more than I like.

Conclusion

So the numbers have spoken, and I’m going to install Gentoo on my server. I’m actually kind of excited about it. I’ve experimented here and there and run nearly every major distro (including some BSDs). This is the first time I’ve decided to run a non Red Hat based OS on a vital machine for any length of time. I’ll post again once the install is done.

More on Writing Documentation

Jono has been writing lately about open source communities and how to make it easier for people to get involved. While I could quibble with the details, I agree with the principle. People contributing to open source projects shouldn’t have to deal with technical details. Art guys should know the intricacies of Inkscape, but not SVN and bugzilla. Coders should (just) deal with code, documentation people should deal with documentation.

From the documentation perspective, I don’t agree that documenters don’t need to know markup languages.

To me, writing documentation is a form of teaching. A documenter’s job is to instruct the user in how to do what they need to do. Documentation should make things clear, spur ideas, and empower. It should give the reader mastery of the software and enable them to integrate it into their brain as a tool. Documentation should do all this as quickly and clearly as possible.

To meet this end, document writers need to be as structured and organized as possible. We need a high level overview of the problem so we can break it down for the reader. We think in terms of the hierarchy and flow of a document. Just as an essay needs to have an opening paragraph, supporting points and a conclusion, a User’s Manaul needs a certain sructure that follows the way a user will look for help.

So a markup language of some type is essential. Be it HTML, wiki markup or DocBook/XML, we need to be able to structure documents. The problem is most markup languages suck. HTML works great for web pages but it makes sloppy documentation. Wiki markup is quick and easy, but it’s too limited. DocBook/XML forces the writer to use good structure and hierarchy, and takes care of a lot of the tiresome details (like table of contents, and nearly all presentation markup) but the learning curve is pretty rough. It is needlessly complex for most things.

The solution?

We need more accessible tools. For documentation we need a more usable subset of DocBook, or maybe a whole new XML application designed for software documentation. I hear something like this is in the works. We also need editors that can handle whatever format we settle on. I’ve tried various editors and in the end I’m more productive editing in Vim and doing all the markup manually.

If we’re actually going to solve these problems we need to do away with the edit-patch-submit cycle altogether. What we’re doing in Jokosher is a good example. We did almost all the documentation for 0.1 on the wiki, then generated our final docs from that. It still required a lot of manual work to get from wiki output to the final HTML, though. Now that we’re moving to DocBook/XML, the situation is worse. We’re building a new site that will support editing HTML and DocBook directly on the wiki, but the tools are still not there yet. We will need to modify existing tools to get what we want.

We need an infrastructure that supports contribution, but who builds this infrastructure? I’ve seen good projects suffer because there are people who would love to contribute, but just can’t get their foot in the door. Again, the Jokosher project has solved some of these problems. We’ve taken the time to write “Getting Involved” documents to give people step by step instructions to contribute. We’ve got forums and wikis and clear documentation for developers. All this stuff takes time away from development, but building a community that allows people to get involved means a better project in the long run.

10 things I learned about marriage

I’ve been married a year as of last Monday, Aug 7. In the last year I’ve learned a lot of things, and thought I’d put a few of them down. If you’ve been married for a while you probably know this stuff, but maybe it will benefit somebody.

  1. “OK I’m ready to go” doesn’t mean she’s ready to go. Wait until you hear that 3 times before you bother putting on your shoes.
  2. Just because she’s upset doesn’t mean it’s your fault. Women can get upset about anything or nothing. Do yourself a favor and don’t get upset just because she’s upset.
  3. Just because it’s not your fault doesn’t mean it’s not your problem. Whether you did it or not, you’ll pay for it. It’s best to get to work listening to what she has to say and seeing if there’s anything you can do to make her feel better.
  4. Just because the dishwasher is done doesn’t mean the dishes can come out and be put away. Dishes have to be shaken and manipulated in a certain way only she understands and left to dry for an additional period of time before they’re usable.
  5. Even if she’s wrong, you need to say you’re sorry. She can be so wrong that you can draw up a written mathematical proof of it and take her through it step by step to show her she’s wrong, and that won’t change anything. In fact it will make it worse. Give up and just say you’re sorry.
  6. Put the toilet seat down. I know it’s not fair because she never leaves the seat up for you, but you’re a man. Deal with it. It’s not worth the trouble.
  7. The fact that you stood in front of a room full of people and swore to her and a member of the clergy that you will love her always means nothing. In her minds it’s not a binding contract that’s in effect forever. You’ll have to keep telling her you love her over and over. She won’t get tired of it but you will, so find new and creative ways to tell her and show her you love her. After a while you’ll even start to enjoy it.
  8. You can live with 2 pairs of shoes. She can’t. It’s a need, not a want. I don’t know why.
  9. You are the man, which means you are in charge. You are stronger, and you’re a leader. The only problem is you’ll have to convince her you’re in charge by being worthy of respect. A leader isn’t someone who beats other people into submission. You’ll have to work hard to show her that she can trust you to lead, and that you’ll do the right thing no matter what. She needs to know you’ll suffer so she doesn’t have to before she’ll even begin to trust you. Chances are someone did a really bad job of this before you, which makes it much harder.
  10. Sleeping with the same woman every night is better than sleeping with a different woman every night. Doing the same thing over and over doesn’t get boring, it just allows you to pick up on details you didn’t notice the first 100 times. You have to pay attention, though.