Posted by Holger Schauer in
Programming
Monday, April 30. 2007
Posted by Holger Schauer in
Emacs
Tuesday, April 24. 2007
In an older blog post, 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 handling version control in Emacs at the Emacs Wiki. I haven't looked at all of them, but stumbling over DVC, 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 ...
Posted by Holger Schauer in
Freiburg, German, Politics
Wednesday, April 18. 2007
Zwei mal Politik, zweimal Freiburg, und doch keine Lokalpolitik: Man fragt sich ja wirklich, wohin unsere Politiker gerade unterwegs sind. Zum einem ist da ein Ministerpräsident, dem man die Nachhilfe in Geschichte bzgl. eines seiner Vorgängers nicht nur einfach nur geben, sondern schon aufnötigen muss und der damit beweist, dass der schon etwas ältere Spruch "Wir können alles außer Bildung" auch bzgl. seiner eigenen Person zutrifft.
Aber das ist ja vergleichsweise harmlos, könnte man meinen, denn das betrifft ja "nur" die Vergangenheit. Viel schlimmer sind da die aktuellen Ideen des anderen "Freiburgers der Woche", wobei ich mir recht sicher bin, dass diese "neue" kreative Idee das Unschuldsprinzip außer Kraft zu setzen nicht auch schon in Deutschland durch "prior art" belegt ist. Schönes Schlagwort dazu im Netz: Nach Web 2.0 kommt Stasi 2.0.
Wobei ich ja mittlerweile geneigt bin, zu vermuten, dass die beiden Dinge in Verbindung stehen: Vielleicht hat sich da einer bei der CDU gedacht, der Oettinger, der kann mal schön einen Sturm im Wasserglas veranstalten, und wir ziehen parallel mit viel weniger Aufmerksamkeit noch ganz andere Sachen durch. Und wenn man sich das doch eher geringe Medienecho anschaut, dann hat das doch ganz gut geklappt.
Posted by Holger Schauer in
Linux
Tuesday, April 17. 2007
Today, I've been bitten by this bug in apt-get -- running apt-get update/upgrade or any other application depending on apt, like, e.g. aptitude or apt-cache would simply segfault. This is the first time in roughly ten years use of Debian that I encountered a bug in one of the major administrative tools. I'm not sure I should be happy that it took so long or unhappy because it happened today. Anyway, the bug report (actually, I think there are probably two bugs lurking, the segfault I encountered is the same as the second backtrace) contained the required information to work around it: (re)move /var/cache/apt/*.bin and everything worked again. Strange.
Posted by Holger Schauer in
Emacs, Lisp
Friday, April 13. 2007
Moving back in time is easy when the tools you're using are a versioning control system like CVS or RCS [1], (X)Emacs, it'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'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.
I then looked through the log of modifications I did to the file (which is under version control via RCS) by hitting "C-x v l" (equivalent to "M-x vc-print-log"). Turned out that I did some modifications between versions 1.5 and 1.6 to the part under consideration. Hitting "C-x v ~" (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'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~.
Now, to see what was happening in between those two versions, I first looked at the differences between the two files. "M-x ediff" 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 "C-c C-k" (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't many interactions between the part of the app in question and other parts of the system, in particular I needn'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't the issue: I only wanted to figure out how the old version worked wrt. to that particular part that wasn't working in my current state, hence a fully working old version wasn't what I was looking for.
Now, it did require a little more close attention to the changes I made to discover the mistake. But I think it's amazing in how few steps it's possible to regenerate an old behaviour. All the while, my current state of affairs remained largely untouched, I didn't need to create any copies or move files around or do a larger recompilation. I think that's a highly effective way of discovering the introduction of a bug.
Update: Kent Pitman, who's giving cll another of his (lately very rare) visits, pointed to one of his older papers ( Accelerating Hindsight), which I'm surely have seen before but totally forgotten, which talks about how good Common Lisp is for rapid prototyping. What I've shown above is actually just an example of two points in this paper: dynamic redefinition and editor integration. Go figure.
Footnotes:
[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's not compatible.
Posted by Holger Schauer in
Linux
Monday, April 9. 2007
Back from the usual familiy visit for Easter, I discovered that the rabbit had a very special egg for the open source community: Etch(aka Debian 4.0) has been released. So, while I wanted to do some running in the afternoon, my server is going to do something for his fitness ...
Posted by Holger Schauer in
Computer
Wednesday, April 4. 2007
I want that keyboard, really. Now, if He would lend me one right hand for one of my two left ones ...
Posted by Holger Schauer in
Linux, Lisp
Wednesday, April 4. 2007
Reading Bill Clementson's blog pointed me to Edi Weitz new STARTER-PACK Lisp package, which tries to overcome one of Common Lisp perceived entry level problems for newcomers, when compared to e.g. Python. Python is known to come with "batteries included" which actually means that you'll have lots of libraries for everyday problems installed out of the box. For Common Lisp, not much has been accomplished in this area, as most people still seem to be debating on comp.lang.lisp about standarization. Edi's starter pack instead does the right thing: It provides a simple selection of common packages, some of which could be called to have achieved de-facto standard level (e.g. his own CL-PPCRE package). Unfortunately, it's for Windows and Lispworks only, which Bill ported to Mac/LW.
Being a Debian user since many years (should be roughly ten years now), I think that it would be fairly simple to achieve something similar (but not at all comparable) to STARTER-PACK. There are already a lot of Common Lisp packages in Debian, what's missing, however, is a CL-TASK package. Such a package could do what all other task-* packages do in Debian: Have dependencies on the most common packages. This would provide at least a starting point for the newbies with CL in Debian. I think, I'm going to discuss this with Peter van Eynde via mail and also on cll.
Posted by Holger Schauer in
Linux
Monday, April 2. 2007
Dear Lazyweb: Are there any good tutorials on turning a running native Windows installation into a Xen instance (i.e. without a fresh installation)? Preferably on an Ubuntu (edgy) host? Alternatively, Debian etch would also be an option, though I don't believe the OS of the host system matters much. Yes, I know, I need paravirtualization for that, but apart from that I know next to nothing about Xen, so all up-to-date tutorials on Xen are welcome, too.
|