<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>A view from the hill - Emacs</title>
    <link>http://hillview.1on.de/</link>
    <description>Blogging Holgers little world</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.3.1 - http://www.s9y.org/</generator>
    <pubDate>Mon, 08 Feb 2010 07:45:53 GMT</pubDate>

    <image>
        <url>http://hillview.1on.de/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: A view from the hill - Emacs - Blogging Holgers little world</title>
        <link>http://hillview.1on.de/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>4th dimensional transition</title>
    <link>http://hillview.1on.de/archives/156-4th-dimensional-transition.html</link>
            <category>Emacs</category>
    
    <comments>http://hillview.1on.de/archives/156-4th-dimensional-transition.html#comments</comments>
    <wfw:comment>http://hillview.1on.de/wfwcomment.php?cid=156</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hillview.1on.de/rss.php?version=2.0&amp;type=comments&amp;cid=156</wfw:commentRss>
    

    <author>nospam@example.com (Holger Schauer)</author>
    <content:encoded>
    I&#039;m a long standing user of &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=620&amp;amp;entry_id=156&quot;  onmouseover=&quot;window.status=&#039;http://www.gnus.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;http://www.gnus.org/&quot;&gt;Gnus&lt;/a&gt;, the Emacs mail and news reader (news as in &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=646&amp;amp;entry_id=156&quot;  onmouseover=&quot;window.status=&#039;http://en.wikipedia.org/wiki/Usenet&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;http://en.wikipedia.org/wiki/Usenet&quot;&gt;usenet&lt;/a&gt; for those geeks young enough to not have used it in the 90s). I&#039;ve been using Gnus in various settings whereas the latest configuration was to talk to a local &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=622&amp;amp;entry_id=156&quot;  onmouseover=&quot;window.status=&#039;http://leafnode.sourceforge.net/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;http://leafnode.sourceforge.net/&quot;&gt;leafnode&lt;/a&gt; NNTP server on my workstation. This was all fine and dandy and also survived several distribution level upgrades of the linux installation running on the system. However, some time ago, I bought new hardware and opted for a completely new installation. Of course, I backed up my leafnode and gnus configuration and restored it once the system was running. &lt;br /&gt;
&lt;br /&gt;
Which was when the trouble started. I ran into the problem that I couldn&#039;t see any articles on my local leafnode, although I could retrieve them with other newsreaders just fine. I then opted to go and do a gnus-cache-generate-nov-databases. This turned out to be a pretty bad idea -- as a result I couldn&#039;t retrieve my mail any longer. After digging quite a lot around, it occured to me that the active file might have a problem. Indeed, it was empty. Fortunately, I could restore that quite easily, so I could access my mail again. Otherwise, however, I had gained nothing: still no news wasn&#039;t so good news. Next try: see if the server buffer tells me anything new. It did: the connection to my leafnode was open and I could even access the new messages on it this way. But this didn&#039;t have any effect on my normal group buffer.&lt;br /&gt;
&lt;br /&gt;
Having learned to look around for the active file the hard way made me look into all kind of directions. Sometime in the past, I&#039;ve used the agent-mode of gnus which resulted in a larger subdirectory tree in my News directory. And where which information was stored in the first place seems to have changed over time (or modifications I might to my configuration), too, so my News directory had lots of old files. After several tries and errors, I finally moved the News/cache directory out of the way and finally started to see new articles again. So, I&#039;m now back to reading usenet.&lt;br /&gt;
&lt;br /&gt;
ObTitle: &lt;i&gt;Porcupine Tree&lt;/i&gt;, &quot;On the sunday of life&quot; 
    </content:encoded>

    <pubDate>Mon, 02 Nov 2009 16:47:11 +0100</pubDate>
    <guid isPermaLink="false">http://hillview.1on.de/archives/156-guid.html</guid>
    <category>emacs</category>
<category>gnus</category>
<category>usenet</category>

</item>
<item>
    <title>I still remember</title>
    <link>http://hillview.1on.de/archives/147-I-still-remember.html</link>
            <category>Emacs</category>
    
    <comments>http://hillview.1on.de/archives/147-I-still-remember.html#comments</comments>
    <wfw:comment>http://hillview.1on.de/wfwcomment.php?cid=147</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hillview.1on.de/rss.php?version=2.0&amp;type=comments&amp;cid=147</wfw:commentRss>
    

    <author>nospam@example.com (Holger Schauer)</author>
    <content:encoded>
    &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=592&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://zebert.blogspot.com/2009/06/clean-up-trailing-whitespaces-in.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;http://zebert.blogspot.com/2009/06/clean-up-trailing-whitespaces-in.html&quot;&gt;Betrand Mathieus blog article on cleaning up trailing whitespace&lt;/a&gt; comes in handy for me as I&#039;ve frequently run into problems with the Python test coverage tool stumbling over trailing whitespace. It also reminded me of an emacs snippet I recently installed to detect a mix of space and tabs in my Python buffers -- I do set &lt;code&gt;(setq indent-tabs-mode nil)&lt;/code&gt; in my .emacs for python-mode, however, I still occasionally somehow manage to insert some tabs in my source buffers. So I came up with the following snippet which validates that a buffer in python-mode doesn&#039;t contain any tabs. It&#039;s hooked up with the very general write-file-hook, but there is no python-specific hook on saving buffers. In case the buffer does contain any tab, it will leave the point (the place where your cursor will be) at the fount tab.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;
&lt;code&gt;
; code snippet GUID 32F94179-A86B-4780-8645-8A526BD8533A
(defun no-tab-validation (buffer)
  (interactive &quot;bValidate buffer:&quot;)
  (save-excursion
    (unless (equal (buffer-name (current-buffer)) buffer)
      (switch-to-buffer buffer))
    (if (re-search-forward &quot;\t&quot; nil t)
	(error &quot;Buffer %s contains tabs&quot; buffer))))

