<?xml version="1.0"?>
<rss version="2.0.">
  <channel>
    <title>Advogato blog for joolean</title>
    <link>http://www.advogato.org/person/joolean/</link>
    <description>Advogato blog for joolean</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Fri, 25 Jul 2008 20:16:43 GMT</pubDate>
    <item>
      <pubDate>Fri, 18 Jul 2008 21:38:57 GMT</pubDate>
      <title>18 Jul 2008</title>
      <link>http://www.advogato.org/person/joolean/diary.html?start=55</link>
      <guid>http://www.advogato.org/person/joolean/diary.html?start=55</guid>
      <description>I'll be tabling with the FSF at the &lt;a href="http://www.thelasthope.org/" &gt;HOPE conference&lt;/a&gt;&#xD;
tomorrow afternoon between 2:30 and 5:30 and all of Sunday&#xD;
afternoon.  Drop by and say hi!</description>
    </item>
    <item>
      <pubDate>Thu, 26 Jun 2008 23:28:42 GMT</pubDate>
      <title>26 Jun 2008</title>
      <link>http://www.advogato.org/person/joolean/diary.html?start=54</link>
      <guid>http://www.advogato.org/person/joolean/diary.html?start=54</guid>
      <description>&lt;strong&gt;ZaReason&lt;/strong&gt;&#xD;
&#xD;
&lt;p&gt; Forgot to mention this earlier, but as a present to myself&#xD;
for making it through a crunch at work, I bought a new&#xD;
laptop.  It wasn't just that, though -- the ol' StinkPad,&#xD;
while still probably the nicest machine I've ever owned, was&#xD;
showing its age (4+ years): Inexplicable random shutdowns,&#xD;
spontaneous WiFi disconnects, worn-out mouse button, I&#xD;
couldn't burn CDs any more, and then the backlight in the&#xD;
screen went out.&#xD;
&#xD;
&lt;p&gt; I'd seen someone at this year's FSF meeting who'd&#xD;
recommended &lt;a href="http://www.zareason.com/" &gt;ZaReason&lt;/a&gt;,&#xD;
so I headed over to their web site and bought the &lt;a href="http://www.zareason.com/shop/product.php?productid=16159&amp;cat=0&amp;page=1" &gt;UltraLapSR&lt;/a&gt;.&#xD;
 It's fantastic!  Like they promised, all advertised&#xD;
features Just Work (suspend, hibernate, etc.), and the thing&#xD;
is fast as hell.  I've finally got a laptop with a prettier&#xD;
UI than my girlfriend's MacBook Pro. &#xD;
&#xD;
&lt;p&gt; R.I.P. smokebottle, long live countyhell!</description>
    </item>
    <item>
      <pubDate>Sun, 25 May 2008 04:27:53 GMT</pubDate>
      <title>25 May 2008</title>
      <link>http://www.advogato.org/person/joolean/diary.html?start=53</link>
      <guid>http://www.advogato.org/person/joolean/diary.html?start=53</guid>
      <description>&lt;strong&gt;SRFI-18&lt;/strong&gt;&#xD;
