Pug’s Place

Never gonna give you up…

Archive for October, 2005

Fun Poetry

I’ve moved all my sites over to my new server now, and one of those was the Choctawhatchee Wordsmiths‘ page. After copying it, I couldn’t resist reading though some of my old poetry on that site and pulling choice bits out to entertain you, my viewers.

First, I want to point you to An ode to loneliness or damaged goods or the futility of waiting too long or not long enough, a poem I wrote for a D&D game. This was the “poem about how to write poetry” which Puggles, the Bard, used to instruct Carmen’s Dwarven Berzerker. One of its gems is undeniably the last stanza:

The emperor had those great new clothes
so people stopped to stare,
the same as when they view this prose –
in either case there’s nothing there.

Along the same lines is a resentment-filled poem titled Unilateral Poetry! (Anything Else is Fluff). This is the product of an interesting writing prompt in my Honors Poetry Writing class and an annoying critique in the same. The prompt was to use the end-words from a famous poem. The critique was that my poetry doesn’t discuss things of the heart, and it could use more ’soul’. The result, I think you will find, is very entertaining. I won’t copy the whole thing into this entry, so read it here.

I also have This Poem Is About Death, a tribute to Mrs. Smith, the IB English teacher who reconstructed my love of our language. She also happens to be the source of my stand-by poetry explanation: “this poem…. is about death.” You can state that about any poem, and This Poem Is About Death proves it:

Happy bunnies bounce
Happily down their cute hill
Into the peaceful sunset.

Many of you have heard stories about my first roommate, Josh (of Josh and the No-Names “fame,” if you listened to his prattle). I’ve even written a poem about him, titled Prisoner of Courtesy.

And then there are things like the Forgetful Limerick:

The Doc said “you have Alzheimer’s.
I’m really sorry, old-timer.”
The patient looked flushed,
And then he seemed crushed,
For Doc offered to send a reminder!

If you’re sick of homework, checking out the Wordsmiths Website again is a very entertaining way to spend some time.

A final note, credit (and blame) for being my Editor-in-chief goes to Lady Vulcan.

3 comments

Introducing: Pug’s Place

I was a complete moron. I bought PugsPlace.net. Somehow I completely missed that it wasn’t already owned this morning. I could have sworn I looked! Unless it expired today (which is improbable)…

Anyway, the site’s back to its good ‘ol name. No need to panic.

Summary: New website: http://www.PugsPlace.net/

Aftermath: Now, I’ve got PugsPlaza.net for a year. I’m going to come up with something suitably odd to do with that domain. Stay posted.

No comments

Introducing: Pug’s Plaza

Pug’s Place is now called Pug’s Plaza. The reason for the name change is simple: I just bought http://www.PugsPlaza.net/. I’d have bought PugsPlace.something if any of them were available… but I didn’t really feel like being PugsPlace.co.uk or PugsPlace.biz. ;)
This has also prompted yet another server movement, the second in a week. But now I’m hosted at DreamHost.com, and since I’ve already paid for a year of hosting, I had best not be moving the site any more.

But hey, I’ve got email back up. That’s highly important. :)

1 comment

Network Play: Planning Ahead Has Advantages

After ~10 hours of coding, suddenly, Gpremacy has the basics of network play. I’m not kidding - I open a copy on each computer on my desktop, they all connect to a server and units move around the map on each screen! There are a few synchronization issues, and I haven’t coded up selecting which country you wish to play, but the toughest part, getting the data from client to client, is done.

Warning: The following is very geeky!

The truly amazing thing is how simple this ended up being. You see, I planned ahead. Everything in Gpremacy which affects the game state (e.g., everything important) happens in a particular code object called a Command object. These things all have an Execute() method which does their magic, and the game creates a Command object for each action a player takes, and then calls that Execute() function. To make this work for network play all I had to do was send these Command objects to each client and Execute() them there. Sending them to each client was amazingly simple through C#’s BinaryFormatter::Serialize() method.

