<?xml version="1.0"?>
<rss version="2.0.">
  <channel>
    <title>Advogato blog for jmason</title>
    <link>http://www.advogato.org/person/jmason/</link>
    <description>Advogato blog for jmason</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Thu, 24 Jul 2008 12:22:25 GMT</pubDate>
    <item>
      <pubDate>Mon, 20 Oct 2003 01:10:22 GMT</pubDate>
      <title>20 Oct 2003</title>
      <link>http://www.advogato.org/person/jmason/diary.html?start=62</link>
      <guid>http://www.advogato.org/person/jmason/diary.html?start=62</guid>
      <description>Long time no post; I've been posting everything to &lt;a href="http" ://taint.org/&gt;my weblog&lt;/a&gt; for quite a while instead. ;)

&lt;p&gt; However, I'm back, for 1 posting only; &lt;a href="http" ://taint.org/2003/10/20/014800a.html&gt;this weblog posting&lt;/a&gt; details how we don't need PKI to do an anti-spam web of trust.  Advo is the One True Home of WoT schemes, everyone knows that ;), hence I'm posting a link here.  But I'd really love it if some of the WoT gurus could do some brain-dumping on how distribution of a WoT could work...</description>
    </item>
    <item>
      <pubDate>Tue, 15 Jan 2002 00:30:03 GMT</pubDate>
      <title>15 Jan 2002</title>
      <link>http://www.advogato.org/person/jmason/diary.html?start=61</link>
      <guid>http://www.advogato.org/person/jmason/diary.html?start=61</guid>
      <description>I just posted this on &lt;a
href=http://taint.org/2002/01/15/002508a.html&gt;taint.org&lt;/a&gt;,
but it's the kind of thing I usually post to this Advo diary
instead (since it deals with code and free software).  So
I'll post it here too ;)

&lt;p&gt;  &lt;p&gt;
&lt;a
href="http://www.brics.dk/bigwig/publications/bigwig/"&gt;&amp;lt;bigwig&amp;gt;&lt;/a&gt;
is a really interesting new design for web services. A month
or 2 ago, I
                          was thinking about web app
languages, like perl/CGI, PHP, servlets,
                          HTML::Mason, etc., and I realised
that the big problem was the requirement
                          imposed by the web environment
itself; most "interesting" operations
                          often have a UI that needs to take
place over several pages, and each page
                          has to
                          
                        
&lt;ul&gt;
&lt;li&gt;
unmarshal the user's CGI params, decode them, check them for
                            insecurity, validity etc.;
                            
                          
&lt;li&gt;
open the database;
                            
                          
&lt;li&gt;
perform actions;
                            
                          
&lt;li&gt;
fill out the HTML template (I'm assuming nobody's insane enough
                            to &lt;em&gt;still&lt;/em&gt; use embedded
HTML-in-code!);
                            
                          
&lt;li&gt;
insert "next step" form data in that template;
                            
                          
&lt;li&gt;
send that back to the user;
                            
                          
&lt;li&gt;
save a little state to the database;
                            
                          
&lt;li&gt;
then exit, and forget all in-memory state.
                            
                          
&lt;/ul&gt;
&lt;p&gt;
When compared to most interactive programs now, it's clear
that this is a
                          totally different, and
&lt;strong&gt;much&lt;/strong&gt; more laborious, way to write code. The
                          nearest thing in trad apps is the
"callback" way to deal with
                          non-blocking I/O, ie. what we used
before we could (a) use threads (b) use
                          processes or (c) wrap it up in a
more friendly library to do that.
                          It just screams
&lt;strong&gt;complexity&lt;/strong&gt;.
                          
                        
&lt;p&gt;
&lt;a
href="http://www.brics.dk/bigwig/publications/bigwig/"&gt;&amp;lt;bigwig&amp;gt;&lt;/a&gt;
fixes that:
                          
                        
&lt;blockquote&gt;
Rather than producing a single HTML page and then
terminating as CGI
                          scripts or Servlets, each session
thread may involve multiple client
                          interactions while maintaining
data that is local to that thread.
                          
                        &lt;/blockquote&gt;
&lt;p&gt;
They call it &lt;strong&gt;The Session-Centered Approach&lt;/strong&gt;.
                          
                        
&lt;p&gt;
It gets better. They also include built-in support for input
validation,
                          HTML output validation,
compilation and compile-time code checking,
                          &lt;strong&gt;and&lt;/strong&gt; it's GPLed
free software. This is really good stuff.
                          Next time I have to write a web
app, I'll be using this.
                          
                        
&lt;p&gt;
Found via &lt;a
href="http://sweetcode.org/archive/2001-12.html"&gt;sweetcode&lt;/a&gt;.
                          
                        

