<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for spiv</title>
    <link>http://www.advogato.org/person/spiv/</link>
    <description>Advogato blog for spiv</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Fri, 24 May 2013 08:08:59 GMT</pubDate>
    <item>
      <pubDate>Tue, 4 May 2004 11:09:16 GMT</pubDate>
      <title>4 May 2004</title>
      <link>http://www.advogato.org/person/spiv/diary.html?start=15</link>
      <guid>http://www.advogato.org/person/spiv/diary.html?start=15</guid>
      <description>&lt;p&gt;&lt;b&gt;New new job&lt;/b&gt;

&lt;p&gt; &lt;p&gt;I feel like I've barely started at Sensory (which is fairly true; I've only 
been there since April 1st), and now I have decided to take a new job offer that
suddenly sprang up and quit Sensory.  I'll work from home for this new job, and 
the various advantages to this lifestyle are slowly occuring as I spend my last
week and a bit at Sensory: being able to easily listen to my entire music
collection without needing to muck about with mini-discs; being able to shop for
food during the middle of the day, rather than at 6 with all the other rail
commuters at Town Hall; I will be able to hop on a train and meet random
office-bound friends for lunch without worrying about getting back to my office
within an hour; and even more extreme flexibility in my work hours...

&lt;p&gt; &lt;p&gt;I'm also having fanciful dreams of figuring out a way to get a little bench
or something and a laptop so I can work from the bath, but I think that's
probably not going to happen.

&lt;p&gt; &lt;p&gt;It was a pretty stressful decision, compared to my previous "career choices"
(I've never really thought in terms of trying to follow a career path and work
up the management ladder, or whatever, so the term "career choices" sounds a bit
odd to me).  WebLink to Flow, and then Flow to Sensory were both easy decisions;
neither could offer me a good prospect of long-term employment at the time I
left them for a start.  This choice wasn't so clear cut, but I think it was
probably the right one (although staying at Sensory wouldn't have been bad,
either).  It's flattering to discover I'm so employable :)

&lt;p&gt; &lt;p&gt;I'm also looking forward to having a little more time for Twisted again; I've
been neglecting it a little.  My main contribution recently is probably helping
Mary with random annoyances that she's bumped into while revamping the software
for her website... actually, I have also participated in a couple of discussions
on IRC and on the list which have been interesting, but talk doesn't really
compare to code.

&lt;p&gt; &lt;p&gt;So, in short: Life is good.
</description>
    </item>
    <item>
      <pubDate>Thu, 25 Mar 2004 02:18:42 GMT</pubDate>
      <title>25 Mar 2004</title>
      <link>http://www.advogato.org/person/spiv/diary.html?start=14</link>
      <guid>http://www.advogato.org/person/spiv/diary.html?start=14</guid>
      <description>&lt;p&gt;&lt;b&gt;Work&lt;/b&gt;

&lt;p&gt; &lt;p&gt;I'm going to start work at a new company very soon &amp;mdash; one that isn't in
receivership.  The new job sounds like interesting work with interesting people,
and I'm looking forward to it.

&lt;p&gt; &lt;p&gt;&lt;b&gt;Archd&lt;/b&gt;

&lt;p&gt; &lt;p&gt;Exchanged emails with Colin again.  It looks like I've convinced him to use
Twisted :)

&lt;p&gt; &lt;p&gt;&lt;b&gt;Twisted&lt;/b&gt;

&lt;p&gt; &lt;p&gt;Thinking of Twisted, it very recently moved to Subversion for its version
control.  So far, the biggest problem has been fighting the urge to say "that's
fixed in CVS" or "use the latest CVS", and other phrases like that.
Unfortunately, "that's fixed in SVN" doesn't have the same ring to it.  Maybe
I'll get used to it.

&lt;p&gt; &lt;p&gt;PyCon is on again, and a good chunk of Twisted developers are there again
this year.  Unfortunately, I'm not there with them this time.  I guess there's
always next year.  At least Anthony is there as the token Aussie, and his talk
titled &lt;em&gt;"Scripting Language" My Arse: Using Python for Voice over IP&lt;/em&gt;
looks like it will be good too.
</description>
    </item>
    <item>
      <pubDate>Mon, 1 Mar 2004 14:03:56 GMT</pubDate>
      <title>1 Mar 2004</title>
      <link>http://www.advogato.org/person/spiv/diary.html?start=13</link>
      <guid>http://www.advogato.org/person/spiv/diary.html?start=13</guid>
      <description>&lt;p&gt;I spent some time catching up on a few Twisted bugs and things I'd left languishing for a while... in the end, two bugs were closed and a test fixed, plus a few odds and ends that have been on my mental todo list for some time.

