<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for jdhildeb</title>
    <link>http://www.advogato.org/person/jdhildeb/</link>
    <description>Advogato blog for jdhildeb</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Thu, 23 May 2013 17:49:09 GMT</pubDate>
    <item>
      <pubDate>Fri, 30 Jan 2004 17:47:22 GMT</pubDate>
      <title>30 Jan 2004</title>
      <link>http://www.advogato.org/person/jdhildeb/diary.html?start=8</link>
      <guid>http://www.advogato.org/person/jdhildeb/diary.html?start=8</guid>
      <description>&lt;p&gt;&lt;strong&gt;Why I eschew Hollywood&lt;/strong&gt;&lt;p&gt;
Watched Pirates of the Caribbean last night -- the first "mainstream" movie I've seen in a year or two.  Every now and then it's nice to watch a mainstream Hollywood movie just to reconfirm why I generally choose to watch independent or foreign films:&lt;p&gt;
1. I prefer films with substance.  A movie which, at its essence, consists largely of elaborately choreographed battle scenes is very impressive visually, but ultimately unsatisfying.&lt;p&gt;
2. It's nice when a movie has a female character, not just a female plot device.  There's a difference.&lt;p&gt;
3. It's nice to &lt;a href="http://www.imdb.com/title/tt0211915/" &gt;watch something creative&lt;/a&gt;, and not just a rehash of a tried-and-true provably-profitable recipe.  It seems to me like every Disney movie can be reduced to the same old story, told over and over by different characters set in different venues.</description>
    </item>
    <item>
      <pubDate>Tue, 27 Jan 2004 19:53:29 GMT</pubDate>
      <title>27 Jan 2004</title>
      <link>http://www.advogato.org/person/jdhildeb/diary.html?start=7</link>
      <guid>http://www.advogato.org/person/jdhildeb/diary.html?start=7</guid>
      <description>&lt;p&gt;As a Canadian expecting to have to buy a newer car this year, I've been doing some research as to what kind of car to look for.  Of course both gas/electric hybrids and vehicles using alternative fuels (compressed natural gas) are very clean, but for the amount we use the car (very little), I decided it's not worth it for us to spend that much money on a car.&lt;p&gt;
Instead, I've been trying to find out whether or not I should favour a diesel vehicle.  Sure diesel engines use less fuel, but do they produce less emissions?  Are the emissions overall more or less harmful than those from gasoline engines?&lt;p&gt;
First, I found out that both the Canadian and US governments are &lt;a href="http://eastern.sierraclub.ca/pdf/ExecutiveSummary.pdf" &gt;aiming to clean up diesel emissions&lt;/a&gt;, which would be done by installing particulate filters on diesel vehicles.  However, these filters will only be introduced  once ultra-low sulphur diesel fuel becomes widespread, because this is a prerequisite for the filters to work effectively. Government legislation comes into effect (in Canada) in 2006 which requires refiners and importers to reduce sulphur content to ultra-low levels, and the first vehicles with "advanced emission control technologies" (particulate filters) &lt;a href="http://www.ec.gc.ca/air/PM_resp_03/s2_e.html" &gt;will not be available until at least 2007&lt;/a&gt;.&lt;p&gt;
Second, I was curious to know how current diesel emissions compare to gasoline emissions.  The EPA &lt;a href="http://www.epa.gov/greenvehicles/" &gt;produces a listing&lt;/a&gt; of vehicles rated by emissions on a scale of 1-10 (10 being the "cleanest").  I noted that there are only gasoline vehicles in the 7-10 range; the cleanest diesel (the New Volkswagen Beetle) is rated only 6 out of 10.&lt;p&gt;
My conclusion is that at least in the short term (the next 3-5 years), gasoline is favourable over diesel in terms of emissions.  Even after 2006, when ultra-low sulphur becomes the norm, an existing diesel vehicle would need to be retrofitted with a particulate filter in order to reduce emissions.  And as this will be very new technology, it will likely be expensive to have this done.</description>
    </item>
    <item>
      <pubDate>Fri, 12 Dec 2003 21:04:39 GMT</pubDate>
      <title>12 Dec 2003</title>
      <link>http://www.advogato.org/person/jdhildeb/diary.html?start=6</link>
      <guid>http://www.advogato.org/person/jdhildeb/diary.html?start=6</guid>
      <description>&lt;p&gt;Never really got into blogging, but after learning of &lt;a href="http://www.gnomedesktop.org/article.php?sid=1523&amp;mode=thread&amp;order=0" &gt;Ettore's passing&lt;/a&gt; today I was moved to read some of his friends' &lt;a href="http://www.gnome.org/~jdub/planetgnome/" &gt;memories about him&lt;/a&gt;.  I like the way people use blogs to connect with each other, and get to know each other (I also find it cool the way Planet Gnome aggregates lots of different blogs into one using RSS).&lt;p&gt;
