Archive for April, 2005

GCC 4.0.0 Compile Times (C++)

Friday, April 29th, 2005

A KDE developer has posted a comparison of compile times on GCC 3.3, 3.4, and 4.0. The speed is unbelievable, even if the compiler itself isn’t perfect yet.

Schools Can Be Stupid Sometimes

Tuesday, April 26th, 2005

Schools can be stupid sometimes. Iâ??ve been moderately impressed with the level of technology provided at my high school, but this district makes many of the same mistakes as CCUSD did.

First, Iâ??ll look at what theyâ??re doing right. CCUSD had this â??computers in every classroomâ? initiative that looked good on paper but was incredibly stupid and wasteful in practice. Beginning at about the time I moved to Arizona in 1999, they began installing four computers in every classroom to complement the existing computer labs. I fail to understand how this achieves anything other than that it meets the goal of the initiative interpreted in the most minimal and cost-effective way possible. All they had to do was put four $300 computers in each classroom and network them together - then they could pat each other on the back and smile as they think about how all the little kiddies will pass the AIMS test now that they have computers to â??learnâ? with. Before I continue, I should note that this rant is not directed at the district technicians who planned and installed these computers. Iâ??m targeting the short-sighted, uninformed school board that allowed this to happen.

With that out of the way, I can move on to what is actually wrong with having four computers in every classroom. The main problem with this is that there just arenâ??t enough computers for them to be effective. If a class is assigned a research project, all the students are going to want to do their research on the computers, not just the lucky four who snap up the in-class machines first. Because of this, most teachers would just check out computer labs like they always had, and if none were available, there was a steady stream of kids going back and forth from the library (ten at a time) so that they could use the computers there. But often times the library and the computer labs were full, so most students would end up using their much more powerful home computers instead (CCUSD is a very affluent district, so there was no problem with some kids not having a computer with Internet access at home there, but this is a major issue in urban areas and poorer suburbs). After a few years, it was obvious (to me at least) that the district had wasted millions of dollars on this.

The solution is simple: just take the computers out of the classrooms and make a few more labs out of them. At my high school there were probably around 65 classrooms (a very rough estimate), which amounts to 260 computers. Even if you only took out half of the computers, you could still make four 30-computer labs out of them. I can understand why the school wouldnâ??t want to do this because of the extra space that would be required to install the new labs, but the amount of money that they lose from running a network of computers that is only half used has got to be higher than the cost of portable classrooms.

The reason that I bring this up is that Oconomowoc High School does things differently. Only the science classrooms, as far as I know, have computers in them, and this makes sense because they are needed for some experiments. For example, they have digital thermometers that show the temperature on the computer screen to a tenth of a degree Celsius; this is much easier than trying to measure the temperature accurately with a traditional thermometer. Also, the danger of having one break (spilling out toxic mercury) is eliminated. Since other classrooms donâ??t have computers in them, teachers take their classes to computer labs (there are somewhere around eight, I think) or to the library to use the computers there. Sure, having to change rooms to use a computer kind of sucks, but at least the computers are used almost every period rather than once every day or so like some of Cactus Shadowsâ?? computers.

As far as the computers themselves go, Oconomowoc has done a much better job than CCUSD. On average, most computers at Cactus Shadows were old 400 Mhz Celerons with 256 MB of RAM if you were lucky. All of them run Windows 2000 except for some teachersâ?? computers and the workstations used by office staff. Though the district had begun replacing older machines with nice new Dells over the summer of 2004, I doubt more than 25% had been replaced by the time I left in December.

The network was managed with the Novell login/application delivery system, so every computer had the same software on it. Though there were many applications provided, I doubt that most students ever used anything more than Word, PowerPoint, and Internet Explorer. Only computers in technology-related classrooms (such as Mr. Trapaniâ??s lab, which was a unique case) had more advanced programs like Photoshop and video editing software.

Here, the software configuration is remarkably similar. Oconomowoc uses Novell as well, and they have Office 2000 installed, just like CCUSD. Some computers do have Photoshop and some other scientific programs, but thereâ??s nothing particularly mind-blowing. I really thought those digital thermometers were cool, but if thatâ??s the coolest thing they can offer, than there really must not be much to shout about.