&lt;p&gt; &lt;p&gt;It felt good to be productive (seeing as work is very unproductive at the moment), although the list of issues assigned to me in the bug tracker is still depressingly long (14 items, most of them several months old).

&lt;p&gt; &lt;p&gt;Part of what I did today was some gardening on my proof-of-concept inetd for Twisted, which has now matured nicely.  The core module is now almost &lt;a href="http://cvs.twistedmatrix.com/cvs/twisted/runner/inetd.py?rev=1.7&amp;content-type=text/vnd.viewcvs-markup" &gt;trivially short&lt;/a&gt;.  Seeing code develop into something clean, rather than grow into an unplanned mess is very satisfying.  Of course, there's not much need for an alternative inetd implementation, but it's nice to see that it's now dead easy to write with Twisted.
</description>
    </item>
    <item>
      <pubDate>Thu, 26 Feb 2004 04:18:48 GMT</pubDate>
      <title>26 Feb 2004</title>
      <link>http://www.advogato.org/person/spiv/diary.html?start=12</link>
      <guid>http://www.advogato.org/person/spiv/diary.html?start=12</guid>
      <description>&lt;p&gt;Woo!  &lt;a href="http://twistedmatrix.com/" &gt;Twisted&lt;/a&gt; 1.2.0 is released.  This release has a special place in my heart, because I've finally gotten my first &lt;a href="http://cvs.twistedmatrix.com/cvs/README?rev=1.240&amp;only_with_tag=release-1_2_0&amp;content-type=text/vnd.viewcvs-markup" &gt;Quote of the Release&lt;/a&gt;.</description>
    </item>
    <item>
      <pubDate>Fri, 13 Feb 2004 01:19:46 GMT</pubDate>
      <title>13 Feb 2004</title>
      <link>http://www.advogato.org/person/spiv/diary.html?start=11</link>
      <guid>http://www.advogato.org/person/spiv/diary.html?start=11</guid>
      <description>&lt;p&gt;&lt;b&gt;Zope 3 sprint&lt;/b&gt;

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;I spent most of a week in Melbourne for the &lt;a
href="http://ozzope.org/2ndsprint/2ndOzSprintWiki"&gt;2nd Australian Zope
Sprint&lt;/a&gt;.  I've been lurking on the zope3-dev mailing list for a long time,
but never really spent any effort to get familiar with Zope 3, let alone get
involved.  It's been on the infamous mental TODO list...

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;The first three days of the event were a tutorial on Zope 3 by Jim Fulton,
with regular "hands-on" sessions.  Probably the pace could've been a little
faster, but I thought the tutorial was very good, and Jim is (unsurprisingly)
very familiar with the material, and makes a good teacher.  As someone who
currently earns money developing on Zope 2, Zope 3 looks really really nice.
Trading multiple inheritance madness for interfaces and adapters looks like it's
paid off really well.

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;The next three days were the sprint.  I volunteered to work on object
location events with Mike, but that quickly turned into working on adding
"subscription" adapters to Zope's component system, because it turned out to be
a necessary prerequisite.  Jim had planned to implement partial adapters for
some time, and thought that was what we needed, but after some discussion it
became clear that there were two different behaviours, and we decided to call
the one we needed "subscription adapters".  Partial adapters can wait until
another day, but hopefully some of our work can be reused for that.

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;We got to the point where we had largely implemented the ability to use
subscription multiadapters to replace the IAddNotifiable interface &amp;mdash; so that
code can register an interest in, say, "object moved" events for a specific
instance, or maybe all objects of a certain type, by registering a subscription
adapter from (SomeObjectType, IObjectMovedEvent) to ISubscription.  The previous
scheme required that an object implemented IAddNotifiable, which doesn't help
much if a third-party object, like a catalog, wants to know about events on an
object.  Unfortunately, we didn't get as far as converting any existing uses to
the new infrastructure.  I hope to get around to finishing that soon.

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;Every night we went out for dinner at a cafe or restaurant somewhere.
Usually we'd go to somewhere on or near Lygon St, which was packed with Italian
restaurants and was the closest place.  Eating out with people is always
enjoyable; it's a pity I can't really afford to do it all the time.  It suits
lazy people that enjoy eating (like me) very well :)  It's also a very pleasant
way to spend some time with interesting people you meet at conferences like
these.  I find pubs and bars tend to be too noisy to allow groups of more than 3
or 4 to talk meaningfully.  Thinking of people, it's good to have finally met
Anthony, who is a fellow Australian Twisted hacker... if you're going to PyCon,
make sure you see his talk on &lt;a href="http://shtoom.sf.net" &gt;shtoom&lt;/a&gt; titled
"Scripting Language My Arse".

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;&lt;b&gt;Planet Twisted&lt;/b&gt;

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;Thanks to &lt;a href="http://www.advogato.org/person/hypatia/" &gt;hypatia&lt;/a&gt;, Twisted has joined the planetary system
with &lt;a href="http://planet.twistedmatrix.com/" &gt;Planet Twisted&lt;/a&gt;.  This entry
is partially written just so that I will finally appear on it, even though it's
barely related to Twisted ;)

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;&lt;b&gt;Random&lt;/b&gt;

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;Post Linux.conf.au, I was nicely energised for random projects.  I mucked
about with glade a bit (with no actual results &amp;mdash; yet), and played with D-BUS's
python bindings, which are written in Pyrex, so I got an excuse to learn that,
too.  Unfortunately, starting lots of cool mini-projects isn't the same as 
finishing them.  I need to find some motivation to sit down and do that at some
point.  Wanting to port small(ish) projects like &lt;a
href="http://sf.net/projects/pydhcpd"&gt;pyDHCPd&lt;/a&gt; and archd to Twisted [Memo to
the universe: Python probably doesn't need yet another networking framework.
Please look around before writing your own] gives me more things to start,
rather than more time to finish what I've already started.  Hopefully I'll
manage to finish a few things soon.

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;&lt;b&gt;Work&lt;/b&gt;

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;Blah.  The current situation is pretty demotivating, but it should all be
resolved, one way or another, soon.  Life goes on.
</description>
    </item>
    <item>
      <pubDate>Sat, 25 Oct 2003 03:40:45 GMT</pubDate>
      <title>25 Oct 2003</title>
      <link>http://www.advogato.org/person/spiv/diary.html?start=10</link>
      <guid>http://www.advogato.org/person/spiv/diary.html?start=10</guid>
      <description>&lt;p&gt;&lt;a href="http://www.advogato.org/person/RickMuller/" &gt;RickMuller&lt;/a&gt;:

