Monthly Archives: August 2001

Working on New Features

I’ve been working on a new release of HotSheet the last few days. I had originally planned to have it ready by Friday but now it’s looking like it won’t even be done until Friday so a few days of testing will push it into next week. On the plus side though, one of the developers has already done some work that will help in two areas:

  1. It will give us a big list of channels to choose from. This is really important for the popularity of the project because it will mean that the average person can use it simply by selecting some channels that interest him or her.
  2. I can use it to test the compatability of the RSS parsers with the channels that are out there. After I get the new code I’m going to use it to try and parse every single channel in our new list (which will include hundreds of channels). The results of that test will tell me where I can look to find bugs in the parsers and also, which subset of channels we can include in our initial list.

Believe it or not, I’ve also been working on my Virtual Cardboard program to play collectible card games over the Internet. I dug out my old notes and I’ve isolated the three or four problems that I will have to solve to be able to build the program. I’ve also done some UML diagramming to start laying out the classes in the program, communication, etc. With luck I might have some object diagrams or other material available next week.
Speaking of Virtual Cardboard, doesn’t that name just suck? I’ve been trying to come up with something better but so far I haven’t gotten any inspiration.

Siggraph Films on IFILM

One of the great joys a lover of computer graphics can have is getting to attend the Siggraph showcase every year. I was able to do so four years in a row while I worked at Tandy but it has been years since then.
So I was very pleased to see that IFILM has picked up several items from the animation and electronic theater at this years Siggraph to show on the web. Go here to view some really cool advances in graphics.

Calculator Rip Offs

OK. Let’s talk about a scam that’s being perpetrated on households across America (and probably lots of other nations as well) at this time of year. That scam is… the handheld calculator.
When I opened up the paper today and I saw not one, but two different office supply stores offering the HP 12C calculator for $70 my eyes popped out of their sockets, rolled across the room, and spontaneously started trying to bounce up and down on the 9, 1, 1 buttons on the phone to report the robbery. This is a calculator that cost around $100 the first year I attended college and I purchased my HP 11C (basically the same calculator but the 11C has engineering oriented functions rather than financial functions). That’s 18 years ago people! Can you think of any piece of electronics in existence that hasn’t either gotten massively faster and more capable or else had its price plummet in 18 years?!?
That is pure unadulterated bullshit… But it’s not like the 12C is alone in its mystical fantasy pricing world. Just look at the prices on calculators like the TI 83 Plus. This is a calculator with a “large” 64 X 96 display (6,144 pixels) and 24K bytes RAM (160K bytes of data archive and application space). It costs almost $100 dollars? What?!? A Palm M100 with two megabytes of RAM and a 160×160 (25,600 pixels) costs $129 and that’s probably too high!
Folks, you are being ripped off! Do not buy an expensive scientific graphing calculator. Your child will probaly not even be able to run it anyway. Do not buy into this magical pricing system. Buy a reasonably priced scientific calculator like the HP 30S and if the kid needs to do graphs, get him or her some software for the computer. If you absolutely have to have something that the child can take to school, buy an inexpensive PDA and find some software to put onto it to get the capabilities the kid needs. If the software hasn’t already been written it should shoot to the top of the must-write list for open source software groups in order to break this ridiculous TI, HP, and Casio theft ring.

Pieces to Use To Build Your Java Applications

It’s time for another quick round of “pieces that make building applications easier or cooler”. Catchy name isn’t it. Here are today’s candidates:

  • Skin Look And Feel 1.1 – Gives you an easy way to add “skinning” to your application. Among the features of the latest version is a new Windows XP look and feel.
  • Ant 1.4 beta 2 – Actually, Ant already does pretty much everything I want and I haven’t even begun to explore all its powers so I don’t need a new version. But when a new version of one of the most important Java tools out there comes out, you should still at least take a moment to check it out.
  • Velocity 1.1 – In the past I had only considered using XSLT to build templates and format data. But Velocity is so easy to use I’m rethinking that. I used Velocity once already to build a quick application and template that took a number and used it to build a custom graphic (data + Velocity template -> Velocity -> SVG file -> Batik -> .png file). It was very very easy and “very very easy” is not something I have ever associated with XML and XSLT.
  • Vanessa, Rachel, Hazel, Clare, etc. The guy seems to have a thing for naming his programs after girls. But they are all nice girls. They help you look at your Java Web Start cache, verify that your JNLP file is correct, load resources and more. I’ve got this website listed on my resources page because of the excellent JNLP FAQ that is maintained there and the Venus app publisher you can use to help you publish your applications via JNLP. But you should also pay attention to the plethora of utilities that the author has created and all of them are centered around Java Web Start and JNLP.

And something that isn’t really pertinent to anything but is cool nevertheless: dungeon, tunnel and castle pieces for roll playing

Glue Together Java Programs

