<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#">
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/software"/>

<title>Jeff Epler's software projects</title>
<modified>2008-04-26T17:03:57Z</modified>
<tagline>Software Projects</tagline>
<author><name>Jeff Epler</name><email>jepler@unpythonic.net</email></author>
<entry>
<title>mailpie 0.1: full-text search of large e-mail archives</title>
<issued>2008-04-26T17:03:57Z</issued>
<modified>2008-04-26T17:03:57Z</modified>
<id>https://emergent.unpythonic.net/software/01209229437</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/software/01209229437"/>
<content type="text/html" mode="escaped">
&lt;a href=&quot;https://emergent.unpythonic.net/software/mailpie&quot;&gt;mailpie is a suite of programs for commandline full-text search of large e-mail archives&lt;/a&gt;.
</content>
</entry>
<entry>
<title>l2h: A new converter from LyX to HTML (updated)</title>
<issued>2007-10-07T13:20:20Z</issued>
<modified>2007-10-07T13:20:20Z</modified>
<id>https://emergent.unpythonic.net/software/01191763220</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/software/01191763220"/>
<content type="text/html" mode="escaped">
The internet is littered with abandonded converters from Latex or LyX to
HTML, so why not add one more?</content>
</entry>
<entry>
<title>Skencil output converter for emc2</title>
<issued>2006-07-16T16:05:22Z</issued>
<modified>2006-07-16T16:05:22Z</modified>
<id>https://emergent.unpythonic.net/software/01153065922</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/software/01153065922"/>
<content type="text/html" mode="escaped">I've written a g-code output filter for the Python vector drawing
program &lt;a href=&quot;http://skencil.org/&quot;&gt;Skencil&lt;/a&gt;, formerly known as &amp;quot;Sketch&amp;quot;.</content>
</entry>
<entry>
<title>Onscreen Crosshairs in tcl/tk</title>
<issued>2006-04-29T21:58:13Z</issued>
<modified>2006-04-29T21:58:13Z</modified>
<id>https://emergent.unpythonic.net/software/01146347893</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/software/01146347893"/>
<content type="text/html" mode="escaped">
I was staring too long at a screenshot of a graph on some web page, wishing I
could tell if two things lined up.  Well, inspiration struck, and this program
was born.  Two windows&amp;mdash;one that is one pixel wide, and another
that is one pixel tall&amp;mdash;are created, and they follow the mouse
around every 1/10 second or so.  They're displaced by one pixel so that clicking will hit the underlying window, not the crosshair.

&lt;p&gt;I apologize for the changing colors, since xor isn't available with this simple
method of drawing the lines, it's the only way to be sure to get contrast.  I considered making the color depend on e.g., whether SHIFT is pressed, but if Tk provides this information to a window that doesn't have focus, I overlooked it in the manpages.
</content>
</entry>
<entry>
<title>Aether: getting rid of the extra URL component</title>
<issued>2006-01-13T05:02:25Z</issued>
<modified>2006-01-13T05:02:25Z</modified>
<id>https://emergent.unpythonic.net/software/01137128545</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/software/01137128545"/>
<content type="text/html" mode="escaped">Aether likes to have its own directory component, which I called &amp;quot;index.cgi&amp;quot; on
all the sites I've set up.  Finally, I have changed my webserver configuration
to get rid of this need, while keeping the old site layout working (I think).</content>
</entry>
<entry>
<title>pam_ssh</title>
<issued>2005-12-18T03:49:33Z</issued>
<modified>2005-12-18T03:49:33Z</modified>
<id>https://emergent.unpythonic.net/software/01134877773</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/software/01134877773"/>
<content type="text/html" mode="escaped">
&lt;div style=&quot;float:right;clear:right&quot;&gt;&lt;!-- pam-ssh.png--&gt;&lt;div class=albumouter style=width:306px id=&gt;&lt;div class=albumimage style=&quot;width:306px;margin-left:0.0px;&quot;&gt;&lt;img src=&quot;https://media.unpythonic.net/emergent-files/software/01134877773/pam-ssh.png&quot;&gt;&lt;br&gt;&lt;span&gt;A console login mediated by pam_ssh&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
This is neat.  &lt;a href=&quot;http://pam-ssh.sourceforge.net/&quot;&gt;pam_ssh&lt;/a&gt; &amp;quot;provides
single sign-on behavior for SSH. The user types an SSH passphrase when logging
in (probably to GDM, KDM, or XDM) and is authenticated if the passphrase
successfully decrypts the user's SSH private key. In the PAM session phase, an
ssh-agent process is started and keys are added. For the entire session, the
user can SSH to other hosts that accept key authentication without typing any
passwords.&amp;quot;

&lt;p&gt;The only snag I ran into on FC2 was that the script in &lt;tt&gt;
 /etc/X11/xdm/Xsession&lt;/tt&gt; unconditionally started a fresh ssh-agent, even if &lt;tt&gt;
 $SSH_AGENT_PID&lt;/tt&gt; was already set.  I changed the SSHAGENT= line to read
&lt;span class=indent&gt;&lt;tt&gt;[ -x /usr/bin/ssh-agent &amp;amp;&amp;amp; -z &amp;quot;$SSH_AGENT_PID&amp;quot; ] &amp;amp;&amp;amp; SSHAGENT=&amp;quot;/usr/bin/ssh-agent&amp;quot;&lt;/tt&gt;&lt;/span&gt;
and then everything worked.  I'm now using it for console and gdm logins on one
of my machines.

&lt;p&gt;On FC2 I built the rpm from the tarball.  It looks like FC4 has one available
via yum.