</description>
    </item>
    <item>
      <pubDate>Sun, 23 Dec 2001 02:08:23 GMT</pubDate>
      <title>23 Dec 2001</title>
      <link>http://www.advogato.org/person/jmason/diary.html?start=60</link>
      <guid>http://www.advogato.org/person/jmason/diary.html?start=60</guid>
      <description>&lt;a href="http" ://doc.weblogs.com/&gt;Doc&lt;/a&gt; quotes:

&lt;p&gt; The great teacher John Taylor Gatto &lt;a
href=http://www.johntaylorgatto.com/bookstore/dumbdnblum1.htm&gt;said
this&lt;/a&gt; about how he learned to truly teach:

&lt;p&gt; &lt;blockquote&gt;
  I dropped the idea that I was an expert, whose job it was
to fill the little heads with my expertise, and began to
explore how I could remove those obstacles that prevented
the inherent genius of children from gathering itself. 
&lt;/blockquote&gt;

&lt;p&gt; s/children/users/, for all those people who take the BOFH
stories a bit literally.

</description>
    </item>
    <item>
      <pubDate>Mon, 10 Dec 2001 02:35:27 GMT</pubDate>
      <title>10 Dec 2001</title>
      <link>http://www.advogato.org/person/jmason/diary.html?start=59</link>
      <guid>http://www.advogato.org/person/jmason/diary.html?start=59</guid>
      <description>&lt;b&gt;Replies:&lt;/b&gt;

&lt;p&gt; &lt;a href="http://www.advogato.org" /person/thom/&gt;thom&lt;/a&gt;: travelling? I was in Sydney
for ~6 months, went
to Melbourne for two weeks, stayed in Byron for 3 days, then
stopped in
Brisbane for 7 weeks... Now I'm off back to Sydney... Some
traveller, me.

&lt;p&gt; &lt;p&gt; &lt;p&gt; I can top that.  Thailand, 3 weeks, Melbourne, er, 4
months
;).  I &lt;b&gt;am&lt;/b&gt;
planning to get moving again soon though, otherwise my
Official Traveller
Certification will be rendered null and void.  Also I'll be
thoroughly
pissed off if I don't get to try out my new diving sk1llz on
the Great
Barrier Reef while I'm over here.

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;a href="http://www.advogato.org" /person/gary/&gt;gary&lt;/a&gt;: Saw Chris Raettig's
journal
the other day and
was impressed; his rationale for an email based journal is
appealing [..].

&lt;p&gt; &lt;p&gt; &lt;p&gt; I use a mail-based system to update &lt;a
href=http://taint.org/&gt;taint.org&lt;/a&gt;, my
(other) blog.  It works nicely -- the main point was to see
how useful &lt;a
href=http://webmake.taint.org/&gt;WebMake&lt;/a&gt; would be for
blogging -- but I'm now
reverting to using Advogato for diary stuff, keeping
taint.org for interesting
newsy snippets.  Go figure.  I reckon it's because
Advogato's more of a
diary-based community, whereas taint.org is kinda out on its
own, and just
doesn't seem like a good place to keep a proper journal.

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;a href="http://www.advogato.org" /person/ask/&gt;ask&lt;/a&gt;: Jabber [..] Maybe it's
just
crappy clients, but
it doesn't seem stable enough to run anything too critical on.

&lt;p&gt; &lt;p&gt; &lt;p&gt; That's the same feeling I got about 6 months ago. :(
 Let's
hope it polishes
up some time soon.  Open source != crappy packaging!

&lt;p&gt; &lt;p&gt;&lt;b&gt;MailMan-to-RSS:&lt;/b&gt;

&lt;p&gt; &lt;p&gt; Oh -- another new hack I forgot to mention, which someone
might find useful. &lt;a
href=http://taint.org/mmrss/&gt;MailMan-to-RSS&lt;/a&gt;, a little
script (and a vaguely nice-looking demo site) which scrapes
MailMan list archives and creates an RSS feed of the last 10
posted messages.  Handy for following lists using any of the
various portal systems (and Evolution!) that support RSS.

&lt;p&gt; &lt;p&gt; BTW as the page sez, if you would like to see a list
RSS-ized, and don't have a server to host the RSS on, mail
&lt;a href="http" ://jmason.org/contact.html&gt;me&lt;/a&gt; and I'd be
happy to add it to the scraped list on taint.org.

</description>
    </item>
    <item>
      <pubDate>Sat, 8 Dec 2001 07:07:32 GMT</pubDate>
      <title>8 Dec 2001</title>
      <link>http://www.advogato.org/person/jmason/diary.html?start=58</link>
      <guid>http://www.advogato.org/person/jmason/diary.html?start=58</guid>
      <description>Oh look, &lt;a href="http" ://www.advogato.org/person/thom&gt;thom&lt;/a&gt;
