Archive for the ‘Software’ Category


Welcome to the World of Tomorrow!

March 14, 2007

John Sheehan: let’s start our own company
John Sheehan: don’t know what we’ll do but what the heck
Me: we can get Dan to join us and we’ll build a computer input device for dogs
Me: then we’ll make money designing websites for people’s pets
Me: dog blogs will be the wave of the future!
Me: once those have taken off, we can branch out to cats
Me: and call the new product “clogs”

I am so full of good ideas.


Dumping Core to the Blogosphere

March 11, 2007

A few weeks ago, while driving back from a D&D session at Nate’s, my brain began to kick around some ideas for a new personal software project. I have not had much interest in personal projects of this nature lately; spending the bulk of my week writing code for pay seems to lessen my drive to do it for fun. Instead I find myself more inclined to practice guitar and fiddle, play capoeira, or take care of my apartment. However, this project seems, at least at a glance, reasonably simple and somewhat fun.

What, you may be wondering should you still be reading, is this project? If you hadn’t guessed from the opening sentence, it is gaming software. Unlike my old hobby horse, Palantir, this application—or rather, applications—is intended to be supplemental for a game played in person rather than a game run over the internet. There are really two pieces to my initial idea. The first is a piece of software for the DM that can be used with a projector to provide information to the party as a whole without having everyone crowd around a piece of 8.5 x 11 piece of printer paper. Some pieces of information, such as maps, is difficult to maintain and share with everyone scattered about the room haphazards. It is especially difficult to communicate information of a geographic nature when you are frequently as verbally challenged as Nathan.

The second piece to my idea—and the one which is less of a pipe dream at this point—is simply a digital character sheet. I had been lamenting the difficulty of maintaining all the information required for my current character, who now has three classes which all require spell information to be recorded in addition to all the normal character nonsense. There is a lot of erasing and rewriting information—especially regarding spells—and tracking of data across multiple sheets of paper involved in this character (though it is worth it, having successfully blinded a wyvern, a thief, and a necromancer).

I’d had the Nokia N800 on my mind at the time as well and was thinking how nice it would be to have a gadget like that running a little application that handled all this for me. It would know, based on my ability scores and levels, how many arcane and divine spells I got per day, which I had prepared, what slots they occupied, etc. It would track AC and ability modifiers based on the gear I had. And all of this without me gradually wearing through a piece of paper as I erased and re-wrote this information time and again.

So talking with Mark this afternoon the idea changed from a desktop app to a web-based one. This happened for a couple of reasons. One was that I was already considering a web-based component for sharing characters. Sharing this data is possibly interesting and of debatable usefulness for players; it has more potential usefulness to the DM. In any case, the idea of having a whole group sharing this data on the web struck me as fun, if not useful. The second reason I began to consider a web-app is that it doesn’t preclude my windows-using friends from using the software. This is a somewhat dubious excuse, in my opinion, but I don’t think there’s anything about the application that makes it a poor candidate for webification and it does mean if I give into temptation and get an N800 I don’t have to struggle with getting it running on there.

I’m still not entirely convinced that this project is sound. Part of me almost feels like using computers to do the work of maintaining my character sheet is cheating; as though it’s a betrayal of the principles of table top gaming. This notion is absurd, but I am prone to absurd notions. I also fear that, as Ajay suggested, the requirement of a laptop or other computing device to make use of this gaming mechanism will deter users. I further fear that in practice this application will not be as useful as I imagine.

The advantage of a tool such as this is that it automates some of the more tedious aspects of game play; in particular a lot of the work that goes into maintaining a spell caster. I find myself spending a lot of time making sure that I have selected all the correct spells for each day. Often I just reuse the same configuration from the last time just to save time and move the game forward, but this detracts from the usefulness of a wizard since their power is in their diversity. Other times I spend quite a bit of time selecting spells and maintaining my spell book; time that could be spent focusing on what’s going on in-game.

So the end result of this brain-dump is that I’m not convinced that this project is worth the effort of undertaking it and I am welcoming comments and opinions and thoughts. I suppose at the end of the day it doesn’t matter if this software is a waste of time or not. I’d be doing it for fun, so as long as I enjoyed working on it that’s probably all that matters (like Palantir). I think I would welcome the chance to play around with Django in a pressure-free context.

I also need a name for the project, should I choose to undertake this effort.


A Question

August 9, 2006

Today has been a very frustrating day, and it’s only about half over. I have been frustrated by just about everything I do, everything I read, everything I think. I have my opinions, I hear other people’s, and I’ve no way of really making decisions about the merits of any of them. My opinions are based on my personal biases and experiences, and (hopefully) on some semblance of fact—something independently observable or verifiable. But so is the other guy’s opinion. If they’re in opposition, how does one choose? I’ve no real reason to believe that my opinion is any better than anyone else’s, except, perhaps, that it is my opinion—but that hardly seems like a very legitimate reason. This frustrates me.

Anyway, on to my question: When beginning a new project, how does one decide what language to use? As I’m sure you all know, I despise Java, and I now find myself on a project that—at least for the time being—is written in Java. I have, however, been given permission to port the prototype over to Python for comparison. Now I’m sure that Python will put the Java prototype to shame, but the conundrum is this: why not Ruby, or C#, or C++?

I look at a problem and pretty much always think that Python would provide a great solution; on the few occasions where Python’s garbage collection proves a problem, you can always write a C extension for that bit of code that needs the optimization. There is no silver bullet, but Python always looks pretty damn shiny to me. So why doesn’t everybody use it? Don’t get me wrong, I’m not fan-boying Python here; I love the language, but I do not believe it is perfect or the answer to all our problems. But it does always seem to be the answer to every problem I encounter. So I must be missing a piece of the puzzle. Unless of course, the fact is that Python, Ruby, C#, or what have you, are all pretty much equal, and it’s only a matter of personal taste…

Sometimes it seems that there are obvious deficiencies in a language, but when there aren’t, what tips the scales in favor of one language or another? Someone please straighten me out here. My head hurts.