&#xD;
&lt;p&gt; It really was the last go-round!  Neil checked in the Scheme&#xD;
side of my &lt;a href="http://srfi.schemers.org/srfi-18/srfi-18.html" &gt;SRFI-18&lt;/a&gt;&#xD;
implementation early this morning, capping off almost eight&#xD;
months of revisions (and a 75-message-long discussion thread&#xD;
on &lt;code&gt;guile-devel&lt;/code&gt;).  That duration is a comment&#xD;
not only on the complexity of the specification and the&#xD;
depth of the changes required, but also on how rough the&#xD;
original patch was: I didn't fully understand Guile's&#xD;
threading system at the time, much less the rhythm of&#xD;
interactions such as the ones between individual threads and&#xD;
the garbage collector.  So thanks are due to Neil and&#xD;
Ludovic for being nice about things the whole time and&#xD;
helping me get the thing marginally polished.  There are&#xD;
undoubtedly bugs -- including, apparently, some kind of&#xD;
deadlock that can show up during &lt;code&gt;make check&lt;/code&gt;,&#xD;
but the majority of the work is done.&#xD;
&#xD;
&lt;p&gt; ...Which means it's in, now, and if you're developing with&#xD;
the 1.9.0 series, you can start using it.  Like I've said&#xD;
before, I think SRFI-18 is pretty important -- a development&#xD;
platform having a robust and standards-compliant threading&#xD;
implementation is crucial to being able to develop&#xD;
applications of any real complexity on it.  Hopefully this&#xD;
will make Guile more attractive to developers and make it&#xD;
less difficult to port standards-dependent projects like &lt;a href="http://snow.iro.umontreal.ca/" &gt;Snow&lt;/a&gt; to it.&#xD;
&#xD;
&lt;p&gt; &lt;strong&gt;SRFI-89&lt;/strong&gt;&#xD;
&#xD;
&lt;p&gt; I spent some time cooking up a translation layer to convert&#xD;
&lt;a href="http://srfi.schemers.org/srfi-89/srfi-89.html" &gt;SRFI-89&lt;/a&gt;&#xD;
optional/keyword argument specifications to the format&#xD;
already supported by Guile's &lt;code&gt;(ice-9 optargs)&lt;/code&gt;&#xD;
module.  Unfortunately, that module has some&#xD;
incompatibilities that I don't think are surmountable (e.g.,&#xD;
all required arguments must be passed before any of the&#xD;
optional/keyword ones or the argument-binding system gets&#xD;
confused).  Fortunately, Marc Feeley's spec includes a&#xD;
reference implementation that might be usable in a drop-in&#xD;
way.  Disappointing that I can't use my convoluted (but more&#xD;
compact) approach, but maybe that's for the best.</description>
    </item>
    <item>
      <pubDate>Mon, 28 Apr 2008 05:23:58 GMT</pubDate>
      <title>28 Apr 2008</title>
      <link>http://www.advogato.org/person/joolean/diary.html?start=52</link>
      <guid>http://www.advogato.org/person/joolean/diary.html?start=52</guid>
      <description>&lt;strong&gt;SRFI-18&lt;/strong&gt;&#xD;
