February 2005 Archives

Neat. ~Sterling has been rebuilt using the latest CMS to take the Open Source world by storm...er something. Okay, so the "secret" project I've been working on for years is finally doing something because I decided to stop being "elegante" and decided to JustMakeItWork(tm).

What have I done? Well, I wrote a little tool to help me manage the CIS Support Site for work. This little tool is a combination themer/indexer for static pages. It also does some on-the-fly generation of HTML from reStructuredText, which is what we write most of our docs in. It seemed pretty useful and is similar to the software I was using to run this site before October 2004, called Blosxom, which is a lightweight file-based blogger.

Anyway, when I had some trouble getting access to K-State Online for my course last semester, I decided to try and dump my course data into it on ~Sterling. With a few modifications it worked quite well and quickly supplanted any previous ideas I had about the content management systems I'd been toying with for the past several years.

Most of the work is already done by HTML::Mason. My system just took advantage of the features already present to add indexing and theming and generation of content from other formats. ~Sterling took it a bit further by adding the ability to generate even more complicated content (especially, ripping apart zipped Keynote "files" and using XSLT to generate HTML outlines).

At this point, I ran into a few issues:

  1. Adding new generators was requiring lots of custom code and my indexing code was becoming convoluted.
  2. New content had to be added with care, otherwise Mason would try to interpret files it had no business touching. When this happened, my indexer would basically bring the entire site to it's knees with a single exception.
  3. Some content is just better stored in a database. Blog entries, news items, and simple records are just a few examples. The system had no way of coping with any of these.

Thus, since about the time I put Drupal on this site, I've been working on a replacement. Drupal is merely a temporary expedient. I started completely from scratch, but have dragged in a lot of the bits from the existing "knowledge base" system to build this new system, which I am dubbing as Contentment (superceding all the predecessors I'd created and called this).

This system currently features a lot of unused features, but most of the good ones are employed currently. One of the best features I just added this week and after just a few days it's practically remade the quality of the system. Specifically:

  1. It features a (largely unused, as yet) forms handler that can help design forms and wizards with a fairly small amount of effort. I borrowed a lot from the kinds of work that Everything has done in this area.
  2. It uses the SPOPS object-mapping system to provide a database API. It's not required that new plugins use this API, but all the existing database pieces use it.
  3. The system automatically provides for context, sessions, and logins. The user accounting system is completely pluggable, so new support for LDAP or other login types could be added with a little effort.
  4. The system provides a basic permissions system. All of these features have been designed to make adding database-based plugins possible, but there really aren't any yet.
  5. The major feature that has really made the system work despite the lack of any database plugins is the VFS system I've put together. I've debated whether or not this should be forked into a separate project, but I'm going to leave it where it is for now. Anyway, this enhances Mason's abilities by quite a bit and allows for a much more general way of looking at files. This way, Mason no longer has primary control of generating files, but passes that control off to other plugins.
  6. Right now the system works via CGI, but I'd like to put together a mod_perl front-end to take advantage of those features. I've designed everything to this point with mod_perl in mind, so it should work with minimal effort.

That's a pretty bad mish-mash summary of the features. There's a lot more I could say, but I'll save that for documentation. I'm going to admit that I've had a SourceForge project for this for eons, but that it'd never really worked until now. I'm so excited about how this is going now, that I have registered Contentment.org and will be posting information and documentation there. I'm going to, for now, use the mailing lists, bug trackers, announcements, and CVS repository at SourceForge. (Though, I'm hunting hard for a way to keep it in Subversion as I strongly prefer it, despite it's performance and other issues.)

Anyway, I wanted to announce that and say that Drupal may be saying farewell to this site soon---if I can get the plugins written and translate all of my Blosxom and Drupal entries into my new plugins.

For the last few weeks, I've been working on my work web site, ~Sterling to improve it's capabilities. The purpose of this update is many-fold. Read on if you want to learn about my software (you may want to read this post first)...

My web site is based upon the "Knowledge Base" software I developed for the CIS Support Site. This has made keeping this web site up-to-date considerably easier. The software started as a handy index generator that generates indexes of pages posted into the system automatically. Additionally, it's able to perform some basic transformations on input files to generate HTML or RSS or whatever. It's a very minimal content manager that mostly relies upon the features of Mason for most of its functionality.

Okay, so I branched the system to create ~Sterling, which was the repository for the CIS 450 web site last year. I added some more features to make it automatically detect multiple file formats with the same basename minus suffix (e.g., Session-01.pdf, Session-01.pdf, Session-01.key.zip). This made it possible to view multiple versions of a file and using the transformation bits, I was able to generate HTML summaries straight from my Keynote presentations since the format is based around an XML file.

