<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>mgr's weblog</title>
<link>https://blog.matroid.org:443/</link>
<description>mgr's weblog archives for category Lisp</description>
<language>en</language>
<item><title> Pushing the logic to the data &#x2013; Running Dydra's revisioning algorithm within RonDB's data nodes </title>
<link>https://blog.matroid.org:443/display/95</link>
<pubDate>Tue, 23 Jul 2024 12:03:26 GMT</pubDate>
<description>&lt;p&gt;July 23, 2024. News release.&lt;/p&gt;

&lt;p&gt;Datagraph GmbH, Berlin. &amp;#x2013; We are working on ways to distribute not just data storage, but also query processing. Dydra, our graph database, can use a RonDB NDB Cluster as storage backend for large repositories of billions of triples. We discussed with Mikael Ronstr&amp;ouml;m of RonDB and Hopsworks how we could improve our use of RonDB and its advanced features, and proposed to investigate how extensions to the RonDB interpreted code language could make it possible to move our revision visibility test from the core of our graph database system to an implementation that runs in RonDB's data nodes. That would distribute the processing load and reduce the transferred data.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;That is, we could push the test to the data instead of having to pull all data to the test.&lt;/em&gt;&lt;/p&gt;
&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/95"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>uLisp on M5Stack (ESP32):<br/> support for the LED matrix of the M5Atom Matrix</title>
<link>https://blog.matroid.org:443/display/92</link>
<pubDate>Thu, 09 Dec 2021 11:30:34 GMT</pubDate>
<description>&lt;p&gt;I got a good friend join the uLisp fun and he extended my support for
the single LED of the M5Atom Lite to &lt;a href="https://github.com/m-g-r/ulisp-esp-m5stack/commit/e7ab18e0039904afb52b4ba0e42a3220a0e2ff2c"&gt;support the 25 LEDs of the M5Atom Matrix&lt;/a&gt;.  The single LED has just the same interface as the LED matrix, as expected.&lt;/p&gt;

&lt;p&gt;Thanks, &lt;a href="https://github.com/cycle-uber-space"&gt;Thorsten&lt;/a&gt;!
&lt;/p&gt;

&lt;p&gt;It has a nice &lt;a href="https://github.com/m-g-r/ulisp-esp-m5stack/commit/04be8d0978587f50bd916c72924399b0305f5eb8"&gt;backwards compatible interface&lt;/a&gt;, the functions atomled
(for C) and atom-led (for Lisp) just have a new second argument
&lt;tt&gt;index&lt;/tt&gt;, which is &lt;tt&gt;0&lt;/tt&gt; by default, for the first&amp;mdash; or, in case of the M5Atom Lite, only&amp;mdash;LED.&lt;/p&gt;

&lt;p&gt;The C function you can call like this:&lt;/p&gt;

&lt;p&gt;&lt;div class="code"&gt; &lt;pre&gt;atomled(0x00ff00);
/&amp;ast; or: &amp;ast;/
atomled(0x00ff00, 23);&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;where 0x00ff00 describes a RGB color in 32 bits.&lt;/p&gt;

&lt;p&gt;And the uLisp function you can call very similarly like this:&lt;/p&gt;

