<?xml version="1.0"?>
<rss version="2.0.">
  <channel>
    <title>Advogato blog for deusx</title>
    <link>http://www.advogato.org/person/deusx/</link>
    <description>Advogato blog for deusx</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Wed, 14 May 2008 12:30:57 GMT</pubDate>
    <item>
      <pubDate>Thu, 13 Apr 2000 06:23:41 GMT</pubDate>
      <title>13 Apr 2000</title>
      <link>http://www.advogato.org/person/deusx/diary.html?start=3</link>
      <guid>http://www.advogato.org/person/deusx/diary.html?start=3</guid>
      <description>Wheee!  Wrote my first Advogato article tonight.  Time for 
bed.</description>
    </item>
    <item>
      <pubDate>Wed, 12 Apr 2000 05:27:31 GMT</pubDate>
      <title>12 Apr 2000</title>
      <link>http://www.advogato.org/person/deusx/diary.html?start=2</link>
      <guid>http://www.advogato.org/person/deusx/diary.html?start=2</guid>
      <description>This is what I just posted to the iaijutsu-dev list.  It 
may be of
wider interest...

&lt;p&gt; It's been quiet on the list, but that's just because life 
has been crazy
lately.  But I won't get into that now. :)  As it is, ths e-
mail might get
quite long as I try to convey a bit of what I've been up to 
in this
silence.  Here's the breakdown of what I'm going to write 
about:

&lt;p&gt; &lt;ol&gt;
&lt;li&gt;&lt;a href="#preface" &gt;Preface&lt;/a&gt;
&lt;li&gt;&lt;a href="#install" &gt;Installation&lt;/a&gt; - (Completely 
rewritten)
&lt;li&gt;&lt;a href="#serializer" &gt;Serializer&lt;/a&gt; - (New! and 
Improved!)
&lt;li&gt;&lt;a href="#tools" &gt;Tools&lt;/a&gt; - (Iaijutsu CoPy and an FTP 
daemon)
&lt;li&gt;&lt;a href="#home" &gt;New home site&lt;/a&gt; - (under construction)
&lt;li&gt;&lt;a href="#docs" &gt;Documentation&lt;/a&gt; - (or lack thereof)
&lt;li&gt;&lt;a href="#other" &gt;Other projects&lt;/a&gt; - (Hivemind, 
Dentatsu, 
IO::Filesystem, FTP daemon)
&lt;li&gt;&lt;a href="#thanks" &gt;Thank you!&lt;/a&gt;
&lt;/ol&gt;

&lt;p&gt; &lt;a name="preface" &gt;&lt;/a&gt;
&lt;strong&gt;0: Preface&lt;br&gt;
==========&lt;br&gt;
&lt;/strong&gt;

&lt;p&gt; As for Iaijutsu, it's far from dead.  Still pondering a new 
name, have yet
fo find a compelling replacement that encompasses what it 
is yet is a
tasty sound bite for the corporate types I'm possibly 
getting funding from
within my company.  (And, of course, will be recognized and 
remembered by
those who are *not* Japanese. :) )

&lt;p&gt; &lt;a name="install" &gt;&lt;/a&gt;
&lt;strong&gt;
1: Installation&lt;br&gt;
===============&lt;br&gt;
&lt;/strong&gt;

&lt;p&gt; Have completely rewritten the installation scripts 
(Makefile.PL and added
postinstall).  No longer using a canned SQL script to dump 
initial
objects into the database.  Now, the initial DB schema is 
contained in the
serializer class itself and deployed by the same.  So, the 
particular
serializer you will use has contained within itself 
everything it needs to
prep a database.

&lt;p&gt; Also, the initial set of objects stored in the database are 
created by the
postinstall script, using the system's own API.  So far, 
this has meant
MUCH easier work toward supporting a wider range of 
databases-- my
roommate is working on getting it working with MS SQL and 
Access
currently, and we're dreaming of getting it working with a 
CSV text format
or something similar in the hopes of creating a test suite 
with canned
data and few assumptions about the host environment.

&lt;p&gt; &lt;a name="serializer" &gt;&lt;/a&gt;
&lt;strong&gt;
2: Serializer&lt;br&gt;
=============&lt;br&gt;
&lt;/strong&gt;

&lt;p&gt; Speaking of the serializer-- I've almost completely 
rewritten it.  The
previous version worked.  And that's about all I can say 
about it.  The
new version is a bit of a hybrid between the old one and 
other 
object-relational mapping and persistence schemes I've 
seen.  Its not
quite complete yet, but the idea is there.  

&lt;p&gt; First off, storage is separated from indexing now.  Before, 
they were one
in the same, which was bad.  Now, objects are serialized 
using Storable
BLOBs and indexed by their ids.  Indexing for queries is 
done by a set of
tables indexing property values to object ids.