I never met Ettore myself, but I did trade a few emails with him when working on &lt;a href="http://www.opensky.ca/gnome-vim" &gt;gnome-vim&lt;/a&gt;.  I remember reading his blog back a couple of years ago when I was getting to know the names of people in the gnome community, and feeling like I got to know him a little bit.&lt;p&gt;
</description>
    </item>
    <item>
      <pubDate>Sat, 18 May 2002 20:43:40 GMT</pubDate>
      <title>18 May 2002</title>
      <link>http://www.advogato.org/person/jdhildeb/diary.html?start=5</link>
      <guid>http://www.advogato.org/person/jdhildeb/diary.html?start=5</guid>
      <description>&lt;P&gt;&lt;B&gt;Gnome-vim&lt;/b&gt;&lt;BR&gt;

&lt;P&gt;I got replies from Michael Meeks and Maciej Stachowiak on
the gnome-components list.  Maciej pointed out the existence
of a "private" flag that can be passed by the client when 
instantiating a bonobo object, which will ensure that a new
object is created.  The drawback is that the client would
have to know to pass this parameter, and so would be somewhat
gnome-vim specific.

&lt;P&gt;A more reasonable solution, he continued, would be to write
a "proxy" factory which uses the "private" flag to instantiate
gnome-vim instances.  This means that each client would get 
a unique instance, but wouldn't have to do anything special.

&lt;P&gt;Michael encouraged me to submit a bug report about this,
so that a new feature can be added to bonobo-activation
after Gnome 2.0 is out, which will handle my case more cleanly.

&lt;P&gt;&lt;B&gt;CDBackup&lt;/b&gt;&lt;BR&gt;

&lt;P&gt;PeaceWorks has some contracts to supply public access 
workstations in Kitchener/Waterloo and Cambridge.  The platform
was (unfortunately) chosen to be Win 2000, which was beyond our control
 -- I think Linux would have been well-suited for this task.
I have been working on a useful Linux-based backup solution
for these workstations, which will likely be released as 
free software within the next few months.

&lt;P&gt;The idea is to be able to back up the complete state of 
each workstation at any point, and to be able to use these 
backups to restore a machine to a known state.  This way,
a backup can be made after the machine is installed and
configured, and the machine can always easily be restored to 
this clean, working state.  If more "standard" software is 
installed, another backup can be made.

&lt;P&gt;There is at least one &lt;a href="http://watchdogcard.com/" &gt;
hardware solution&lt;/a&gt; which offers similar 
functionality by mirroring partitions, at a cost of 
about CDN $110-115 per machine.  However, this doesn't allow 
for backups to be taken off-site.

