TTORP and Play-by-post

So for a while now I’ve been running a roleplaying game with a couple of friends.  I’ve been running it over email, since one of the players is on the other side of the world–literally, he’s in Japan–so we have differing timezones.  Getting together hasn’t been particularly easy.

The email system started out just fine.  More than fine.  I finally whet my appetite for storytelling.  I got a lot of writing done.  Vivid imagery was had by all.  And I imagined this particular game–played out before, many years ago–in a whole new way.  It was awesome.

Then, for many reasons, it stagnated.  Updates stopped happening.  I stopped pushing, players stopped pushing, we just…

We just… stopped.

I figured the real way to get this done was to have a forum.  A bulletin board system, where we could post stuff, and everyone would get email notifications, and that would somehow fuel the game.  Somehow a forum would give our game the proverbial “kick in the pants” it needed.

I searched high and low for something I could use that was already built.  Software I’d used before, new stuff, easy stuff, hard stuff…

All the things I had to install myself made big promises that completely failed to get fulfilled.

One promised this simple interface that was all “Web-two-point-oh-ish,” easy to use, easy to read.  I used a production version of it, it was awesome… but completely exploded when I tried to install it.  For reasons that completely baffled me.

The next one was an “oldie but a goldie,” one that seemed pretty simple back when I’d previously used it.  It seemed like I could just set it up, configure some permissions, and go… and after a week of fiddling with permissions and settings and having locked myself out more than a few times, I gave up.

So then I tried taking a really simple piece of code for forums and modifying it myself.  “Hey,” I thought to myself, “this way I can tie it in with TTORP directly!  Total win!”  Nope.  I tried a couple of them, but they both required a monolithic amount of work to get the minimal amount of functionality that I required.

Right now, I’ve got a forum setup that my users were supposed to use.  And it’s imposed limitations on the game that I didn’t foresee: I can’t set any sort of permissions, so either you can see the forums–all of them–or you can’t.  That means I can’t have separately stories going for each player that others can’t see.

I’m not sure what I’m going to do to fix this yet.  Maybe I’ll go back to email.  Maybe I’ll try to perservere with the current forum.  Or… maybe… something else.

Email Updates Suspended

I’ve temporarily disabled email updates due to a problem in the code.

At first I thought it was an issue with the data, maybe invalid interpretation of numbers or something.  But that wasn’t it.

Turns out, the code was pulling the totals for all races and combining them.  So the more races I was in, the higher my total was.

Anyway, I’ve disabled the emails for now, until the bug is fixed.  I don’t expect that it will take too long to adjust, but there are some other things that I’m trying to sort out in the meantime.  Here’s a few things on the short list:

  1. Bug fixes (critical only)
  2. Move code to GitHub
  3. Setup issue tracker (on GitHub)
  4. Setup wiki (on GitHub)
  5. Setup unit tests (keeps bugs from re-emerging)
  6. Integration with Travis-CI (for continuous integration testing)

It’s only a half-dozen things, but it’s no small task.  It’s all fairly important, though.  By moving to GitHub, I get exposure: it helps my resume (gives me some geek cred), allows others to look at it and consider helping, and gives me a wiki and issue tracker.  The issue tracker will help my Beta users to see the list of issues, submit problems, and get updates when there are any, and so forth.

Any questions?  Want to get involved?  Say something in the comments!

Email Updates are Live

I’ve got email updates being sent out.  At least in theory.

They’re not pretty.  They’re just barely formatted.  But they’re being sent.

As of the time of this writing, they’re scheduled to run in the morning right after stats are updated.  That should be around 9am.  Each person should hopefully be getting a couple of emails: one for their race against me, and one for the race against themselves.

Get it?  Got it?  Good.

Email Updates are Coming

I’m close to having the email updates functioning.

I haven’t been very motivated recently to get this stuff done.  Dealing with chaos in the family, stress, and looking for a different job have all been consuming my time.  It’s one of those things where sometimes there’s so much to do that I just don’t want to do any of it.