&lt;p&gt; One one hand, there are tables based on classes, mapping 
columns directly
to class properties.  On the other hand is a set of tables 
mapped to
datatypes, mapping to object properties not covered by the 
existing set
of defined class tables.

&lt;p&gt; This is a hybrid approach because most systems I've seen 
require a picture
of your class framework at database creation.  All classes 
and their
properties must be defined at installation.  This leads to 
a pretty good
mapping of properties to columns and any optimizations 
which come from
that.  However, in Iaijutsu, some classes themselves may be 
objects... classes can be created on the fly, AFTER 
database creation.  

&lt;p&gt; So, the hybrid approach I'm currently working toward allows 
one to specify
a set of class-to-table definitions.  However, there is 
an 'extended' set
of datatype tables to index all the other properties of 
classes not
covered by the first set of tables.  While this is not 
quite as efficient,
it allows a more dynamic system.  Once your application 
classes have
stabilized, you can later on alter the database with more 
class tables.

&lt;p&gt; Make any sense?

&lt;p&gt; &lt;a name="tools" &gt;&lt;/a&gt;
&lt;strong&gt;
3: Tools&lt;br&gt;
==========&lt;br&gt;
&lt;/strong&gt;

&lt;p&gt; I've rewritten most of the tools for use with Iaijutsu.  
The insert and
extract scripts are gone, replaced by a tool named 'icp'.

&lt;p&gt; icp is Iaijutsu CoPy.  It's based on the new IO::Filesystem 
class I'm
working on, of which Iaijutsu::Filesystem is a sub-class.  
In other words,
its like /bin/cp, only it lets you copy to and from 
Iaijutsu and your
local filesystem.  It also will allow you in the future to 
copy between
Iaijutsu databases (locally, remotely, whatever...), and 
even between
filesystems.  So, when this is working perfectly, importing 
a site will be
as easy as 'icp -vur mysite/ @mysite/'

&lt;p&gt; Also, new in CVS is an FTP daemon.  This also uses the
Iaijutsu::Filesystem class, along with the Perl Object 
Environment
(POE) to give FTP access to Iaijutsu.  So far, I've been 
using this pretty
heavily with emacs and Dreamweaver to author templates and 
document
objects within Iaijutsu's database.  There are some quirks 
and bugs I'm
working out, but I've been eating my own dogfood and using 
the daemon
pretty productively so far.

&lt;p&gt; By the way, should you want to use these new features from 
CVS, or a
snapshot I'll be posting tomorrow, you'll need the packages 
available from
the following URLs:

&lt;p&gt; http://www.ninjacode.com/todokeru2/io-filesystem-0.1.tar.gz
http://www.ninjacode.com/todokeru2/net-ftp-daemon-0.1.tar.gz

&lt;p&gt; &lt;a name="home" &gt;&lt;/a&gt;
&lt;strong&gt;
4: New Home Site&lt;br&gt;
=================&lt;br&gt;
&lt;/strong&gt;

&lt;p&gt; Speaking of working productively...  There's a new home 
site for Iaijutsu
under construction at:   
http://www.ninjacode.com:8080/iaijutsu

&lt;p&gt; It may or may not be up when you try to visit it.  It may 
also be broken
or in heavy change.  But if you like, try the URL, and 
it'll most likely
be up.  It's a completely new design and layout, not to 
mention hosted by
Iaijutsu itself.

&lt;p&gt; There is a Slashdot-like news weblog with discussion, as 
well as sidebar
headline syndication components (like Slashdot's 
Slashboxen) grabbed using
RSS objects which (if the scheduler is running) refresh 
themselves
periodically.

&lt;p&gt; So, visit if you like, complain about it, beat it up, tell 
me what you
think.  There's not much there yet, but it's a start.

&lt;p&gt; &lt;a name="docs" &gt;&lt;/a&gt;
&lt;strong&gt;
5: Documentation&lt;br&gt;
================&lt;br&gt;
&lt;/strong&gt;