Keeping everything as a Command object has an additional bonus: implementing an Undo function is trivial.

This is a practical example of the Command Design Pattern’s ability to take names and kick serious arse.

I expect there’s about 10 more hours of work left in multi-play support. Sweet.

Nothing like going from Local -> Network Play in a complicated game in ~ 2 days.

3 comments

Implement a known algorithm. But it better not be a known algorithm!

The latest chapter of the comedy of my life has reached intermission and it will now be related to you:

In Computer Vision we have a term project. This week we were instructed to turn in our chosen project descriptions and abstracts so that our professor could review them and give his approval. I dutifully sent in my chosen project - implementing a mean shift image segmentation algorithm with some fun stuff on the side. My professor wrote me back this morning the following:

ok, sounds good. [...] I also need to know for sure that there is NO software on the web which is an implementation of what you are going to do.

My reply was, in part:

I don’t know how I can or if I can assure you of this, professor. It is after all a known algorithm, published three years ago. I would assume that someone has implemented it before. I’ve dug through what Computer Vision libraries exist for Python, the language I was planning on using, and did not find any pre-implemented segmentation algorithms (though the existing Vision libraries for Python are sparse at best).

I didn’t immediately see anything suspect with a Google search, but would you rather I pick another topic? Since it needs to be unavailable on the Internet, do you suggest that I should restrict my search to very recent publications?

The next sentence I wrote, which I deleted from that email, was: “Perhaps I should instead only seek topics among as-of-yet unpublished papers? I’m sure that if I reached 88 MPH in my DeLorean I could fling myself several months into the future to find published papers which have not yet had implementations released anywhere on the Internet.”

Folks, does anyone else think this professor’s idea is completely mad? The course’s policy is that projects should “consist of implementations of existing algorithms in literature.” If the algorithm exists in literature, wouldn’t you think that someone, somewhere on the Internet would have written the computer code to go along with the algorithm and put it online to download?

Perhaps I’m merely losing more of my mind.

Another interesting fact about me of late: In the last two days I’ve given four interviews to four different reporters. One about Free Culture, two about ICARUS and one about the ACM Programming Team’s results. Three of these were given in the presence of James and E. at CopyNight, so I have witnesses!

Also: On this day 224 years ago, the British General Lord Charles Cornwallis offered his sword in surrender to the French General Rochambeau and General Lafayette, ending the Battle of Yorktown, Virginia. Ah, how times have changed… we used to be France’s “sister republic,” after all.

Update: 7:14 PM ET: My professor wrote me back and approved my selections:

I like the papers you selected. I suggest you go over them and pick the simplest of them all and implement their algorithm. I will trust that you are not going to take any code from the web (if its available) [...]

…Cool!

1 comment

Gpremacy Update: Game Engine Complete

Gpremacy - Conventional AttackGpremacy - Strategic Attack ResultsWe’re calling Gpremacy’s game engine “Done enough”. There are flaws and places where the rules don’t line up perfectly, but they’re close enough for now. Notable flaws are:

  1. No multiplay (yet, that’s next)
  2. No AI (yet, that’s after multiplay)
  3. Counterattacks are not offered
  4. Blind-bid is not implemented for determining order
  5. Various graphical glitches, like territories and units are not easily marked as to who owns them

I don’t anticipate problems adding either feature in later, but for now the gameplay exists and, well, I have to keep moving! I’m right on my target time to start adding Multiplayer support, so my work for the foreseeable future will be that.

So, with strategic warfare implemented you all know what you want to see, a demonstration! I’ve got one folks, in MPEG-4 format. Mplayer, Quicktime or most copies of Windows Media Player should be able to view this. The strategic battle demonstration (complete with detonation!) can be seen here: Gpremacy, demonstrating strategic attacks, 24 October 2005 (MPEG4 - 512×400, 846 KB). The demonstration was captured with xvidcap. What are you waiting for? Look at the pretty! It’s small and entirely eye-candy!