Anyway, I’m hoping to have some emails being sent automatically in the next few days.  Stay tuned!

More Insights on the Hobbit Walk

This is sort of in line with my previous post, as I was a little frustrated (with myself) that I’d not had any progress on the Hobbit Walk (there’s another reason, too).

Anyway, on to what I’ve found.

First, it’s a little frustrating to name a race.  Naming is one of the hardest tasks there is… well, besides cache invalidation.  I should be able to dynamically set the name of the race, because I’ve already stored the list of participants.  I kept teetering between dynamic versus static naming.  Ultimately, though, it seems like static (or maybe “arbitrary” would be more apt) naming.

Second, it’s nice to know who created the race.  Right?  That allows explicit listing of the races I’ve created, allowing “creator” permissions (like deleting them).  Maybe I’m waiting on the other person to accept (which I may not have considered yet).  Or I want to see all of my races, including all the ended ones.

Third, sometimes I try to normalize the data too much.  This one’s another tough one.  When I started working on TTORP, I had very non-normalized data: I wanted to get something up and running fast, so I just threw a bunch of arbitrarily-named fields in a database, all of which were just text… I was bit by this laziness later, because I had to pay the technical debt.

I found all kinds of other little things in the process.  Countless little nuances that I could spend all night enumerating, finding even more in the process.

Anyway, the bottom line is that I’ve made progress.  I’ve got more information in my test database, which will help me to visualize things.  At this point, unless I find more problems, I should be able to start spitting out some progress information in the very near future.  Stay tuned!

Programming Isn’t Just Typing

There’s a lot more to programming than just typing.

Somebody once said, probably jokingly, that what I was doing amounted to nothing more than typing.  It might have been one of those things where they say, “I’m joking,” afterward to keep me from being offended.  The first time it was said, it was funny.  The next few times, it lost a bit of humor.  After more than a dozen times, I have a hard time faking a smile.

The point here is that programming follows the 80/20 rule: 80% thinking and/or planning, and about 20% actually programming.  The typing part is actually a really small part… of that 20% programming part, about 80% of it ends up being debugging and testing.

Why I Just Can’t Get Stuff Done

It seems like I’m always chasing my tail.  I start doing one thing, and it spirals into all kinds of other things.

First, I start by working on a web application of mine.  I start up a browser, and I get notifications that I need to upgrade, that browser is no longer supported.

Fine.  I go to figure out how to get the newest version of that browser.

I could download the most current version, and install it into my home directory, or… of COURSE the other option is to install a newer version of Linux.  Because, why the hell would there be an easy way just to get a repository that lets me get updates for the most current version of Firefox (or Google Chrome, or whatever)?

Fine.  I go download the newest version of Linux.

Wait.  What do you mean, I’m running 32-bit?  I could be running 64-bit!  Things are so much better that way!

Uh-oh.  I can’t just do an upgrade from 32-bit to 64-bit.  That doesn’t work.  It might not work to upgrade from 32-bit to 32-bit… ugh.

Fine.  But I’m not going to use up another DVD just to get a newer version of Linux.  That’s annoying, it makes the upgrade slower, and… ugh.

Fine.  Spend a few hours figuring out how to create a bootable USB drive.

What do you mean, the newest version of UNetBootin doesn’t support my USB drive?  I HAVE TO FIND AN OLDER VERSION?!?!

Fine.  Get the older version.

Hours and hours and hours later, with a bunch of errors, a wiped USB disk that doesn’t seem to mount anymore at all…

FINE.  I’ll burn the damned DVD.

Wait… if I do this, I have to wipe out my home directory.  That means I lose everything, and I’ve gotta go through this painfully long process of backing up and restoring that data… why don’t I put my home directory (/home) onto a different partition?  I’ve got an SSD (Solid State Drive), it should be crazy fast.  Do it.

