Pug’s Place

Never gonna give you up…

Archive for December, 2005

Abaddon

“We fought against the empire of heaven. We were - that I will not deny - vanquished in that conflict: Yet the great intention was not lacking in nobility. Something or other gave them victory; to us remains the glory of a dauntless daring. And even if my troop fell thence vanquished, yet to have attempted a lofty enterprise is still a trophy.” - Giambattista Marini, 1623

I have finished Julian May’s Galactic Milieu saga yet again, from the Saga of the Pliocene Exile to Intervention to the Galactic Milieu Trilogy. I would still place these, especially Jack the Bodiless and Magnificat (both from the Galactic Milieu Trilogy), among the top 10 books I’ve ever read. As I have raved before, Julian May’s writing is magnificent. Her stories are nifty enough that Katie and I sought out one of the reoccurring locations, if you remember. Folks, you need to borrow these books from me. :) Intervention, where you should probably start, is with me in Gainesville, so if one of you Gainesvillians wants to get hooked, drop me a note. Another starting point would be The Many-Coloured Land which was the first novel published. It’s here at home.

But this post is titled “Abaddon”, the Hebrew word for destruction. Abaddon is also personified in Revelations 9:11 as the angel prince of Hell. In the Galactic Milieu saga, it is the nickname of the central character, Marc Remillard: the Angel of the Abyss. The greatest killer who ever lived.

May’s books are a character-driven epic which tells Marc’ story. In the Pliocene Exile books, the first published, he is already an adult, has already committed his atrocities and is a powerful recluse still striving toward his goal of surpassing God and engendering homo summus, the pinnacle of Human evolution. In Intervention, though Marc is not yet born, we are introduced to Uncle Rogi, Marc’s stalwart great-granduncle, chronicler and sometime hero. Finally in the Galactic Milieu Trilogy we watch Marc grow up, grow strong and fall only to rise again, told from the perspective of Uncle Rogi. The above quote from Giambattista Marini well describe the choices Marc makes during Magnificat, the last book of the Galactic Milieu Trilogy.

Marc Remillard and his uncle Rogi are two of the best hero/anti-heroes I’ve ever found. Their personalities are so complete and detailed that there is no need to suspend disbelief to enjoy the science fiction - there’s no disbelief left.

I’ve considered continuing this post into some character analysis of Marc Remillard but I don’t think it would be appreciated by those who haven’t experienced this universe. Nevertheless, if any of my readership is interested, drop me a line. We’ll converse about arrogance, pride and the Metapsychic Rebellion.

6 comments

Goodbye, Firefly…

According to an interview with Joss Whedon in the latest issue of Entertainment Weekly, Firefly/Serenity is over. Amusingly, today’s the DVD release of Serenity. Coincidence?

Anyway, it looks like the saga has ended.

…At least they can’t take the sky from me.

4 comments

CAcert.org, SSL Certificates

I did some work on our apartment’s server today (whose address is not for public knowledge), among other things I added SSL support to its web server. But to add SSL support I needed a key. Most people just generate their own key and sign it themselves, which works fine (but makes web browsers pop up a “hey, we don’t trust this key signer…” message). I, however, am too clever. So, without paying anything I have a key signed by a central key authority. How, you ask? I pulled out my quantum computer prototype and recreated their private key.

No, just kidding. I actually signed up with CAcert.org, a free certificate authority. All you have to do is authenticate your domain (by responding to an email sent to admin@yourdomain.net), upload a Certificate Request and download your new signed certificate. This was nicely explained at the Gentoo Wiki, so it was a relatively painless operation. The only thing to remember is to use your website’s hostname (e.g.: pugsplace.net) for the Common Name field, even though the prompt (on my version of openssl) said “Enter your name.”.

Sidenote: to install CAcert’s root certificate in your web browser so that your browser trusts them, just click here: CACert’s Root Certificate (PEM Format).

No comments

It’s official, I done did that B.S.

Today I’ve been awarded my first Bachelor of Science degree in Computer Science. I’m now a Gator Alumni. Somehow this fills me with amusement.

This time next year I should have finished up the remaining 21 credit hours for my Master’s of Science in the same field. So, what will I be taking? Here’s the plan:

  • Spring
    • CAP5615: Operating System Principles
    • CEN5540: Computer and Network Security
    • COP5255: Concurrent Programming
  • Summer
    • COP5555: Programming Language Principles
  • Fall
    • CDA5155: Computer Architecture Principles
    • CEN5531: Mobile Computing ??
    • CAP5510: Bioinformatics ??

All are 3 credit classes. Depending on what’s offered next summer this might change slightly.

I’ve been doing a little Gpremacy coding over the past two days, it’s been exceedingly slow. It took me 3 days to get a development environment working in Windows, for one thing! I finally had to write a NANT makefile to compile it. Additionally, Eclipse’s support for C# is horrible. I’m really missing the somewhat buggy Monodevelop - it might have crashed occasionally, but it at least did proper syntax highlighting! Also, the GUI approach to CVS in Eclipse is complicated. I’m still figuring out how to make it behave… Still, I’m hoping to have blind bidding in before Friday, when Chris arrives. A real release will probably wait until January when I’m back in Gainesville.