&lt;P&gt;The key to our (cheaper) solution is that the contract calls
for each workstation to be equipped with a CD burner.  
Using &lt;a href="http://www.microwerks.net/~hugo/mindi/" &gt;Mindi&lt;/a&gt;, 
&lt;a href="http://www.python.org" &gt;Python&lt;/a&gt;, &lt;a href="ftp://dickey.his.com/dialog/dialog-0.9a-20010115.tgz" &gt;dialog&lt;/a&gt; and &lt;a href="http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html" &gt;cdrtools&lt;/a&gt;
(mkisofs and cdrecord),
I've created a bootable CDROM which will backup or restore a raw partition 
using one or more CD-R or CD-RWs.  The system can be used in "normal"
or "expert" mode.  In "normal" mode the program holds the user's hand.
All settings (i.e. the partition to back up, CD burner speed, etc.) are 
read from a config file; we wouldn't want to scare anyone off by
presenting them with a list of /dev/hda1, /dev/hda2, etc.

&lt;P&gt;There have been some interesting technical challenges to get this
system working.  The first problem was where to get the temporary space
for creating the CD images.  Mkisofs won't from read a raw device, and
won't accept a file on stdin.  One solution is to copy a chunk of the 
partition into temporary file, which mkisofs can then use to produce the
filesystem.  However, this would require a special 700 MB partition 
for temporary space on the disk, which wastes space and means the backup
solution would only work on pre-prepared systems.  

&lt;P&gt;Instead, I took a look at the mkisofs source.  For each file to be added to
the ISO filesystem, mkisofs first needs to determine its size (normally
via stat()) and later reads the entire file.  I hacked mkisofs so
that, under certain "magic" circumstances, it instead invokes a script to 
obtain the file size and the file data.  The script can use "dd" to
read a chunk of the partition.  With this piece of the puzzle in place,
it's possible to burn the CD on-the-fly with no temporary space whatsoever.

&lt;P&gt;The next challenge is to compress the data on-the-fly as well.  
The first difficulty lies in the fact
that you can't predict how large the compressed output will be unless you
compress it twice.  The second difficulty is figuring out how to compress only
part of a file, and knowing how much input was processed, so that it's
possible to later start at that point to compress the next chunk.  

&lt;P&gt;The first difficulty
is solved by always assuming the compressed output will be the size of a 
full CD.  If it turns out to be less, the output can be padded to this size.  
To solve the second problem, I wrote a small C program which uses zlib
to compress a data stream.  Zlib has an interface with which you can 
"feed" it buffers full of data, which it will then compress into your
output buffer.  When the size of the output gets close to a full CD,
I pretend that the end of input has been reached.  Then I pad the output 
to the full size.

&lt;P&gt;In summary, this project has presented some surprisingly interesting
problems.  Without the enormous base of free software with which to build
this solution, including the creation of a bootable CD, CD-burner drivers, 
on-the-fly generation of ISO filesystems, streaming compression and a 
rich enough environment from which to execute all this code, development
costs would surely have been in the tens of thousands, if not more.
I cobbled this together in 30-35 hours.  

&lt;P&gt;Standing on the shoulders of giants, 
indeed. :)
</description>
    </item>
    <item>
      <pubDate>Mon, 13 May 2002 09:33:10 GMT</pubDate>
      <title>13 May 2002</title>
      <link>http://www.advogato.org/person/jdhildeb/diary.html?start=4</link>
      <guid>http://www.advogato.org/person/jdhildeb/diary.html?start=4</guid>
      <description>&lt;strong&gt;Water&lt;/strong&gt;&lt;P&gt;

&lt;a href="http://www.advogato.org/person/walters/" &gt;walters&lt;/a&gt;: One thing that can be done to improve access to
clean water is to support (financially or otherwise) organizations which are working at this problem.&lt;P&gt;

The &lt;a href="http://www.mcc.org" &gt;Mennonite Central Committee&lt;/a&gt; (MCC) is an 
effective organization which is working at this (and many other) issues in
developing countries.  One particular aspect of how MCC works that I 
appreciate is that they don't go into a country and set up their own program.  
Rather, they coordinate and cooperate with people and groups in a country 
to help achieve common goals.  Also, MCC carries out development programs in 
North America, too (it's not like so-called "first world" countries don't 
have development problems, too).  Search google for &lt;em&gt;mcc water&lt;/em&gt;.&lt;P&gt;

