Saloon remote URL example

Some more great news from the busy world of The Saloon posse designer. I now have PDF export working 100%, complete with properly transparent HP values, Allegiance/Breed being “circled” to represent selected, and even nice touches like putting the version number in the bottom right corner. Check out an example PDF exported from the app. Pretty slick eh?

Of course you might be saying “But trucking around a PDF is annoying for forums and email”. Which is true. To that end I’ve setup what I call “URL loading”. This means you can pass in a specially crafted URL bursting with parameters like leader name, dinosaur type, etc. and The Saloon will read these and load a corresponding Posse. So for example for the Drylands United Cattle Company from the PDF above you could visit:
Looks a little messy eh? Normally you’d link it like “Hey guys check out my new posse!” and that looks mighty fine.

To access this feature for your own Posse just click “Save to URL” and copy the link that is generated and then paste it to your hearts content on forums, blogs, email, etc.

Another neat feature is the Load Recent Posses link that displays the 5 most recently saved Posses from ANYONE. That means you could go into the app right now and create a Posse and a user on the other side of the world could easily load that Posse. I like this feature as it helps make the app feel a bit more “alive” and is more of a community friendly element. Like I said it’s just the most recent 5, but if I get enough interest I might bump the number up to 20 or something.
Currently the list is cleared upon shutdown of the server, but I might look into persisting it into a text file or light database.

So yeah, pretty much all done now! All I need to do is provide the source code somewhere (probably as a WAR file that can be deployed but that also has the Java files in it). I like to this for webapps because who knows what will happen to me in the future, and it’d be great if the only copy of the source code wasn’t just sitting on my hard drive.

I figure I’ll start advertising the app and getting some feedback and more testing from actual users sometime next week. I’m super happy with how it all turned out and how quickly it came together, and I think it makes building a posse infinitely easier and funner to experiment and test different approaches.

(Also my apologies if The Saloon is a little slow; I’m hosting it off my wireless media center on a basic home internet package, so don’t expect unstoppable performance :) )

The Saloon PDF export 99% done

I’ve kind of stalled out on Nanowrimo after a disastrous week 3, for which I fully blame my business trip. I haven’t hit my stride since coming back, but maybe I will before the month is out.
The good news is I’ve made lots of great progress on The Saloon, my posse building web application. Currently the remaining TODO items look like this:

Major Saloon TODOs

  • Strip PDF filename of special characters (for example comma doesn’t work well)
  • Need to denote Allegiance and Breed somehow in PDF
  • Need to have transparent HP values (maybe write text instead of using a field?)
  • Split status bar into a different div so just it can be updated via ajax
  • Add URL generation so an entire Posse can be passed via external link

Minor Saloon TODOs

  • Regenerate serialVersionUIDs once classes are completed
  • Add titles to the various elements on the page, like Weapons and Armor, etc.
  • Clean up via internationalization / override the error messages

So basically the main areas left are three touchups to PDF export. Otherwise the PDFs come out looking AWESOME! I have the leader, all members, and the dinosaur exporting properly. To give you an idea of how these PDFs look feel free to download Hope’s Warden posse as PDF. You might remember them from an earlier post. But yeah it’s pretty neat being able to translate a paper copy into a PDF with very little effort (it took about 5 minutes to enter the data through The Saloon).

Lots of improvements and bug fixes are now in the app, so it’s worth checking out again. I’m going to wrap up PDF export soon-ish, and then put up some info on various forums so I can get some feedback and views on the application.

Anyways to give you an idea of some of the recent changes here is a log of my SVN commits:

- Added PDF output for Dinosaurs, including their own unique stat images and additional fields
- Added missing extra column for dino that was created for humans for their refresh button
- Added a method for regenerating a new random name upon user request
- Read the first and last name data from a ZIP file instead, which saved a few KB in terms of the WAR size
- Added random name generation for Leaders and Members. The name data is pulled from the US Census data.
- Added a method for restarting the session. Some minor work around the PDF so that we don't allow a save until the posse is valid, and warn the user of what's missing otherwise.
- Some minor tweaks to the layout of the ODT file. It might need to be ported back to the rulesets/cowboys/ folder after each change?
- A bunch of work around the Save to PDF functionality. Now Leader and all Members export properly. Still need dinosaur and Allegiance and a few other tweaks.
- Fixed some bugs, mainly around the opening/closing/toggling of Traits and the Store. There were a lot of ugly flags being flipped around in there.
- Progress on f:ajax optimizations. Big savings once I realized I can do :f:pl (for example) to render the entity list from a composite component. Now the app won't sent upwards of 120kb just to do something basic like increase MV while the Store is opened. Still some bugs around opening/closing of the store and traits in any non-standard use case
- Changed wording from status to statusbar
- Removed Rope Lasso since it's included for free
- Added a bunch of status messages to the various elements of the app, which will display in the status bar along the top. Also made an option to hide the status bar and revert to the previous behaviour of putting messages in the first table's footer
- Added introductory text to explain DC. This will only display on their first visit, after that a cookie is created and if that cookie is present the intro text won't be displayed. Also made a rad status bar overlay along the top (colors undecided) for displaying error messages and info and general stats of the posse. This helps when scrolling down into the store lists.
- Added sorting to every table, plus some cool cascading sorts so that clicking Name will apply to all subtables, for example. Styled the sort headers as well.

If I had to sum up the big changes I’d say: tables are now sortable, new intro text for the app, terrific looking status bar that floats as you scroll, lots of optimizations with JSF’s f:ajax to reduce bandwidth per click, new random name generation for leaders and members, and obviously PDF export for everyone.

As before feel free to check out the app at

Public Beta of “The Saloon”

Well that came together a lot faster than I expected! I still have some bug fixing to do and I need to finish the PDF export function (right now it’s an old roster and just handles the Leader). But I did get The Saloon posse building app hosted so that you, eager reader, can view it and start easily building your very own posses. So go wild:

The Saloon beta

I’m interested in hearing of any bugs or issues you run into. I have a bit of a TODO list on the go but public exposure always helps identify unexpected issues (especially browser related). As I mentioned this is built with JSF 2.0, so you’ll need a semi-recent browser that can handle Javascript to be able to work with the app.
I’m going to get the PDF export going (hopefully by the end of next week, but who knows!) and then I’ll put the word out on various forums and hopefully drum up some interest and testing.

Progress on “The Saloon” Posse Building App

Remember how I started on that fillable PDF posse roster a while back? I did some initial coding a while back, but now (between bouts of Nanowrimo) I sat down and worked on it some more. Right now it’s in a rudimentary unstyled state with a couple of missing pieces of functionality, but in general it works pretty well at creating a posse, modifying their stats, applying traits, and buying items. I’ll need to update the PDF to use v1.0 (especially the new dinosaur statline) and finish with the exporting of that, but yeah, getting close. Eventually I’ll host the application and link to it from here. It’s written with Java and JSF. No timeline on when that will be since I’m kind of just working on this when I have an hour or two.
Anyways some screenshots to give you an idea of how it functions. Like I said this will be styled with CSS eventually, for now I cared more about getting the underlying logic going.