The Answer is Dropbox

I have multiple machines that I develop on.

When doing C# dev, I can use SVN and google code or assembla and keep things synchronized pretty well.

For Java dev, I have not had as much success.

For one thing, eclipse has a large number of frivolous files that I just don’t need checked in.

Also, I tend to leave out the bin directory when I’m checking in to SVN.

This apparently confuses eclipse.

Yes, I tried the svn plugin.

Hated it.

So, the answer is Dropbox for Java projects.

However, the way I install it is not the standard way.

The standard installation in Windows puts the folder under C:\Users\USERNAME\Dropbox

Not all of my machines have the same user.

So I put it in a custom location instead.


This way all of my classpath and other garbage stays consistent between the machines I develop on.

Also, I’ve gotten more organized with how my Dropbox folder is organized.

I have a Libs folder with subfolders for the various external dependencies that I have, like lwjgl, slick, zxing.

I have a Projects folder with subfolders for the various workspaces. I similarly split workspaces by broad category.

Sigh. Getting there…


Island Interloper

Finally winding down with the end of spring/beginning of summer activities, and I got a chance today to work on something fun for a change. That something is a moderately ugly but at least semi-functional Island Interloper. While still in a rather rough state (and the “deleteme” folder is a guarantee of non-permanent placement), one can navigate the world, dock, trade (in food only right now, the margins are slim), and sail the ocean.

This particular incarnation of Island Interloper dates back to October of 2009 (at least, that’s what the Assembla SVN changelog tells me).  I remember at the time I was working on a C# command line version of Interloper, and decided that the unwieldiness of the console interface was just too much, and wouldn’t it just be so much easier with a GUI straight away, which will eventually always lead me to making something in JavaScript.

Speaking of SVN…. I was doing a search today for a Mac SVN client (with a nice GUI… something equivalent of Tortoise SVN for windows). While I found SmartSVN, as well as a number of others, I have not found one that is free. It looks like I may need to learn to use the command line in about 31 days, when the trial elapses. Applications like Island Interloper don’t justify the cost of paying for an SVN client that will only work on 1 of the 4 machines I develop with.  Plus it is a good thing to know the command line syntax for SVN, I just know it.

Speaking as well of JavaScript. After using NotePad++ as my IDE (really just a “DE” – no “Integrated” to speak of), the rough equivalent of which on the Mac is Text Wrangler(which is still a fine tool), I have decided to move to Aptana Studio, although at the moment, I’m using it more like NotePad++ and less like how it is intended.  Over time, I’ll gradually shift over to using more of the built-in functionality. Works the same on both PC and Mac, so I can switch-hit my development on both.  Plus I have WAMP on my windows boxes, and MAMP on my Mac, I’ve got equivalent environments.

Speaking of switch-hitting. In using the Mac, at first I was somewhat hobbled by a couple of things. the first was Windows key (I use a Windows keyboard on my Mac) was basically like the Ctrl in windows.  Switching back and forth caused a number of typing errors and task menus popping up and other bizarre things that generally made me less productive. Fortunately, the Mac gives me a way to change it to more closely match my Windows layout. The second major item was the Home/End situation. I could not get used to Ctrl + arrow to replicate the Windows functionality of Home and End. Fortunately, the Mac allows me to change those around as well. There is a global setting, and from time to time I have to switch the functionality within a particular program. I feel this is rather accommodating on the part of the Mac, really. I know that there are a number of Mac fundamentalists who sneer at those of us who remap these keys from the “one true way” that they should be, but hey… I work at a job where I develop for PC all week. Using a Mac earns me nothing at the moment.


Diamond Maze on Tempermanent Hold

So, the new XNA Diamond Maze is checked into SVN, but now entering tempermanent hold status.

The word tempermanent is one of my pet words, like complexibility. In the case of tempermanent, it means “something that is meant to be ‘temporary’ but will in all likelihood become ‘permanent'”, which is kind of like income tax and the tolls on the freeway in Chicago.

But! The code is there if I should ever want to pick it back up.