(defun py-tab-validate-on-save-hook ()
  (when (equal mode-name &quot;Python&quot;)
    (no-tab-validation (buffer-name (current-buffer)))))

(add-hook &#039;write-file-hook &#039;py-tab-validate-on-save-hook)
&lt;/code&gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Enjoy.&lt;br /&gt;
&lt;br /&gt;
Update: I should clarify that my previous reference to &lt;code&gt;(set-indent-tabs-mode nil)&lt;/code&gt; is just a local function around setting the variable indent-tabs-mode directly. I use it also for a local toggle function, like so:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;
&lt;code&gt;
;;; inhibit tabs in some modes
(defun set-indent-tabs-mode (value)
  &quot;Set indent-tabs-mode to value.&quot;
  (setq indent-tabs-mode value))

(defun toggle-tabs ()
  &quot;Toggle `indent-tabs-mode&#039;.&quot;
  (interactive)
  (set-indent-tabs-mode
   (not indent-tabs-mode)))

(defun disable-tabs-mode ()
  (set-indent-tabs-mode nil))

(add-hook &#039;sgml-mode-hook &#039;disable-tabs-mode)
(add-hook &#039;xml-mode-hook &#039;disable-tabs-mode)
(add-hook &#039;python-mode &#039;disable-tabs-mode)
&lt;/code&gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ObTitle: &lt;i&gt;Bloc Party&lt;/i&gt;, &quot;Weekend in the city&quot; 
    </content:encoded>

    <pubDate>Tue, 09 Jun 2009 11:28:15 +0200</pubDate>
    <guid isPermaLink="false">http://hillview.1on.de/archives/147-guid.html</guid>
    <category>emacs</category>
<category>python</category>

</item>
<item>
    <title>I write sins not tragedies</title>
    <link>http://hillview.1on.de/archives/140-I-write-sins-not-tragedies.html</link>
            <category>Emacs</category>
    
    <comments>http://hillview.1on.de/archives/140-I-write-sins-not-tragedies.html#comments</comments>
    <wfw:comment>http://hillview.1on.de/wfwcomment.php?cid=140</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hillview.1on.de/rss.php?version=2.0&amp;type=comments&amp;cid=140</wfw:commentRss>
    

    <author>nospam@example.com (Holger Schauer)</author>
    <content:encoded>
    One of the nicer extensions of mozilla I use is &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=575&amp;amp;entry_id=140&quot;  onmouseover=&quot;window.status=&#039;https://addons.mozilla.org/de/firefox/addon/4125&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;https://addons.mozilla.org/de/firefox/addon/4125&quot;&gt;It&#039;s all text&lt;/a&gt;. It allows you to call an external editor to edit text fields which is a really nice thing if you&#039;re editing longer wiki pages, for instance.&lt;br /&gt;
Not surprisingly, my external editor of choice is XEmacs. But my XEmacs is heavily configured and loads a lot of stuff. Even worse, I usually run a beta version with debugging turned on, so that it runs extra slow, so the time gap between clicking on that little &quot;edit&quot; button below the text field and the moment when I could finally start typing started to annoy me quickly.&lt;br /&gt;
&lt;br /&gt;
I remembered that some years ago I used to log in remotely to a running machine, fire up some script and have either my running XEmacs session connected or a new XEmacs process started. Connecting to the running XEmacs happens via &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=574&amp;amp;entry_id=140&quot;  onmouseover=&quot;window.status=&#039;http://www.emacswiki.org/emacs/GnuClient&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;http://www.emacswiki.org/emacs/GnuClient&quot;&gt;gnuclient&lt;/a&gt;, so much was clear but gnuclient doesn&#039;t start a new XEmacs if there is none running (actually, the server process gnuserv will die when the XEmacs process terminates, so there isn&#039;t much gnuclient can do).  The emacs wiki page linked to above already contains a number of scripts that eventually do what I need to do, but I&#039;ve found none of them convincing, so here is my version. It&#039;s linux specific in its BSD style call to &#039;ps&#039; to determine the running processes, but should be portable sh otherwise. I could have sprinkled the fetch_procs function with OS specific variants, but as I&#039;m currently running my XEmacs on linux only, I left that as an exercise to the reader.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;
&lt;code&gt;
#!/bin/sh

emacs=xemacs
gnuclient=gnuclient
gnuserv=gnuserv
user=`id -un`

gnuclientopts=&quot;&quot;

fetch_procs () {
 ps xU $user
}

runninggnuserv=`fetch_procs | grep &quot;[^]]$gnuserv&quot;`
runningemacs=`fetch_procs | grep &quot;[^]]$emacs&quot;`
if [ &quot;$?&quot; -eq &quot;0&quot; ]; then
    gnuservpid=`echo $runninggnuserv | cut -f1 -d&#039; &#039;`
    emacspid=`echo $runningemacs | cut -f1 -d&#039; &#039;`
    echo &quot;Using running gnuserv $gnuservpid of emacs $emacspid&quot;
    $gnuclient $gnuclientopts &quot;$@&quot;
else
    echo &quot;Starting new $emacs&quot;
    $emacs &quot;$@&quot;
fi
&lt;/code&gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ObTitle: &lt;i&gt;Panic at the disco&lt;/i&gt;, from the album &quot;A fever you can&#039;t sweat out&quot; 
    </content:encoded>

    <pubDate>Thu, 16 Apr 2009 11:54:00 +0200</pubDate>
    <guid isPermaLink="false">http://hillview.1on.de/archives/140-guid.html</guid>
    <category>emacs</category>
<category>linux</category>
<category>shell programming</category>