The tally now is as follows:

  • Goal: “Supremacy 3.0″ Rules - Close Enough
    • Stage 1A: Pay Salaries and Loans to the Bank - Done
    • Stage 1B: Transfer Production Units to Supply Center -Done
    • Stage 2: Sell All, Some or None of the Supply Units - Done
    • Stage 3: Attack - Close Enough (Needs Counterattacks)
    • Stage 3A: Conventional - Done
    • Stage 3B: Strategic - Done
    • Stage 4: Move armies and/or navies - Done
    • Stage 5: Build Forces and Weapons - Done
    • Stage 6: Buy or Prospect for Resources - Done
  • Goal: Network Play - Not Started
  • Goal: Artificial Intelligence - Not Started

Not bad if I do say so. Gpremacy weighs in at 6,295 lines of code, that’s up from 3,631 a month ago. Units move around, load and unload, have appropriate restrictions, conquer territories and fight. Nukes and L-Stars clash, resources are acquired and industries can be turned on or off.

Packages
I’ll be releasing the first ever “release” of Gpremacy tonight on http://gpremacy.nongnu.org/ for limited public consumption. Obviously, things are still in a very beta state, but hell, it’s sorta playable! :) It’s about time Gpremacy released packages, it’s been nothing but source since 2002… Theoretically, it should work in Windows if you have Mono installed, but there are dozens of minor path issues that might foul things up. I’ll be glad to help out if things break, just drop me a note. ;)
Let me know what you think so far, especially of my eye-candy! I’ve waited so long to see a computer-rendition of the little black mushroom cloud pieces in Supremacy…

6 comments

Wilma

Welcome to the Caribbean, Tropical Storm Wilma! That takes care of the last name on the NHC list for 2005. Our next visitor will be Tropical Storm Alpha.

4 comments

Weird Habits, for Liz

Liz tagged me to write about some of my weird habits for the entertainment of myself, my friends and the journalists who will be using this blog to dig up dirt about me in 5-30 years. Despite the directions stating that I have to tag additional people, well, I’m not tagging anyone else. I’ve never followed directions well: that’s why I don’t remember how to write in cursive.
So, weird habits (other than not writing in cursive, of course):

  1. I am unable to fall asleep with a light on, with noise happening, or if I haven’t been laying down for at least 50 minutes already. I am an insomniac. While being insomniacish, I have a strong tendency to predict possible futures based on recent developments in my life and then systematically enumerate these possibilities and play out the way I imagine them occurring in my head. So perhaps I’m an insomniac because I think too much. At any rate, the only time in recent memory where I fell asleep with any noise or light was a one hour stretch on the flight from Paris back to Atlanta. Contrast this with me in middle school when I couldn’t fall asleep unless I was watching Nick at Nite.
  2. I search for stuff on the Internet all the time. If I have only a vague idea about an ongoing topic of conversation and I have a computer nearby, I’ll be reading encyclopedia entries and newsgroup posts and whatever else can inform me so that I sound more intelligent than I am. And, of course, I do try to remember all those things so that I am actively becoming more knowledgeable.
  3. I strongly dislike makeup on humans. I count it as lying. I’ve been somewhat convinced of the appropriateness of stage makeup, but for non-acting personas, I rate makeup as an instant downgrade in level of respect. To answer E’s question: It’s okay on animals because it means some human needs killing. ;)
  4. I can with a 60% confidence memorize the lyrics to any song in about 3 iterations of listening. This number is variable based on whether or not it’s a ballad, which language it is in, tempo and whether it involves love. Because, of course, all love songs are the same. This means, yes, that I can recite the lyrics to a disturbing number of 2 Live Crew songs, several of Britney Spears’, a number of Hanson and Spice Girls songs (THANK you, Jenn Hsu!), as well as many folk and celtic tunes. Oh, and I sing along to everything, sometimes even when riding my bike to class to music which only I can hear.
  5. I still like my stuffed animals, what few are left. Actually, I was reduced to two stuffed animals sometime during middle school when my parents decreed that I was too big for such toys and gave them all away. In the years since then, I have been given more and these I guard jealously. I have a kodama (from Mononoke Hime, courtesy of Liz), a Pug (beanie baby, courtesy of Jordan Cox (I believe, correct me if I’m wrong please!)), a duck (beanie baby, which I acquired in an antique store in Iowa), Tux (who I purchased from ThinkGeek with my first order) and finally Albert the Alligator (purchased for my father while he was hospitalized and given back to me). That’s five. :)