3 comments

SCHUA

SCHUA: Schooling User-Interactive Aquarium

Immediate Gratification Links:

For those of you who regularly read my blog, you can skip this entry. It’s just a compilation of what I’ve said so far about SCHUA so that I can have one post which covers everything. At Dr. Fishwick’s suggestion, I’m going to post SCHUA to the Processing exhibition page.

My CAP 5805 term simulation project was SCHUA, my Schooling User-Interactive Aquarium. Yeah, the acronym sucks, but it’s pretty. SCHUA is a simulation of fish, dolphins and sharks (and fish food) in a 3D spherical aquarium. All entities have agent-based artificial intelligences and school, hunt, eat, avoid other species and generally stay alive.

This simulation showcases emergent behaviour - complicated behaviour made up of a blend of simpler sub-behaviours. It is an extension of Boids, a bird flocking simulation created by Craig Reynolds in 1986. SCHUA is drawn in 3D with OpenGL, has multiple species with unique characteristics, Newtonian physics and additional behaviors such as hunting.

The sliders on the left change the coefficients which blend different behaviours of the fishes, and the smaller buttons on the right add more agents of various species to the aquarium.

It’s rather cool to watch. The fish school around, trying to avoid predators and unfamiliar species. When you add fish food, they go up and feed on it. The dolphins streak around the aquarium eating fish, and the sharks lurk around munching on living targets of opportunity (including dolphins). I’ve faked underwater lighting with texture maps, so light ripples across their bodies as the agents move. You can rotate the aquarium around and zoom in/out.

Further stuff you can look at:

  • The project’s demonstration video is online at Google Video. You’ll need Flash to play it: SCHUA Demo on Google Video If there’s demand, I can put up a DivX and MsMpeg4 copy on Archive.org within about a week.
  • The final report has detailed pseudocode of all of the algorithms involved as well as more details on how everything works. It’s online here: SCHUA Final Report (PDF).
  • The source code can only be compiled and run with Processing, a Java simulation package. Luckily, Processing needs nothing more than a java environment to run, so it’s easy to install and easy to work with. Just uncompress SCHUA into your processing “sketch” directory, which defaults to “My Documents\Processing” in Windows. Processing is very simple to use, so even people with only a basic knowledge of using a compiler should be able to make SCHUA work. This FAQ entry and its links may be helpful for anyone giving Processing a try. SCHUA Source Code Release 1 for Processing, released under the X license.
1 comment

SCHUA Source Code

For those of you who want to play with SCHUA (see the last few posts) you’ll want to download the SCHUA Source Code. This source can only be compiled and run with Processing, a Java simulation package. Luckily, Processing needs nothing more than a java environment to run, so it’s easy to install and easy to work with. Just uncompress SCHUA into your processing “sketch” directory, which defaults to My Documents in windows.

Have fun!

I’m heading home. Later!

No comments

A mysterious benefactor

After another terrible ordeal with the wholly evil pit of vileness which is the Academic Advising Center, my day took a completely unexpected new direction: A random young woman bought me lunch.

I don’t think I was looking impoverished nor horribly vexed, despite the turmoil my mind was in. I was merely standing queued at Taco Bell, deciding what ‘combo’ meal I wanted today (since I wasn’t in any hurry and wanted to sit with my book and linger over a drink after eating). While I was deciding, the woman who was one person ahead of me in the queue turned and asked me, “What are you ordering? I can never decide.” I replied that I was still deciding but was leaning toward a “Grilled Stufft Burrito.” She reached the cashier and ordered her lunch and then said “…and I’m paying for him, too” while turning to point at me. My mind screeched to a halt and began reassessing what was going on. During this time the cashier and my mysterious benefactor were looking at me expectantly and everyone else around the area looked surprised.

Finally, my cogitations sputtered forward and I gave my order, while looking completely surprised. After she paid for both of our lunches I engaged her in a brief conversation:

Pug: Thank you! To what do I owe this generosity and kindness?
Mysterious Man: (to her) Are you being flirtatious again?
Mysterious Woman: (to him) Nooo…
Pug: (to him) She is being very generous to a complete stranger.
Mysterious Man: (jovially) Ahh! Be impressed, she doesn’t do that often.
(the food is handed over)
Mysterious Woman: (to me, answering my first question) I don’t know. Sometimes you just need to buy someone lunch.
Pug: Well, thank you very much! I…
Mysterious Woman: You’re welcome! Have a good lunch.
(both disappear with haste)
(I stand there holding food, and continue to stand there holding food for several seconds)

Sadly, I can afford to pay for my own lunch, and had plenty of cash in my pocket to do so… so her benefactions could have gone to a better candidate. However, I don’t feel guilty since she made her decision, but I do feel amused.

…Especially since this story sounds unbelievable. Truth: Stranger than fiction.

Pug: So, what’s a good example of truth being stranger than fiction?
Carmen: My pistol instructor lost a cat a few years ago. About a year after his death, a stray cat which looked *exactly* like him strolled up to her out of her pet cemetary. And her African grey parrot, upon seeing him, greeted him the way she had the previous cat.