Itâ??s kind of hard to say what exactly is wrong with this kind of setup since Iâ??ve never been to a school with anything different. One improvement that would both bolster the networkâ??s security as well as provide a better user experience would be to change to Firefox as the primary web browser instead of Internet Explorer. These days, I can barely stand to use Internet Explorer anymore, especially now that the network administrators here have disabled the taskbar. For the uneducated, the taskbar in Windows is the bar at the bottom of the screen with the Start menu and the clock, along with some other helpful things like the Quick Launch bar and the System Tray. Not having this is inconvenient, but Iâ??ve grown used to ALT-TABing between programs instead. However, when Iâ??m trying to do research, I keep opening page after page in new windows until I have to ALT-TAB through about fifty icons before reaching the page I want. Sometimes itâ??s kind of a trial-and-error type of thing. Firefox would eliminate this problem by allowing students to open everything in tabs.

A more radical change would be to add some more programs to stimulate creativity and learning among students. Photoshop or Paint Shop Pro on every computer would be great, and we could use some educational games or foreign language software. While on the subject of educational software, I might as well talk about an idea I had recently. Currently, most educational games really suck, though there are some standouts such as SimCity or The Incredible Machine (neither of which I have seen on a school computer for about ten years, but they were great games nonetheless). I think the main problem is that no major game company has ever tried to produce a truly good educational game geared toward the teen market. My idea is this: make a kind of role-playing game that is designed to adapt as the student uses it, presenting their character with ever more challenging obstacles as they progress. As strengths and weaknesses develop, the game could change to give the student more practice in their weak areas.

The inspiration for this came from a book I read a long time ago called Enderâ??s Game, a story about an orbiting school where the worldâ??s smartest kids are trained to command battles against the Formics, an antlike alien species that has already invaded and nearly destroyed the Earth once. The schoolâ??s computers all have a game similar to the one I have proposed, though in the book the game was used to evaluate students psychologically. My main point here is that schools spend far too much time denouncing video games as the reason behind short attention spans and far too little time trying to harness the power that video games have over their students. Developing a really good educational video game wouldn’t be cheap, but profits would come afterward when its success has been proven.

I think the biggest hurdle that an educational video game would face, especially if schools required students to play it for at least an hour or two each week, would be the gore factor. Some parents are bound to be opposed to having their kids play any game that isn’t rated E (for everyone), even if the kids are in high school. Others will restrict their kids to playing T (for teen) games or lower ratings, but never M (for mature). My parents are pretty lax about this, mainly because I have shown myself to be responsible enough to be able to handle some violence and gore without going nuts with it in real life. Truthfully, I think many games have no business being M-rated. Unless the gore and violence is a major part of the game (like in the GTA series or a first-person shooter like FarCry or Half-Life), there is no reason for game developers to include it. I don’t buy an M-rated game because I want to be a rebel or because I like being in the midst of a bloodbath - I buy them based on whether I think the game will be a good one overall. There is a common misconception among [overprotective] parents that kids (especially gamers) are addicted to violence and destruction, but that just isn’t the case. However, a little bit of death makes a game all the more real. If I didn’t feel like I was in perpetual mortal peril when I played Half-Life 2, a lot of the quality of the gameplay would be lost.

If parents can’t be convinced that violence is an everyday thing that kids might as well get used to (remember, we’re talking about high-schoolers here, not kindergarteners), then one option might be to allow parents to specify what level of maturity they want the game to go up to. They could then increase the level every year or so. Giving parents control over this is also a great way to avoid any lawsuits (”You’re the one who set it to level 10, how could we have known that little Bimmy would be traumatized out of his wits when his character got roasted alive, disemboweled, and strangled with his own entrails?”).

I don’t really care that much if schools decide to try something like this or not. It’s just one idea. But my main point is that kids just aren’t being given a good reason to use school computers when their home computers are so much better. And in many cases, kids are finding that there are good reasons not to use a school computer: lack of a tabbed web browser, no software beyond Office and the standard Windows applications, and security that’s so tight that many legitimate activities get restricted. I’ve already talked about the first two, but I’ve saved security, easily the most important of the three, for last.

