Domain: ostermiller.org
Stories and comments across the archive that link to ostermiller.org.
Comments · 91
-
Re:How can Java be closed source?
I would have to agree. I actually went and looked at his website.... I didn't see a single class that one wouldn't find in a Java text book or seen posted on a Java forum.
In fact, the author clearly states his ideas for the Launch a Browser from anywhere class was taken from a Java Tip on JavaWorld
-
Re:somewhat naive?If you really want to see how greedy corporations are, write a software library and license it under the GNU General Public License (not the Lesser, GNU Public License, not a BSD license, not a Mozilla license).
I use the GPL for my popular Java Utilities. I was getting about three inquiries a week from folks asking for my libraries under some license that doesn't require the company to open source their software. I had to put up a FAQ down by the license saying that I would not license the code under anything other than the GPL.
If you are going to make a closed source product, you better well be paying for closed source libraries. Thats the cost of doing business. Don't expect the open source comunity to bend over backwards to help make non-free programs.
-
Re:Depends on the situationIt is actually hard to find a CGI contact form that hides email addresses. I ended up writing my own: Stephen Ostermiller's Contact Form . You can download and use it yourself if you wish, it requires a web server, perl, and sendmail. I researched other forms that hide email addresses and was only able to find a few others.
The trick that I use when I need to obfuscate an email address is to leave instructions to amputate the address. Then I will write the address like JoeLeg@YahooArm.com. A computer won't know that amputate means to remove the arm and the leg, but a human will.
-
How about HTML and CSS?Here's a mockup of a bargraph for a web site statistics package that I'm working on:
http://ostermiller.org/bargraph.html
It is done using only HTML with CSS. There was some reason that the bars come down from the top rather than up from the bottom, but I don't remember what it is right now...
-
Why I don't use the LPGL for JavaI get a couple requests to use the Lesser Gnu Public License for my Java utilities a week. I say, "I use the GPL to encourage open source development. If I were to use the LGPL, then you could use my libraries without giving me the source to your program.".
If you are really serious about free software. Then you will never use the LGPL.
-
They can be hard
I know from my own experiences that writing a regular expression to describe something is not always as easy as it would seem at first glance. I found it difficult to write a regular expression to define a c-style comment:
/* comment */ Well, not impossible, just more difficult that I thought it would be. I posted my thought process about how I constructed a regular expression to pick out a c-style comment on my website. It's the kind of thing I like to ask interview candidates. -
Looks really kewl.I just downloaded this and started playing around with it on my Java utilities.
At first I was frustrated that it needs a jar file. On my hard drive my code is just sitting in directories. So I made a jar file out of my code just for this program.
Then I was frustrated that the GUI wouldn't show me the source, but then I realized that I had compiled without debugging information in my classes (no line numbers and such). I recompiled and remade the jar file and it started showing me the source.
Most of the errors that it finds in my stuff aren't really errors. I get a lot of complaint about "should be declared package" when package is the default and I don't specify a modifier. I also get errors about ignored exceptions for things like this:
} catch (IOException x){ // This can't happen. // The input and output streams were constructed // on memory structures that don't actually use IO.
}I think it may have found a few bugs though. Its complaining about at least one thing not being threadsafe. Also complaining about an inner class being static when it probably shouldn't be.
Now I want an Ant task for this so that I can make sure it runs on my code every time I compile. It is sort of like extended compiler warnings. Pretty helpful.
-
Netscape Navigator 4.xThe real problem with this approach is that Netscape 4 really barfs on many layouts. To go this approach you have to be willing to make sacrifices in the NS 4 department. Keep in mind than Netscape 4 still has about 3% of the browser market.
The big problem is that Netscape 4 thinks it understands CSS positionsing but it really doesn't. It will often fail to render properly, or even worse, crash.
It looks like these folks took the approach of not letting navigator on the site. I don't like this approach. Thankfully, there are some less severe approaches.
With my website, I put some javascript in to comment out the link to the style sheet if you are running ns4.
You could alse specify your style sheet link in a way that ns4 doesn't understand (I think there are a couple, but you lose the ability to provide a different style sheet for print media). You could also make your style sheet served dynamically and have an alternate or blank style sheet returned to NS4.
If NS 4 doesn't get a style sheet, the page is rendered as if it came out of the 1994 internet. But for folks who use an old browser, I say too bad.
The things I like to use most that NS4 doesn't like are floating elements (div {float:left;width200}) and borders (body {border:thick red}). For floating divs, in NS4 they don't float. NS renders them all on top of each other. For page borders, I find various versions of NS crash.
-
Re:mozilla question
The problem is that gnome tries to start a new instance of mozilla instead of attaching to the existing instance.
Although I haven't tried this myself, this seems to be what you are looking for.
From the homepage:
openmoz is a command line wrapper for the Mozilla web browser. Given a file name, a URL, an email address, or a keyword, openmoz will display it with Mozilla. Openmoz has options for opening new windows and tabs.
-
They did not test JavaScriptI would be very interested to see how regular expressions (a core part of the JavaScript language) stack up in various browsers. Netscape has had good support for regexps since 4.0, IE since 5.0. Opera still seems to be lacking in these regards.
I'm basing this on my experience writing a contact form that thwarts spam. It has (optional) client side verification of the fields based on regular expressions. (The same regular expressions are then used again on the server, the client side stuff just makes it fail fast.) When a web browser thinks it supports JavaScript, but doesn't do it well enough this runs into problems. I keep finding browsers that like the regular expressions I use.
If you are using an uncommon browser, I would appretiate the testing. Please go to my contact page and fill out a valid email address but no subject or message. If your browser works correctly, you should not get an error about the email address. Then send me the results. (If you do have problems, disable JavaScript first.)
-
They did not test JavaScriptI would be very interested to see how regular expressions (a core part of the JavaScript language) stack up in various browsers. Netscape has had good support for regexps since 4.0, IE since 5.0. Opera still seems to be lacking in these regards.
I'm basing this on my experience writing a contact form that thwarts spam. It has (optional) client side verification of the fields based on regular expressions. (The same regular expressions are then used again on the server, the client side stuff just makes it fail fast.) When a web browser thinks it supports JavaScript, but doesn't do it well enough this runs into problems. I keep finding browsers that like the regular expressions I use.
If you are using an uncommon browser, I would appretiate the testing. Please go to my contact page and fill out a valid email address but no subject or message. If your browser works correctly, you should not get an error about the email address. Then send me the results. (If you do have problems, disable JavaScript first.)
-
They did not test Regular ExpressionsI would be very interested to see how regular expressions (a core part of the JavaScript language) stack up in various browsers. Netscape has had good support for regexps since 4.0, IE since 5.0. Opera still seems to be lacking in these regards.
I'm basing this on my experience writing a contact form that thwarts spam. It has (optional) client side verification of the fields based on regular expressions. (The same regular expressions are then used again on the server, the client side stuff just makes it fail fast.) When a web browser thinks it supports JavaScript, but doesn't do it well enough this runs into problems. I keep finding browsers that like the regular expressions I use.
If you are using an uncommon browser, I would appretiate the testing. Please go to my contact page and fill out a valid email address but no subject or message. If your browser works correctly, you should not get an error about the email address. Then send me the results. (If you do have problems, disable JavaScript first.)
-
They did not test Regular ExpressionsI would be very interested to see how regular expressions (a core part of the JavaScript language) stack up in various browsers. Netscape has had good support for regexps since 4.0, IE since 5.0. Opera still seems to be lacking in these regards.
I'm basing this on my experience writing a contact form that thwarts spam. It has (optional) client side verification of the fields based on regular expressions. (The same regular expressions are then used again on the server, the client side stuff just makes it fail fast.) When a web browser thinks it supports JavaScript, but doesn't do it well enough this runs into problems. I keep finding browsers that like the regular expressions I use.
If you are using an uncommon browser, I would appretiate the testing. Please go to my contact page and fill out a valid email address but no subject or message. If your browser works correctly, you should not get an error about the email address. Then send me the results. (If you do have problems, disable JavaScript first.)
-
Re:How to stop spam....
You need to expand on your step 4.When I started getting spam, I wanted it to stop. I realized I couldn't just disable the email address because there might be somebody out there counting on it to contact me. I could disable it and send an autoreply with my current email address, but then spammers would just be able to look at the reply. I needed some solution where people could send me email even if the address they used had been disabled, but spammers wouldn't be able to get my current address. I decided to put a contact form on my website. Now I autorespond to a disabled email address with the contact form url. In addition, I was able to remove email addresses from my website which was a large source of spam.
Not being able to find a contact form that was secure, I ended up writing my own and releasing it under the GPL. You can get it at http://ostermiller.org/contactform/.
I also realized that no matter how hard you try, your email address will leak to spammers. Ever giving an email address only to your closest friends and family will not prevent it from leaking out. Between the klez virus, gift certificates, invitation, greeting card, and crushlink websites, even my most personal email address leaked to spammers. You can't be afraid to disable an email address and send your friends the new one. Now even if I missed a friend, they can still get a message to me.
-
Applets are at stake hereMicrosoft managed to kill of Java applets. Without resorting to Java 1.0, it is nearly impossible to write a Java applet that will work in a variety of browsers. I would like to write an applet using the latest version of Java (1.4) and have it work in everybody's browser. There are several reasons why that doesn't happen:
- Microsoft does not distribute anything but Java 1.0, so Windows users must get a large download from Sun.
- Once you get the recent version of Java, the applet tag is still hijacked by the old microsoft version of Java.
- The object tag is recommended as a replacement for the applet tag because you can specify which vm you want to run the applet. Unfortunatly different browsers want different parameters. IE wants some got awful random string of number for the classid, where Netscape wants something in the format "java:myclass.class".
- There are ways to nest platform specific object tags (or object and embed tags) so that it will work in both Netscape (Mozilla) and IE, however, these tricks are hackish and don't seem to carry over to Macintosh versions of IE or other Macintosh browsers.
If windows starts coming with a recent version of Java, perhaps the applet tag will become useful again.
Other than applets, the death of Java is greatly exaggerated.
-
Re:Not enough documentationThis is one of the reasons that I love Java. Everybody who writes code in Java puts in javadoc comments directly into the code. Java comes with a tool that pulls out these comments and makes web pages, pdfs, or pretty much any other format documentation out of it. Sun does this with the java.* classes, I do this with my classes, other third party libraries all have this. Because the documentation is in the source, it beats external documentation like man pages. It sure makes programming in Java a pleasant experience.
I still recommend that if you are using Java, Linux is the way to go. The Java from Sun runs on Linux just as well as any Windows platform. It beats Java for Windows 9x by a mile. If you will only use opensource software, GCC's Java compiler (get a nightly build and compile it yourself rather than relying on what comes with your distribution, as those are older) is getting pretty darn near usable. It works for 97% of my stuff now. Similarly, the classpath libraries are reaching a point where I can usually substitute them for the sun libraries.
-
Re:It's a losing causeYou can no longer expect to use an email address for very long without it getting spammed.
- Buy your own domain name so you have an unlimited number of email addresses.
- Change your email address every few months when it starts getting spam.
- So that friends and family can still contact you, put a form on your website that will always send to your current email address.
- For old disabled email addresses, send an autoreply that says "This email address has been disabled because it is getting too much spam. Please contact bob at: http://bobsite.tld/contact.pl"
-
Internet Radio
Internet Radio is only OK.. My parents listen to NPR from Pittsburg in Ohio where they now live to get a show they otherwise wouldn't be able to. I found a few shoutcast stations that I like. Especially Digitally Imported. But I never listen to it live. I taped a few days worth of it and burned them onto mp3 cds. As a result, I can now listen to great techno music at work on my computer, out jogging on my portable mp3 cd player, in my car on my mp3 cd player, or at home with my dvd player that plays mp3 cds.
-
This article is not legal advice
The primary indication of whether a new program is a derivative work is whether the source code of the original program was used, modified, translated or otherwise changed in any way to create the new program. If not, then I would argue that it is not a derivative work.
This is not the definition of derivative work that is assumed by the GPL. The GPL assumes that a derivative work is any work that uses another work. (In the GPLs case, by linking to it). If this were (legaly) not the case, as the article exists, then there would be very little difference between the GPL and the LGPL (which specifically allows usage without modification).For an interesting read of why usage constituting a derivative work would be important to free software (and is part of the GPL) read Why you shouldn't use the Library GPL for your next library from gnu.org.
I myself have written popular Java libraries that I license under the GPL (not the LGPL) because I want to encourage free software development.
If you wanted to make a movie, and in your movie you had another movie playing in the background on a tv on the set, do you think you should have the right to distribute your movie containing somebody else's movie? (Ignoring fair use such as parody) I don't think you should be able to.
The article seems to be written to allay fears of business leaders that they occur legal risk by using open source software. The article does not offer good advice. I would recommend, that if you were to use open source software in closed source, look for a license that specifically allows you to do so (such as the LGPL) rather than relying on an untested definition of derivative work.
-
Tired of IE users.I got tired of folks visiting my website using IE. I use Mozilla when develop and I code to standards. There have been numerous cases when I've had to regress something because IE doesn't do it right. In any case, I did a popunder ad for Mozilla for those that are using IE.
From this I found a few interesting things. The first, which is encouraging, is that it seem to be working. The percentage of people who visit my site using Mozilla started rising sharply. I went from about 1% to almost 5%. The second thing, which is curious, is that a lot less people are actually using IE than you might think. My server logs show that about 80% of my visitors use IE, but only about 40% get the popunder. My conclusion is that there are a lot of browsers out there that fake the user agent, or many people have found a way to disable popunders in IE. (have javascript disabled, or some such).
If you want the code to do the popunder so you can advertise mozilla on your site, its easy to grab the Javascript from my home page, just view source.
-
Re:That's why having resources in files is helpfulJava has Resource Bundles for different locales. The PropertyResourceBundle is especially useful for translations because it is the one that handles Strings. The nice thing though, is that you can also control behaviours by overriding the correct resource bundle. (Useful for currency display, etc). If you want to internationalize a Java program, check out the i18n Java Tutorial.
After making a few of my open source projects internationalized, I ran into a problem. The text files that need to be translated are in the Western character set (ISO-8859-1). This is a problem because characters outside this set all need to be escaped. People volunteering to translate didn't have the time or skill to figure out how to do that. I wrote a Java translation editor called Attesoro to make the process easier.
For open source projects I ran into some people that do their translations using Babelfish. The automatic translations are generally horrible, but they say that this almost always encourages somebody that knows the language to volunteer to do the job better.
;-) -
Re:That's why having resources in files is helpfulJava has Resource Bundles for different locales. The PropertyResourceBundle is especially useful for translations because it is the one that handles Strings. The nice thing though, is that you can also control behaviours by overriding the correct resource bundle. (Useful for currency display, etc). If you want to internationalize a Java program, check out the i18n Java Tutorial.
After making a few of my open source projects internationalized, I ran into a problem. The text files that need to be translated are in the Western character set (ISO-8859-1). This is a problem because characters outside this set all need to be escaped. People volunteering to translate didn't have the time or skill to figure out how to do that. I wrote a Java translation editor called Attesoro to make the process easier.
For open source projects I ran into some people that do their translations using Babelfish. The automatic translations are generally horrible, but they say that this almost always encourages somebody that knows the language to volunteer to do the job better.
;-) -
Re:That's why having resources in files is helpfulJava has Resource Bundles for different locales. The PropertyResourceBundle is especially useful for translations because it is the one that handles Strings. The nice thing though, is that you can also control behaviours by overriding the correct resource bundle. (Useful for currency display, etc). If you want to internationalize a Java program, check out the i18n Java Tutorial.
After making a few of my open source projects internationalized, I ran into a problem. The text files that need to be translated are in the Western character set (ISO-8859-1). This is a problem because characters outside this set all need to be escaped. People volunteering to translate didn't have the time or skill to figure out how to do that. I wrote a Java translation editor called Attesoro to make the process easier.
For open source projects I ran into some people that do their translations using Babelfish. The automatic translations are generally horrible, but they say that this almost always encourages somebody that knows the language to volunteer to do the job better.
;-) -
Re:That's why having resources in files is helpfulJava has Resource Bundles for different locales. The PropertyResourceBundle is especially useful for translations because it is the one that handles Strings. The nice thing though, is that you can also control behaviours by overriding the correct resource bundle. (Useful for currency display, etc). If you want to internationalize a Java program, check out the i18n Java Tutorial.
After making a few of my open source projects internationalized, I ran into a problem. The text files that need to be translated are in the Western character set (ISO-8859-1). This is a problem because characters outside this set all need to be escaped. People volunteering to translate didn't have the time or skill to figure out how to do that. I wrote a Java translation editor called Attesoro to make the process easier.
For open source projects I ran into some people that do their translations using Babelfish. The automatic translations are generally horrible, but they say that this almost always encourages somebody that knows the language to volunteer to do the job better.
;-) -
Re:Preemptive methodsYou have no control of your email address. I only give my address that I use for personal correspondence to my family and closest friends. My father gave me a DVD rental for my Birthday, and on of my friends invited me to a party and used one of those web sites that do invitations. Between the two leaks, my address is now in the hands of spammers and I am getting 2 to 3 a day at that address. Short of beating my friends and family around the head, I don't think I can stop that sort of thing.
Not posting your address is important. If you you post your address on the internet, expect more than 10 spam a day. Similarly if you use it to post on usenet, expect more than that. It seems to be hardly sufficient, however.
I have decided that my only recourse is to change my address every time it starts getting spam. People that email me at an old address get a note saying why the address has been disabled and a url on my website where they can fill out a form to contact me. (btw, if you are interested, you can get the contact form that I use on my website, it is designed to thwart spammers, unlike formmail and other cgi to email gateways.)
-
Anti-spam systemBeing fed up with the amount of spam that I receive, I took preventative measures. I was up to about 150 spam each day. I tried filters, the best I could do was get rid of about half of it. Too many false positives. I lost email from friends. I thought about switching to the new bayesian filters I'd read about on Slashdot, but they don't seem that mature yet and anyway, I thought of a better solution.
First I bought my own domain name. This allows me to enable new email addresses at any point. I have an unlimited supply. I can create a new email address for anything that I want. Anytime I buy something, I enable an email address with some number and the name of the company in it. Anytime I post to usenet or ask somebody for help from somebody I create a new email address for that purpose. I give all my friends a private email address and ask them to be careful with it.
This means that I can also disable email addresses. I send an autoreponse to any disabled email address saying, "You attempted to send deadsea email, but you used an address that gets too much spam". I then can give them a URL for a contact form if they really need to contact me.
The contact form is the best part though. If you go to my website, the contact form lets you send me email but never reveals my address. It uses an alias system. That means that my addresses won't be harvested to begin with. I made the contact form available under the GPL so you can use it too.
So people can email me, but if I start getting spammed, I can disable an address and people can still contact me. Sure its a pain to have to use the contact form, but it doesn't happen that often. When it does happen, I reply with an email address that can actually be used to contact me.
-
woooooo!!!!I write a lot of GPL Java software.
- Ladder - a game
- Attesoro - a translation edtior
- Utilities - Java Libraries
- TulipChain - A open directory project browser
This move just means that open source implementations of Java are officially legal. It doesn't really bring them closer to being here now. Some of the interesting projects in this area are the GNU native compiler for Java and the GNU Classpath project. Neither are anywhere near being fully functional yet, but I'll give them time.
-
woooooo!!!!I write a lot of GPL Java software.
- Ladder - a game
- Attesoro - a translation edtior
- Utilities - Java Libraries
- TulipChain - A open directory project browser
This move just means that open source implementations of Java are officially legal. It doesn't really bring them closer to being here now. Some of the interesting projects in this area are the GNU native compiler for Java and the GNU Classpath project. Neither are anywhere near being fully functional yet, but I'll give them time.
-
woooooo!!!!I write a lot of GPL Java software.
- Ladder - a game
- Attesoro - a translation edtior
- Utilities - Java Libraries
- TulipChain - A open directory project browser
This move just means that open source implementations of Java are officially legal. It doesn't really bring them closer to being here now. Some of the interesting projects in this area are the GNU native compiler for Java and the GNU Classpath project. Neither are anywhere near being fully functional yet, but I'll give them time.
-
woooooo!!!!I write a lot of GPL Java software.
- Ladder - a game
- Attesoro - a translation edtior
- Utilities - Java Libraries
- TulipChain - A open directory project browser
This move just means that open source implementations of Java are officially legal. It doesn't really bring them closer to being here now. Some of the interesting projects in this area are the GNU native compiler for Java and the GNU Classpath project. Neither are anywhere near being fully functional yet, but I'll give them time.
-
I'm cutting down on spamHere is how I did it:
- I bought my own domain name. This allows me to have unlimited email addresses and to change addresses at will.
- Put a contact form on your website. I couldn't find one that did everything that I wanted so I wrote one. It works on an alias system so it never reveals the email addresses that it uses. To use it, just edit the aliases to include your address and plunk it on your server. To prevent unwanted spam and automated submissions you can set regular expressions (server side with client side optional) to validate the form.
- When an email address starts getting spam, disable it. I send an autoreply saying "You emailed me at an address that gets too much spam you can contact me at http://ostermiller.org/contact.pl"
- Change contact info you have in public places such as your website to point to the form, rather than to an email address. That way the email addresses you use won't get spammed in the first place.
- Encourage your friends not give your email address out to greeting card sites, somebody thinks you are cute sites, and email a friend this page sites. But even if they do, don't be afraid to change your address. If your friends email you at a disabled address, they will get a response to go to the form.
I've been using this system for several weeks. I now send out about 100 autoreplies each day (all those used to be spam in my inbox). I now get about 5 spam a day and I'm working to disable some of those addresses. (I still have to find a way to deal with bugzilla since it requires a public email address)
-
Chess is nifty
Along the same vein, a couple weeks ago I coded Tic-Tac-Toe in JavaScript complete with an alpha-beta search such that the when it is in expert mode, you cannot beat your web browser. Solving the whole game on my computer takes about 5 seconds, so I added an opening book to compute the first move. With that response time is pretty much instantaneous even in expert mode.
-
Re:IIIi?
Um, if you want to disprove something widely accepted as true, you'll need to do better than anonymously say so in a sentence on Slashdot.
It sounds to me like you could use some help with your Roman Numerals.. I spent a bit of time playing with this Javascript Roman Numeral Self Test and was reminded of a few things, such as what "D" and "L" stand for in Roman Numerals. Just a thought.. -
SoftwareI don't know any physical calulators. I prefer a good software calculator that allows copy and paste.
I couldn't find one that did everything I wanted (mostly hex and binary in a sane fashion) so I wrote one. Its written in JavaScript, so it runs in your web browser (I always have mine open anyway). It has a bookmarklet so you can open it in a window that is sized nicely. It makes my life a lot easier.
-
Mp3TaggerThe information that CDDB uses is not stored with the mp3s. It does some calculation of the track lengths. You would have to have all the mp3s of the album including silent tracks as mp3s and the mp3s would have to have the the exactly right length, which I doubt that the mp3 format does.
Chances are that you have you songs named in Album-Artist-Song.mp3, Album/Artist-Song.mp3, or Album/Artist/Song.mp3 format. I wrote a program called Mp3Tagger that can import this mp3 name information into the ID3 tag. (It can also go the other way and rename an mp3 based on id3 tags.) It runs on Windows, Linux, and Mac OS X among others.
-
Open Source LibrariesI doubt that this includes the developers of the open source libraries that a project uses. If a game uses the SDL libraries, do the SDL developers get counted? Probobly not.
I am probably a developer on a dozen projects that use my open source Java libraries. Open source is just different than normal development.
-
Nostalgia galore
Ah, for the days when I leeched software for my Atari 800 at 2400 baud on a Kaypro 4..and then transferring it at 300 baud, waiting hours upon hours to find out if any of the files I downloaded actually did anything.
Or the hours I spent at the virtual command prompts at Drexel Hill North Star,DHN* for short, hoping that there was more gaming goodness available there than LadDer 1, 2, or 3 (download the Java version...it's excellent...like Donkey Kong meets Rogue...vaguely). Remember Aldo's Adventures? Same damn set of games, minus the slick ASCII engine of the originals. Ahhh...
Or the time when I was about 8, when a spin with an ersatz chat with the sysop of some BBS or another offended me (or rather just confused me) for some reason or another (I think it asked me about my mother or some such). The sysops (who must have been at least post-pubescent...they were very amused by the situation) called to make sure nothing was up or to glean further amusement from the situation...anyway, when they asked what I was using to call the board I answered quite honestly, "a terminal for the upstairs computer." One responded, "when I was 8 I couldn't even spell terminal!"
I was so proud. -
Password Generator
If you like getting a nice secure password, try a password generator.
-
add to webalizerWebalizer itself is very configurable but its default configuration leaves a lot to be desired. I maintain a list of search engines and sits that should be added to the configuration of Webalizer to make it a lot more powerful. I also have a log sorting tool there to prevent webalizer from croaking on logs that are just a little bit out of order.
Even if you don't find stats packages that do what you want, you can make webalizer a lot better.
-
And I was excitedCPAN has done wonders for perl modules. Its easy to install them and all the CPAN modules I've used have good documentation, very nice dependency checking, and regression tests. Until I realized that it was a joke, I was thinking that the CPAN folks would be able to do some great work with Java libraries.
Java has a better library structure than perl, with each package being in a well defined place in the classpath. Also documentation for Java libraries tends to be better because of the javadoc comments that everybody writes. Regression tests and dependency checking for java libraries would be cool.
Luckily, there are great places to turn for java libraries even without CPAN supporting them. The Apache Project has many classes that I consider essential now. The Giant Java Tree has thousands of open source libraries. Not to mention the stuff I've written.
-
Since when is that old?
I brought back Ladder, a Donkey Kong like game that was played on old CPM machines. Graphics are way too new for my taste, let alone 3D graphics.