A bunch of utility applications
Fade to Black...Fade To Black... - version 0.8 - dead simple image manipulation program in Java SDK 1.4, which I wrote because I couldn't get just the fading effect using any of the graphics programs I'd so far accumulated. Intended to manipulate images that you're going to put on a title banner, and want to blur into the adjacent plain colour.
Use it to take an image like this
to something like this
JXHTMLJXHTML - an XHTML validator that will check a document against 1.0 Transitional, 1.0 Strict and 1.1, all without needing to edit your DOCTYPE. Useful for polishing before sending to the W3C validator. Requires the Apache Xerces-J XML library (I used version 2.4.0, you will need some version 2.x, but I haven't tested other versions). It can also use a copy of the old W3C CSS Level 1 Validator (or with some modifications, the Level 2 parser) to perform CSS validation after you've done the XHTML validation, for those extra brownie points.
Version 1.1 (17-May-03) adds checks for invalid characters in the 0x80-0x9F range that cp1252, the usual Microsoft character encoding uses, and are often included in the belief that they are part of utf-8 (ISO Latin-1). The characters involved are shown in the following conversion chart.
Version 1.2 (21-Jun-03) adds batch validation (all the files in a directory, and in sub-directories if desired), and to choose to use exactly the (XHTML) DOCTYPE declared in the documents, rather than imposing one to find a best fit.
This is "noisier" than the .NET version in terms of putting out redefinition warnings. In the cases I've tried, the W3C validator agrees with the .NET version in not flagging such warnings.
PicklePDA-Briefcase - for transferring files between home and office, without sending them over the 'net, and even if you don't have a floppy handy (and who does, these days?). Convert a file into PalmOS database format, sync, carry, sync, and then unpack at the other end. Any PalmOS, (JDK 1.2.2 or later?) [For the days before USB thumbdrives and Dropbox]
PassiveFTPPassiveFTP - A simple FTP client for passive mode (firewall friendly) use. Console-like output, and a number of simple button push operations. Nothing fancy, just functional. Works with vanilla Java 1.1, so that includes the Microsoft VM.
From my various projects I've extracted a general set of utilities.
These are just little things I kept on having to write. Some of the GUI bits are maybe a bit less useful in these Java5+ days, with the much extended Swing assumed.
- com.ravnaandtines.util -- GPL text and quick-sort support
- com.ravnaandtines.util.awt102 -- MessageBox and helper classes for buttom and frame events
- com.ravnaandtines.util.event -- status level events
- com.ravnaandtines.util.gui -- AWT 1.1 Message box, HLS Colour class, animated applets, X-style layout
- com.ravnaandtines.util.image(.*) -- BMP, ICO and inline image support + some icons
- com.ravnaandtines.util.io -- random access, write-once+read many, base 64...
- com.ravnaandtines.util.lang -- pluggable module support
- com.ravnaandtines.util.math -- N-body code
- com.ravnaandtines.util.swing -- colour pickers, some eye-candy, and some obsolete classes
- com.ravnaandtines.util.text -- wipable string, &-to-underline support for alt-keys...
Alternative GUI widget set
The Gadget Windowing Toolkit, a mirror of the once very useful GLPL'd GUI component library from DTAI, who later called themselves Polexis; they have discontinued support for it, so I've kept a copy here. I used this in preference to the Swing for the following reasons.
- freely modifiable source so I could add my widgets easily
- works even with JDK1.0.2, so I wasn't reliant on the latest bugfixes.
- smaller than Swing
- Works with the Microsoft VM
For a while, given that Swing was changing its package (com.sun... to javax...) and the majority browser wouldn't have the support by default, this seemed the way to go. Indeed for a while I considered writing my own lightweight component set to reduce the size of any resulting download below what including the Swing for JDK 1.1 jar would include, using the GWT as a guide. It would have been lighter than the GWT, being a pure java 1.1 library without the GWTs need to duplicate java.awt.event classes or most of the behaviour of Component and Container.
I've also built the Gadget Windowing Toolkit against the JVM for Java 5 and (with just a little added C#) CLR for .Net 2.0 — it might not be “teh shiny”, and won't give you mouse wheel events, but it's the fastest way to a common GUI toolkit for both VMs.
Needs the J# redistributables for .Net use.
The various Java implementations I have of block cyphers and message digests in a stand-alone archive fully updated 25-Dec-07, with source and pre built .jar and .dll (angerona.algorithms version 1.0.2915.29952), unit tests, and a .Net build of junit 3.8.2 -- includes:
- JZlib (inflate/deflate)
- Blowfish, CAST5, DES (including s3' and key-dependent variants), IDEA, Safer, Square, TEA, ThreeWay, TripleDES (encryption)
- BlockCypherHash, Haval, MD5, RIPEM160, SHA0, SHA1 (message digests); and
- Bignum (mutable multiple precision integers).
Needs the J# redistributables for .Net use.