</item>
<item>
    <title>Simple tramp stumbling blocks</title>
    <link>http://hillview.1on.de/archives/129-Simple-tramp-stumbling-blocks.html</link>
            <category>Emacs</category>
    
    <comments>http://hillview.1on.de/archives/129-Simple-tramp-stumbling-blocks.html#comments</comments>
    <wfw:comment>http://hillview.1on.de/wfwcomment.php?cid=129</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hillview.1on.de/rss.php?version=2.0&amp;type=comments&amp;cid=129</wfw:commentRss>
    

    <author>nospam@example.com (Holger Schauer)</author>
    <content:encoded>
    I&#039;ve recently blogged about my usage of &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=521&amp;amp;entry_id=129&quot;  onmouseover=&quot;window.status=&#039;http://hillview.bugwriter.net/archives/122-python-mode-vs.-slime.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;http://hillview.bugwriter.net/archives/122-python-mode-vs.-slime.html&quot;&gt;Emacs for editing python code&lt;/a&gt;, in which I said that it sometimes involves remote editing via &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=522&amp;amp;entry_id=129&quot;  onmouseover=&quot;window.status=&#039;http://www.gnu.org/software/tramp/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;http://www.gnu.org/software/tramp/&quot;&gt;Tramp&lt;/a&gt;. At roughly the time I wrote the entry, I joined a different project in which the central development server only has a not-so-recent version of Emacs installed (besides the fact that it doesn&#039;t serve my &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=523&amp;amp;entry_id=129&quot;  onmouseover=&quot;window.status=&#039;http://www.xemacs.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;http://www.xemacs.org/&quot;&gt;favourite flavour of Emacs&lt;/a&gt; at all). This time, however, my naive usage of tramp failed: when accessing files via &lt;code&gt;C-x C-f /[ssh/schauer@remote]/home/schauer/&lt;/code&gt; all I would receive would be &quot;Waiting 60s for prompt from remote shell&quot; and tramp would be hanging. Searching the web had two interesting tips for debugging (regardless of what problem you have with tramp): go to the *scratch* buffer and evaluate (i.e. hit C-x C-e behind each of the closing parantheses of the following statements):&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&lt;pre&gt;
(setq tramp-debug-buffer t) 
(setq tramp-verbose 10)
&lt;/pre&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
The former setting will result in an additional buffer *debug tramp\&lt;your intended tramp session\&gt;*, while the latter will enhance the verbosity of information shown in the usual *tramp\&lt;your intended tramp session\&gt;* buffer that holds the actual remote shell interaction. Another hint then let me too a potential problem with my shell prompt setup, which is even mentioned in the &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=524&amp;amp;entry_id=129&quot;  onmouseover=&quot;window.status=&#039;http://www.gnu.org/software/tramp/#Frequently-Asked-Questions&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;http://www.gnu.org/software/tramp/#Frequently-Asked-Questions&quot;&gt;FAQ&lt;/a&gt;. After clearing that issue by setting my fancy prompt only if the &quot;TERM&quot; environment variable isn&#039;t set to &quot;dumb&quot; or &quot;emacs&quot;, I ran into another bit: I was getting an error about tramp not being able to issue the command &quot;test -e&quot;. I&#039;m still at a loss how that can happen, as &#039;test&#039; is surely built in to the default shell I&#039;m getting on that system and &quot;/usr/bin/test&quot; is also directly available when I log in. However, adding &lt;code&gt;(add-to-list &#039;tramp-remote-path &quot;/usr/bin&quot;)&lt;/code&gt; to my .emacs finally solved the problem.&lt;br /&gt;
&lt;br /&gt;
To complete this post, I would also like to point at &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=525&amp;amp;entry_id=129&quot;  onmouseover=&quot;window.status=&#039;http://www.gnu.org/software/emacs/manual/html_node/tramp/Default-Method.html#Default-Method&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;http://www.gnu.org/software/emacs/manual/html_node/tramp/Default-Method.html#Default-Method&quot;&gt;the manual on default method configuration&lt;/a&gt;, another interesting piece for my configuration.&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 18 Jan 2009 19:46:00 +0100</pubDate>
    <guid isPermaLink="false">http://hillview.1on.de/archives/129-guid.html</guid>
    <category>emacs</category>

</item>
<item>
    <title>python-mode vs. slime</title>
    <link>http://hillview.1on.de/archives/122-python-mode-vs.-slime.html</link>
            <category>Emacs</category>
            <category>Programming</category>
    
    <comments>http://hillview.1on.de/archives/122-python-mode-vs.-slime.html#comments</comments>
    <wfw:comment>http://hillview.1on.de/wfwcomment.php?cid=122</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hillview.1on.de/rss.php?version=2.0&amp;type=comments&amp;cid=122</wfw:commentRss>
    

    <author>nospam@example.com (Holger Schauer)</author>
    <content:encoded>
    I&#039;ve become a python programmer, too, lately, due to a job change. Python is a fine language so far, although to me it&#039;s mostly just like Ruby, though with even less functional flavour. However, just as with Ruby, I&#039;m really missing &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=490&amp;amp;entry_id=122&quot; title=&quot;http://common-lisp.net/project/slime&quot;  onmouseover=&quot;window.status=&#039;http://common-lisp.net/project/slime&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;slime&lt;/a&gt;, the superior lisp interaction mode for Emacs, when hacking python code. I could now start to write down a list of things I&#039;m missing (which I&#039;ve intended to do), however, Andy Wingo spares me the hassle, as he has just written an &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=491&amp;amp;entry_id=122&quot; title=&quot;http://wingolog.org/archives/2006/01/02/slime&quot;  onmouseover=&quot;window.status=&#039;http://wingolog.org/archives/2006/01/02/slime&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;excellent article on slime from a python programmers view&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