&lt;p&gt; &lt;p&gt;Rather than compare and contrast, I'll just add to the problem -- there's also &lt;a href="http://epydoc.sourceforge.net" &gt;epydoc&lt;/a&gt;, which &lt;a href="http://www.advogato.org/proj/Twisted/" &gt;Twisted&lt;/a&gt; &lt;a href="http://twistedmatrix.com/documents/TwistedDocs/current/api/" &gt;uses&lt;/a&gt;.</description>
    </item>
    <item>
      <pubDate>Mon, 19 May 2003 05:13:03 GMT</pubDate>
      <title>19 May 2003</title>
      <link>http://www.advogato.org/person/spiv/diary.html?start=9</link>
      <guid>http://www.advogato.org/person/spiv/diary.html?start=9</guid>
      <description>&lt;p&gt;&lt;a href="http://www.advogato.org/person/bigbuba/" &gt;bigbuba&lt;/a&gt; mentions an IDE with support for no overlapping windows:

&lt;p&gt; &lt;cite&gt;Just like tab support in the window manager, this might be tough to implement. Anybody take that as a challenge?&lt;/cite&gt;

&lt;p&gt; &lt;p&gt;It's already been done; I've used it for ages.  It's called &lt;a href="http://modeemi.cs.tut.fi/~tuomov/ion/" &gt;ion&lt;/a&gt;.  The development version is very slick -- you can have PWM-style (i.e. normal floating, overlapping windows) workspaces as well as ion's normal no-overlapping windows workspaces at the same time.

&lt;p&gt; &lt;p&gt;In other news, &lt;a href="http://twistedmatrix.com/" &gt;Twisted&lt;/a&gt; just keeps on getting better and better... Woven is now one of the best documented parts of Twisted, rather than one of the worst.  Also, I started reading and posting to comp.lang.python several months ago so I could point people to Twisted when appropriate -- and mostly, I don't need to.  The comp.lang.python regulars are cheerily recommending it already.

