Netbeans

, | Tweet this

At work my dev environment consists of bash, vim, ant, jdk 1.3, vss, and a couple dozen bash aliases, bash scripts and python scripts. I spend most of the day in and out of vim sessions debugging various things.

Every 6 months or so I try to switch to Emacs full-time, but I need all the pieces to be there in order to switch and I don't have a lot of time at work to figure it out, practice and get used to a new dev environment. Thus for the last 3-4 years, I've been hanging onto vim, bash, ant, jdk 1.3, vss and tweaking my scripts to make the process as smooth as possible. There are parts that work really well and parts that suck. Debugging sucks.

I figured I'd check out Eclipse and Netbeans. I spent 30 minutes trying to figure out how to download Eclipse and set it up on Windows XP and got no where. I'm not really sure how so many people can use it--it's really difficult to get started. I spent an hour trying to get Netbeans to work with jdk 1.4.2 while compiling our stuff with jdk 1.3 and without stomping on the version of Java that runs applets in Internet Explorer. That sucked and could have been a _lot_ easier.

After that, Netbeans seems to work pretty well. I'm running 4.0 beta 2. I bump into NullPointerExceptions regularly, but Netbeans seems to recover from them pretty well without me having to restart. It's decent. I fixed my first bug today with the "new dev environment". It's already faster to iterate between the steps of the analyze, fix, test cycle than it was before. I've also caught a few bugs I didn't know about which have been there for a long time all quiet and hidden away.

I still want to switch to Emacs, but it'll have to wait until I have more free time to make it work.

Bill Mill, pyblosxom 1.1, sourceforge, et al

, | Tweet this

I gave Bill Mill CVS checkin permissions the other day. He's interested in working on the static rendering and the problems of storing metadata. The former (static rendering), I'm psyched to pass off to someone who will work on it and fix the various issues it has. At a bare minimum, I'm psyched to pass it off to someone who wants to think about it.

The latter (metadata) is something we need to figure out how to deal with and soonish. The pyblosxom-users and pyblosxom-devel mailing lists have had several people pop up with their own ideas about what constitutes metadata, where it should be stored, how it should be stored, and how to access it. But few, if any, of the proposals seem to be in-line with the PyBlosxom mission. Though maybe it's not clear what the mission is. That's a topic for another entry.

Bottom line is that I'm going to hold off on releasing pyblosxom 1.1 for a few days in case Bill wants to change things.

Bill Mill's weblog is here. He talks a bit about metadata in entries and del.icio.us-style keywords.

Also, SourceForge is finally getting around to updating their web-servers and are planning to install a version of Python greater than 1.5.2. When that happens, I'm going to re-do and move the PlanetPyBlosxom web-site. I'm hoping Wari will approve moving the PyBlosxom main site as well. If he does that, then I want to merge the two sites, fix our problems with documentation, and centralize everything under one big project web-site that's agnostic of the people involved. That's a bit project. It may be that I'll wait to do pyblosxom 1.1 release until after the "big move".

A while back, several people offered to help out but I severely lacked the resources to sort everything out to take that offer. I'm hoping to make development much easier for people who want to hop in, implement a feature they need, and hop back out again and also make room for growing PyBlosxom beyond its blosxom roots.

So that's the update. Any thoughts or comments, leave them below.

I'm in that early morning mental fog

, | Tweet this

Things don't seem to click in the early morning. I know they should click because I remember them clicking yesterday. The early morning mental fog needs some time to roll away... to drift off into the corners of my mind so I can get something done today. If it comes again tomorrow, so be it. Such is the way of things.

Anyhow, as my early morning mental fog is doing its early morning mental fog drifting, I usually get a cup of coffee or tea, sit bleary-eyed while reading through email, and then count the number of things in my todo list and divide by 10. I use that number to figure out early on whether I'm going to be measurably productive or whether it's just going to be one of those days where I spin my wheels a lot and don't really get anywhere.

Konfabulator

, | Tweet this

I knew folks who had Konfabulator installed on their OSX-based machines and enjoyed it thoroughly. I'm not going to wax philosophical on how pretty it is and all that total hooey, but it is pretty useful and does give me the ability to build information-yielding widgets that Windows otherwise doesn't have.

Right now I'm using the weather widget and the todo item widget (both ship with Konfabulator) and I stick them on my other monitor (I'm running a dual-monitor setup at work). I can glance over and see my email client, the quick todo list, and the weather outside all on one screen.

It's been really useful so far. I'm tossing around adding stock tickers, but mostly that would just stress me out. I should add a calendar widget that queries my server (where I store all my calendar information). That would be super useful.

Anyhow, it's worth looking at if you need more information at your fingertips and can spare the screen real-estate.

More comment spam