However, I would like to elaborate a little on the main difference for me: the client/server socket approach of slime. Let me briefly recapulate what this implies: slime consists of two parts, a client written in Emacs lisp and a server written in Common Lisp (AFAIK there is at least also an implementation for clojure, maybe also one for some scheme implementation). In order to use slime in it&#039;s full glory, it&#039;s hence required that you have a common lisp process running which in turn runs the slime server part. If you now fire up slime, you&#039;ll get an interaction buffer over which you can access the REPL of the lisp process, which in python would be the interpreter prompt. You can then interact with the lisp process, evaluating pieces of code from your lisp source code buffer directly in the connected lisp process. What is incredibly useful for me is that you can not only start a new lisp process but also connect to an already running lisp process, given that it has the slime server started (this is obviously mainly useful if the lisp implementation you use has multi-threading capabilities). I use it to connect to a running web server application, which I can then inspect, debug and modify. Modification includes redefinition of functions, macros and classes, which of course is also a particular highlight of Common Lisp. I would like to cite a comment of the reddit user &quot;fionbio&quot; he made wrt. to the linked article: &lt;cite&gt;In fact, Python language wasn&#039;t designed with lisp-style interactive development in mind. In CL, you can redefine (nearly) anything you want in a running program, and it just does the right thing. In Python, there are some problems, e.g. instances aren&#039;t updated if you modify their class. Lisp programmers often, though not always, refer to various things (functions, classes, macros, etc.) using symbols, while Python programs usually operate with direct references, so when you update parts of your program you have much higher chances that there will be a lot of references to obsolete stuff around.&lt;/cite&gt;&lt;br /&gt;
&lt;br /&gt;
To complement &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=492&amp;amp;entry_id=122&quot;  onmouseover=&quot;window.status=&#039;http://bc.tech.coop/blog/081209.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;http://bc.tech.coop/blog/081209.html&quot;&gt;Bill clementsons excellent article series on slime&lt;/a&gt; a little, I&#039;m going to describe how I&#039;m using/configuring python-mode to make it match my expectations a little closer. Essentially I would like to access my python process just as I would with slime/Common Lisp, but that&#039;s not possible. The reason, btw., is nearly unchanged: I need to code on a web server app (written in Zope) which may not even run on the same machine I&#039;m developing on.  Let&#039;s first cover the simple stuff: To enable a reasonable command interface to the python interpreter, I require the ipython emacs library. If the python interpreter runs locally, I also use py-complete, so that I can complete my code at least a little. Unfortunately, this breaks when the python interpreter doesn&#039;t run locally, because the py-complete needs to setup some things in the running python process, which it does by writing to a local temp file and feeding it to the python process. Unfortunately, the code in py-complete lacks customizability, i.e., you can&#039;t specify where that temp file should be located -- I should be able to come up with a small patch in the near future, which I will add below. Finally, I also require doctest-mode as a support for writing doctests, but that&#039;s not really relevant. &lt;br /&gt;
&lt;br /&gt;
Now, on to the more involved stuff: I introduce some new variables and a new function &lt;code&gt;py-set-remote-python-environment&lt;/code&gt;, which  uses the those variables to do a remote call (via ssh) to python. This at least allows me to do things like setting py-remote-python-command to &quot;/home/schauer/zope/foo-project/bin/instance&quot; and py-remote-python-command-args to &quot;debug&quot;, so that I can access a remote debug shell of my current zope product. That alone will only allow me to fire up and access the remote python, so I could now develop the code locally, having it executed remote. More typical though is that you would also want to keep the code on the remote machine, too: for this I use &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=496&amp;amp;entry_id=122&quot;  onmouseover=&quot;window.status=&#039;http://www.gnu.org/software/tramp/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;http://www.gnu.org/software/tramp/&quot;&gt;tramp&lt;/a&gt;, a package for remotely accessing files/directories from within emacs. In combination, this allows me to edit and execute the code on the remote machine. It is still nowhere near what is possible with slime, but at least it allows me to persue my habit of incremental and interactive development from within my usual emacs installation (i.e., it doesn&#039;t require me to deal with any Emacs related hassle on the remote machine). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;
&lt;code&gt;
;;; python-stuff.el --- python specific configuration