Many parents are concerned about the shadier side of the web: porn, websites promoting drugs or terrorism, and illegal Internet activities like music sharing. Though computer security has to do with a lot more than just the Internet, Internet-based vulerabilities have changed the subject so much that this has become the logical point at which to start. Both CCUSD and Oconomowoc have some sort of filter that blocks mature content, but CCUSD’s filter, Websense, was much too aggressive in its blocking. It took at least a year after the filter was installed before I could reach my Hotmail account again, and I was always having to click the “Continue for Work-Related Purposes” button to reach websites that Websense thought had nothing to do with school. Even having this feature at all seems completely stupid because no one ever decided not to use a site just because Websense didn’t like it. Another problem was that sites with a wide variety of content (some of which was inappropriate) got blocked because of the small bits of mature content they contained, even though there might be a large amount of helpful content that a student wanted to view. It got to the point where I was using a proxy avoidance Perl script hosted on another server so that I could access certain technology websites while working on the school website. I felt bad that I had to resort to this, but there really was no other option. I think people are just going to have to recognize that kids are going to come across some mature content by using the Internet at all, and we all know that the stuff that kids hear about from others at school is way worse. Unless the school wants to install filters on students’ eyes and ears to censor out other kids, there’s no reason to block anything on the Internet except the most explicit sites that have no content other than porn and other inappropriate stuff.

When websites with bad content are blocked, a large amount of spyware, adware, and viruses become unavailable. This is still a problem, however, one that can be taken care of (for the most part) by using Firefox or Opera as the primary web browser instead of Internet Explorer. We all know Internet Explorer sucks, and there’s a good chance it still will once Internet Explorer 7 is released because only a small proportion of computer users (those with Windows XP SP2) will be able to use it. I think I’ll have to start a Firefox campaign at my school, but they’ve been so resistant to anything I’ve tried to suggest to them lately (more about this in another entry) that I fear that my efforts will be in vain.

Here ends my long and incoherent ramble on how dumb schools can be when it comes to their technology. I’m looking forward to the day when kids use thin-client Linux workstations with some useful apps installed rather than the crap they’re given to play with right now. I probably could have talked about other things in this entry, but at this point I’ve been working on it off and on for about a week and I just want to get it posted so that I can move on. Here’s what might be coming up on Organon in the next few months:

  • More about the inner workings of Langosta, hopefully an alpha release that is good enough to move to from WordPress
  • An entry that summarizes major events in my life in the past two years and links to the appropriate blog entry, maybe in an awards show format so that I can showcase ones that I am particularly proud of.
  • Better spelling, grammar, conventions, etc. After reading a few old entries the other day, I’ve come to the conclusion that either I’m regressing in my writing skills or I’m writing entries while under the influence (of sleep deprivation) too often. I need to get back to the level I had once attained.
  • A rant denouncing standardized testing
  • Another rant about the horribly inadequacy of school websites
  • Musings about college
  • An article describing how to install a PHP development environment on Windows
  • Other Linux-related articles that have some content to them other than random screenshots
  • Brettia’s third anniversary celebration…May 8th
  • My reaction to the dreaded AP Test…May 6th
  • A rant/whine about how OHS doesn’t like to do what I tell them to
  • A review of at least one Linux application
  • Philosophical musings about the real value of busting your ass in high school
  • Something funny…I had a sense of humor, once.
  • Review of the OHS Robotics team website, how I could improve it if I end up joining next year
  • Buddhism

And much, much more! Remember, paying with your credit card in the next ten minutes during a hailstorm on the 30th of February will get you free shipping and a lifetime supply of Fillet-O-Fish sandwiches from McDonalds.

More KDE Screenshots: Amarok

Sunday, April 24th, 2005

I’ve posted screenshots of Amarok’s cool visualizations here.

Linux Memory Usage

Thursday, April 21st, 2005