&lt;p&gt;&lt;b&gt;Update 2006/01/09:&lt;/b&gt; I was having trouble with pam_ssh not leaving an
ssh-agent running the next time I logged in after a crash (dead battery).  I
discovered that the problem was that leftover &lt;tt&gt;~/.ssh/agent-*&lt;/tt&gt; files would
trick pam_ssh into thinking that an appropriate ssh-agent was already running.
I now remove these files in /etc/rc.local when booting.
</content>
</entry>
<entry>
<title>Reverse Engineering the Samsung ML-2010 laser printer</title>
<issued>2005-12-10T00:06:26Z</issued>
<modified>2005-12-10T00:06:26Z</modified>
<id>https://emergent.unpythonic.net/software/01134173186</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/software/01134173186"/>
<content type="text/html" mode="escaped">Ingrid recently bought a Samsung ML-2010 laser printer.  The price was
attractive, and it seems to be a good printer.  However, there is either the
choice of a an open-source driver for a different printer model, one which
doesn't support the 1200x600DPI mode, or a closed-source driver which comes on
the included CDROM.

&lt;p&gt;I'm going to try to reverse engineer the new format, which is called &amp;quot;SPL II&amp;quot;
in the GUI and &amp;quot;QPDL&amp;quot; in the generated file (&lt;tt&gt;@PJL ENTER LANGUAGE = QPDL&lt;/tt&gt;).
My approach is to print a postscript file using the binary driver, saving the
result to a local file.  At no time do I plan to disassemble the binary
software provided by Samsung.</content>
</entry>
<entry>
<title>Netflix to Aether converter</title>
<issued>2005-12-09T01:30:49Z</issued>
<modified>2005-12-09T01:30:49Z</modified>
<id>https://emergent.unpythonic.net/software/01134091849</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/software/01134091849"/>
<content type="text/html" mode="escaped">
I use the code below to create the netflix sidebar on the front page of my
blog.  I offered it to Michael, so I suppose I'd better post it here.

&lt;p&gt;It features elementtree-based parsing, timestamp-based caching of the rss
file (not the parsing result), and output into aether markup.

&lt;p&gt;&lt;p&gt;&lt;b&gt;Files currently attached to this page:&lt;/b&gt;
&lt;table cellpadding=5 style=&quot;width:auto!important; clear:none!important&quot;&gt;&lt;col&gt;&lt;col style=&quot;text-align: right&quot;&gt;&lt;tr bgcolor=#eeeeee&gt;&lt;td&gt;&lt;a href=&quot;https://media.unpythonic.net/emergent-files/software/01134091849/nfq.py&quot;&gt;nfq.py&lt;/a&gt;&lt;/td&gt;&lt;td&gt;1.3kB&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;
</content>
</entry>
<entry>
<title>Decyphering an assertion</title>
<issued>2005-12-01T02:10:01Z</issued>
<modified>2005-12-01T02:10:01Z</modified>
<id>https://emergent.unpythonic.net/software/01133403001</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/software/01133403001"/>
<content type="text/html" mode="escaped">A few weeks ago, I posted &lt;a href=&quot;https://emergent.unpythonic.net/software/01132614188-best-assertion-ever&quot;&gt;a humdinger of an assertion&lt;/a&gt;.

&lt;p&gt;A little investigation shows that this is actually the very legible
&lt;blockquote&gt;&lt;pre&gt;
assert (strncmp (repository, current_parsed_root-&amp;gt;directory,
                 strlen (current_parsed_root-&amp;gt;directory)) == 0);
&lt;/pre&gt;&lt;/blockquote&gt;Read on for the sordid details
of glibc's internal &amp;quot;optimizations&amp;quot;.</content>
</entry>
<entry>
<title>Stippler 1.0 source release</title>
<issued>2005-11-27T21:38:17Z</issued>
<modified>2005-11-27T21:38:17Z</modified>
<id>https://emergent.unpythonic.net/software/01133127497-stippler-source-release</id>
<link rel="alternate" type="text/html" href="https://emergent.unpythonic.net/software/01133127497-stippler-source-release"/>
<content type="text/html" mode="escaped">
I finally got around to writing my own dithering algorithm, so now
all parts of stippler are under a clear GPL license.

&lt;p&gt;Stippler is software for turning greyscale images into &amp;quot;stippled&amp;quot; images.
I have have &lt;a href=&quot;https://emergent.unpythonic.net/01108611472&quot;&gt;discussed&lt;/a&gt; &lt;a href=&quot;https://emergent.unpythonic.net/01109127822&quot;&gt;it&lt;/a&gt; &lt;a href=&quot;https://emergent.unpythonic.net/01109259892&quot;&gt;before&lt;/a&gt; on my blog.

&lt;p&gt;Stippler is based on the &lt;a href=&quot;http://www.mrl.nyu.edu/~ajsecord/stipples.html&quot;&gt;reasearch of Adrian Secord&lt;/a&gt;,
but the implementation is my own.

&lt;p&gt;&lt;p&gt;&lt;b&gt;Files currently attached to this page:&lt;/b&gt;
&lt;table cellpadding=5 style=&quot;width:auto!important; clear:none!important&quot;&gt;&lt;col&gt;&lt;col style=&quot;text-align: right&quot;&gt;&lt;tr bgcolor=#eeeeee&gt;&lt;td&gt;&lt;a href=&quot;https://media.unpythonic.net/emergent-files/software/01133127497-stippler-source-release/stippler-1.0.tar.bz2&quot;&gt;stippler-1.0.tar.bz2&lt;/a&gt;&lt;/td&gt;&lt;td&gt;7.9kB&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;</content>
</entry>
</feed>