&lt;p&gt; Unfortunately, not much good news here yet.  :(  Chasing 
down the bugs,
and adding these last few features, I've been holding off 
and not having
enough time in general to document this beast.  But I'm 
only aobut 6 todo
list checkboxen away from being done with coding and 
getting to writing.

&lt;p&gt; I'm horrible about this!  But I'm hoping that, after I'm 
done with these
checkboxen, and do this, and release, I'll have the 
momentum to continue
documentation properly from now on.  Also, my day job may 
soon be more
directly supporting me in this by demanding whitepapers and 
manuals to
hand to clients who are using this system.

&lt;p&gt; Thanks for hanging in there!!!  (If you still are!)

&lt;p&gt; &lt;a name="other" &gt;&lt;/a&gt;
&lt;strong&gt;
6: Other projects&lt;br&gt;
=================&lt;br&gt;
&lt;/strong&gt;

&lt;p&gt; Alternating between stealing time from and enhancing 
development of the
core of Iaijutsu itself are the Hivemind and Dentatsu 
projects.

&lt;p&gt; Hivemind, if you haven't heard me babble about is before, 
is a groupware
project management, task delegatoin, time recording and 
reporting, and
information collection application.  It's currently the 
first and only
long term tested and developed project using Iaijutsu, in 
heavy use by my
department at the day job, and recording about a year worth 
of
departmental activity so far.  It's really putting the 
entire system to
huge tests, with about 20 users logging into it and making 
heavy use of it
daily.  (Okay, so that does't sound very heavy, but it's 
putting Iaijutsu
through its paces at least.  And was what dramatically 
showed how broken
my old serializer was)

&lt;p&gt; Dentatsu is currently behind the new Iaijutsu home site.  
It is what will
eventually run Ninjacode.com.  Weblogs, discussion fora, 
member accounts,
content rating, polls, distributed editorial ownership, 
collaborative
authoring, etc and so forth... this will be the online 
publication
toolkit.  It seems to be currently about 1/3 complete.

&lt;p&gt; Either of these projects (available in hivemind/ and 
dentatsu/ paths in
CVS) may serve as a semi-decent example of what can be done 
with Iaijutsu
currently.  However, they are both even less documented 
than Iaijutsu
itself, but I hope they are well commented for those who 
want to dig.

&lt;p&gt; Also, as a side note, the IO::Filesystem class and FTP 
daemon may be
showing up in my CPAN directory soon as projects spun off 
from Iaijutsu.

&lt;p&gt; IO::Filesystem is an object oriented encapsulation of a 
filesystem and all
its actions.  ie. copy, delete, rename, open/close for 
write, open/close 
for read, test (-d, -f, -e, etc), ls, stat, etc...   This 
seems to be
something I really needed, and I think others will
too.  IO::Filesystem::Plain encapsulates the local 
filesystem, while
Iaijutsu::Filesystem encapsulates a virtual filesystem on 
the Iaijutsu
serializer.  Also, the package will eventually have a suite 
of tools
developed like 'icp' where common operations can be done on 
and between
filesystem objects.

&lt;p&gt; The FTPd is an general FTP daemon implemented using the 
Perl Object
Environment (POE) toolkit and the IO::Filesystem.  It is 
not bound to
Iaijutsu, and will be useful as a general-purpose Perl FTP 
daemon.  Just
make an IO::Filesystem subclass, and the FTP daemon will 
serve files from
it.

&lt;p&gt; &lt;a name="thanks" &gt;&lt;/a&gt;
&lt;strong&gt;
7: Thank You!&lt;br&gt;
=============&lt;br&gt;
&lt;/strong&gt;

&lt;p&gt; Thank you!

&lt;p&gt; For what?  Well, for reading this far.  And for being on 
the list.  Even
quiet, I feel like there are people waiting on me to get 
this done.  And
for piping up when I mumble an occasional question.  :)

&lt;p&gt; Hopefully this wasn't too much of a brain dump!

&lt;p&gt; Again, thanks!

&lt;p&gt; &lt;i&gt;
Leslie Michael Orchard         E-Mail: deus_x@pobox.com 
(home)&lt;br&gt;
Senior Application Developer           
les_orchard@det.impiric.com (work)&lt;br&gt;
impiric, inc.                     ICQ: 492905 (home) 
11082089 (work)&lt;br&gt;
&lt;/i&gt;

</description>
    </item>
    <item>
      <pubDate>Tue, 7 Mar 2000 02:25:00 GMT</pubDate>
      <title>7 Mar 2000</title>
      <link>http://www.advogato.org/person/deusx/diary.html?start=1</link>
      <guid>http://www.advogato.org/person/deusx/diary.html?start=1</guid>
      <description>Ninjacode.com went down this weekend.  UGH!  And just when 
it appears some interest in Iaijutsu is beginning.  Well, 
at least it's still up at Sourceforge.net and on my 
laptop.  Development continues.  Not long now.</description>
    </item>
    <item>
      <pubDate>Mon, 6 Mar 2000 16:08:45 GMT</pubDate>
      <title>6 Mar 2000</title>
      <link>http://www.advogato.org/person/deusx/diary.html?start=0</link>
      <guid>http://www.advogato.org/person/deusx/diary.html?start=0</guid>
      <description>My plan for world domination is progessing.</description>
    </item>
  </channel>
</rss>