I couldn’t believe it when I saw it, but here’s what the KDE Panel system monitor says my memory usage is with all unnecessary daemons stopped:
My CPU/Memory Usage
Yeah, that’s 70 MB out of 512 MB. And to think I was actually starting to consider a RAM upgrade. For comparison, my memory usage in Windows, even when I’ve shutdown all but the core services and killed the explorer process as well (this is what gives you the interface and taskbar) is still over 100 MB. I bet that doing the same thing on a vanilla Windows installation on the same computer (no tweaks, no optimizations, etc.) would use at least 120 MB, mainly because I have the fruity Fisher Price theme turned off. So let’s see…I can have nothing more than a cursor, the CTRL+ALT+DELETE menu, and a desktop background for 100 MB, or I can have a K menu, application launch bar, desktop switcher, clock, system monitor (this takes up some resources too), taskbar, desktop background, desktop icons, konsole, and scrot (the command-line screenshot-taker) for two-thirds of that. For 120 MB, I can have Kontact (including KMail, KNotes, aKregator, and other tools), a Konsole su’d to root, Firefox (memory hog at times), and Konqueror, along with everything I mentioned before, except scrot. Windows has got a long way to go with getting the system requirements down to something sane so that users with older machines can run the latest versions too. It doesn’t sound like Longhorn will be any better than Windows XP: the system requirements are forecasted to be a 3 Ghz processor, at least 512 MB of memory, and a decent video card for the full experience. Users will still be able to use Longhorn in Windows 2000 mode, but how many of us are really going to put up with that? I’ve got Windows in Windows 2000 mode right now, but KDE looks so much better…better even than the default Windows look.

I’ve already decided that I will not upgrade my hardware just because Longhorn won’t support it. By 2006, my machine will be middle-aged, but certainly not at the end of its lifespan. I think most other computer users who aren’t gamers feel the same way. Personally, I’m betting that people who find themselves cut off from Longhorn (just about everyone who bought a computer before this year, unless you spent $2500 for an Alienware) will turn to Linux rather than continue using Windows. Not everyone will, but the more tech savvy will give it a try. And by then, Linux might be ready for them because we’ll have fun new things like KDE 4.0, GCC 4.0.0, Autopackage?, and some working 3D-accelerated drivers for those who were unfortunate enough to buy an ATI graphics card (like me). Migration from Windows to Linux won’t be easy for anyone, but if Linux can wow prospective users with glitzy eye-candy, a rock-solid kernel, and speedy performance, they’ll be motivated to do whatever it takes to get out from under Redmond’s yoke. I heard a rumor once that Apple might be considering a version of Mac OS X for PCs, and I figured that it probably wasn’t true. But Mac OS X for the PC is exactly what Linux can become. Be it two years from now or ten years from now, there will be a day when former Windows users are reveling in the technological nirvana that currently only Mac users can enjoy. I’m hoping that day will come sooner rather than later.

So…Many…Extensions

Sunday, April 17th, 2005

PHP 5 on Gentoo 2005.0
There are benefits to having PHP 5 on Linux…namely about 44 extensions, some of which don’t come with the Windows version.

Victory is mine! - Stewie Griffin, Family Guy

CMS Features Revisited

Saturday, April 16th, 2005

I’ve been rethinking my plans for my CMS for quite some time now, but I’m still not entirely sure what direction I want to take it in. This is what I know for sure:

Core Features / Plans

For lack of a better one, the new software will be named Langosta, which is Spanish for lobster. Don’t ask why. Its version, when released, will be 0.4. I’m using the Linux kernel numbering system, meaning that even-numbered releases are stable and odd-numbered ones are under development. The last version (only up for about two months from December to February 2005) was version 0.2.

The core PHP objects that will make up the foundation of the CMS are already finished (code that was rescued from the old CSHS website and other projects). These objects include: ArrayStore, Auth, Config, DB (Creole 1.0.0), Events, SSGP, Timestamp, Template (Savant 2.3), and several others. In other words, I should be able to press forward without having to fix bugs in core code, which is nice.

