Guh. Finally got that project finished. Hopefully for real, this time.
I pity the next programmer/administrator that works on this system after me. It is the world's biggest hack job. Seriously. *Horrible* hack job. I hate having all this crammed on one server, too, since that means even a small mistake on my part in this fax system (which is likely, given how it's a *huge ugly* hack job) will compromise the whole system... :(
The way it's setup is an LPR printer (LPRng) with a script backend, which runs under a setuid wrapper (the script needs web server privileges, LPRng runs w/ printer privileges - *gods* I wish we had ACLs on this system, would make life *so* much easier). The script parses the LPRng control files, and the postscript input (printing non-postscript files will be bad) for things like document title (the Novell print system the client machines are using doesn't set job name), moves the postscript input to another spool directory, and inserts the basic info into the SupportWeb database.
Then, a SupportWeb module lets the user select files they printed, enter the recipient name/phone, and fax. That just updates the database with recipient info and a 'ready' flag. Then, a cron job runs that calls efax to fax the actual documents.
Yuck. The files sprawled everywhere, my wrappers for security, the fact that I'm a coder and not a system administrator... these all add up to a pretty ugly setup. Pity my replacement!
Application's due in a couple days. Of course, the people that wait till the last minute have no chance of getting in, but I'm a last minute sort of person. Still haven't finished the application; one essay left to write.
The essay's on cultural perspective sorts of things. Depending on how you look at it, I either have nothing to offer there, or lots to offer. Translated, I'm not sure if being part of the global Internet community counts. If not, the essay won't be very good, because that's the extend of my cultural experience. :(
I have a question for my fellow Advogato readers. Is it ethical to patent a software algorithm that is original, allow it to be freely used with no royalties or resitrictions in software licensed under an FSF (or OSI) approved license, but charge money (personal profit) for corporations that wish to use it?
I've seen a lot of "defensive" Free Software patents; i.e., people who patent ideas and algorithms and don't allow non-Free software to use it at all, to use as bartering or simply enforced Freedom (there's an oxy-moron for you) of Software. The idea of expecting commercial entities to wish to use the idea, and happily accepting payment from them for it, feels to me like it's on the borderline.
I'll note now that I am not a Freedom Fighter. I'm much closer to the OSI view of things than the FSF, I believe proprietary software is perfectly ethical (as long as you don't compete through lockin, but through quality of product and service), etc. I'm just not personally sure how I feel about software patents. And again, by that I mean things like coming up with a new compression algorithm and patenting it, vs something bogus like the Amazaon one-click patent. I.e., a real new unobvious process/algorithm.
I've seen a lot of people get incredibly vocal about how much they hate Red Hat lately. To the point that they make claims against Red Hat similar to SCO's claims against the GPL.
I don't get it. At all. One of the arguments I've seen (from a programmer I used to respect) is that Red Hat makes a profit off of community contributions, and doesn't give the money back. This programmer is clearly incompetent at running a business.
Red Hat doesn't give anything back? The amount of code they release, fully under the GPL, isn't giving back? The programmers they pay to work on Free Software projects isn't giving back? They make a profit, yes. Welcome to reality, they're a business. If they didn't pull in a profit, they wouldn't stay in business, and all those amazing employees they have would likely be stuck working somewhere that really doesn't contribute back to the community.
Giving this subject the depth it deserves isn't something I'm going to do in a diary entry. I just... sometimes it amazes me what boneheads people can be. People who are usually very intelligent and logical.
Work has been slow, between work projects, UofM application, the contract job, bass practice, and the handful of new Game Cube and Gameboy games I've gotten lately. ;-)
I got Dungeon Mater II running in DosBox last night. I only played for a few minutes. Still, tho, it was great. This is one of the two games that made me want to learn how to program when I was a child. (The other game was Lands of Lore, the Thrown of Chaos, or whichever it was called.)
Similarly, I was playing Dragon Quest I on my Gameboy lately. These games, both ancient classics, have sort of stirred this desire in me, one almost identical to that original desire to learn game programming.
Modern games, including my own AweMUD, are based on so much complexity. You need like 8 button mice to play FPS games efficiently, you need manuals bigger than most programming texts to handle most RPGs, "party" console games still have steep learning curves... everything is so complex.
Dungeon Master II was also complex for its time. Some things about it are *too* complex. (Mainly, casting spells to the point of being silly, and some "obvious" UI doesn't work like one would expect.) Still, tho, compared to a game like Baldur's Gate II (or any modern RPG), DM2 is wonderfully simple.
In the case of these old RPGs, I think one of the best ideas is to remove character creation. In modern RPGs, you can spend hours making a character, tweaking them out just right, and many players end up scrapping them and starting over because they find out they didn't tweak it just right.
On the other hand, lots of old console-style RPGs gave you a "pre-tweaked" character. By this, I mean that all character s have various strengths and weaknesses, and your character has some specific set of thse, which may not be the set you'd prefer. You are still forced into this character, however; you aren't playing the alter-ego you want to have, but the one the game forced on you.
Other old RPGs, however, circumvented this problem by simply reducing complexity. Instead of having a ton of statistics and a starting character with strengths in just a few, you end up with a few statistics and your starting character being mostly equal in all. How you build from then on is up to you.
In more complex games, this also works out well. It's similar to, say, Dungeon Siege, in which you just play the game, and whichever style you prefer to use the most is the one your character becomes best at.
Ugh, I had a lot more ideas to write about this, but work calls. Time to get back to it.