I work for &lt;a href="http://www.peaceworks.ca" &gt;PeaceWorks Computer Consulting&lt;/a&gt;, which supports several non-governmental organizations (NGOs), including MCC.  In supporting these organizations we make use of and contribute to free 
software as much as we can, which makes this job doubly-satisfying.&lt;P&gt;

&lt;strong&gt;Bash&lt;/strong&gt;&lt;P&gt;

&lt;a href="http://www.caliban.org/bash/" &gt;Bash programmable completion&lt;/a&gt; is very cool, and it's 
included in the bash from debian/unstable.  I'm addicted.&lt;P&gt;
</description>
    </item>
    <item>
      <pubDate>Mon, 13 May 2002 09:22:19 GMT</pubDate>
      <title>13 May 2002</title>
      <link>http://www.advogato.org/person/jdhildeb/diary.html?start=3</link>
      <guid>http://www.advogato.org/person/jdhildeb/diary.html?start=3</guid>
      <description>&lt;strong&gt;Water&lt;/strong&gt;&lt;BR&gt;

&lt;p&gt;&lt;a href="http://www.advogato.org/person/walters/" &gt;walters&lt;/a&gt;: One thing that can be done to improve access to
clean water is to support organizations which are working at this problem 
(financially or otherwise).

&lt;P&gt;The &lt;a href="http://www.mcc.org" &gt;Mennonite Central Committee&lt;/a&gt; (MCC) is an 
effective organization which is working at this (and many other) issues in
developing countries.  One particular aspect of how MCC works that I 
appreciate is that they don't go into a country and set up their own program.  
Rather, they coordinate and cooperate with people and groups in a country 
to help achieve common goals.  Also, MCC carries out development programs in 
North America, too (it's not like so-called "first world" countries don't 
have development problems, too).

&lt;P&gt;I work for &lt;a href="http://www.peaceworks.ca" &gt;PeaceWorks Computer Consulting&lt;/a&gt;, which supports several non-governmental organizations (NGOs), including MCC.  In supporting these organizations we make use of and contribute to free 
software as much as we can, which makes this job doubly-satisfying.

&lt;strong&gt;Bash&lt;/strong&gt;&lt;BR&gt;

&lt;P&gt;&lt;a href="http://www.caliban.org/bash/" &gt;Bash programmable completion&lt;/a&gt; is very cool, and it's 
included in the bash from debian/unstable.  I'm addicted.
</description>
    </item>
    <item>
      <pubDate>Sun, 12 May 2002 16:12:30 GMT</pubDate>
      <title>12 May 2002</title>
      <link>http://www.advogato.org/person/jdhildeb/diary.html?start=2</link>
      <guid>http://www.advogato.org/person/jdhildeb/diary.html?start=2</guid>
      <description>&lt;P&gt;Well, I finally submitted my Linuxtag paper last week. 
It was a bit rushed in the end, as I was working on it at
the same time as my parents were here visiting in Germany. 
I was only able to cover WebKit and MiddleKit in the paper,
but I hope to also introduce PSP and show
&lt;a href="http://www.advogato.org/person/gtalvola/" &gt;gtalvola&lt;/a&gt;'s
XML-RPC sample in the talk.

&lt;p&gt; &lt;P&gt;Finally sat down again to work on gnome-vim yesterday.  
The idea I'm working at is to add bonobo support to the vim
itself.  Each instance of the vim control would need to be
in a separate process, though, which is different from all
the tutorials and samples I've seen so far.

&lt;p&gt; &lt;P&gt;I played around with a bonobo sample app from
&lt;a href="http://www.advogato.org/person/djcb/" &gt;djcb&lt;/a&gt;'s bonobo tutorial.

&lt;p&gt; &lt;P&gt;I diddled with the sample a bit.  I removed the factory
and start an instance of the control in main().  I changed
the .oaf file to reflect this.  Oaf was happy enough, and
when I started the container the control came up without
problems.
But when I tried to start a second instance the first
control disappeared from the container, and I had two empty
container apps running.  So it appears that oaf wanted to
start the second instance of the control from the same
process, which won't work for what I'm trying to do.