is travelling 'round Oz too!  cool.  Must get back to the
"travelling" part myself someday soon though.

&lt;p&gt; BTW forgot to plug the &lt;a
href=http://www.jmason.org/howto/subpixel.html&gt;Sub-Pixel
Font Positioning on UNIX mini-HOWTO&lt;/a&gt; I wrote a few
weeks ago.  It really just ties up the loose ends in
XFree86 4 doco, covers the implementation details, and
gives UNIX-users something to point at when Windoze
lusers rattle on about ClearType. ;)  Sub-pixel positioning
is a total beaut tweak for a laptop screen.</description>
    </item>
    <item>
      <pubDate>Sat, 8 Dec 2001 05:20:58 GMT</pubDate>
      <title>8 Dec 2001</title>
      <link>http://www.advogato.org/person/jmason/diary.html?start=57</link>
      <guid>http://www.advogato.org/person/jmason/diary.html?start=57</guid>
      <description>&lt;a href="http" ://suberic.net/~kevin/diary.html&gt;Kevin&lt;/a&gt; is
talking about kittens.  Why is everyone going on about
cats this week?  I miss &lt;a
href=http://jmason.org/images/bubba.jpg&gt;my cat&lt;/a&gt; :(

&lt;p&gt; I'm travelling 'round the world at the mo', and apparently
the one thing people travelling always miss, is their pets.
 Statistically, I've backed this up with several drunken
conversations with other pet-craving travellers.</description>
    </item>
    <item>
      <pubDate>Thu, 6 Dec 2001 02:46:01 GMT</pubDate>
      <title>6 Dec 2001</title>
      <link>http://www.advogato.org/person/jmason/diary.html?start=56</link>
      <guid>http://www.advogato.org/person/jmason/diary.html?start=56</guid>
      <description>&lt;b&gt;Patches and Contributed Code&lt;/b&gt;

&lt;p&gt; Here's an interesting one.  I've written a few free-software
apps in the past,
and recently &lt;a
href=http://SpamAssassin.taint.org&gt;SpamAssassin&lt;/a&gt; has taken
off.  It's very much sysadmin-oriented, being a mail filter
for spam which
works well as a system-wide filter.

&lt;p&gt; It's illustrated that there's a big difference in audiences,
between app users
and sysadmins; sysadmins will regularly hack the code to
''scratch their
itch'' and send back a patch; whereas patches don't often
come from users.

&lt;p&gt; Interesting...
</description>
    </item>
    <item>
      <pubDate>Sun, 3 Jun 2001 19:53:26 GMT</pubDate>
      <title>3 Jun 2001</title>
      <link>http://www.advogato.org/person/jmason/diary.html?start=55</link>
      <guid>http://www.advogato.org/person/jmason/diary.html?start=55</guid>
      <description>&lt;p&gt;
My ghod, it's been a while since I updated the diary.  Things I've done
since then:


&lt;p&gt; &lt;ul&gt;&lt;li&gt;&lt;p&gt;wrote &lt;a href="http" ://spamassassin.taint.org/&gt;&lt;strong&gt;SpamAssassin&lt;/strong&gt;&lt;/a&gt;, a 
mail filter to identify
spam using text analysis.  Using its rule base, it runs a wide range of
heuristic tests on mail headers and body text to identify spam.  

&lt;p&gt; &lt;p&gt; This is pretty neat.  It does a good job of differentiating spam from 
not-spam
without too many false positives or negatives; and it's a proper Perl module,
so it can be plugged into other mail delivery or filtering systems quite easily
(at some stage ;).  

&lt;p&gt; &lt;p&gt;
I've been using something similar for a long time, but I eventually decided to
reinvent the wheel.  The end result is pretty good so IMHO it was worth it.



&lt;p&gt; &lt;li&gt;&lt;p&gt;Helped start up &lt;a href="http" ://www.irelandoffline.com/&gt;&lt;strong&gt;Ireland
Offline&lt;/strong&gt;&lt;/a&gt;, a new organisation campaigning to sort out Ireland's
internet backwater status and bring fat pipes to the people.  This is going 
well...
lots of interest, press and support, and some great people involved.  

&lt;p&gt; &lt;li&gt;&lt;p&gt;Decided to &lt;strong&gt;move to Australia&lt;/strong&gt; ;)  Yep, despite 
getting
involved in Ireland Offline, I'm heading off to Melbourne in a month's time.
Haven't really figured out the job situation there, but hopefully it shouldn't
be too tricky getting hold of one.  If anyone reading is in a position to hire
&lt;a href="http" ://jmason.org/cv.html&gt;a UNIX guru&lt;/a&gt; (hey, I'm allowed to plug
myself for this), give us a mail.  

