NOTE: Unless otherwise specified, these programs are all released under the GPL. If not supplied with the software in a License file then the GPL can be found here gpl.html.
godura-0.6.4.tar.gz
This is a simple editor that requires gtk2.0+. It will not work with
earlier version of gtk+. It is basically an implementation of my Tk
Notepad Editor. It is not complete. See the INSTALL, README, TODO, and
KNOWNBUGS first. screen shot. NOTE: This is
pretty STABLE.
GUTime-0.1.1.tar.gz
This is a simple uptime applet for the GNOME panel. It was basically
take from the GNOME Applets example and enhanced. It now installs the
the .server file. This is the first release for gtk 2.x and GNOME 2.x
on x86 Linux machines only. Here is a screen shot.
NOTE: This is considered STABLE.
mpstat-0.1.1.tar.bz2
Unmaintained
This is a program that I have hacked for Linux specifically. It was
hacked from the source code to vmstat.c. The mpstat.c file I have
written no longer needs procps in order to compile. Here is a screen shot . NOTE: this is INCOMPLETE but
STABLE
as of 2 July, 1999.
Tk Notepad version 0.8.0
When I first started using Linux I could not find any good text
editors, other than vi and Emacs. There were other editors, but often I
could not get them to compile or they did not work the way I expected
them to, or they were just to different. I soon came across a Tcl/Tk
program, that had a bug in it and fixed it. I found Tcl/Tk to be a
rather easy to understand language. I then decided to learn more about
Tcl/Tk and bought a book on Tcl/Tk. Soon I had written a basic editor
that could read and write a file and TkNotepad was born. I then decided
on a design that I would find familiar to myself. I decided to mimic
the behavior of MS Windows Notepad. A simple editor that had cut, copy
and paste, and a few other features. It now mimics most of the behavior
of Notepad, and has a few added features like unlimited Undo/Redo. It
does not print under Windows, or Mac, but it will run on those
platforms
and all the other functionality works. It was written entirely in
Tcl/Tk. I consider it to be completed, as most of the known bugs are
now removed. I will continue to work on removing those last bugs and
some code cleanups, but there will probably not be any new features
added. It is very stable and I use it quite frequently myself.
Originally it was designed using Tcl7.6/Tk4.2, but now it has since
moved to Tcl8.4/Tk8.4 and no longer works with Tcl 7.6 / Tk 4.2.
Although it is designed to resemble Notepad for windows it also runs on
Linux, and other UNIX flavors, Windows 95/98/NT, and I have been
informed that it works on Macintosh also.
It was written once and runs anywhere, but it's BETTER on
LINUX!
Here is a screen shot taken with gimp
for Linux.
WebBrowser
This is a WebBrowser Object that I have created. Originally it was designed for browser sniffing, but now it can do a little more. It is now comprised of a few files. The WebBrowser object
now includes AJAX functionality and makes doing AJAX with XML a
little bit easier. The AJAX object incorporats AJAX and XML parsing into one
object. While it does not solve all of the AJAX issues, it does handle
the cross browser initialization of the AJAX XMLHttpRequest object,
and also has two async functions for GET and POST of requests.
Currently Supported browsers are
IE4 thought IE7, Gecko based browsers,
Opera 6 and later, and MAC OS X's Safari (?.?) and Konqueror 3.x.
First include the WebBrowser object base functionality:
<script type="text/javascript" src="wb/WebBrowser.js"></script>
WebBrowser.name; // browser name
WebBrowser.capabilitiesDetected; // true if the browser name was detected from its capabilities
WebBrowser.screen.maxx(); // maximum browser X width etc... use the source to find out
more
To do AJAX with the WebBrowser object:
Use:
create your call back function.
function xmltext() {
if ( this.xmlhttp.readyState == 4 ) {
// get the document
var xml = this.xmlhttp.responseText;
// or get as DOM tree model
var doc = this.getAsXMLDocument();
// you now have an XML document parsed, and usable in most modern browsers,
// like IE, Firefox, and it should work in Opera, Safari, and other browsers too.
// So using doc.getElementsByTagName() will give you the XML elements
// with a specific tag name and let you access your document.
}
}
then you need to add a function like below if you want the request to be made when the page loads:
function doAjaxStuff() {
var ajaxObj = new WebBrowser.ajax();
ajaxObj.get(xmltext, "/pathtofile/yourXMLfile.xml", null);
}
WebBrowser.addOnLoad(doAjaxStuff);
Calendar Examples
The calendar is now part of the WebBrowser package.
and the CSS that goes with it calendar.css is in that package
To use the calendar now:
<script type="text/javascript" src="wb/WebBrowser.js"></script>
<div id="calendarID"></div>
function loadScreen() {
var webCal = new WebBrowser.calendar("calendarID"); // pass id of parent object
webCal.render(); // render the calendar
}
WebBrowser.addOnLoad(loadScreen);
calculator.js
This was my first real javascript page. It is basically a calculator
that is done using HTML forms and JavaScript. I originally did this
program in 1996 and it was not till late 1999 that I started modifying
it again. In mid 2000 I re-implemented the calculator to make it work
better. There is at least one bug that I know of, but it basically
works. It does multiplication, division, addition, subtraction, cosine,
sine, tangent, inverse (1/x), x^y, arccos, arcsin, arctan and a few
other functions. I may make some more additions to improve it and make
it truly useful on the web. You can try it out
here.
My alternate calculator, which is based on the WebBrowser object and so requires WebBrowser.js. This is still a work in progress, but seems to bea cleaner implementation and works better. It can be seen here. You need to include WebBrowser.js.
First include the WebBrowser object base functionality:
<script type="text/javascript" src="wb/WebBrowser.js"></script>
<div id="calcID"></div>
function loadScreen() {
var webCalc = new WebBrowser.GUICalculator("calcID"); // pass id of parent object
webCalc.render(); // render the calculator
}
WebBrowser.events.addOnLoad(loadScreen);
digitalclock.js
This is a little digital clock form 'modern' browsers. Currently
Supported browsers those that support the document.getElementById, the Date object,
the setTimeout() function, and Object.innerHTML.
It is a good idea to get the WebBrowser object and use it for browser
detection and upon detecing a supported browser then call this code.
Currently just download the clock and
Use:
Create the script tag and set src= to the downloaded file.
Then a div or span on the page where you want the clock on the page.
Lastly, create the DigitalClock, set its id and start it.
myclock = new DigitalClock();
myclock.setId(clockId);
myclock.startClock();
// clockId is the id of the div that the clock will run in.
// The element should already be created.
// It is typically a div, but any element that supports
innerHTML should work.
ascii_table.php.tar.gz
This is my php script to generate the ascii table. It also generates
the extended ascii table. For the ascii table this script shows the
decimal value, the character that they represent and also the
equivelant
octal, hexadecimal, and binary values. For the extended ascii table it
only shows the decimal value, and the equivelant octal, hexadecimal,
and binary values. The output can be viewed here.
apcupsdconf.20010129.tar.gz
Unmaintained
This is my web based application to configure Apcupsd. Apcupsd is the
apc ups daemon. This tool, when used in conjunction with Apcupsd, makes
it slightly easier to configure the apcupsd.conf file, by informing the
user when an error may occur in a selected configuration. A few screen
shots can be seen here, here, here, and here.
jwmailapp.20090922.tar.gz
This is a complete refactor of the the original 2001 codebase. The first refactor was in 2006, this has taken
the 2006 code and refactored it again. The old POP3 class has been refactored into a new POP3Service.
The old using mail tag files to send mail have been replaced by an SMTPService. Struts and tiles have been
implemented, so there are now two layouts, one for ajax and one for regular pages.
Configuration is done via an XML file for the pop mail server.
JavaScript and AJAX are used for reading messages and refreshing the inbox.
Right now you can only have one pop server because that is specifed in xml config file.
This may change in a future release.
The UI works but it is not considered completely polished at this time. It needs a 'design' touch as well
the ability to send and recieve attachments.
Pictures can be found
here,
here,
here,
and here.