Upgrades to the Blog
I just upgraded to a new version of WP, and moved to a different box. I hope to make a few changes to the blog so that it can be used as both a subject oriented blog for “Going to College” and also be useful as a general blog. Of course, I don’t have a lot of time on my hands and right now I’m more concerned with getting the server up and running.
This box is a Mac Mini running OS X, which I have to say is pretty cool. I would pass along a few pieces of advice: unless you are cheap, don’t do as I did and go with the regular MacOS X, upgrade to OS X Server or to a Linux distro. There are just too many hoops and silly little things to jump through to make the Mac work.
Secondly, a lot of those hoops are related to Very Good Ideas that I really think that modern open source *nix OSes need to consider but don’t. In short: you can really tell that a lot of smart people had a good hand in designing a scalable and easy to understand architecture. I’ll elaborate on this more at a later date, but I think that it is truly a compliment that Mac OS X is so usable out of the box as a Unix server, yet incorporates an overall smart design. Linux and the related million open source applications often seem to fall into one of a few architectural traps: Reinventing the Wheel, Overdependency, Semantics, and Backward Compatibility to a Fault.
I’ll only elaborate on the last right now. To some extent, software must be backward compatible. It is necessary for a word processor to read files from its own previous versions. It is often necessary that an operating system be able to run programs written for the previous version. However, architecturally, you must move forward and you must do so in a one-way fashion. There is no architectural “going back.” Too often OSS projects get bogged down into previous versions because the lack the vision and management to recognized a played hand. Or, worse yet, they see every new problem as requiring a different sort of architecture and never build in the necessary scalability, or they build too much in and never finish. All these are mangement pitfalls.
However one of the more upsetting is the general lack of communication that OSS software has with vendors of software the essentially design the environment that OSS goes in. RedHat, Debian, etc are basically the people who turn a bunch of packages from a bunch of different developers all solving a small problem into a usable system, and it is on them that the burden must fall to make key decisions about the direction of the OS. Why are all configuration files in such a terrible state? Why are log facilities barely abstracted to the system level? Why are security and ACLs still in 1972? These are the sorts of hard decisions that are programmed into a piece of code that can be run but decisions that must be made by strong management of the system itself by wise managers who care about the ultimate usability of the system. Many people would claim that we are too far along the current path to change something as basic as the file system, but is this really any different than deciding to make a 32 bit protected OS, or a registry to store all settings, or any other the number of things that Microsoft has implemented in the past 10 years? More importantly, is it any different that the changes that Apple has made to OS X to make it more future compliant than backward compatible?
The other three I will save for later, but the next time you are sudoing everything on a single user system (that is those of you who haven’t ’sudo password root’ and started cheating), consider that while sudo is a pain in the ass on such a system, it is the right choice for not just “dummies” or typical mac users, but everyone, and it makes the system better for someone finally having the balls to turn off root.
I challenge RedHat and Mandrake and all the other would-be OS makers to do the same and do things for the good of their OS, even if they will make propellerheads gripe, make all the textbooks wrong, and make more work for themselves because they are ultimately creating a better system.
As I said I’ll elaborate more on the rest later, now I need to continue on setting up this box.