&lt;p&gt; &lt;li&gt;&lt;p&gt;&lt;a href="http" ://sitescooper.org/&gt;&lt;strong&gt;Sitescooper&lt;/strong&gt;&lt;/a&gt;: 
not an
awful lot of news here; Plucker support is pretty good now, and I've put its
caching subsystem on a diet in preparation for a move to a new server for the
&lt;a href="http" ://scoops.sitescooper.org/&gt; Nightly Scoops&lt;/a&gt; site.  

&lt;p&gt; &lt;p&gt;
The scoops page is an interesting situation.  Every night, a cron job runs off
and downloads pages from 136 sites (typically the ones that have clear-ish
terms allowing redistribution of their content).  The sitescooper script is run
5 times, for the 5 output formats that site provides.  Since sitescooper 
caches
these pages in a per-format cache (which allows it to run diffs on pages to 
see
what's changed) as well as a shared cache (which ensures the network is only
accessed once for each page), that was 6 copies of each page.

&lt;p&gt;
The cache is expired every few days, removing pages older than a month or 
so.
Still, it was running pretty big, all the same.  I've now implemented a
Singleton pattern for the cache usage, which brings it down to 1 ref-counted
copy of each page, and 6 pointers.  After a few weeks of this, the cache disk
usage is running at about 120 megs, down from about 800.

&lt;p&gt; 
&lt;p&gt;
This unfortunately may still be too much for the poor overburdened colocated
server I use, especially since I'll be on the other side of the world. :(  As a
result the list of sites on the page may need another diet.  We'll see...


&lt;p&gt; &lt;li&gt;&lt;p&gt;&lt;a href="http" ://webmake.taint.org/&gt;&lt;strong&gt;WebMake&lt;/strong&gt;&lt;/a&gt;: 
lots of
new stuff in the pipeline.  It now supports plugins, which are library files
that can define library functions for the inline perl code, and -- since I've
added tag-definition support -- a plugin can also add new tags, for use 
either
in the HTML input documents, or in the WebMake .wmk XML file itself.  Who 
needs
taglibs? ;) 

&lt;p&gt; &lt;p&gt;
This has allowed lots of new features, without messing up the core.  It's been
in the released version for a while.

&lt;p&gt; 
&lt;p&gt;
However, a new new feature, not released yet, is IMHO neater.  It's
"edit-in-browser" support, which is long overdue.

&lt;p&gt; 
&lt;p&gt;
This is really just a CGI script and a set of modules, allowing a WebMake site
to be managed in a web browser; the user logs in using traditional htpasswd
authentication, picks a WebMake site (ie. a .wmk file), and can then pick bits
of content from the file and edit them in a textbox.  It also has a directory
browser/file manager for the tags that load content from a directory tree, like
&lt;strong&gt;contents&lt;/strong&gt; and &lt;strong&gt;media&lt;/strong&gt;.

&lt;p&gt; 
&lt;p&gt;
Once they're done editing, they can build the site (using WebMake, obviously),
and -- the really neat bit -- check their changes into CVS.

&lt;p&gt; 
&lt;p&gt;
Since CVS support is built-in, this means that I can update my sites from
anywhere in the world, with a web browser, or do it quickly at the 
command-line
from anywhere I have the sites checked out -- at home, in work, etc.  It also
gives a bonus in that it makes site replication super-easy -- just &lt;tt&gt;cvs
checkout&lt;/tt&gt; and it's done.  And it's free.  CVS is cool.

&lt;p&gt;
So I'm just documenting this up, grabbing screenshots etc., and then I'll
release it.


&lt;p&gt; &lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Tue, 30 Jan 2001 19:15:25 GMT</pubDate>
      <title>30 Jan 2001</title>
      <link>http://www.advogato.org/person/jmason/diary.html?start=54</link>
      <guid>http://www.advogato.org/person/jmason/diary.html?start=54</guid>
      <description>Just certified &lt;a href="http://www.advogato.org" /person/db/&gt;Dave Brownell&lt;/a&gt; as
a Master, seeing as he's one of those guys who just
&lt;i&gt;keeps&lt;/i&gt; cropping up in the most interesting projects.

&lt;p&gt; Still need to do a proper diary update at some stage...</description>
    </item>
    <item>
      <pubDate>Tue, 9 Jan 2001 19:01:46 GMT</pubDate>
      <title>9 Jan 2001</title>
      <link>http://www.advogato.org/person/jmason/diary.html?start=53</link>
      <guid>http://www.advogato.org/person/jmason/diary.html?start=53</guid>
      <description>&lt;a href="http" ://www.egroups.com/message/sitescooper-archive/1000
&gt;Sitescooper 3.0.2 released&lt;/a&gt; -- and about time too ;)</description>
    </item>
  </channel>
</rss>