3 comments

SCHUA Demo on Google Video

I’ve made the demo movie for my 3D aquarium schooling simulation. Go watch the 3D Schooling Simulation Demo now @ Google Video! :)
I made this, turned it in today and Google Video posted it the same day. Nice turnaround time…

Unfortunately, I just spent a considerable amount of time and effort trying to get JOGL and Processing applets to play nicely so that I can hand out an executable for you all to play with, but the solution to this problem is still proving elusive. I’ll get the source code up this weekend, but you’ll need to install Processing to play with it for now.

Some notes about the video: I couldn’t find a working microphone in this place so I had to improvise. The voice-over was done on my cellular phone and transferred via Bluetooth to my computer. Then I meshed it into the video. It took me more than 25 tries and more than 3 hours to make that video, almost entirely because I couldn’t get XVidCap to stop crashing. I finally figured out that it crashed any time my mouse cursor dipped below a certain line at the bottom of my simulation’s window, but luckily the line was low enough that I could still manipulate all of the UI widgets. So I avoided moving the mouse down too low and all worked out fine. *grumble*

The video was captured to individual .ppm files, 10 per second, and these took up a whopping 9.3 gigs of space for the four and a half minute video. Then I had to convert these all to .png files so that Mencoder could make a video from them.

Converting voice recordings from my Nokia cellular phone to a usable format required the 3GPP decoder mentioned at this AMR Converter webpage and a short shell script:

if [ -z $1 ] || [ -z $2 ]; then
        echo “Usage: $0 [in.amr] [out.wav]”
        exit
fi
/home/pug/bin/3gpp/decoder $1 $1.raw
sox -r 8000 -w -c 1 -s $1.raw -r 16000 -w -c 1 $2
rm $1.raw

I know, Jen, that this isn’t a version you can use as a screen-saver, but at least you can see what it looks like. :)
Hopefully I’ll iron out the problems with JOGL at some point in the future and thus be capable of distributing it…

1 comment

SCHUA Done: Behold ye its beauty.

SCHUA: Schooling User-Interactive AquariumI’ve completed SCHUA, my Schooling User-Interactive Aquarium. Yeah, the acronym sucks, but look at the pretty!. I’ve written up the Final Report (PDF) and placed it online there for you to see, if you like. It has a few more pictures and descriptions within it. All that’s left, then, is to create a demo video - a task I’ll set to tomorrow. Once I get the video, I’ll put it up on Google Videos or something similar and link to it.

For those of you who want the source code, I’ll put it up this weekend - I have to wait until after the submission deadline is passed.

As you can see compared to the screen-shot in the post before this one, I’ve fixed the text labels and cleaned up the textures. Looks so much better, doesn’t it? :)

3 comments

Gpremacy Windows installer, Aquarium Simulation…

Gpremacy Installer for WindowsSchool’s basically done. I have some RITA work for Software Engineering to do this weekend and I need to put together a video of my Simulation project, but otherwise it’s smooth sailing.

Above you can see a screen-shot of the new installer for Windows I put together yesterday. It uses the Nullsoft Scriptable Installer System and has features to:

  1. Check for your local copy of Mono. If you don’t have one, it opens your web browser to the Mono download page.
  2. Create Start Menu shortcuts.
  3. Create a Desktop shortcut.
  4. Cleanly uninstalls through a Start Menu shortcut or through the Add/Remove Programs dialog.

That should fix… every problem so far reported for Windows. The next release of Gpremacy will have this installer for Windows. The big feature additions for the next version of Gpremacy will be Blind Bidding and randomized order of play, fixing the old market-manipulation flaw in the original game rules. This is proving to be difficult to get right, so I have no ETA on the next release.

Aquarium Schooling - Underwater schooling behavioursSpeaking of that Simulation project above, well, here’s a screen-shot. It’s a simulation of fish, dolphins and sharks (and fish food) in a 3D spherical aquarium. All entities have agent-based artificial intelligences and school, hunt, eat, avoid other species and generally stay alive.

This simulation showcases emergent behaviour - complicated behaviour made up of simpler sub-behaviours.

The boxes at the bottom of the screen have descriptive text when run in Windows, but something strange is happening in Linux. The big button in the center, believe it or not, says “Add Food”. I’m trying to fix this now. The sliders on the left change the coefficients which blend different behaviours of the fishes, and the smaller buttons on the right add more of various species to the aquarium.

It’s rather cool to watch. The fish school around, trying to avoid predators and unfamiliar species. When you add fish food, they go up and feed on it. The dolphins streak around the aquarium eating fish, and the sharks lurk around munching on living targets of opportunity (including dolphins). I’ve faked underwater lighting, so light ripples across their backs as they move. You can rotate the aquarium around and zoom in/out.

It’s a hell of a cool amusement. One of these days I’ll get it on-line for general consumption. :)
Tomorrow I’m invited to April’s place for a day of Star Wars. We’re watching all of the movies, 4-5-6-1-2-3. The order that God intended.

2 comments