I want this thing to be versatile. Coding it the first eight times or so has been bad enough, and I’m tired of working hard to finish a new CMS or blogging engine only to find out after a month of using it that I can’t extend its functionality without rewriting large chunks of code. My idea, then, is to use something similar to MIME types used on most modern operating systems. The CMS can have an unlimited number of content types added to or removed from it, and each content type has enough information with it to tell the CMS how it should be displayed, where it sits in the hierarchy of content types, and what metadata fields are available for it. I am still unsure of whether I want to have content types stored in the database or if I want the information to be loaded from PHP objects, but this is not a huge issue. Now, having content organized this way is all well and good, but the idea is useless unless it is feasible. This is what I want to happen when a user visits Organon (or, eventually, any Brettia page):
First, libraries, common files, configuration data, and core objects will be set up. Once this is done, an object called the Controller will check $_GET for instructions on what to display. Two main things can happen: the user can be requesting a view, or they can be performing an action. Requesting a view could be something as simple as viewing a plain HTML page or reading a blog entry. Actions only come into play when a form is submitted and data needs to be entered into the database. Once Controller knows the name of the action or view, it will load the corresponding template for it. These might be done in XML, but I’m not sure yet. Anyway, if an action is being performed, Controller will parse the template and figure out how the data contained in $_POST (whatever the user entered into a form) needs to be inserted into the database. If the user is requesting a view, Controller will parse the XML template and do what is necessary to prepare to send the finished page to the user. Then, a final HTML template, the name of which is specified in the XML, will be loaded and populated with data using special PHP functions called widgets which are designed to assume that the instructions in the XML have been carried out and the data is ready to be formatted and sent to the user. The widgets that are called will be customizable per view, similar to the way other CMSs use blocks.

Because that was probably more confusing than enlightening, here’s a real-world example:
I click on a link to my blog’s archive for all of 2004. The URL is: http://www.brettia.com/?view_name=blog_date_archive&year=2004. Look closely at the URL’s query string. It specifies that the name of the view is “blog_date_archive”, meaning that I want an archive of blog entries based on the date that they were posted. Another bit of information is also given: the year, which tells the CMS which year I want an archive page for. Not too complicated, right?

Recall that Controller is the main object that deals with $_GET, which in PHP is the variable that stores the data found in the query string. Controller looks at $_GET, finds that I’m asking for a view called blog_date_archive, and takes into account the extra parameter “year”. Controller then dynamically loads the XML for the blog_date_archive view, which will look something like this:

<view>
     <name>blog_date_archive</name>
     <template>tpl.blog_date_archive.php</template>
     <instruction name="load_content_object">
          <param name="object_name" value="blog" />
          <param name="object_unique_id" value="1" />
          <param name="object_params">
               <param name="year">2004</param>
          </param>
     </instruction>
</view>

Then Controller loads the view HTML template (tpl.blog_date_archive.php) and the widgets that the template specifies. The widgets draw on data provided by the Blog content object (see how it is loaded above?). Blog has several sub-objects beneath it such as Entry and Comment. Blog never touches Comment, and neither Entry nor Comment ever need to know that Blog exists. They just do what they’re told and pass the orders along down the line until there are no sub-objects left. Once Blog has what it needs, widgets in the HTML template can easily access all the data in once place. And since widget functions and views are tied together, nothing unexpected happens (for instance, a widget function never tries to format data that isn’t there). The final step occurs when Controller executes any end-of-script instructions (stopping the script timer, making sure database connections are closed, etc.) and sends the dynamically generated HTML to the user. Everything happens in about 0.4 seconds, or less, if I can swing it.

To an experience coder, this sounds like I’m overdoing it. Why would I want to bother will all this if I just want to have a blog and a website? The main reason is just because I can. I want to see if it will work. The not-so-main reason is that there truly is a need for multiple content types and such on even small websites. If I want to have an image gallery, all I need to do (theoretically) is write a Gallery content type and two sub-types for it: Album and Image. I could go farther and have Image_JPG, Image_GIF, Image_PNG, and others if I wanted to do special things depending on the file type. Then I’d need to write an XML and an HTML template for the gallery and voila! A functional image gallery in less than an hour of coding. To let me add images dynamically, I could write an action that would take a file submitted via a form and somehow categorize it into a directory on my server. Data about the file and its location would be entered into the database, ready to be viewed via a view. In my happy place, this is how it it supposed to happen. Even if this doesn’t end up being what I do exactly, I feel that PHP is capable of it - the only question is whether I’m a good enough programmer to figure it all out.

Great Review of Ubuntu

Tuesday, April 12th, 2005