Problems: (1) I now have two versions of the "knowledge base" software that I wanted to have the same features. (2) Adding content always requires dumping files into the system, which is overkill for items like blog/news entries, blog aggregation, etc. (3) One bad file spoiled the whole web site—any index page that found a badly formatted Mason file caused the index to puke. (4) The transformation system was a kludge and required careful tweaking and depended dubiously on file suffixes.

Thus, I endeavored to rewrite the software and have now decided that it is satisfactory for my content management dreams of the past several years. It's not quite ready for distribution as I need to add a little bit more documentation, but I anticipate that in the next month or so, I'll be updating the woeful Contentment project page.

I should be able to take the existing CIS Knowledge Base and drop it into the new system with very little effort. My ~Sterling page is going to be repopulated over the next couple weeks with the original files, but using the new improved transformation system. I still need to migrate the indexing system from the old knowledge base to the new one, but that should be a relatively simple matter (and this time, errors will be handled gracefully!)

The new transformation system is really the key. I borrowed a lot of ideas from Cocoon since I've always kind of liked that system. Basically, each file in the system is first checked to see what input "kind" it has (determined by a set of Mason plugin components, which pick the "kind" from file suffix, file contents, etc.). Based on this information, the file is run through a "generator," which translates the file into an initial kind. The system only has two generators right now: Mason (runs the file as a Mason component) and the fallback generator which just reads the file as is.

Then, the transformation system is applied to each input file. The transformation system attempts to find a sequence of transformations that can be applied to the file to get it from it's initial kind to the requested final kind (which is determined by more plugin Mason components, usually based upon the URL or query parameters). If no transformation can be found, then you'll get a 404, otherwise, it attempts to find the best transformation using a shortest path search (which is probably too costly, but works fine for now with a very small number of transformers). The transformers are applied to get the final output file.

Yet, we're not done yet. Finally, based upon the final output kind, another group of components are applied to the output, called "filters," which further modify the file. The main reason for this is that HTML files coming through the system need to have some links fixed, etc. before output. I had intially thought that this would be a good place to put the theme engine too, but I've decided against for now until I can come up with a decent policy for regulating how themes should work. I have a theming engine in place now, but it depends upon the "autohandler" feature of Mason, in the same way as the previous version of the knowledge base.

Once all the filters have been applied, the file is finally output (after being passed through any autohandlers, as per normal Mason operation).