8 comments

UF Shows Well: 2005 SER ICPC

News from Melbourne:

UF’s top team finished 3rd place, followed by my team in 8th, and our next team in 11th. The above thumbnail is UF Emu getting their 3rd place plaques during the awards ceremony, immediately after Tim (the shorter guy) told me that they placed 5th. So the outcome is that UF had 3 teams in the top 11 out of 66 teams. Our fourth team did not complete any problems, but gained plenty of experience. The only school with a better overall showing was UCF, having four teams in the top 15. An example of a worse showing would be Georgia Tech, whose top team won, and their next best team came in 30th place. You can see the disparity.

Standings:

  1. Georgia Tech Yellow Jackets: 9 problems, 1095 points
  2. UCF f(x): 9 problems, 1339 points
  3. UF Emu: 6 problems, 942 points
  4. UCF Matrix: 5 problems, 675 points
  5. Florida Tech #1: 5 problems, 777 points
  6. Florida Tech #2: 5 problems, 792 points
  7. Florida Tech #3: 5 problems, 841 points
  8. UF Penguin: 5 problems, 881 points
  9. UGA Safe Hex: 5 problems, 1188 points
  10. UCF Paradox: 4 problems, 473 points
  11. UF Kiwi: 4 problems, 547 points

I am very glad this is over for me. It was a lot of hassle and a lot of stress, but things worked out well. We’ve given the university something to champion and use as a stick with which to gain other recruits. Most of the pictures of the event are in the above slideshow, though individual team pictures were taken with Dr. Lok’s camera (which he had, until that point, forgotten was in his possession). The only problem with this is that the CS department office is going to go rainbow nuts:

I loaned my camera to Nikhil, Pranav and Honey who wanted to go to see the ocean on Friday night. They brought it back the next day, it was fine. They didn’t take any pictures, but they did, somehow, drop the capture resolution to its lowest setting, and I never noticed. So now our winning team pictures and all our pictures from yesterday are at 640×480, a resolution my phone could make. So much for 3.2 megapixels. The department office won’t be happy when they can’t print the winning picture larger than post-stamp size on their newsletter. Ah well, at least we have team pictures on Dr. Lok’s camera and we could, I suppose, re-pose the picture.

We jammed everyone into a van for the trip this year. Last night, about 15 miles from Gainesville, I called for quiet to ask a question. Everyone shut up because, of course, I used to be the leader guy. In my most reasonable voice I asked, “So, we’re meeting to practice again Sunday afternoon(today) at 2, right?” The 11-person shout was, “NO!” ;)
Well, my work is finished now. Dr. Lok will take what little credit goes to the coach. I will no longer be driving to campus three nights a week and my stress levels will drop by a little. UF has made the top-3 ranking look much more appropriate and now has a top-3 programming team for the first time since the 80s. Well done.

Update: 2:17 ET
Pictures at Flickr are in an easy-to-view set now: 2005 ACM SER.

3 comments

Off to Melbourne (2005 ACM ICPC SER)

I’m leaving shortly to take an exam in Simulation Concepts, and immediately after that I’ll be departuring to the Florida Institute of Technology at Melbourne this afternoon with the UF programming teams. The 2005 International Collegiate Programming Competition (Southeast Regional USA) is tomorrow from 10 AM until 6 PM. Wish us luck!

A list of teams competing is up here, and you can see the four UF Flightless Bird teams. I am, of course, on Team UF Penguin (and taking Tux to be our mascot!). I’ll be back very early Sunday (or very late Saturday). Cheers!

1 comment

Next Page »