&lt;p&gt; &lt;p&gt;And best of all, I got an awesome tshirt while at PyCon featuring artwork from &lt;a href="http://isometric.spaceninja.com/" &gt;isometric&lt;/a&gt;'s &lt;a href="http://isometric.spaceninja.com/_/twisted_plutonium/" &gt;Twisted-inspired strip&lt;/a&gt;.  Life's good.</description>
    </item>
    <item>
      <pubDate>Fri, 22 Nov 2002 11:41:51 GMT</pubDate>
      <title>22 Nov 2002</title>
      <link>http://www.advogato.org/person/spiv/diary.html?start=8</link>
      <guid>http://www.advogato.org/person/spiv/diary.html?start=8</guid>
      <description>&lt;p&gt;&lt;b&gt;&lt;a href="http://www.advogato.org/person/robilad/" &gt;robilad&lt;/a&gt;:&lt;/b&gt;

&lt;p&gt; &lt;p&gt; &lt;p&gt;&lt;i&gt;Seems like I need to have a look at a reasonable documentation system that will let me generate man pages, info files, HTML and pdf docs all from one source.&lt;/i&gt;

&lt;p&gt; &lt;p&gt; &lt;p&gt;I recommend &lt;a href="http://twistedmatrix.com/" &gt;Twisted&lt;/a&gt;'s Lore package, which will be part of the imminent 1.0.1.  Lore can output HTML and LaTeX (and thus ps and pdf) from XHTML source.  Actually, it's a subset of XHTML, and it uses the &lt;tt&gt;class&lt;/tt&gt; attribute alot to provide semantic rather than presentational markup, e.g:

&lt;p&gt; &lt;p&gt; &lt;blockquote&gt;
&lt;pre&gt;... will return a &amp;lt;code class="API" base="twisted.internet.defer"&amp;gt;Deferred&amp;lt;/code&amp;gt;.&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt; &lt;p&gt; &lt;p&gt;or:

&lt;p&gt; &lt;p&gt; &lt;blockquote&gt;
&lt;pre&gt;You can footnote&amp;lt;span class="footnote"&amp;gt;This is a footnote.&amp;lt;/span&amp;gt; text.&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt; &lt;p&gt; &lt;p&gt;It's currently geared towards Python docs, i.e. it can pretty-print python code and automatically link API references to &lt;a href="http://epydoc.sf.net/" &gt;epydoc&lt;/a&gt;'s output, but is easily extensible.  Docbook output is in the works (which in turn provides for info pages), and we have a man2lore utility, which is simple but sufficient for Twisted's manpages.

&lt;p&gt; &lt;p&gt; &lt;p&gt;It does nice things like turn relative links to other HTML files into LaTeX cross-references, and so forth.  It automatically creates a table of contents for the HTML output based on your &lt;tt&gt;H1&lt;/tt&gt;, &lt;tt&gt;H2&lt;/tt&gt;, etc tags.  And a nice side-effect of using XHTML as source means that the unprocessed source document is directly viewable (although occasionally ugly, such as with footnotes (but stylesheets can help)), which is handy.

&lt;p&gt; &lt;p&gt; &lt;p&gt;It's also quite small; there's only about 600 lines of source that does all this, and it includes a lint utility!  So, it shouldn't be too scary to work with, even if you don't know Python.  Feel free to ask about it on #twisted (on freenode) or the mailing list if you're interested, we'd be happy to help.

&lt;p&gt; &lt;p&gt; &lt;p&gt;&lt;b&gt;Hacking:&lt;/b&gt;

&lt;p&gt; &lt;p&gt; &lt;p&gt;I was going to talk about the fun I've been having working on Lore, but I think I've probably covered that quite well already for this entry :)
</description>
    </item>
    <item>
      <pubDate>Sun, 10 Nov 2002 10:59:20 GMT</pubDate>
      <title>10 Nov 2002</title>
      <link>http://www.advogato.org/person/spiv/diary.html?start=7</link>
      <guid>http://www.advogato.org/person/spiv/diary.html?start=7</guid>
      <description>&lt;p&gt;&lt;b&gt;&lt;a href="http://www.advogato.org/person/jds/" &gt;jds&lt;/a&gt;:&lt;/b&gt;

&lt;p&gt; &lt;p&gt;Woah.  Chill.