Cool crap you can download and plug together to build amazing programs:

  • JGraph – Easily the slickest of the graph libraries I’ve seen out there so far. It had no problems redrawing that I’ve seen, which is far more than I can say for GEF
  • Batik 1.1 rc 1 – I’ve mentioned Batik before but it really needs your undivided attention. Batik takes a file in a format known as SVG (Scalable Vector Graphics) and renders it. SVG is XML based and like any XML or HTML can be easily generated by people or programs. Folks, this is like having an Adobe PostScript interpreter that you can embed right into your own application. Tell me you can’t think of a use for that.
  • Aglets – IBM’s open source library for building agents has finally gotten some attention and there is a SourceForge project for it and the library has been updated for Java 2. For those with a long memory, this was one of the four projects I named in the past as being abandoned that should not be.
  • Jabberbeans – A Java library to access the Jabber instant messaging system. Jabber technically specifies the protocol only so you can do either the client or server in any language on any platform. In practice it seems like everybody is still using just one server but there are already dozens of clients out there.

If you have enough of these pieces, programming starts to become more like master level Lego assemblies than like the painting process it has been in the past. Always before you had to paint every brushstroke on a canvas yourself. Now, you can take whole sets of material and begin assembling it to create something bigger with connecting code that you come up with yourself. It’s more about how creative you are with the pieces than whether you have the endurance to write War and Peace.

Java Outline Editor

Well, I’ve got one vote for “do the game” so far and since I’m going to do both projects eventually so I thought I’d do project pages for each one and provide some more information about each.
I found a nifty tool called the Java Outline Editor (JOE) for creating outlines. It’s written in Java and a fairly easy install (not HotSheet easy, but still easy 🙂 It stores the outlines using OPML format and I’m currently using it to create a complete outline of my resources page. Once I have that in an OPML file I should be able to apply an XSL stylesheet to update my resources page. In its current form the resources page is actually out of hand. I had a bug in the hand written HTML for the page that caused Netscape on Linux to just display a big blank page. The only reason that bug was there is because it’s difficult to keep track of all that text and hierarchy of HTML tags intermixed.

What Project Should I Work On?

It’s been a week since I last posted but HotSheet has been continuing in the interim. In fact, continuing isn’t really the word because the project got its first two contributions from developers other than me and there are three more assigned to features right now!
Since HotSheet is moving along rapidly towards the end of the tunnel I find myself thinking forward to what my next project should be. Part of me wants to do something quick to get another tool that I could really use and part of me wants to work on a game. Just the other day I was telling this guy that I had lost a lot of my interest in game development websites because building one helps you learn how to build websites, it doesn’t move you along to building actual games. It’s been more than four years since I started on my first one and I don’t feel like I’m any farther down the path of building games.
So, if you are reading this, tell me which of the following I should do next:

  1. Hailstorm has as a central tenet that we should put our data “out there somewhere” on the Internet so we can access it from anywhere. This project would put that to the test with something that real people (like me) need regularly, synchronized bookmarks. Build a central server system that would allow you to have the exact same set of bookmarks no matter where you go or which browser you use. I would like to be able to go to work and use Mozilla and I use Mozilla and IE from home. It should have the following features:
    • I want the synchronization to be available cross machine and cross browser. If it can be inserted directly into the browser as a standard feature (i.e. Mozilla) it should, if not, then we need to be able to monitor for changes and update on the fly using an external process.
    • I want to be able to specify that a machine or browser has only a subset of those bookmarks available. I don’t need my game and comic book links at work.
    • The interface should be SOAP or XML-RPC so it can easily be used from a wide variety of programming languages and so it can flow through a firewall easily.
    • Export to a file formats like OPML or XBEL should be available to work with tools that don’t need direct access.
    • The server should be trivial to setup and run from any machine but Don and I could probably offer a server for anyone who doesn’t have a permanent connection on which to setup a server for a dollar or two a year.
  2. Work on a game. The one game I’ve spent the most time designing and working on the last couple of years is a standardized platform to play any collectible card game (i.e. Magic the Gathering, Pokemon, Mythos, Harry Potter, etc.) against another player over the Internet. The software would make no effort to actually enforce the rules of the game but would only:
    • Offer absolutely fair shuffling and card handling. There are methods that incorporate encryption that would prevent either player from being able to use a cheat tool to look in the memory on his/her machine and see the cards that are in the decks, the order they are in or the cards of the other player. None of the other utilities like this have any kind of cheat protection.
    • Offer the ability to place tokens, turn cards 90/180/270 degrees or flip them, flip a coin (again using fairness algorithms).
    • Save and restore games in progress.
    • Provide good chatting capability with other players. This could potentially just consist of incorporating Jabber into the game so you’ve got built in buddy list and chat using proven technology (and there are multiple Java libs to access Jabber).
    • Keep track of counters for things like score.
    • Draw the cards and draw the board.
    • Provide a simple tool for editing a deck of “cards” that you want to use in the game.
    • Look attractive. I think I got a good start on that with HotSheet and I believe it’s important. If your application looks reasonably professional and is reasonably attactive it will be more approachable by end users.