(when (locate-library &quot;ipython&quot;)
  (require &#039;ipython))

(when (locate-library &quot;doctest-mode&quot;)
  (require &#039;doctest-mode))

(defvar py-remote-connect-command &quot;ssh&quot;
  &quot;*Command for connecting to a remote python, typically \&quot;ssh\&quot;&quot;)
(defvar py-remote-connection-args &#039;(&quot;user@remotemachine&quot;)
  &quot;*List of strings of connection options.&quot;)
(defvar py-remote-python-command &quot;python&quot;
  &quot;*Command to execute for python&quot;)
(defvar py-remote-python-command-args &#039;(&quot;-i&quot;)
  &quot;*List of strings arguments to be passed to `py-remote-python-command`.&quot;)
(defvar py-remote-python-used nil
  &quot;Remember if remote python is used.&quot;)

(defun py-set-remote-python-environment ()
  (interactive)
  (let ((command-args (append py-remote-connection-args 
			      (list py-remote-python-command)
			      py-remote-python-command-args)))
    (setq py-python-command py-remote-connect-command)
    (setq py-python-command-args command-args))
  (setq py-remote-python-used t))

(when (locate-library &quot;py-complete&quot;)
  (autoload &#039;py-complete-init &quot;py-complete&quot;)
  (defun my-py-complete-init ()
    &quot;Init py-complete only if we&#039;re not using remote python&quot;
    (if (not py-remote-python-used)
        (py-complete-init)))
  (add-hook &#039;python-mode-hook &#039;my-py-complete-init))

&lt;/code&gt;
&lt;/pre&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 10 Dec 2008 10:52:44 +0100</pubDate>
    <guid isPermaLink="false">http://hillview.1on.de/archives/122-guid.html</guid>
    <category>emacs</category>
<category>lisp</category>
<category>python</category>

</item>
<item>
    <title>Settle for nothing</title>
    <link>http://hillview.1on.de/archives/120-Settle-for-nothing.html</link>
            <category>Emacs</category>
    
    <comments>http://hillview.1on.de/archives/120-Settle-for-nothing.html#comments</comments>
    <wfw:comment>http://hillview.1on.de/wfwcomment.php?cid=120</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://hillview.1on.de/rss.php?version=2.0&amp;type=comments&amp;cid=120</wfw:commentRss>
    

    <author>nospam@example.com (Holger Schauer)</author>
    <content:encoded>
    While I&#039;m usually a happy VC user (the SCM mode of Emacs) as &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=482&amp;amp;entry_id=120&quot;  onmouseover=&quot;window.status=&#039;http://atomized.org/2008/10/why-emacs-is-the-only-editer-i-can-use/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;http://atomized.org/2008/10/why-emacs-is-the-only-editer-i-can-use/&quot;&gt;the next guy&lt;/a&gt;, I recently haven&#039;t always been so happy. In particular when I&#039;m working on a larger set of changes in multiple files (using Subversion or Mercurial), the commit-per-file approach of VC just doesn&#039;t cut it, because usually you want to commit all changes you have to make for a fix or feature to happen in a single transaction. That&#039;s simply not possible with VC, so I usually fall back to the command line. That I can then use Emacs for the commit message is only a slight quantum of solace.&lt;br /&gt;
An integration of SCM features into dired (which I happen not to be a big fan of, btw.) looks to me like the obvious way to go. I&#039;m hence very happy to learn that this is more or less happening (or has already happened) with the past-Emacs 22.1 version, according to this blog entry on &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=483&amp;amp;entry_id=120&quot;  onmouseover=&quot;window.status=&#039;http://psung.blogspot.com/2008/01/manipulating-changeset-based-vcs-from.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;http://psung.blogspot.com/2008/01/manipulating-changeset-based-vcs-from.html&quot;&gt;manipulating changeset-based VCS from within Emacs&lt;/a&gt;. It&#039;s unlikely that this will be up to match Tortoise or TortoiseHg, but still ... 
    </content:encoded>

    <pubDate>Thu, 30 Oct 2008 13:44:27 +0100</pubDate>
    <guid isPermaLink="false">http://hillview.1on.de/archives/120-guid.html</guid>
    <category>emacs</category>
<category>version control</category>

</item>
<item>
    <title>Emacs development: editor flamewars revisited</title>
    <link>http://hillview.1on.de/archives/107-Emacs-development-editor-flamewars-revisited.html</link>
            <category>Emacs</category>
    
    <comments>http://hillview.1on.de/archives/107-Emacs-development-editor-flamewars-revisited.html#comments</comments>
    <wfw:comment>http://hillview.1on.de/wfwcomment.php?cid=107</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hillview.1on.de/rss.php?version=2.0&amp;type=comments&amp;cid=107</wfw:commentRss>
    

    <author>nospam@example.com (Holger Schauer)</author>
    <content:encoded>
    &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=450&amp;amp;entry_id=107&quot;  onmouseover=&quot;window.status=&#039;http://steve-yegge.blogspot.com/2008/04/xemacs-is-dead-long-live-xemacs.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;http://steve-yegge.blogspot.com/2008/04/xemacs-is-dead-long-live-xemacs.html&quot;&gt;Steve Yegge blogs about XEmacs needs to die&lt;/a&gt; and I would like to add my own little comment on the issue. First, perhaps some background: I&#039;m a long-term &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=451&amp;amp;entry_id=107&quot;  onmouseover=&quot;window.status=&#039;http://www.xemacs.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;external link: xemacs&quot;&gt;XEmacs&lt;/a&gt; user, since about 1995, I think. I started hacking Elisp around 1996, implementing a major mode for the &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=452&amp;amp;entry_id=107&quot;  onmouseover=&quot;window.status=&#039;http://www.mcs.anl.gov/AR/otter/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;external link: Otter&quot;&gt;Otter theorem prover&lt;/a&gt; and various other stuff. Since 1997 or so, I  had been somewhat active on the xemacs-beta mailing list, reporting build successes/failures, participating in discussions etc. and even writing an article on the then-new XEmacs port to Windows in the german &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=453&amp;amp;entry_id=107&quot;  onmouseover=&quot;window.status=&#039;http://www.heise.de/ix/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;external link: iX&quot;&gt;iX&lt;/a&gt; magazine. So, perhaps, I&#039;m a bit biased towards XEmacs.  That I&#039;ve been using XEmacs instead of Emacs had a lot to do with two factors: at my university, the local Emacs guru used XEmacs and provided a very complete configuration to start with. To start hacking Prolog source didn&#039;t require any configuration on my side at all. When I tried to re-establish that configuration on my own linux box, using Gnu Emacs was totally out of the question, which is basically the second reason: XEmacs came with a lot of batteries included, whereas Gnu Emacs only came with a directly dying low battery at best. And third, the XEmacs interface experience was a lot friendlier than with the naked Gnu Emacs.&lt;br /&gt;
&lt;br /&gt;
Now, at the time I was actively following XEmacs development, XEmacs had a whole lot of man power behind it, with lively discussions and an exciting movement of adding new features. At the same time, RMS discussed switching Gnu Emacs to Guile (a scheme dialect), which me, as a Common Lisp user, scared me off even more. Around 2002 or so, my spare time for XEmacs dropped to zero, so I unsubscribed the development mailing list and was just a happy user. Until two seemingly unrelated things happened: first of all, Unicode was no longer to be ignored and it was obvious that the Mule (multiple languages for emacs or some such) for XEmacs wasn&#039;t up to the task, especially not on Windows. That was quite a problem for me back then with the then current stable XEmacs 21.4. Now, six years later, XEmacs 21.5 is still not there (aka released as the new stable version) and it&#039;s unicode support still sucks (not so much as it did, say, two years ago, but it still fails a lot of tests from &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=454&amp;amp;entry_id=107&quot;  onmouseover=&quot;window.status=&#039;http://www.cl.cam.ac.uk/~mgk25/unicode.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;external link: unicode&quot;&gt;Markus Kuhn unicode&lt;/a&gt; test suite).  The second development was that the Emacs team, which I had only barely been aware of previously, somehow gained a enourmous momentum and catched up a lot of ground, where XEmacs had been the leader by far. In particular, as of Emacs 22, nobody in its sane mind could argue against the fact that the current Emacs handles Unicode etc. far better than XEmacs (this is especially true for XEmacs 21.4 on Windows, but even the current beta XEmacs 21.5-b28 on Unix isn&#039;t where it should be). This seems to be directly related to the fact that a lot of the key developers of the end of the last century no longer actively participate in XEmacs development. I think only few people from the XEmacs crowd would argue against the impression that XEmacs development has more or less cringed to a halt and the distribution of development power between Emacs and XEmacs development is nowadays reversed to the situation from the 90s.&lt;br /&gt;
&lt;br /&gt;
That being said, I still stick with XEmacs. Last time I tried using Gnu Emacs (that&#039;s the Emacs 22 from Ubuntu Hardy), I still found that I&#039;m far more accustomed with the XEmacs intrinsics on how to perform specific actions  than with how it works in Emacs. And I never got around to clean up my mess of configuration files to properly support the various flavours plus adding the extension libraries that still don&#039;t ship with Emacs (&lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=455&amp;amp;entry_id=107&quot;  onmouseover=&quot;window.status=&#039;http://common-lisp.net/project/slime/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;external link: slime&quot;&gt;Slime&lt;/a&gt;, for instance). Finally, with more and more users switching to Emacs, there has to be someone reporting problems, &lt;img src=&quot;http://hillview.1on.de/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Now, back to Steves blog post: I think he has some valid points in it, but for the most part I disagree. First of all, while I agree that Eclipse and similar IDEs are still not at the greatest enemy to Emacs (regardless of flavour). I&#039;m currently again using Eclipse at work and it&#039;s a pain finding out how to properly associate an unknown file extension with some specific editor (mode). And it&#039;s a memory hog that results in unbelievable handling (on my dual core 2GB equipped desktop) that is even worse than my first XEmacs experience on my 486/33 with 8MB ram in 1995. Eight megs and constantly swapping? Hah! I can&#039;t believe that even today I have to hear that Emacsen would be too complicated, given that for any task/configurations I spend endless time searching/clicking through the gazillions of settings in Eclipse. &lt;br /&gt;
&lt;br /&gt;
However, I also don&#039;t believe that a marriage between Emacs and some web-browser is the way to go. There are much more pressing issues to move Emacs into the next century than switching from Elisp to &amp;lt;whatever&amp;gt;. If you&#039;re interested in extending your editor, you have to learn about the way how to do that. But that is totally independent from the question which editor you&#039;re going to use in the first place.&lt;br /&gt;
What is a much more pressing need in my opinion is finally implementing multi-tasking for the (X)Emacs core. Still being locked in a single-threaded application model is sooo 1990s. It&#039;s not becoming more and more ridicuosly, it&#039;s utterly unbelievable.&lt;br /&gt;
&lt;br /&gt;
In one other point, though, Steve is right on track: the divergence between APIs is becoming a bigger problem with every passing day. I think it&#039;s very unfortunate that a) Emacs developers don&#039;t let them inspire by the existing APIs in XEmacs and vice versa and b) that there are too few XEmacs developers that merge current Emacs enhancement into the XEmacs codebase (the other way &#039;round is always problematic due to license issues).&lt;br /&gt;
&lt;br /&gt;
So, before I would consider pursuing a major architectural change like XUL or some such for Emacs, I would first work on the much lower-hanging fruit of narrowing the gap between the two flavours. It&#039;s a pity I myself only have the spare time to write such blog posts instead of actively working on code towards that goal.&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 30 Apr 2008 22:34:00 +0200</pubDate>
    <guid isPermaLink="false">http://hillview.1on.de/archives/107-guid.html</guid>
    <category>emacs</category>
<category>lisp</category>
<category>ubuntu</category>

</item>
<item>
    <title>A gudied tour with Meta-Alt-Cokebottle ...</title>
    <link>http://hillview.1on.de/archives/60-A-gudied-tour-with-Meta-Alt-Cokebottle-....html</link>
            <category>Emacs</category>
    
    <comments>http://hillview.1on.de/archives/60-A-gudied-tour-with-Meta-Alt-Cokebottle-....html#comments</comments>
    <wfw:comment>http://hillview.1on.de/wfwcomment.php?cid=60</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hillview.1on.de/rss.php?version=2.0&amp;type=comments&amp;cid=60</wfw:commentRss>
    

    <author>nospam@example.com (Holger Schauer)</author>
    <content:encoded>
    I&#039;m using XEmacs whereever I can, but for preaching to the still unconvinced, &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=144&amp;amp;entry_id=60&quot;  onmouseover=&quot;window.status=&#039;http://www.gnu.org/software/emacs/tour/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;http://www.gnu.org/software/emacs/tour/&quot;&gt;the guided tour to Emacs&lt;/a&gt; as of the FSF will be just as useful. Of course, XEmacs ships with a much larger portion of modes and utilities, but unfortunately, development has been quite slowly in the last years and Emacs 22 as of today has come a long way to overcome a lot of the obstacles of older versions. 
    </content:encoded>

    <pubDate>Thu, 03 May 2007 10:05:10 +0200</pubDate>
    <guid isPermaLink="false">http://hillview.1on.de/archives/60-guid.html</guid>
    <category>emacs</category>

</item>
<item>
    <title>Distributed version control system handling in Emacs</title>
    <link>http://hillview.1on.de/archives/58-Distributed-version-control-system-handling-in-Emacs.html</link>
            <category>Emacs</category>
    
    <comments>http://hillview.1on.de/archives/58-Distributed-version-control-system-handling-in-Emacs.html#comments</comments>
    <wfw:comment>http://hillview.1on.de/wfwcomment.php?cid=58</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hillview.1on.de/rss.php?version=2.0&amp;type=comments&amp;cid=58</wfw:commentRss>
    

    <author>nospam@example.com (Holger Schauer)</author>
    <content:encoded>
    In an &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=141&amp;amp;entry_id=58&quot;  onmouseover=&quot;window.status=&#039;http://hillview.bugwriter.net/archives/54-Fire-it-up.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;http://hillview.bugwriter.net/archives/54-Fire-it-up.html&quot;&gt;older blog post&lt;/a&gt;, I noted that there is no editor integration for the newer distributed versioning systems with Emacs. Turns out, I was quite wrong. First of all, there is an entire page about &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=142&amp;amp;entry_id=58&quot;  onmouseover=&quot;window.status=&#039;http://www.emacswiki.org/cgi-bin/wiki/CategoryVersionControl&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;http://www.emacswiki.org/cgi-bin/wiki/CategoryVersionControl&quot;&gt;handling version control in Emacs&lt;/a&gt; at the Emacs Wiki. I haven&#039;t looked at all of them, but stumbling over &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=143&amp;amp;entry_id=58&quot;  onmouseover=&quot;window.status=&#039;http://download.gna.org/dvc/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;http://download.gna.org/dvc/&quot;&gt;DVC&lt;/a&gt;, I must confine that there is work under way to have a decent interface in Emacs to those new kids on the version control block. Looks as if DVC is even build or shipping with XEmacs. No more excuses around here, move along ... 
    </content:encoded>

    <pubDate>Tue, 24 Apr 2007 11:18:23 +0200</pubDate>
    <guid isPermaLink="false">http://hillview.1on.de/archives/58-guid.html</guid>
    <category>emacs</category>
<category>version control</category>

</item>
<item>
    <title>Fire it up</title>
    <link>http://hillview.1on.de/archives/54-Fire-it-up.html</link>
            <category>Emacs</category>
            <category>Lisp</category>
            <category>Programming</category>
    
    <comments>http://hillview.1on.de/archives/54-Fire-it-up.html#comments</comments>
    <wfw:comment>http://hillview.1on.de/wfwcomment.php?cid=54</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hillview.1on.de/rss.php?version=2.0&amp;type=comments&amp;cid=54</wfw:commentRss>
    

    <author>nospam@example.com (Holger Schauer)</author>
    <content:encoded>
    Moving back in time is easy when the tools you&#039;re using are a versioning control system like CVS or RCS [1], (X)Emacs, it&#039;s versioning control interface VC, a Common Lisp system such as SBCL and Slime, the superior lisp interaction mode for Emacs. Yesterday, I was debugging a part of my current hobby project which involves a web interface made with Uncommon Web (UCW). One bit of that web interface that I hadn&#039;t paid particular attention to in the last round of modifications had stopped working. But the source that dealt with that particular bit seemed quite innocent to me.&lt;br /&gt;
&lt;br /&gt;
I then looked through the log of modifications I did to the file (which is under version control via RCS) by hitting &quot;C-x v l&quot; (equivalent to &quot;M-x vc-print-log&quot;). Turned out that I did some modifications between versions 1.5 and 1.6 to the part under consideration. Hitting &quot;C-x v ~&quot; (vc-version-other-window) and entering numbers 1.5 (and afterwards 1.6) re-generated the old versions, XEmacs directly visiting these corresponding buffers. This feature alone is worth noting: When extracting the older versions, the current version won&#039;t be overwrittten, the older versions will be put into the filesystem with the version number added as a suffix, e.g. foo.lisp.~1.5~.&lt;br /&gt;
&lt;br /&gt;
Now, to see what was happening in between those two versions, I first looked at the differences between the two files. &quot;M-x ediff&quot; and selecting the two buffers, it was easy to spot the part of the code I changed. Next, have a look at the effects caused by the changes: For that I did a &quot;C-c C-k&quot; (slime-compile-and-load-file) on the old versions respectively, so I could then see the old behaviour in real life -- i.e., I could directly use the web app in that older version in my Firefox without any further ado. Of course, this also has to do with the fact that there weren&#039;t many interactions between the part of the app in question and other parts of the system, in particular I needn&#039;t to check out older versions of other files for the compilation to succeed. Actually, loading that old version certainly broke other functionality of the app, but that wasn&#039;t the issue: I only wanted to figure out how the old version worked wrt. to that particular part that wasn&#039;t working in my current state, hence a fully working old version wasn&#039;t what I was looking for.&lt;br /&gt;
&lt;br /&gt;
Now, it did require a little more close attention to the changes I made to discover the mistake. But I think it&#039;s amazing in how few steps it&#039;s possible to regenerate an old behaviour. All the while, my current state of affairs remained largely untouched, I didn&#039;t need to create any copies or move files around or do a larger recompilation. I think that&#039;s a highly effective way of discovering the introduction of a bug.&lt;br /&gt;
&lt;br /&gt;
Update: Kent Pitman, who&#039;s giving cll another of his (lately very rare) visits, pointed to one of his older papers (&lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=136&amp;amp;entry_id=54&quot;  onmouseover=&quot;window.status=&#039;http://www.nhplace.com/kent/PS/Hindsight.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;http://www.nhplace.com/kent/PS/Hindsight.html&quot;&gt;Accelerating Hindsight&lt;/a&gt;), which I&#039;m surely have seen before but totally forgotten, which talks about how good Common Lisp is for rapid prototyping. What I&#039;ve shown above is actually just an example of two points in this paper: dynamic redefinition and editor integration. Go figure.&lt;br /&gt;
&lt;br /&gt;
Footnotes:&lt;br /&gt;
[1] Yeah, I know, using rcs or cvs and not bazaar, mercurial or git makes me look like an oldtimer. That said, I do use subversion in my day job, too. I stick with rcs and cvs for smaller (read: one person involved) projects mainly due to one reason: There is no support for the newer kids on the block in the VC shipping with XEmacs. Yes, I know that the VC shipping with FSF Emacs has support for subversion (at least), but unfortunately it&#039;s not compatible.&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Fri, 13 Apr 2007 11:06:55 +0200</pubDate>
    <guid isPermaLink="false">http://hillview.1on.de/archives/54-guid.html</guid>
    <category>emacs</category>
<category>lisp</category>
<category>ucw</category>
<category>version control</category>
<category>web development</category>

</item>
<item>
    <title>How I started to dismantle the atomic bomb</title>
    <link>http://hillview.1on.de/archives/18-How-I-started-to-dismantle-the-atomic-bomb.html</link>
            <category>Emacs</category>
    
    <comments>http://hillview.1on.de/archives/18-How-I-started-to-dismantle-the-atomic-bomb.html#comments</comments>
    <wfw:comment>http://hillview.1on.de/wfwcomment.php?cid=18</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hillview.1on.de/rss.php?version=2.0&amp;type=comments&amp;cid=18</wfw:commentRss>
    

    <author>nospam@example.com (Holger Schauer)</author>
    <content:encoded>
    Getting started with &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=479&amp;amp;entry_id=18&quot; title=&quot;http://clsql.b9.com/&quot;  onmouseover=&quot;window.status=&#039;http://clsql.b9.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;CL-SQL&lt;/a&gt; was actually a pretty easy experience. I stumbled over one problem though, and it has a &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=37&amp;amp;entry_id=18&quot; title=&quot;http://www.debian.org/releases/stable/&quot;  onmouseover=&quot;window.status=&#039;http://www.debian.org/releases/stable/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;name&lt;/a&gt;, even. The packages shipping with Sarge are outdated. So outdated, that I couldn&#039;t get my files compiled that would otherwise work fine from the REPL or even load successfully as source files. And, hey, most of the time they would even compile with &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=38&amp;amp;entry_id=18&quot; title=&quot;http://www.cliki.net/asdf&quot;  onmouseover=&quot;window.status=&#039;http://www.cliki.net/asdf&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;ASDF&lt;/a&gt;, unless I was using &lt;code&gt;load-system&lt;/code&gt; from &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=39&amp;amp;entry_id=18&quot; title=&quot;http://common-lisp.net/project/slime/&quot;  onmouseover=&quot;window.status=&#039;http://common-lisp.net/project/slime/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Slime&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
Actually, that wasn&#039;t the first time I had trouble with Common Lisp packages on &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=40&amp;amp;entry_id=18&quot; title=&quot;http://www.debian.org/&quot;  onmouseover=&quot;window.status=&#039;http://www.debian.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Debian&lt;/a&gt;. Getting UCW to work actually required a far newer version of &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=41&amp;amp;entry_id=18&quot; title=&quot;http://sbcl.sourceforge.net/&quot;  onmouseover=&quot;window.status=&#039;http://sbcl.sourceforge.net/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;sbcl&lt;/a&gt; than that old 0.8.12 shipping with Sarge. I built one myself, however, thanks to the work of &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=42&amp;amp;entry_id=18&quot; title=&quot;http://reports.progn.org/cgi-bin/blosxom&quot;  onmouseover=&quot;window.status=&#039;http://reports.progn.org/cgi-bin/blosxom&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Rene van Bevern&lt;/a&gt; (why isn&#039;t he on &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=43&amp;amp;entry_id=18&quot; title=&quot;http://planet.lisp.org/&quot;  onmouseover=&quot;window.status=&#039;http://planet.lisp.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Planet Lisp&lt;/a&gt;?), a recent version (0.9.11) is available from &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=44&amp;amp;entry_id=18&quot; title=&quot;http://www.backports.org/&quot;  onmouseover=&quot;window.status=&#039;http://www.backports.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;backports.org&lt;/a&gt;, so that shouldn&#039;t be a problem anymore. New versions of CL-SQL are not available, though, so I copied the newer version of the files shipping with &lt;a href=&quot;http://hillview.1on.de/exit.php?url_id=45&amp;amp;entry_id=18&quot; title=&quot;http://www.ubuntu.com/&quot;  onmouseover=&quot;window.status=&#039;http://www.ubuntu.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Breezy&lt;/a&gt;, which finally fixed the problem.&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 16 May 2006 01:39:00 +0200</pubDate>
    <guid isPermaLink="false">http://hillview.1on.de/archives/18-guid.html</guid>
    <category>cl-sql</category>
<category>debian</category>
<category>lisp</category>
<category>ubuntu</category>
<category>ucw</category>
<category>web development</category>

</item>

</channel>
</rss>