Ubuntu Linux, a Debian fork that has somehow reached a number one slot on DistroWatch, has had an amazing amount of momentum lately. I got tired of gentoo and tried the new Hoary release, but I was disappointed. It seems that no one realizes that developers like GUI tools too, not just clueless Windows converts that Ubuntu seems to be targeting. Ubuntu isn’t a bad desktop (as Linux desktops go), but development tools like PHP aren’t included, are out of date, or must be downloaded after installing. More on what I want out of Linux later, but right now I have a link to a great Ubuntu review with a surprise ending (sort of). The guy really seems to know his stuff when it comes to interface design, though some of the “bugs” he talks about were intentional or just can’t be fixed because of the way Linux works (most of the code is split into little tiny projects that don’t always play nicely with each other, example: Gnome / KDE).

Lots of Hits Lately

Monday, April 11th, 2005

Ever since I posted my Gentoo KDE screenshots, I’ve been getting a lot of hits that I didn’t expect. I’m number three on Google if you search for Gentoo KDE 3.4, and I think I’m near number 20 if you search for KDE 3.4 screenshots. While this is nothing to get too excited about, it’s nice that I’m getting some traffic anyway. I suppose that saying (adapted for the Internet), “If you post it, they will come,” continues to hold true.

Update: More Statistics

Here are some statistics for the years 2004 and the first four months of 2005 for the Organon subdomain only.

Organon (Jan 2005 - Apr 2005)

  • Unique Visitors: 2228
  • Total Visits: 6062
  • Page Views: 11951
  • Hits: 16298
  • Bandwidth: 276.75 MB

Organon (2004)

  • Unique Visitors: 3340
  • Total Visits: 7982
  • Page Views: 16288
  • Hits: 48798
  • Bandwidth: 1.17 GB

As you can see, this year is looking really good for Organon (about a 200% increase in visits and such). Hits and bandwidth are dependent on the theme of the site and therefore should not be used for comparison. I was going to put up some statistics for the main Brettia site too, but the numbers were much lower than Organon’s. Also, I was unhappy to see that the majority of my visits are still coming from Internet Explorer (52%), while Firefox lags at 36.5%. C’mon, people, switch already!

Update

The latest from SFX is that Firefox downloads have now surpassed 44 million. Yay!

To Compile or Not to Compile

Thursday, April 7th, 2005

PHP is a bitch to install on Linux. It depends on lots of libraries to function, and it has to be recompiled every time you want to add an extension. I worked for a long time trying to get Gentoo to emerge it, but it just didn’t work. Of course, this was partly because I was trying to compile PHP 5.0.3 and not 4.3.10, which is more stable. Now, I could just go back to 4.3.10, but that would mean forfeiting the use of lots of nice new features, like exceptions, better object-oriented programming support, SPL, the new MySQLi database driver for use with MySQL 4.1.x, and better XML support. But I don’ wanna.

If you use Linux, you can think of PHP 5 as being like the new 2.6 kernel. The improvements and enhancements are just too numerous to count. Unfortunately, people have been slow to adopt it because many web applications that run well on 4.3.10 break on PHP 5. For programmers like me, this is bad because I share a server with hundreds of other people who might not appreciate having their websites break just because I wanted the newer version of PHP. Thankfully, MediaCatch is a pretty good host and made another server, Earth, available for those who want the newest features. With all my domains moved to Earth as of today (brettia.com was moved in January), I can now focus completely on mastering PHP 5’s new features. But without a good development environment, a programmer is useless, and so I have a similar setup to Earth’s on my Windows machine: Apache 2.0.52, MySQL 4.1.8, and PHP 5.0.3. If I want to be able to move to Linux and still be as productive as I am on Windows, I need these three programs and anything that they depend on.

With Gentoo, getting Apache and MySQL up-and-running was relatively easy, though I had to use MySQL 4.0.x rather than 4.1.x (there are major differences between these two releases, though the version numbers don’t really show it). However, PHP failed to compile at every turn because of USE flags that somehow weren’t taking effect. I ended up just giving up and erasing all three from my system. The alternative to taking the do-it-yourself approach is to use a prepackaged solution such as XAMPP, which is really easy to install (simply extract it to /opt and run some installation scripts to configure MySQL and the built-in FTP server). Unfortunately, XAMPP is only available as a binary for the i386 architecture and cannot be compiled for x86-64, which is what I’m using (in other words, x86-64 is a native 64-bit environment that takes advantage of my 64-bit processor). I have heard of emulating 32-bit i386 on Gentoo AMD64, but I have no idea if it would work without bugs, and right now I just don’t want to go through the frustration.