I should have the system adapted to take any index and turn it into a proper RSS feed and I also want to add Atom feeds this time round as well (and better put in the "alternate" links to let browsers know it's there).

The next step is to add in the database features so that the web site can store some content into MySQL. This will make a lot of the routine updates to the site much easier. A file manager would also be handy to allow users to upload and manage files through a web browser, which is another goal of mine.

If all goes well, I may be dropping Drupal for Contentment in a couple months. I won't hold my breath though...

Today, I sent out an email to all CIS students stating that it is the policy of the systems staff to disable accounts for users that reboot computers. An anonymous coward then posted to my blog the following comment to the topmost entry at the time. This person wasn't brave enough to give his name. This person was disrespectful and posted on my blog this trollish message rather than trying to consider my position. An email to me stating these concerns would have been adequate to get the answers to these questions. However, being the mature adult I am and since this person obviously knows of my blog, I expect he will find my answer below. The rest of my readers (if there are any :) may go along for the ride.

[The start is copy of the body of the email I sent out. — Sterling]

--start snip--
This is a reminder that anyone caught rebooting a CIS computer system will have their CIS account disabled until they are able to meet with me. Many systems have routine maintenance performed upon them remotely and rebooting them during critical moments may cause serious problems. This account policy has been put in place to protect damage to our systems and reduce the work load of the systems staff wasted on rebuilding damaged operating system installations.

Bugs in some Linux software, most notably GNOME, may result in a login to a blank screen. If this happens, there are instructions posted in Nichols 126 and Nichols 128 on how to remedy the problem. A reboot is **not** required. By using Ctrl+Alt+Backspace you can kill any failed session, then follow the instructions given in these labs to repair your broken GNOME settings.
-- end snip --

Why are you doing this while someone is using the computer? Why not do it while it isn't being used or when there is a minimal amount of use. [sic] Why don't you include a reason in the email as to why you HAVE to do the update while someone is doing something? If you are doing an update, why not lock the computer. [sic] Then you don't have to worry about it.

*quote*Bugs in some Linux software, most notably GNOME, may result in a login to a blank screen.*/quote* Oh really? So you mean that there are thousands of installs across the globe having this problem? Or is it because our linux workstations are configured in such a way to cause as many problems as possible. [sic]

On another note, the linux machines aren't usable anyway. *IF* you can log in you have to use the failsafe logon. And then every application takes forever to load, on top of that, it may not even work half way during your session because of some authentication issue that causes you to ctrl+alt+backspace.

On yet another note, IE didn't prevent me from experiencing a better internet. You did by making your site do whatever it does. Tells me you can't write a website that goes across all browsers.

Now for my answer to each question:

Anonymous: Why are you doing this while someone is using the computer? Why not do it while it isn't being used or when there is a minimal amount of use?

Sterling: Why not? My employees are also students and work during the day while users are using the machines. If such work takes a small percentage of the processor, why not?

Anonymous: Why don't you include a reason in the email as to why you HAVE to do the update while someone is doing something?

Sterling: Typically, including explanations gets me in trouble with trolls, like you. See. In general, I try to explain as little as possible because as long as my policies are mystical, it's hard to complain. At the same time, I have trouble not telling because I think rules without reason are stupid. Perhaps I should have been even less explanatory and I wouldn't be typing this now. Oh well.

As for why we "HAVE" to do the updates while folks are using the labs, the answer is the same: why not? Why do my students have to work weird hours when they can do the work during regular hours. The real fact is that we rarely have to repair damaged computers, but that is the real risk if an update happens to be at a critical point. It's rare. So, we're willing to accept the risk that someone might reboot it. However, such an action will have consequences.

Anonymous: If you are doing an update, why not lock the computer? Then you don't have to worry about it.

Sterling: Fallacious. Locking a computer doesn't prevent users from rebooting them. In fact, the policy was put in place primarily to protect the Windows fleet as we must lock them to do the work. However, users flatly ignore the "Administrator is currently logged." in window on the screen and red button the machine.

Anonymous: Oh really? So you mean that there are thousands of installs across the globe having this problem? Or is it because our linux workstations are configured in such a way to cause as many problems as possible?

Sterling: A bit angry are we? Well, it's a little easier to blame GNOME than it is to accept responsibility myself. However, part of the blame belongs with me. For the past year, we have been dealing with problems with NFS and locking. The issue was that the autonomous configuration agent system we use to help us configure all systems was misconfigured to kill certain NFS client processes. Because of this Linux file locking was frequently broken and GNOME was unable to cope.

Two problems: (1) File locking is a farce on NFS, no such thing really exists, but NFS kind of fakes it. GNOME relies a little too heavily on file locking and since most our users logged into GNOME by default, their settings were eventually corrupted by the fact that file locking was broken and that GNOME didn't handle the error very well. (2) Now that these settings are corrupt, GNOME isn't able to rebuild them without help. The help we give it is to simply wipe the settings clean and start over. Tell the folks who write GNOME to make their software robust enough to recover from bad settings.

Thus, the NFS problems are mine. I accept responsibility for those. However, the rest is certainly GNOME. Unfortunately, the GNOME developers probably haven't faced these kinds of exceptional circumstances before due to a misconfigured NFS environment, so they haven't prepared the software to cope. Does that mean their software is deficient? Yes, but only in a very mild way. I am not blaming the GNOME project for brain damage here. It's more like I'm picking at a few scabs on GNOME's knees.

As for being "configured in the worst way possible," that is such a highly inflammatory and trollish comment as to not even require answering.

Anonymous: On another note, the linux machines aren't usable anyway.

Sterling: I beg your pardon, but my workstation is configured the same as any of the lab workstations. I have it this way because I want to know when something fails. My machine is updated as frequently as the lab machines and has the same software installed. I use mine everyday.

Also, I see enough users using the lab computers on a regular basis that I have a hard time imagining that they are unusable.

Anonymous: *IF* you can log in you have to use the failsafe logon. And then every application takes forever to load, on top of that, it may not even work half way during your session because of some authentication issue that causes you to ctrl+alt+backspace.

Sterling: That's grasping. The blue screens are caused by locking issues or corrupt settings. Authentication issues result in neat little messages under the login box like "The username/password given is incorrect."

Anonymous: On yet another note, IE didn't prevent me from experiencing a better internet. You did by making your site do whatever it does. Tells me you can't write a website that goes across all browsers.

Sterling: Oh man. Someone lauding IE? IE hasn't had a substantive update in over a year. I didn't say that Firefox is the only browser in the world man. I just have a link to it because it's my favorite. Is it against the law to like a browser?

My web site probably does look like a pile dog crap on other browsers, but that's just because I don't care. This is a personal blog after all. My site, my rules. What difference does it make?

In closing, I'd just like to say that you should unwind a bit. Go drink a smoothie or have a beer or go to church or whatever helps you relax. If you want to have a calm discussion sometime, I'd be happy to entertain one that involved mutual respect rather than derision.

Also, we currently have an opening for a Windows administrator, so if you'd like to be part of the team, please put in your resume. Then, if you are as good as you think you are, you'd certainly get the job and could put your money where your mouth is.

Cheers.

Running iSync Automatically has moved. The original page moved during a recent update of my web site.


Star Dragon

Mike Brotherton

6

Tor

0-765-34677-X

October 2003

Welcome to the first of, hopefully, many book reviews. I am generally reading a book at any given time and generally prefer books to movies. I mean, really, as great as the Lord of the Rings movies were, they simply can't compete with the depth of the actual books. Anyway, I mostly read Science Fiction and Christian Non-fiction. I hope to review each book I read as I complete it.

Star Dragon is one of the many books I have purchased from our favorite local used bookstore, the Dusty Bookshelf. The book itself caught my eye from the artwork on the cover by Stephan Martiniere. It depicts a somewhat ephimeral spaceship near the accretion disk of SS Cygni, a "Dwarf Nova Cataclysmic Binary System".

The book itself presents a very interesting universe about six centuries in the future. In this future, earth has colonized several local star systems and the galaxy has been discovered to be teeming with life. Everything from balloon creatures in Jupiter's atmosphere, to leviathans living under the sees of Centauri, to creatures discovered living in the deeps of space.

The earth itself has grown to a technological level that allows humans to mold diamond to form all kinds of hardened tools and armored hulls. In order to make interstellar travel possible, humans have developed technology able to initiate and collapse blackhole/whitehole pairs in order to pull a hull hanging in the middle along at nearly lightspeed. Finally, the earth has developed very detailed biotechnology allowing humans to grow almost anything they can imagine. Extinct animals have been brought back to life. Biological robots called "mobiles" can be grown to handle monotonous or dangerous tasks. Most interestingly, humans have developed a complex series of "bodmods" that allow humans to change their own appearance, skin color, add new features, improve sight and hearing, improve memory and access computer databases mentally, etc. For example, one of the characters starts in the story with purple skin and ear wings (which he uses in a freefall environment to help him maneuver). We see children who have toys as biological attachments, such as tethered frisbees. One character actually grows himself into a metal giant at one point.

The general plot is that the crew of the Karamojo have been sent by one of the great biotech corporations to look into a new discovery made by a probe sent in the twenty-second century to SS Cygni. The author has assumed that SS Cygni is about 250 lightyears away, so the crew takes on a long term roundtrip that will take them about 3 years in total to make, but will result in about 500 years passing on earth in the meantime. The reason for the trip is that a unique form of life was discovered in the accretion disk of SS Cygni, the star dragon. Their goal is to capture a star dragon and bring it back for study.

The reason for all the effort for this thing is that the dragons live in the ultrahot plasma of the accretion disk and this suggest a very unusual ecosystem. Also, it smacks of a higher intelligence having created these creatures, which would be something that humans have yet to encounter—an intelligence equivalent or better to their own in the universe.

The book itself is mostly bound up in the mechanics of the relationships between the five crew members and the ship's brain, which has been imprinted with the human personality of Earnest Hemingway. Most of the book is preoccupied with relationships and the internal feelings of the characters. It gets to be a bit more like soap opera rather than space opera during a few points.

Spoiler: (Skip this paragraph if you want to read the book.) One major objection I have with the book, is Brotherton's failure to take his writing seriously near the end. The star ship the crew travel upon is a marvel and is internally filled with its own complete eco-system. This eco-system is taxed by what transpires in SS Cygni, but is recovering when a final catastrophy disables the ship. Oddly, the multikilometer long ship has reclaimed all of it's biological mobiles in order to conserve spare biomass. It doesn't grow even a single spare (which appears to be possible granted the actions of one of the crew). This would have been obviously prudent given the dangerous actions they were considering. In any case, the situation is such that one crew member must die in order to save the ship. Well, this character climbs out, performs the repair to save the crew. Then, this character doesn't die. It would have, in my opinion, been the ultimate injustice to an immortal on the cusp of success and made the book much more satisfactory. The book is still a relatively decent piece of literature, but this one spot could have made it much better.

I've also noticed a new vein of thought in recent science fiction that breaks from the mold present in most older science fiction. Science fiction has traditionally been a combination of dreaming and stretching out towards the future that technology has to offer and a warning that technology is a menace to humanity. The newer mold tends towards the former but general ignores the latter. Star Dragon is definitely an example of this new vein.

In this universe, humans have caused the extinction of many animals that are still around in the present. Such animals as lions, elephants, whales, etc. However, it's okay because humans are able to unlock the powers of creation and able to create the original animals again. Of course, they can even create them better now, give them human intelligence if they like, whatever. In this future, life is real cheap. Even human life is treated pretty cheaply by the author. Humans are the benevolent dictators of all life they encounter. Now, in a way, it may be that Brotherton is merely trying to present a world that is bold in this way to demonstrate the danger with subtlety, but it's not clear.

Another common vein is the destruction of most modern religions. This is a common factor in all science fiction, old or new. Older science fiction usually tried to avoid the topic altogether. New science fiction either spiritualizes through science or alters modern religions to fit the changes that have happened in the universe. Brotherton's universe essentially eliminates Christianity, Islam, and Hinduism as all of these fail when humanity has essentially made itself physically "immortal." He assumes that Buddhism and Judaism would survive because Buddhism jives with this universe and Judaism is just too stubborn to die.

As with many science fiction authors, Brotherton lives in a delusion of secular humanism: men can better themselves. This philosophy was badly beaten down by the French Revolution and our two World Wars, but this false optimism still lives on in the hearts of many. This is a fatal failure to understand depravity: humankind is doomed to destroy itself, if left up to its own devices. In the world of Star Dragon, people can satisfy themselves in every way possible, yet this won't satisfy any human. Self-satisfaction leads to a diminishing return. You must reach for higher and higher heights of stimulation. Ultimately, you'll either kill yourself pursuing such stimulus or you will fall into apathy, despair, and die of hopelessness. Humans are built with a yearning for purpose. Stripping humanity of religion and expecting it to survive at all is a pretty vain hope.

All in all, I'd give this book a rating of 6 of 10. The book was entertaining and was unique. However, Brotherton's story lacks believability in its consistency near the end. Brotherton has also failed to capture the truth of human depravity. That strike may seem unfair to those who don't understand depravity, but it is the most important principle of Christianity and I will not relinquish it.

My subconscious does a lot of work for me. I don't know how many folks out there are aware of just how much work their subconscious performs, but mine does quite a bit. I am dyslexic. I've never been diagnosed as such, but having read about the symptoms I have little doubt. Mostly, this means that I have trouble reading and writing in that I skip words, transpose words, and mix words together unintentionally all the time. Everyone does this a bit, but I do it quite a lot. I read at somewhere around one-tenth the speed of my wife, etc. It's often frustrating as a programming to look and look for a bug and not see it when it's right in front of me because I tend to see what I am looking for rather than what's there.

Anyway, that's not really a point, but it brings me to this topic of "Intentional Living." It's a term I've been hearing a lot lately, or must have been because it's one of those phrases that's stuck in my head. I often realize that I read a word or a phrase because I keep crunching on it in the back of my mind and then I go lookup up the definition for it and my subconcious had it defined properly already. The word "pugilist" is a recent example. I had no idea where I'd heard it but I had the vague notion it meant someone who fights. Well, it's the fancy word meaning "boxer." I think I must have picked it up in a novel I was reading recently where one of the main characters liked to box.

Again, back to my topic: Intentional Living is an interesting idea. The title really says it all: you live according to your intentions. You don't live on automatic. You don't just cruise on through. I think this is a good idea, but it's incomplete. There are some things that need to be lived through, but which require so much attention that intending to concentrate in a certain way will disable you from doing it.

Instead, I suggest that Intentional Living is only the start. That we must use our Intentional Living to forge a set of subconcious habits such that we will act according to our intentions automatically. I believe this is the natural result of what Paul talked about when he said we must beat our bodies like an athlete preparing for the games. Athletes perform on automatic. If they have not honed their body to such a state that they can run, jump, throw, or punch by reflex, they probably will be disqualified before they even reach the games. The truly good athletes are able to do so on the basis of reflex and feeling because they've trained themselves to perform the correct action at the correct time without waiting for the slow travel of commands all the way from their higher brain.

Christians should train themselves to live life the same way. We need to be men and women who seek God intentionally as often as possible. Our bodies may not like this training for the corrupt flesh that they are, but will accept the program if we beat our bodies and intentionally train ourselves for the race for eternal life.

About this Archive

This page is an archive of entries from February 2005 listed from newest to oldest.

January 2005 is the previous archive.

March 2005 is the next archive.

Find recent content on the main index or look in the archives to find all content.