&#xD;
&lt;p&gt; Sent the final patches in (including the Scheme&#xD;
implementation stuff and the test suite) on the 13th. &#xD;
Hopefully this'll be the last go-round -- well, the last&#xD;
go-round before it's done, you know, as a feature.  There're&#xD;
certainly some bugs in there.&#xD;
&#xD;
&#xD;
&lt;p&gt; &lt;strong&gt;SRFI-88&lt;/strong&gt;&#xD;
&#xD;
&lt;p&gt; Ludovic just committed a patch I made to Guile's reader a&#xD;
while back that lets you use postfix colons to signify&#xD;
keywords (e.g., foo:), and tacked on a trivial&#xD;
implementation of SRFI-88 that just sets the appropriate&#xD;
`(reader-options)' flag.  Not having compatible&#xD;
keyword-parsing was standing in the way of some other cool&#xD;
stuff, notably &lt;a href="http://srfi.schemers.org/srfi-89/" &gt;SRFI-89&lt;/a&gt;&#xD;
(Optional positional and named parameters) and &lt;a href="http://srfi.schemers.org/srfi-90/" &gt;SRFI-90&lt;/a&gt;&#xD;
(Extensible hash table constructor).  I'm working on a&#xD;
SRFI-89 implementation now in the form of a conversion layer&#xD;
for Guile's (ice-9 optargs) module.&#xD;
&#xD;
&lt;p&gt; In other exciting(-ish) news, it &lt;a href="http://www.nabble.com/let%27s-bytecode-it!-td16884906.html" &gt;looks&#xD;
like&lt;/a&gt; Ludovic and Andy Wingo are going to revive&#xD;
Guile-VM, possibly for inclusion in 1.10.  Rock!</description>
    </item>
    <item>
      <pubDate>Fri, 14 Mar 2008 17:04:46 GMT</pubDate>
      <title>14 Mar 2008</title>
      <link>http://www.advogato.org/person/joolean/diary.html?start=51</link>
      <guid>http://www.advogato.org/person/joolean/diary.html?start=51</guid>
      <description>&lt;strong&gt;Cambridge&lt;/strong&gt;&#xD;
&#xD;
&lt;p&gt; Who's coming to the FSF Associate Members meeting tomorrow?&#xD;
 Come on, Advogatters, let's see a show of hands.  (I'll&#xD;
only be staying 'til 4:00, though, 'cuz I have to hop the&#xD;
Acela back to NYC to catch The Pogues!)</description>
    </item>
    <item>
      <pubDate>Sun, 9 Mar 2008 23:12:11 GMT</pubDate>
      <title>9 Mar 2008</title>
      <link>http://www.advogato.org/person/joolean/diary.html?start=50</link>
      <guid>http://www.advogato.org/person/joolean/diary.html?start=50</guid>
      <description>&lt;strong&gt;SRFI-18&lt;/strong&gt;&#xD;
&#xD;
&lt;p&gt; Whee -- the second of the three SRFI-18 patches has just&#xD;
been committed to Guile HEAD.  This one was a doozy, and&#xD;
included a bunch of additions to the core threading API. &#xD;
Specifically, the following functions are now available for&#xD;
use: &lt;code&gt;scm_join_thread_timed&lt;/code&gt;,&#xD;
&lt;code&gt;scm_thread_p&lt;/code&gt;,&#xD;
&lt;code&gt;scm_make_mutex_with_flags&lt;/code&gt;,&#xD;
&lt;code&gt;scm_lock_mutex_timed&lt;/code&gt;,&#xD;
&lt;code&gt;scm_unlock_mutex_timed&lt;/code&gt;,&#xD;
&lt;code&gt;scm_mutex_p&lt;/code&gt;, and&#xD;
&lt;code&gt;scm_condition_variable_p&lt;/code&gt;.  In addition to&#xD;
providing the groundwork for a full Scheme implementation of&#xD;
SRFI-18, I think these functions bring Guile's threading API&#xD;
comparably up to date with most other modern, you know,&#xD;
&lt;i&gt;commodity&lt;/i&gt; language platforms.&#xD;
&#xD;
&lt;p&gt; One of the neat things that came out of this round of&#xD;
discussion and debugging is that, as kind of pointed out by&#xD;
Marc Feeley's SRFI-18 spec, waiting on a condition variable&#xD;
is actually a special case of mutex unlocking.&#xD;
&#xD;
&lt;p&gt; Next up: The Scheme parts of SRFI-18.  This should come&#xD;
fairly quickly, given that it's already written -- and that&#xD;
Scheme's far less brittle than C when it comes to refactoring.&#xD;
&#xD;
&#xD;
&lt;p&gt; &lt;strong&gt;The big blue (server) room&lt;/strong&gt;&#xD;
&#xD;
&lt;p&gt; I spent yesterday (Saturday) in the office, helping my boss&#xD;
build a rack for our servers, something neither of us had&#xD;
ever done before.  The process involved completely&#xD;
dismantling the network used by our company (and the two&#xD;
other companies we share space with); dismantling the&#xD;
existing rack; building our new rack; hastily purchasing&#xD;
underpowered power tools to drill holes into the hardwood&#xD;
floors to brace the thing; painstakingly hooking everything&#xD;
back up according to the notes I'd taken; having nothing&#xD;
work right; panicking; finally realizing at midnight that&#xD;
there was a bad Ethernet cable between the T1 and the&#xD;
switch; celebrating.&#xD;
&#xD;
&lt;p&gt; Woke up at 2:00 PM today, still groggy, all the muscles in&#xD;
my back cramped to hell.</description>
    </item>
    <item>
      <pubDate>Thu, 7 Feb 2008 05:06:33 GMT</pubDate>
      <title>7 Feb 2008</title>
      <link>http://www.advogato.org/person/joolean/diary.html?start=49</link>
      <guid>http://www.advogato.org/person/joolean/diary.html?start=49</guid>
      <description>&lt;strong&gt;SRFI-18&lt;/strong&gt;&#xD;
&#xD;
&lt;p&gt; Because this is still novel for me: Neil just committed the&#xD;
first of the trifecta of patches necessary to add SRFI-18&#xD;
support to Guile.  This one includes fixes for a couple of&#xD;
deadlocks related to thread creation and cleanup.  We&#xD;
discussed the inclusion of a fix for another deadlock&#xD;
related to waiting a condition variable using an&#xD;
inconsistent set of mutexes, but I think that one's going to&#xD;
have to wait.  Next on the docket: The enhancements that&#xD;
provide the C foundation for the pure Scheme SRFI-18&#xD;
implementation.</description>
    </item>
    <item>
      <pubDate>Sun, 3 Feb 2008 05:59:39 GMT</pubDate>
      <title>3 Feb 2008</title>
      <link>http://www.advogato.org/person/joolean/diary.html?start=48</link>
      <guid>http://www.advogato.org/person/joolean/diary.html?start=48</guid>
      <description>Hey-O!  It's been a real long time.  I got a new job, and&#xD;
now I am busy all the time.  Happy New Year, software hippies!&#xD;
&#xD;
&lt;p&gt; &lt;strong&gt;SRFI-18&lt;/strong&gt;&#xD;
&#xD;
&lt;p&gt; A lot of work, but not a whole lot of progress on this&#xD;
front.  Submitted an implementation, which involved a lot of&#xD;
changes to Guile C and Scheme; Neil Jerram wisely pointed&#xD;
out that it really belonged in several separate patches. &#xD;
What ought to go in each of them has been a subject of&#xD;
discussion on &lt;a href="http://mail.gnu.org/pipermail/guile-devel/" &gt;guile-devel&lt;/a&gt;&#xD;
for the past month or so.  I think we are making some&#xD;
headway -- I will keep the 'gato informed.</description>
    </item>
    <item>
      <pubDate>Wed, 7 Nov 2007 17:09:31 GMT</pubDate>
      <title>7 Nov 2007</title>
      <link>http://www.advogato.org/person/joolean/diary.html?start=47</link>
      <guid>http://www.advogato.org/person/joolean/diary.html?start=47</guid>
      <description>&lt;strong&gt;Scheme&lt;/strong&gt;&#xD;
&#xD;
&lt;p&gt; Over the past few weeks I've done a lot of work in&#xD;
&lt;a href="http://www.advogato.org/proj/Guile/" &gt;Guile&lt;/a&gt;. &#xD;
Highlights:&#xD;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;SRFI-18&lt;/strong&gt;: Rewrote the fat mutex&#xD;
system and added timeouts for a number of the blocking&#xD;
thread calls in C -- this provided the necessary support for&#xD;
the full Scheme implementation of &lt;a&#xD;
href="http://srfi.schemers.org/srfi-18/srfi-18.html"&gt;SRFI-18&lt;/a&gt;&#xD;
I wrote.  Also did&#xD;
a test suite.  An exhausting&#xD;
experience!&lt;li&gt;&lt;strong&gt;SRFI-88&lt;/strong&gt;: I came up with&#xD;
a small patch that lets Guile's reader understand the&#xD;
&lt;a&#xD;
href="http://srfi.schemers.org/srfi-88/srfi-88.html"&gt;colon-postfix&#xD;
format&lt;/a&gt; for self-quoting&#xD;
keywords.&lt;li&gt;&lt;strong&gt;Snowflake&lt;/strong&gt;: A small, buggy&#xD;
&lt;a&#xD;
href="https://webmail.iro.umontreal.ca/pipermail/snow-users-list/2007-November/000114.html"&gt;Guile&#xD;
module&lt;/a&gt; for converting and loading snowballs "natively"&#xD;
-- that is, as if they were Guile modules.&lt;/ul&gt;These&#xD;
projects have given me a newfound appreciation for how&#xD;
robust Guile's codebase actually is.  But I'd like to get&#xD;
back to my other projects now, specifically&#xD;
&lt;a href="http://www.advogato.org/proj/libRUIN/" &gt;libRUIN&lt;/a&gt;, which I was on the verge of releasing&#xD;
a few months ago when I made one of my periodic decisions&#xD;
that &lt;a href="http://www.advogato.org/proj/SCSS/" &gt;SCSS&lt;/a&gt; was too slow to server as its CSS&#xD;
system... which led me to want to seriously profile it...&#xD;
which meant I wanted to use MzScheme's profiling tools&#xD;
instead of statprof... which meant I had to port it to&#xD;
PLT... which got me interested in all of these&#xD;
cross-interpreter compatibility issues in the first place. &#xD;
It's funny how attention works.</description>
    </item>
    <item>
      <pubDate>Sat, 20 Oct 2007 22:33:03 GMT</pubDate>
      <title>20 Oct 2007</title>
      <link>http://www.advogato.org/person/joolean/diary.html?start=46</link>
      <guid>http://www.advogato.org/person/joolean/diary.html?start=46</guid>
      <description>&lt;strong&gt;Today I am a man&lt;/strong&gt;&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; &lt;p&gt; ...and it only took 26 years!  Ludovic Court&amp;egrave;s&#xD;
has just&#xD;
applied my thread cancellation patch -- my first patch&#xD;
accepted, ever -- to the &lt;a&#xD;
href="http://cvs.savannah.gnu.org/viewvc/guile/guile-core/libguile/ChangeLog?root=guile&amp;r1=1.2412&amp;r2=1.2413"&gt;HEAD&lt;/a&gt;&#xD;
of &lt;a&#xD;
href="http://www.gnu.org/software/guile/"&gt;GNU Guile&lt;/a&gt;.&#xD;
 It took me forever to get working, and then another week or&#xD;
two of hand-wringing over copyright assignment and the&#xD;
disclaimer from my employer, but it's in!  Thanks are due to&#xD;
Ludovic, whose patience was... epic.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; &lt;p&gt; This paves the way for the implementation of &lt;a&#xD;
href="http://srfi.schemers.org/srfi-18/srfi-18.html"&gt;SRFI-18&lt;/a&gt;&#xD;
that I'm working on, which I think will be pretty useful in&#xD;
terms of making Guile more competitive with other Scheme&#xD;
platforms.&#xD;
</description>
    </item>
  </channel>
</rss>