I really don’t mean to turn people off when it comes to Linux with all these posting about how much I hate it sometimes. When you look at the good parts of Linux, they count for much more than the bugs do. But maybe, just maybe, Windows XP SP2 isn’t quite as bad as the earlier versions of Windows, and maybe, just maybe, (at the risk of saying something heretical) Microsoft is finally getting on track and will deliver a solid OS with Longhorn in 2006. There are a lot of Linux users who hate Microsoft, but I have to wonder if the hatred is because they genuinely don’t like Microsoft or simply because they want to jump on the bandwagon and feel important by skulking around in backwater forums insulting an enemy that couldn’t care less about what they think.

Still Working on Gentoo

Wednesday, April 6th, 2005

For some reason I was recompiling my Gentoo system before leaving for San Francisco, though I don’t remember why anymore. I was about two-thirds of the way through it yesterday when I realized that somehow the arts USE flag had come unset, meaning that I wasn’t compiling the KDE sound system in any of my dozens of enormous KDE packages. Not good. This forced me to set the flag and recompile most of KDE, which took all night but actually finished successfully without any errors. Someone who hasn’t used Gentoo might not realize just how annoying a compile error might be, but imagine this:

  1. You sit down at 3:00 PM, ready to add to your Gentoo base system, which you have compiled already. Currently, you have nothing more than a bash prompt and a few important services, such as syslog-ng and vixie-cron, installed. After figuring out which packages you need to get a basic KDE system running, you dump the package names into emerge, turn off the monitor, and begin reading a book because you know this is going to take a long time.

  2. Hours pass, and you do homework, eat dinner, do chores, talk to a friend on the phone, and whatever else. It is now 9:00 PM, and you come back to your system, expecting to be able to simply type startx, hit enter, and be happily wallowing in the snow with penguins seconds later. However, you turn on the monitor and find that there was a compile error on the second package out of 85.

  3. You swear loudly.

  4. Resolving to get this done even if it kills you, you spend an hour searching the documentation and forums for an answer to your compile problem. Gentoo has a large community, so someone has already experienced this error before and posted a solution, which you follow to the letter. Rather than do an uber-emerge like before, you just grab the one problematic ebuild. This time, it works fine, and you run the uber-emerge once more, deciding to let it run over night. You go to bed.

  5. Thirty seconds after waking, you remember that the computer should have finished compiling by now. Excited, you run to it and turn the monitor back on, only to be greeted with a build error on ebuild number 26. Another round of swearing ensues.

  6. Because you need to get ready for school, you cannot fix the error right now. So you wait until you get home at 3:00 PM and figure it out then. To make a long story short, you finally get a working system at 10:00 that night, about one-and-one-quarter days after you started. And this was with a solid base system already compiled (imagine how long that takes, if KDE took this long).

My point here is that, though Gentoo is great because of its speed, customizability, and support, it just sucks if you don’t have the time to work on it. Thankfully, I’ve had some time lately, but not much. And I certainly don’t like having to recompile things so often (I’ve done one package, kdebase-kioslaves, five times since the 28th of March). In the end, I spend more time trying to get Gentoo to do what I want than I spend actually using it. I really want to get rid of Windows…but I just can’t.

And please don’t mention the superiority of Macs…my little visit to the Apple Store in San Francisco awakened a pool of envy deep inside me that I can hardly bear. Curse you Windows! You’re like a little toddler that isn’t potty-trained or cute but needs constant supervision and cannot be abandoned for fear of legal repercussions! I hate you! (I really do.)

(Okay, so there aren’t legal penalties for not using Windows, but with the steep pricing on owning a Mac [from my point of view, anyway] and the less-than-perfection of Linux, there might as well be, because the current problems with alternative platforms are just as limiting.)