&lt;p&gt; &lt;p&gt;You're missing the point.  It's "HOWTO Encourage Women In Linux".  Not "HOWTO Make Linux a Feminist Battleground" or "HOWTO Use Linux to Overthrow the Patriarchy".  Val's HOWTO isn't there because Linux is meant to be about gender issues.  It's there because there's less women involved in Linux than there could be.  Don't misrepresent the message or intent of the HOWTO -- that wouldn't be truth, would it?

&lt;p&gt; &lt;p&gt;And you've got it backwards, anyway.  The problem isn't a HOWTO that you fear will "Make Linux about gender."  Of course gender should be irrelevant to Linux -- so why does the HOWTO exist?

&lt;p&gt; &lt;p&gt;It's because some people in the Linux, unwittingly or not, &lt;em&gt;do&lt;/em&gt; make gender an issue.  They treat women differently, make them feel uncomfortable, unwelcomed or even threatened.  That, I think, is why Val wrote the HOWTO: to point out this problem and give ideas on how to correct it, so that gender isn't an issue for Linux.  I think you, me and Val all agree that this is the way it should be.

&lt;p&gt; &lt;p&gt;&lt;b&gt;Hacking:&lt;/b&gt;

&lt;p&gt; &lt;p&gt;Twisted 1.0 has been out for a while and no show-stoppers have been found... in fact the response has been quite positive.  It's great to see the mailing-list become more active -- we're obviously getting more users.

&lt;p&gt; &lt;p&gt;1.0.1 is slowly arriving, with lots of nice little bits and pieces: the UDP API is better and will probably be marked stable soon, and the documentation is &lt;em&gt;much&lt;/em&gt; better, in quantity, quality and presentation.  It's been fun working with &lt;a href="http://www.advogato.org/person/moshez/" &gt;moshez&lt;/a&gt; on the doc generation stuff (which will be in the &lt;tt&gt;twisted.lore&lt;/tt&gt; package of 1.0.1).

&lt;p&gt; &lt;p&gt;Oh! -- and &lt;a href="http://www.advogato.org/person/z3p/" &gt;z3p&lt;/a&gt;'s ssh implementation, &lt;tt&gt;twisted.conch&lt;/tt&gt;, is rocking.  The client works beautifully -- running terminal programs, or doing CVS checkouts, or whatever.  I still find it to be amazingly cool.</description>
    </item>
    <item>
      <pubDate>Sun, 22 Sep 2002 15:41:36 GMT</pubDate>
      <title>22 Sep 2002</title>
      <link>http://www.advogato.org/person/spiv/diary.html?start=6</link>
      <guid>http://www.advogato.org/person/spiv/diary.html?start=6</guid>
      <description>&lt;p&gt;&lt;b&gt;&lt;a href="http://www.advogato.org/person/dopey/" &gt;dopey&lt;/a&gt; writes:&lt;/b&gt;

&lt;p&gt; &lt;p&gt;&lt;i&gt;What do you do, on an open source project, where the author takes in any patches that you submit, uses them, but fails to credit you in any way?&lt;/i&gt;

&lt;p&gt; &lt;p&gt;Submit a patch to update the CREDITS file, of course ;)

&lt;p&gt; &lt;p&gt;&lt;b&gt;Work&lt;/b&gt;&lt;p&gt;

&lt;p&gt; &lt;p&gt;I'm starting to feel comfortable at my new job, although I'm still discovering new things about Zope...

&lt;p&gt; &lt;p&gt;&lt;b&gt;Twisted&lt;/b&gt;&lt;p&gt;

&lt;p&gt; &lt;p&gt;1.0 is taking a little longer to happen than originally planned, but is very close now.

&lt;p&gt; &lt;p&gt;Recently I wrote an &lt;tt&gt;inetd(8)&lt;/tt&gt; replacement for Twisted, mainly as a practical example of how to write a superserver that spawns child processes.  It was liked enough that it was given its own subpackage, rather than being buried in the doc/examples directory.  I'm happy that it's a fairly short and mostly functional implementation of inetd.

&lt;p&gt; &lt;p&gt;I was disappointed that I had to resort to writing a C extension module for part of setting up Sun-RPC services (for the &lt;tt&gt;pmap_set(3)&lt;/tt&gt; function), and they still don't quite work properly.  I'm not sure where to find documentation on how an inetd implementation should run rpc services, although I'm sure it's out there (yes, I've looked at the &lt;tt&gt;inetd(8)&lt;/tt&gt; source in Debian, but not know the first thing about Sun-RPC, it didn't really help).</description>
    </item>
  </channel>
</rss>