FINE.  Figure out how to re-partition my drive.  Burn ANOTHER disc, with Gparted on it.

Wait.  Why can’t I eject my DVD drive?  I press the button and… nothing.

FINE.  Turn off the laptop, take out the screw that holds it in, and… WHAT?!?!? IT DOESN’T COME OUT?!?!?!

Hours go by.  Then days.  Finally, for no good reason whatsoever, the damned thing starts working again.  WTF.

FINE.  Burn Gparted.  Boot off it.  Resize the partition, should be simple.

Resize the drive, so there’s room for the home partition… wait for HOURS until it’s done.  I have NO IDEA WHY.  It’s a Solid State Drive.  It’s like FIFTEEN THOUSAND TIMES FASTER than the original drive.  And it’s acting like it’s fifteen thousand times SLOWER.

HOURS LATER, resize.  HOURS LATER, move.  HOURS LATER, resize again.  HOURS LATER, move something again… not sure why, it’s taken so long, I’ve almost forgotten WTF I’ve been doing this for.  Fix the fstab (file system tab) so it boots.  Reboot.

Hooray!  Now I’ve got a separate /home partition!  WOOT!

Fine.  Time to reinstall, now it won’t be too difficult.  Boot off the new, shiney, 64-bit Linux Mint disc.  Choose “something different” so I can have a separate root (“/”) and home (“/home”) partition.  Even though it takes a while because the DVD drive is slow (compared to a thumb drive install), I reboot and it’s the shiney new Linux…

WAIT!!! WHERE’S MY DATA?!?!

Oh.  I told it to keep my /home partition, but I forgot to tell it to actually boot up with that partition mounted to /home… right.  So, fix the fstab.  Reboot, delete the “/home” folder data from the old partition (being EXTREMELY CAREFUL not to wipe out my real data).  Reboot again.

HOORAY, I GOTS MY DATA!

Alright.  I’ve got my new version of Linux installed and… awww crap.  I have to go install all my old plugins and stuff, because that’s not stored in my home directory.  UGH.

What was I doing again?

Oh. RIGHT.  I was testing my web app.  Finally, got it tested, spotted an error, so I’ll go fire up my IDE to fix it.

WHAT DO YOU MEAN, I DON’T HAVE JAVA INSTALLED?!?!?

Choosing the Right Distribution

So one of the things you have to decide on when choosing Linux as your desktop OS is what distribution (or “distro”) to go with.  There’s a ton of options, but I’m not even going to get into it.  I’ve chosen Linux Mint, which is a Debian system based on Ubuntu.

The Choices

The real choice turns out to be a matter of the desktop window manager.  The main choices here are:

  • Gnome
  • KDE
  • XFCE
  • Cinnamon

Cinnamon and Gnome

Cinnamon and Gnome are pretty close to the same thing.  I used to use Gnome, but was frustrated when they decided to go away from having a system tray, which a lot of my favorite programs depend on.  After trying to get it to work again, I just went with Cinnamon.  Here’s a screenshot:

Linux Cinnamon Desktop

It has a lot of Windows elements: a standard desktop look with applications and files and shortcuts, a “start” menu, a clock and system tray.

KDE

Another option is KDE.  I used this one when I first switched from Windows, mostly because it was so close to what I was used to.

KDE

KDE is honestly pretty close to the look of Cinnamon.  I switched to Cinnamon because of how easy it was to use compared to KDE, and how much lighter it felt.  There are some other more technical details, but really it’s pretty close.

XFCE

The third choice is XFCE.  And… apparently it looks extremely close to the other options.

XFCE

It’s supposed to be “lighter” than the others.  In fact, probably the biggest difference in all these screenshots turns out to be the wallpaper.

The Choice

The ultimate choice is yours.  If you’ve got an older computer, you should probably go with XFCE, as it seems to work a lot better with fewer resources.  But if you’ve got a reasonably new computer, it really won’t matter.  In fact, you can install all of them, and decide which one to use when you log in.