&lt;p&gt; &lt;P&gt;Now I'm struggling with how to write a factory which
spawns processes and returns their object references to oaf.
 One possibility would be to do what oaf does when
bootstrapping a factory: it gets the IOR passed back to it
from the child process via a pipe.

&lt;p&gt; &lt;P&gt;I'm pretty much out of time for this this weekend, but
I've joined the gnome-components-list and asked for
feedback, to see if my plan makes any sense at all. :) 


</description>
    </item>
    <item>
      <pubDate>Wed, 17 Apr 2002 04:08:14 GMT</pubDate>
      <title>17 Apr 2002</title>
      <link>http://www.advogato.org/person/jdhildeb/diary.html?start=1</link>
      <guid>http://www.advogato.org/person/jdhildeb/diary.html?start=1</guid>
      <description>&lt;P&gt;Had a new idea for gnome-vim yesterday.  Presently
communication between my component code and the vim instance
is limited to sending keystrokes and using the vim
client-server functionality to (for example) evaluate a vim
expression and receive the result.  Quite limited, but,
well, gnome-vim started out as a quick hack, because I
wanted to use vim with Evo.

&lt;p&gt; &lt;P&gt;Several people have asked why I don't make use the
vim-gtk code in gnome-vim.  My response has been:
&lt;ul&gt;
&lt;li&gt;the vim-gtk toolbars and menus wouldn't "just work" as a
bonobo control, because they're just straight gtk.  They'd
have to be rewritten to use bonobo so that the menus and
toolbars can be merged with the container's UI.
&lt;li&gt;gnome-vim must support multiple instances running
simultaneously, and needs to maintain communication with
each running vim instance.
&lt;/ul&gt;

&lt;p&gt; &lt;P&gt;However, I was thinking more about this second point, and
it seems that this is requirement is just due to the
structure that gnome-vim inherited from the gtkhtml control
(on which I based my initial code).

&lt;p&gt; &lt;P&gt;If instead of writing a component factory, I could simply
supply an executable which implements an interface, and oaf
should (I think) fire up an instance of the process for each
required component.  It would be an out-of-process control,
but each process would be running the vim process directly
(with corba interface implementations and bonobo stuff
added).

&lt;p&gt; &lt;P&gt;This would allow a much tighter integration with vim,
which would make it possible to support fancier interfaces.
 I envision gnome-vim being used with Anjuta: when the user
begins to type a function name, gnome-vim pops up a menu
with possible completions.

&lt;p&gt; &lt;P&gt;I'd like to move to this structure down the road, but in
the meantime I have a maintenance version to release.
</description>
    </item>
    <item>
      <pubDate>Mon, 15 Apr 2002 04:12:05 GMT</pubDate>
      <title>15 Apr 2002</title>
      <link>http://www.advogato.org/person/jdhildeb/diary.html?start=0</link>
      <guid>http://www.advogato.org/person/jdhildeb/diary.html?start=0</guid>
      <description>&lt;P&gt;Looking forward to being back in Germany again.  I'll be
spending two months there with my fiancee Katharina on April
25 for two months, during which time I'll give a talk on
&lt;a href="http://www.advogato.org/proj/Webware/" &gt;Webware&lt;/a&gt; at &lt;a
href="http://www.linuxtag.org"&gt;Linuxtag&lt;/a&gt; 2002.

&lt;p&gt; &lt;P&gt;I was at Linuxtag 2001 in Stuttgart, but this will be my
first presentation.  I'm both nervous and excited about it.
 Although I've been a free software user, advocate and
contributor for several years, it's only recently that I've
stopped just "lurking" and started to make more connections
with other developers, and I'm looking forward to doing more
of this in Karlsruhe.

&lt;p&gt; &lt;P&gt;I'll be sure to bring my GPG fingerprint along. :)</description>
    </item>
  </channel>
</rss>