Speaking of backing up, I am still missing a crucial step in my backup scheme. Yes, I have a repository on my external HD, and I keep my stuff checked in. If my computer takes a dive, and the external HD doesn’t I’m good. If the external HD takes a dive, and my computer is fine, I’ve got the local copy I can revert to, and make a new repo on a new external HD.

But! If both fail, then what?


The Final Cut (for now)

After a final tweak (namely switching which color shows up if you decide not to differently color dead ends), I have decided to be DONE with Connect!



What’s next?

Well, I’ll have a new computer in about a week, and it’ll have a XNA able video card, it’ll run Vista(so I can make a gadget), and it’ll be able to run WinterMute in something other than super slow software mode.

And all of my source code is now safely tucked away on the external HD in an SVN repository, so it is a simple matter of plugging it into the new machine and installing a handful of things.

I still haven’t gotten sick of javascript programming, and  I’ve progressed beyond my initial primitive usage of the DOM (as can be found in Pipes!) into a more “sophisticated” usage of a handful of rather versatile HTML elements with some heavy manipulation of styles.  At this point, I use <div> <img> <input> <button> <p> <a> and occasionally <span>, and I’m just not seeing a need to use others at this point.



New Version of Connect!

Currently, I’m working on it in an isolated manner, so this link is a temporary work in progress type of deal. Eventually it’ll be merged into the real online version again.  Really this isn’t too big of a deal… I only have to changed a couple of paths to images (on the actual version, the path to images is images/jsconnect rather than simply images), but I have over numerous updates tired of doing this as often as I have been.

Also, as far as Connect! is concerned, I want to have it as fully functional as possible before  I update it on the main site again.

The main menu is up and two buttons are operational.  The new game dialog has been made and is operational.  You can now use game numbers to play the same game over again. I currently don’t have a way to retrieve the game number of the current game, but that’ll happen soon.

This project has really taught me a lot about the platform I’m working on. I’m a lot more <div> savvy than I was before, and I’ve picked up a couple of “this’ll work in browser X but not browser Y” tricks.  At the moment, I still only target IE and Fox.

In copying the project to the site, I noticed there is a bit of image clutter for me to clean up. I completely ditched images for the main menu and new game dialog (and all other dialogs, but I didn’t make any images for them, so there is nothing to get rid of).

I am on Revision 32 in my SVN repository already, which is quite a few to go through from January 18 to February 3.   Of course, I don’t make myself go through code reviews.


New Backup Scheme and Other Tales

The title of the post may be a little misleading, as a “new” backup scheme implies that I had an “old” backup scheme, and I didn’t.  Yes, shame on me.

Yesterday, I got an external 160GB USB hard drive, and have since migrated my SVN Repository to it.

Today I was working on Connect!, especially the main menu and now the sub menus (the new game menu for instance).  When I was first putting together the main menu, I made images for each button’s up, down, disabled, and hover states. With 7 buttons, that’s 28 images.  I then changed one button today, and it was rather a pain to do, so at this time I am making a decision to switch from image based buttons on the menu screens to <button> tags.  Yes, to a degree I lose the consistent look and feel across browsers, but I do still have the ability to manipulate styles.

I will be leaving the imagebuttons on the navigator, however.  Mostly because they are “done”.


SVN Repository

I started putting together an SVN repository on my computer.

It turns out that I’ve got a bunch of stuff that could really be dusted off and shown.

It also turns out that I’ve started a port of Space Trader more times that I thought, to as almost as many different platforms as I have ever worked on.

The purpose of my Repository is, of course, to make it easy to backup in one place, as I figure I’ll be getting a new computer in about a year.

But also, it’d be nice to be able to version control my stuff.  Plenty of times I’ve wished I could go back to a version just a few hours before.  This way I’ll be able to.

I’ve also had a chance to clean out the stuff I really don’t need (like the aforementioned stubs of space trader).

So, yeah! I’m tired of losing stuff, and tired of rewriting stuff I don’t need to. I’ve generated lots and lots of code over the years, so it is time to reap the benefit.