, | Tweet this

I think I've removed over 100 spam comments from my blog in the last 48 hours. I'm a little tired of it, so I added a few obvious words to my word blacklist and then I went and modified the comments plugin to allow for "draft" status.

Then I wrote a small script that goes through the directory, finds all the comments in draft status, prints each comment to the screen and asks me what I want to do with it. That'll prevent comments from getting published without my manual approval.

It's interesting to note that many/most of the comment spam are comments on my entries on comment spam. Amusing....

Twisted Reality

, | Tweet this

Every once in a while, someone emails me about Stringbean and wonders why I'm not working on it much. Stringbean is more like an LPMud than a MOO and would allow for in-game coding of objects in Python. I've been giving a few reasons of why I'm not really actively working on it:

  • It's not currently possible (without a lot of work) to build a restricted execution environment within the Python interpreter to protect the driver from the mudlib codebase if both are implemented in Python. That's not a wildly large issue except that it forces you to really trust in-game developers. The Zope folks have something like this in place, but I don't know if it would help me solve my problem or not. Mostly this requires a lot of research and work.
  • It's difficult to terminate infinite loops and other long-running code which will cause mudlag. It's not uncommon for me to accidentally create an infinite loop. If you can't somehow halt execution, then this forces you to shut down the whole mud and restart it. When working on Varium, we created a reaper thread which would send a signal to the Python process causing the execution thread (which was the main thread of execution) to throw an exception and thus "terminate" execution. Even with this, it's not clear what state the driver would be in. This also requires a lot more research and work.
  • I bumped into Twisted Reality (which is what this post is all about).

Twisted Reality is a MOO oriented mud so it's got a different focus than Stringbean does. However, Twisted Reality is also attempting to solve another big problem I have with muds using Aspects.

The problem is this: you build a bunch of objects the player can manipulate (things like torches, swords, hammers, nails, screwdrivers, ...) and in order to add another way for the players to manipulate and modify these objects, you have to code manipulation/modification-handling code for every single object. What if you wanted to allow players to burn an object? Well, for every object, you'd have to implement burn-handling code.

You could implement this using multiple inheritance. Each object inherits from a object-type class (armor, weapon, container, ...) as well as a material class (iron, wood, organic, copper, glass, ...). The material classes could handle effects like burning. But what if you had something like an axe with a wooden handle and an iron blade?

Anyhow, it'd be easier if the burn code could be centralized into one place--an aspect. The stuff in the Reality mailing list is interesting enough that even though I haven't looked into it further, it's caused me to want to wait to research it more before I go work on Stringbean again.

It's away!

, | Tweet this

I just finished up my application for graduate school at Northeastern University!

Watching the election stuff

, | Tweet this

We're watching CNN and MSNBC and a couple of other stations. MSNBC keeps showing graphics that will have a 0 under Kerry and a 0 under Bush and then a 0% between the two indicating what percent of the votes they have in and then whoever is talking says something like, "Uh, it's too close to call this state!" Silliness.

I wish Terry Bradshaw and John Madden were announcing the election stuff. That would be far more interesting. I bet Mike's with me on this one.

Marketing emails

, | Tweet this

First off, most marketing emails are annoying. Having said that, it's amazing at how many companies can't get their act in gear and send emails that are encoded and formatted properly. I suspect many of these companies hire some email-marketing company to do the dirty work for them--and it surprises me more that the "professionals" can't get it right.

Companies who totally screw it up: Crucial, Antec (I can't even make out what they're yammering about), Alienware and... hrm... I can't think of the other ones that annoy me. I'll have to update this entry later.

Companies who get it right (at least for the emails I'm getting): Amazon.com, TopCoder (they send a lot of email), Sun Microsystems, ThinkGeek, 1-800-flowers, and CDBaby.

Predictions about tonight's game

, | Tweet this

Given that it's a lunar eclipse and the Red Sox seem like they're going to sweep the series after decades of borking in the most dramatic possible way, I have made a few predictions about what will happen:

  • A meteor (or ordinance from testing advanced government weapons) will hit the stadium causing injury to everyone involved thus post-poning the game indefinitely.
  • The Red Sox will win the game, then take off their human masks--turns out they're aliens trying to make the point that they can play baseball, too. Though since they're illegal aliens, they will be sent to Guantanamo indefinitely with no rights and an alien mother ship will come down and wipe out the human race.
  • The Earth will pass between the sun and the moon causing strange alien vibes to hit Ortiz' bionic arm. It will proceed to kill everyone on the team a la Maximum Overdrive.

However, I'll have to find out what happened tomorrow since the jackasses at RCN installed cable at the neighbor's place and foobar'd our cable and internet service. Then decided they can't come back and fix it until Thursday. Jackasses.