Vanity Foul
Dedicated to the wanderings of an egotistical mind.


20030402
Wednesday April 02, 2003

"You've been quiet lately"

I'm not the kind to speak up on every little thing, it has to really catch my attention and fire my imagination. I haven't seen anything like that lately, at least not that hasn't been adequately discussed elsewhere...
( Apr 02 2003, 02:02:57 PM ) Personal Permalink [Trackback]



20030326
Wednesday March 26, 2003

Perl 6 I must be behind the times, but I read an article in the April 2003 issue of Linux Magazine (on newstands now) about Perl 6. Cool! I haven't looked at Perl for about 5 years, but I really like what they've got planned.

I particularly like how given-when behaves, and the fact that "given" and "when" can be used independantly of each other: they're really seperate tools that fit together to produce a switch-case model. A lot of the other stuff planned should really minimize the inherant obfuscatability of Perl (the new Object definitions make *much* more sense!). Finally, I'd love for Java to have the new junctions coming in Perl 6 (nice shortcut expressions).

The only downside is that Perl 6 is years away (cannot find the exact statement now). :-(
( Mar 26 2003, 09:26:23 AM ) Technology Permalink Comments [2] [Trackback]



20030321
Friday March 21, 2003

Using Custom Taskdefs Buried in the Ant Manual:

Adding your task to the system is rather simple too:

   1. Make sure the class that implements your task is in the classpath 
      when starting Ant.
   2. Add a <taskdef> element to your project. This actually adds 
      your task to the system.
   3. Use your task in the rest of the buildfile.

Example

<?xml version="1.0"?>

<project name="OwnTaskExample" default="main" basedir=".">
  <taskdef name="mytask" classname="com.mydomain.MyVeryOwnTask"/>

  <target name="main">
    <mytask message="Hello World! MyVeryOwnTask works!"/>
  </target>
</project>

Example 2
To use a task directly from the buildfile which created it, place the 
<taskdef> declaration inside a target after the compilation. Use the 
classpath attribute of <taskdef> to point to where the code has just 
been compiled.

<?xml version="1.0"?>

<project name="OwnTaskExample2" default="main" basedir=".">

  <target name="build" >
    <mkdir dir="build"/>
    <javac srcdir="source" destdir="build"/>
  </target>

  <target name="declare" depends="build">
    <taskdef name="mytask"
        classname="com.mydomain.MyVeryOwnTask"
        classpath="build"/>
  </target>

  <target name="main" depends="declare">
    <mytask message="Hello World! MyVeryOwnTask works!"/>
  </target>
</project>
Also see TaskDef ( Mar 21 2003, 08:06:31 AM ) Technology Permalink [Trackback] [Link]



20030320
Thursday March 20, 2003

Why Am I Getting All This Spam?

A great research piece from the Center for Democracy & Technology.

It should come as no surprise to most e-mail users that many of the addresses CDT created for this study attracted spam (nearly 9,000 spam messages in all), but it is interesting to see the different ways that the addresses attracted spam depending on where the e-mail addresses were placed.

This leads me to believe it would be worth the effort to put even a simple email obfuscator on Roller's Comments feature.
( Mar 20 2003, 09:19:45 AM ) Technology Permalink Comments [3] [Trackback]



20030307
Friday March 07, 2003

Page-by-Page Iterators Considered Nuclear Waste

Okay, so I exaggerate, but Crazy Bob has been having trouble. Fortunately he solved his dilemma:

Actually, it turns out that Castor has poorly documented support for limiting queries in Postgres and MySQL. After a little poking around, I found that extending the Oracle query SQL generator to parse the limit clause and add wrap the query in rownum modifiers is a trivial task.

I'm just hoping he contributes the Oracle LIMITS code back to Castor. Thanks Bob!
( Mar 07 2003, 12:53:46 PM ) Technology Permalink [Trackback]



20030303
Monday March 03, 2003

Oh no, there goes Tokyo, go go Greebo

Unless someone objects, I'm likely to Greebotize Roller this week. The only point of objection I see is that the build.xml will have to "bootstrap" the custom task (looks entirely possible, experimentation will tell).
( Mar 03 2003, 03:51:03 PM ) Roller Permalink Comments [4] [Trackback]

For further reading on today's posts:



20030228
Friday February 28, 2003

Simple JNDI

More Good StuffTM, this time from Henri Yandell, a.k.a. Bayard. Thanks Henri, I think I'll be using this soon!
( Feb 28 2003, 10:36:34 AM ) Technology Permalink [Trackback]

HoneyPot reborn!

DiveIntoMark revived my interest in my own project with this article. Part of what killed my interest was my upgrade to Resin 2.1.5, which broke support for ResponseWrappers (sometime between 2.0.1 and 2.1.5).

For those still curious, HoneyPot is a ServletFilter that performs much the same duties as outlined in the DiveIntoMark article. It still needs considerable work, but Mark's article has inspired me to continue. This time I guess I'll need to write a "Resin-specific" version of the ResponseWrapper, but that is okay.

What particularly perked my interest was the idea of publishing a webservice of bad IP/Referer/UserAgents, for all installations to share. HoneyPot currently writes a list of bad IP's to a text file, but I think I'll make it use Prevayler for persistence (way cooler). And I'll probably use Greebo; I like to have a "real" project to try out new tech.

And HoneyPot could use a better name, because I don't think it is accurate (the original idea was to create some false trails to trap naughty User Agents). I'll take suggestions...
( Feb 28 2003, 10:18:32 AM ) Technology Permalink [Trackback] [Link]




archives
links