Wednesday, June 27, 2007

Java: Hotline Update

Apparently I get to now experience what programmers worldwide already know, those in charge of a program's content like to add all sorts of features without regard for how this will affect the coding of the program itself. I had confirmed that the call options were static and would not change, but apparently that is not the case.

Five additional call options needed to be added to Hotline along with removing a representative's name and adding an additional reporting option. Obviously, removing the rep's name was by far the easiest of all the changes needed, this just required altering a few variables and removing a few lines of code. This did not change any functionality of the program, unlike the other changes that needed to be made.

Adding the five new buttons, each one representing a call type, was not much more involved. New variables needed to be added and then listeners associated with those JButton variables defined. Once this was set it was only a matter of arranging the new buttons to make logical sense, and then resetting the grid layout to incorporate those new buttons. Unfortunately I was unable to convince the others to leave the number of possible buttons at a decent numbers, such as fifteen or sixteen, so instead they settled on seventeen. This makes the program look a little chunky due to the wasted space at the bottom, but it is only a visual issue and not a functionality problem.

The problem with adding new call options after the program went live to the call center is that now the files for June are formatted one way, and the files for July another. Running a report for one month has to be done differently than the report for the other as a result. Due to the changes a few variables must change value for each report type. Instead of rewriting the reporting call and having a separate call for each month I decided to use an If-Else statement to set the values of those variables. If the month being reported is June then the variables are set to deal with a twelve call option file, otherwise they are set to deal with a seventeen call option file.

Finally a new report was required that would acquire the total values for two types of calls, labeled as technical calls, and display those values in the JTextArea. This was needed by the tech group for month end reporting purposes. Thankfully the location of these buttons didn't change from the twelve to seventeen option frame so the same call would obtain the necessary information from each file due to it being in the exact same location.

With these changes the program itself is ready to be re-released to the call center starting in July. Hopefully no major changes will be needed for August, but at least the groundwork is laid to make these changes much easier to accomplish.

Tuesday, June 26, 2007

Diablo II: The Afterlife Tournament

The Single Player forum of Diabloii.net is a lively place where various amounts of tournaments are constantly in progress. The one I joined recently was The Afterlife Tournament. The basic premise behind this tournament is that the only items that can be worn are ethereal items or a set/unique item dropped by an act boss. This of course meant that my character, Angela, had to start life punching all of the monsters until she could use her skills. This would be something I've never had to try before.

As expected resistances were a major problem in this tournament, mine were fairly low until Act V when I was able to create an Ancient's Pledge shield (~50% resistance to all). However since I picked a lightning sorceress as my character dealing damage wasn't a problem in both Normal and Nightmare difficulties. Some near death experiences (NDE) were encountered, normally a result of the lack of resistances. However in the end it was not resistances that killed me but impatience. In the Sewers of the Kurast Baazar (Act III NM) I encountered a pack of dolls that suicide bombed Angela, as described in my death post.

Were I not so impatient then I could realistically have gotten this character to Hell, however I don't believe I would have made her a guardian. I normally play softcore so dying is just something that happens from time to time, but in tournaments hardcore is the only option and one death equals elimination. I'm bound to make a stupid mistake somewhere along the way, so I never expect to actually win a tournament but they are fun regardless.

Thursday, June 7, 2007

Utility: GoldIcon

While I do enjoy creating the programs in Java for work and myself personally, opening them in a DOS prompt is not the most convenient process. Obviously I could simply combine all of the class files into a jar executable, but then all of those files would look identical. This would make things difficult for my coworkers who are utilizing the icons and also simply looks unprofessional. So I use GoldIcon to create all of my icons, it's a freeware program I found while googling for such applications online.
The program itself is extremely simplistic and used only for creating the icon itself, not the executable. This make it perfect for me since my artistic skills are extremely limited. Simply use the cursor to click one of the boxes to place the appropriate color in that position. It is also possible to create shapes (circles and rectangles) automatically.

My icons started very simple, such as a colored box or hourglass figure. I also had a lot of fun creating different shield crests, one of which is now being used for the En Guard program (it seemed fitting). Below you can see some icons that I have created to date.


Not all of these icons are in use. It would be too confusing to have 4-5 shield icons for different programs. Besides, variety is the spice of life, is it not?