&lt;p&gt;&lt;div class="code"&gt; &lt;pre&gt;(atom-led #xffff00)
#| or: |#
(atom-led #xffff00 23)&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;I have merged it to my repository &lt;a href="https://github.com/m-g-r/ulisp-esp-m5stack"&gt;ulisp-esp-m5stack&lt;/a&gt; already. Activate the new flag &lt;tt&gt;#define enable_m5atom_led_matrix&lt;/tt&gt; in addition to &lt;tt&gt;#define enable_m5atom_led&lt;/tt&gt; to use the whole LED matrix of the M5Atom Matrix instead of just the first LED.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;
See also &lt;a href="https://blog.matroid.org:443/display/91"&gt;&lt;span class="title"&gt;built-in LED of the M5Atom Lite&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/92"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>uLisp on M5Stack (ESP32):<br/> built-in LED of the M5Atom Lite</title>
<link>https://blog.matroid.org:443/display/91</link>
<pubDate>Wed, 08 Dec 2021 18:33:12 GMT</pubDate>
<description>&lt;p&gt;I just published support of the M5Atom Lite LED at &lt;a href="https://github.com/m-g-r/ulisp-esp-m5stack"&gt;ulisp-esp-m5stack&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There is a C function that you can call like this:&lt;/p&gt;

&lt;p&gt;&lt;div class="code"&gt; &lt;pre&gt;atomled(0x00ff00);&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;where 0x00ff00 describes a RGB color in 32 bits.&lt;/p&gt;

&lt;p&gt;And a uLisp function that you can call very similarly like this:&lt;/p&gt;

&lt;p&gt;&lt;div class="code"&gt; &lt;pre&gt;(atom-led #xffff00)&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Activate &lt;tt&gt;#define enable_m5atom_led&lt;/tt&gt; to get it. That will also automatically &lt;tt&gt;init_atomled();&lt;/tt&gt; in &lt;tt&gt;setup()&lt;/tt&gt; after booting the ESP32.&lt;/p&gt;

&lt;p&gt;I have actually tried the libraries FastLED (by Daniel Garcia, version 3.4.0), Easy Neopixels (by Evelyn MAsso, version 0.2.3), and NeoPixelBus (by Makuna, version 2.6.9) as well, but settled to use the library Adafruit NeoPixel (by Adafruit, version 1.10.0). It is small, doesn't have tons of bloat, works for me and has a nice interface that makes my implementation so tiny you would think it was almost no work.&lt;/p&gt;&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/91"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>uLisp on M5Stack (ESP32):<br/> new version published</title>
<link>https://blog.matroid.org:443/display/90</link>
<pubDate>Mon, 06 Dec 2021 15:32:16 GMT</pubDate>
<description>&lt;p&gt;I got notified that I haven't updated &lt;a href="https://github.com/m-g-r/ulisp-esp-m5stack"&gt;ulisp-esp-m5stack&lt;/a&gt; at GitHub for quite a while. Sorry, for that. Over the last months I worked on a commercial project using uLisp and forgot to update the public repository. At least I have bumped ulisp-esp-m5stack to my version of it from May 13th, 2021 now.&lt;/p&gt;

&lt;p&gt;It is a&amp;mdash;then&amp;mdash;unpublished version of uLisp named 3.6b which contains a bug fix for a GC bug in with-output-to-string and a bug fix for lispstring, both authored by David Johnson-Davies who sent them to my via email for testing. Thanks a lot again! It seems they are also included in the &lt;a href="https://github.com/technoblogy/ulisp-esp/commit/21c6fc3e0def61c1569f0d727a4a121aa2ce32cc"&gt;uLisp Version 3.6b that David published on 20th June 2021&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I know there David published a couple of new releases of uLisp in the meantime with many more interesting improvements but this is the version I am using since May together with a lot of changes by me which I hope to find time to release as well in the near future.&lt;/p&gt;
&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/90"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>uLisp on M5Stack (ESP32):<br/> controlling relays connected to I2C via a PCF8574</title>
<link>https://blog.matroid.org:443/display/89</link>
<pubDate>Mon, 18 Oct 2021 15:47:48 GMT</pubDate>
<description>&lt;p&gt;&lt;div class="center"&gt;
&lt;a href="https://blog.matroid.org:443/files/20211018-io-expansion-relais-board/sensors-anotated-2021-09-20-172444_003__io-relais.jpg"&gt;&lt;img src="https://blog.matroid.org:443/files/20211018-io-expansion-relais-board/sensors-anotated-2021-09-20-172444_003__io-relais_500.jpg" title="relay module connected to I2C via a PCF8574; click for a larger version (180&amp;nbsp;kB)." alt="relay module connected to I2C via a PCF8574; click for a larger version (180&amp;nbsp;kB)."&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Looking at the data sheet of the PCF8574 I found that it will be
trivially simple to use it to control a relay board without any lower
level Arduino library:
Just write a second byte in addtion to the address to the I2C bus
directly with uLisp's &lt;a href="http://www.ulisp.com/show?1EK4"&gt;WITH-I2C&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Each bit of the byte describes the state of one of the eight outputs,
or rather its inverted state as the PCF8574 has open-drain outputs and
thus setting an output to LOW opens a connection to ground (with up
to 25&amp;thinsp;mA), while HIGH disables the relay. (The data sheets actually
say they are push-pull outputs but as high-level output the maximum
current is just 1&amp;thinsp;mA which is not much and for this purpuse
certainly not enough.)&lt;/p&gt;

&lt;p&gt;The whole job can basically done with one or two lines. Here is switching on the forth relay (that is number 3 with zero-based counting):&lt;/p&gt;

&lt;p&gt;&lt;div class="code"&gt;
&lt;pre&gt;(with-i2c (str #x20)
  (write-byte (logand #xff (lognot (ash 1 3))) str))&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Here is my whole initial library:&lt;/p&gt;
&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/89"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>uLisp on M5Stack (ESP32):<br/>Stand-alone uLisp computer (with code!)</title>
<link>https://blog.matroid.org:443/display/88</link>
<pubDate>Fri, 02 Apr 2021 12:56:46 GMT</pubDate>
<description>&lt;p&gt;Last Thursday, I started to use the m5stack faces keyboard &lt;a href="https://blog.matroid.org:443/display/82"&gt;&lt;span class="title"&gt;I mentioned before&lt;/span&gt;&lt;/a&gt; and wrote a
keyboard interpreter and REPL so that this makes another little handheld
self-containd uLisp computer. Batteries are included so this makes it
stand-alone and take-along. :) &lt;/p&gt;

&lt;p&gt;I have made this as a present to my nephew who just turned eight last Saturday.
Let's see how this can be used to actually teach a bit of Lisp. The first programming language needs to be Lisp, of course!&lt;/p&gt;

&lt;p&gt;&lt;div class="center"&gt;
&lt;a href="https://blog.matroid.org:443/files/20210402-m5stack-faces-standalone-ulisp-computer/2021-03-27-114451_m5stack-standalone-ulisp-computer.jpg"&gt;&lt;img src="https://blog.matroid.org:443/files/20210402-m5stack-faces-standalone-ulisp-computer/2021-03-27-114451_m5stack-standalone-ulisp-computer_sma.jpg" title="Programming &amp;ldquo;Hello World!&amp;rdquo; on the M5Stack with Faces keyboard; click for a larger version (252&amp;nbsp;kB)." alt="Programming &amp;ldquo;Hello World!&amp;rdquo; on the M5Stack with Faces keyboard; click for a larger version (252&amp;nbsp;kB)."&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/88"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>uLisp on M5Stack (ESP32):<br/> temperature sensors via one wire</title>
<link>https://blog.matroid.org:443/display/87</link>
<pubDate>Sat, 27 Mar 2021 20:18:40 GMT</pubDate>
<description>&lt;p&gt;I added support for Dallas temperature sensors to &lt;a href="https://github.com/m-g-r/ulisp-esp-m5stack"&gt;ulisp-esp-m5stack&lt;/a&gt;. Activate &lt;tt&gt;#define enable_dallastemp&lt;/tt&gt; in order to use it. It bases on the Arduino libraries &lt;tt&gt;OneWire.h&lt;/tt&gt; &lt;tt&gt;DallasTemperature.h&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;I used pin 16 to connect my sensors but you can change ONE_WIRE_BUS to use a different pin. As the OneWire library uses simple bit bagging and no hardware support, e.&amp;thinsp;g. UART, any general-purpose input/output (GPIO) pin will work.&lt;/p&gt;

&lt;p&gt;The interface consists of four uLisp functions:
INIT-TEMP, GET-TEMP, SET-TEMP-RESOLUTION, and GET-TEMP-DEVICES-COUNT.
Here is their documentation:&lt;/p&gt;

&lt;p&gt;&lt;div class="code"&gt;
&lt;pre&gt;Function init-temp
 
Syntax:
   init-temp
     =&gt; result-list&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;
Arguments and values:&lt;br&gt;
&amp;ensp;&amp;ensp;&amp;ensp;result-list---a list of device addresses; each address being
a list of 8 integer values specifying a device address.&lt;/p&gt;

&lt;p&gt;Description:&lt;br&gt;
&amp;ensp;&amp;ensp;&amp;ensp;Detects all supported temperature sensors connected via one wire
bus to the pin ONE_WIRE_BUS and returns the list of the sensors'
device addresses.&lt;/p&gt;

&lt;p&gt;&amp;ensp;&amp;ensp;&amp;ensp;All sensors are configured to use the resolution specified by
default DEFAULT_TEMPERATURE_PRECISION via a broadcast. Note that
a sensor might choose a different resolution if the desired resolution
is not supported. See also: set-temp-resolution.
&lt;/tt&gt;&lt;/div&gt;&lt;/p&gt;
&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/87"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>"Curl/Wget for uLisp"<br/>Or: An HTTP(s) get/post/put function for uLisp</title>
<link>https://blog.matroid.org:443/display/86</link>
<pubDate>Tue, 23 Feb 2021 11:37:49 GMT</pubDate>
<description>&lt;p&gt;Oh, I forgot to continue posting&amp;hellip; I just published a quite comprehensive HTTP function supporting put, post, get, auth, HTTP and HTTPS, and more for uLisp at &lt;a href="https://github.com/m-g-r/ulisp-esp-m5stack"&gt;ulisp-esp-m5stack&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Activate &lt;tt&gt;#define enable_http&lt;/tt&gt; and &lt;tt&gt;#define enable_http_keywords&lt;/tt&gt; to get it; the keywords used by the &lt;tt&gt;http&lt;/tt&gt; function are to be enabled separately as they might be used more general and not just by this function.&lt;/p&gt;

&lt;p&gt;Note that you need to connect to the internet first. Usually with &lt;a href="http://www.ulisp.com/show?2B27"&gt;&lt;tt&gt;WIFI-CONNECT&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here is the full documentation with example calls:&lt;/p&gt;
&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/86"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>Again more features for uLisp on M5Stack (ESP32):<br/>time via NTP, lispstring without escaping and more space</title>
<link>https://blog.matroid.org:443/display/85</link>
<pubDate>Tue, 16 Feb 2021 19:41:15 GMT</pubDate>
<description>&lt;p&gt;I just pushed three small things to &lt;a href="https://github.com/m-g-r/ulisp-esp-m5stack"&gt;ulisp-esp-m5stack&lt;/a&gt;: Get time via NTP, add optional escape parameter to function &lt;tt&gt;lispstring&lt;/tt&gt;, increased &lt;tt&gt;WORKSPACESIZE&lt;/tt&gt; and &lt;tt&gt;SYMBOLTABLESIZE&lt;/tt&gt; for M5Stack.
&lt;/p&gt;

&lt;p&gt;&lt;h3&gt;Getting time via NTP&lt;/h3&gt;
Enable &lt;tt&gt;#define enable_ntptime&lt;/tt&gt; to get time via NTP. New functions &lt;tt&gt;INIT-NTP&lt;/tt&gt; and &lt;tt&gt;GET-TIME&lt;/tt&gt;.
    
Note that you need to connect to the internet first. Usually with &lt;a href="http://www.ulisp.com/show?2B27"&gt;&lt;tt&gt;WIFI-CONNECT&lt;/tt&gt;&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;&lt;div class="code"&gt;
&lt;pre&gt;Function init-ntp
 
Syntax:
   init-ntp
     =&gt; nil&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;tt&gt; 
Description:&lt;br&gt;
&amp;ensp;&amp;ensp;&amp;ensp;Initializes and configures NTP.
&lt;/tt&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;&lt;div class="code"&gt;
&lt;pre&gt;Function get-time
 
Syntax:
   get-time
     =&gt; timestamp&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;
Arguments and values:&lt;br&gt;
&amp;ensp;&amp;ensp;&amp;ensp;timestamp---a string; containing a timestamp in the format of xsd:dateTime.&lt;/p&gt;

&lt;p&gt;Description:&lt;br&gt;
&amp;ensp;&amp;ensp;&amp;ensp;Returns a timestamp in the format of xsd:dateTime.
&lt;/tt&gt;&lt;/div&gt;&lt;/p&gt;
&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/85"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>More features for uLisp on M5Stack (ESP32):<br/>flash support, muting of the speaker and backlight control</title>
<link>https://blog.matroid.org:443/display/84</link>
<pubDate>Mon, 15 Feb 2021 21:36:44 GMT</pubDate>
<description>&lt;p&gt;I finished the IoT sensor device prototype and shipped it last Thursday. It just has a stub bootstrap system in the flash via uLisp's Lisp Library and downloads the actual application in a second boot phase via HTTPS. More on that later.&lt;/p&gt;

&lt;p&gt;To make it happen I've added a bunch of things to &lt;a href="https://github.com/m-g-r/ulisp-esp-m5stack"&gt;ulisp-esp-m5stack&lt;/a&gt;: flash support, fixes for some quirks of the M5Stack, time via NTP,  an HTTP function supporting methods PUT, POST, GET, Auth, HTTP and HTTP, temperature sensors via one wire, and more. I plan to publish all these features in the next days.&lt;/p&gt;

&lt;p&gt;Today you get: flash support, muting of the builtin speaker and control of the LED backlight of the builtin display.&lt;/p&gt;
&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/84"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>StumpWM: vsplit-three</title>
<link>https://blog.matroid.org:443/display/83</link>
<pubDate>Sun, 07 Feb 2021 00:19:25 GMT</pubDate>
<description>&lt;p&gt;A good ten month ago I switched away from a full desktop environment being finally tired enough that user software gets more and ever more features and tries to anticipate more and more what I &lt;em&gt;might want&lt;/em&gt; but in the end my own computer never &lt;em&gt;actually does&lt;/em&gt; what I want and only that. PulseAudio being the most dreaded example of a piece of code that gets more, more and more magic and complexity and in the end it never does what you actually want while at the same time telling it to do so got completely impossible because of many layers of abstractions and magic. PulseAudio has a lot of "rules", "profiles", "device intended roles", "autodetecting", "automatic setup and routing" and "other housekeeping actions". Look at this article &lt;a href="https://gavv.github.io/articles/pulseaudio-under-the-hood/"&gt;PulseAudio under the hood&lt;/a&gt; by Victor Gaydov (which is also the source of the terms I just quoted): It has 174 occurrences of words starting with "auto-": automatically &amp;ndash; 106, automatic &amp;ndash; 27, autoload&lt;em&gt; &amp;ndash; 16, autospawn &amp;ndash; 14, autodetect &amp;ndash; 4, autoexit &amp;ndash; 2, automate&lt;/em&gt; &amp;ndash; 2, auto timing &amp;ndash; 1, auto switch &amp;ndash; 1, and once "magically" when it is even too much for the author.&lt;/p&gt;

&lt;p&gt;So, more control and less clutter instead. After years again I use just a good old window manager, individual programs, and got rid of PulseAudio.&lt;/p&gt;
&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/83"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>uLisp on M5Stack (ESP32)</title>
<link>https://blog.matroid.org:443/display/82</link>
<pubDate>Thu, 28 Jan 2021 13:17:29 GMT</pubDate>
<description>&lt;p&gt;About two years I ago I bought a couple of &lt;a href="http://www.m5stack.com"&gt;M5Stack ESP32 computers&lt;/a&gt; on a Maker Fair. I made little use of them so far but now I started to put &lt;a href="http://www.ulisp.com/"&gt;uLisp&lt;/a&gt; on them and suddenly it is much more fun. &lt;/p&gt;

&lt;p&gt;&lt;div class="center"&gt;
&lt;a href="https://blog.matroid.org:443/files/20210128-uLisp-esp-m5stack/20210124_233315_lev-desp-mid.jpg"&gt;&lt;img src="https://blog.matroid.org:443/files/20210128-uLisp-esp-m5stack/20210124_233315_lev-desp-sma.jpg" title="&amp;ldquo;Hello uLisp!&amp;rdquo; on the M5Stack; click for a larger version (323&amp;nbsp;kB)." alt="&amp;ldquo;Hello uLisp!&amp;rdquo; on the M5Stack; click for a larger version (323&amp;nbsp;kB)."&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/82"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>20 years' anniversary for SBCL</title>
<link>https://blog.matroid.org:443/display/81</link>
<pubDate>Sun, 24 Jan 2021 12:28:40 GMT</pubDate>
<description>&lt;p&gt;&lt;div class="center"&gt;
&lt;a href="https://blog.matroid.org:443/files/20210124-20-years-SBCL/20191209-20-Years-anniversary-for-SBCL.jpeg"&gt;&lt;img src="https://blog.matroid.org:443/files/20210124-20-years-SBCL/20191209-20-Years-anniversary-for-SBCL_sm.jpeg" title="20 years' anniversary for SBCL has started; click for a larger version (222&amp;nbsp;kB)." alt="20 years' anniversary for SBCL has started; click for a larger version (222&amp;nbsp;kB)."&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;&lt;br/&gt;
(Moving content &lt;a href="https://blog.matroid.org:443/display/77"&gt;&lt;span class="title"&gt;from Twitter&lt;/span&gt;&lt;/a&gt;: &lt;a href="https://twitter.com/RetzlaffWenger/status/1203957390351224832"&gt;originally posted on Dec 9, 2019,  9:39 AM.&lt;/a&gt;)&lt;/p&gt;&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/81"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>Motto: Our LISP is COMMON LISP</title>
<link>https://blog.matroid.org:443/display/80</link>
<pubDate>Sun, 24 Jan 2021 12:18:20 GMT</pubDate>
<description>&lt;p&gt;&lt;div class="center"&gt;
&lt;a href="https://blog.matroid.org:443/files/20210124-Our-Lisp/Our-Lisp-is-COMMON-LISP_Lisp-2nd-edition_Winston-and-Horn.jpeg"&gt;&lt;img src="https://blog.matroid.org:443/files/20210124-Our-Lisp/Our-Lisp-is-COMMON-LISP_Lisp-2nd-edition_Winston-and-Horn.jpeg" title="Our LISP is COMMON LISP, from:  Lisp 2nd edition by Winston and Horn, Addison Wesley, 1984; click for a larger version (198&amp;nbsp;kB)." alt="Our LISP is COMMON LISP, from:  Lisp 2nd edition by Winston and Horn, Addison Wesley, 1984; click for a larger version (198&amp;nbsp;kB)."&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Excerpt from: Lisp 2nd edition by Winston and Horn, Addison Wesley, 1984.&lt;/p&gt;

&lt;p&gt;&lt;br/&gt;
(Moving content &lt;a href="https://blog.matroid.org:443/display/77"&gt;&lt;span class="title"&gt;from Twitter&lt;/span&gt;&lt;/a&gt;: &lt;a href="https://twitter.com/RetzlaffWenger/status/1205503658273718277"&gt;originally posted on Dec 13, 2019,  4:04 PM.&lt;/a&gt;)&lt;/p&gt;&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/80"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>On the different versions of the<br/> ANSI Common Lisp Standard X3.226-1994</title>
<link>https://blog.matroid.org:443/display/79</link>
<pubDate>Thu, 21 Jan 2021 21:21:21 GMT</pubDate>
<description>&lt;p&gt;The Common Lisp standard has had different names and annual details
suffixes. The standard was developed by the Technical Committee X3J13
of the &amp;ldquo;Accredited Standards Committee X3, Information Technology&amp;rdquo;
founded and accredited by the American National Standards Institute
(ANSI) in &lt;a href="https://www.incits.org/about/history"&gt;1961&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In one of my professional lives I am
working in the &amp;ldquo;Accredited Standards Committee X12&amp;rdquo; (also
written as &amp;ldquo;ASC X12&amp;rdquo; or just &amp;ldquo;X12&amp;rdquo;; founded in
1979) since just shy of four years now and was voted &amp;ldquo;TAS Representative&amp;rdquo; of &lt;a href="https://x12.org/about/committees/subcommittee-x12c-communications-and-controls"&gt;&amp;ldquo;Subcommittee X12C &amp;ndash; Communications and Controls&amp;rdquo;&lt;/a&gt;
(&lt;a href="https://blog.matroid.org:443/files/20210119-ANSI-Common-Lisp-Standard/2021-01-19-X12C.png"&gt;local copy&lt;/a&gt;)
in January 2018, that is, I represent X12C in &lt;a href="https://x12.org/about/committees/subcommittee-x12j-technical-assessment"&gt;&amp;ldquo;Subcommittee X12J &amp;ndash; Technical Assessment&amp;rdquo;&lt;/a&gt; (&lt;a href="https://blog.matroid.org:443/files/20210119-ANSI-Common-Lisp-Standard/2021-01-19-X12J.png"&gt;local copy&lt;/a&gt;), short
&amp;ldquo;TAS&amp;rdquo;, since then. Having that background, I might be able
to shed a light on the different versions of the Common Lisp standard
and on how standardization committees' work looks in general.&lt;/p&gt;

&lt;p&gt;I have to admit that one of the reasons I liked to start working in
X12 is that I knew that the Common Lisp standard was developed by
X3. I did now know how standards were developed and how such a
committee worked, and I was curious to change that.&lt;/p&gt;

&lt;p&gt;When you search in the &lt;a href="https://webstore.ansi.org"&gt;ANSI Webstore&lt;/a&gt;
you'll find different versions:
&lt;ul&gt;
&lt;li&gt; &lt;a href="https://webstore.ansi.org/Standards/INCITS/ANSIX32261994"&gt;ANSI X3.226-1994&lt;/a&gt;
&lt;li&gt; &lt;a href="https://webstore.ansi.org/Standards/INCITS/ANSIINCITS2261994R1999"&gt;ANSI INCITS 226-1994 (R1999)&lt;br/&gt; (formerly ANSI X3.226-1994 (R1999))&lt;/a&gt;
&lt;li&gt; &lt;a href="https://webstore.ansi.org/Standards/INCITS/ANSIINCITS2261994R2004"&gt;ANSI INCITS 226-1994 (R2004)&lt;/a&gt;
&lt;li&gt; &lt;a href="https://webstore.ansi.org/Standards/INCITS/INCITS2261994S2008"&gt;INCITS 226-1994 &amp;#x005B;S2008&amp;#x005D;&lt;/a&gt;
&lt;/ul&gt;&lt;/p&gt;

&lt;p&gt;The standard was originally published (or, more precisely, approved for
publication) in 1994, so the first version is just called &amp;ldquo;ANSI
X3.226-1994&amp;rdquo;. The date of approval was December 8, 1994.&lt;/p&gt;
&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/79"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>Original IBM 3-ring binders</title>
<link>https://blog.matroid.org:443/display/78</link>
<pubDate>Thu, 21 Jan 2021 21:06:53 GMT</pubDate>
<description>&lt;p&gt;Follow-up to &lt;a href="https://blog.matroid.org:443/display/76"&gt;&lt;span class="title"&gt;Physical dimensions of ANSI Common Lisp&lt;/span&gt;&lt;/a&gt;:
It just took two days of searching and I got these three beautiful 25+ year old IBM 3-ring binders. How nice to live in Berlin!&lt;/p&gt;

&lt;p&gt;&lt;div class="center"&gt;
&lt;a href="https://blog.matroid.org:443/files/20201228-Common-Lisp-IBM-binders/DSC_1071_lev-rot-cr-mid.jpg"&gt;&lt;img src="https://blog.matroid.org:443/files/20201228-Common-Lisp-IBM-binders/DSC_1071_lev-rot-cr-sma.jpg" title="ANSI Common Lisp in IBM 3-ring binders; click for a larger version (228&amp;nbsp;kB)." alt="ANSI Common Lisp in IBM 3-ring binders; click for a larger version (228&amp;nbsp;kB)."&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Ah, yes, much better:&lt;/p&gt;

&lt;p&gt;&lt;div class="center"&gt;
&lt;a href="https://blog.matroid.org:443/files/20201228-Common-Lisp-IBM-binders/DSC_1077_lev-rot-cr2-mid.jpg"&gt;&lt;img src="https://blog.matroid.org:443/files/20201228-Common-Lisp-IBM-binders/DSC_1077_lev-rot-cr2-sma.jpg" title="ANSI Common Lisp in IBM 3-ring binders; click for a larger version (247&amp;nbsp;kB)." alt="ANSI Common Lisp in IBM 3-ring binders; click for a larger version (247&amp;nbsp;kB)."&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;And yes, if you don't want them full to the brim you need three binders for the ANSI Common Lisp standard.&lt;/p&gt;&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/78"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
<item><title>Physical dimensions of ANSI Common Lisp</title>
<link>https://blog.matroid.org:443/display/76</link>
<pubDate>Sun, 20 Dec 2020 15:42:29 GMT</pubDate>
<description>&lt;p&gt;If you ever wondered what a unit of ANSI Common Lisp weights: It's 3.1&amp;thinsp;kg!&lt;/p&gt;

&lt;p&gt;&lt;div class="center"&gt;
&lt;a href="https://blog.matroid.org:443/files/20201220-Common-Lisp/DSC_0934_crlev-mid.JPG"&gt;&lt;img src="https://blog.matroid.org:443/files/20201220-Common-Lisp/DSC_0934_crlev-sma.JPG" title="ANSI Common Lisp on a scale; click for a larger version (238&amp;nbsp;kB)." alt="ANSI Common Lisp on a scale; click for a larger version (238&amp;nbsp;kB)."&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;And duplex printed on ANSI(sic!) letter paper, it's a stack of 7&amp;thinsp;cm height.&lt;/p&gt;

&lt;p&gt;&lt;div class="center"&gt;
&lt;a href="https://blog.matroid.org:443/files/20201220-Common-Lisp/DSC_0989_crlev_mid.JPG"&gt;&lt;img src="https://blog.matroid.org:443/files/20201220-Common-Lisp/DSC_0989_crlev_sma.JPG" title="Measuring the height of ANSI Common Lisp; click for a larger version (2908&amp;nbsp;kB)." alt="Measuring the height of ANSI Common Lisp; click for a larger version (2908&amp;nbsp;kB)."&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Still beautiful:&lt;/p&gt;

&lt;p&gt;&lt;div class="center"&gt;
&lt;a href="https://blog.matroid.org:443/files/20201220-Common-Lisp/DSCPDC_0003_BURST20201217114402368_COVER_crlev_mid.JPG"&gt;&lt;img src="https://blog.matroid.org:443/files/20201220-Common-Lisp/DSCPDC_0003_BURST20201217114402368_COVER_crlev_sma.JPG" title="Printout of ANSI INCITS 226-1994 (R2004) (formerly ANSI X3.226-1994 (R1999)); click for a larger version (3028&amp;nbsp;kB)." alt="Printout of ANSI INCITS 226-1994 (R2004) (formerly ANSI X3.226-1994 (R1999)); click for a larger version (3028&amp;nbsp;kB)."&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;By the way, this is the "American National Standard for Information Technology &amp;ndash; Programming Language Common Lisp", "ANSI INCITS 226-1994 (R2004) (formerly ANSI X3.226-1994 (R1999))", but more on the different revisions in a separate post.&lt;/p&gt;

&lt;p&gt;I've got &lt;a href="https://www.cliki.net/cltl2"&gt;CLtL2&lt;/a&gt; for years and use the &lt;a href="http://www.lispworks.com/documentation/common-lisp.html"&gt;Common Lisp HyperSpec&lt;/a&gt; for, puh, 16 years?, still
I am surprised by the sheer volume and weight of this printed copy!&lt;/p&gt;

&lt;p&gt;Next question: Where do I get a three 3-ring binder for US letter pages in Germany? (Update, see: &lt;a href="https://blog.matroid.org:443/display/78"&gt;&lt;span class="title"&gt;Original IBM 3-ring binders&lt;/span&gt;&lt;/a&gt;)&lt;/p&gt;&lt;P&gt;&lt;I&gt;Read the &lt;A HREF="https://blog.matroid.org:443/display/76"&gt;whole article.&lt;/A&gt;
&lt;/I&gt;
&lt;/P&gt;
</description>
</item>
</channel>
</rss>
