# Common Lisp

Common Lisp is a high-level, general-purpose, multi-paradigm programming language standardized by ANSI, with implementations that include compilers, interpreters, debuggers, and other programming facilities.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Nerd Sniped by BINFMT\_MISC

DevFeed: [Nerd Sniped by BINFMT\_MISC](<https://devfeed.tech/articles/nerd-sniped-by-binfmt-misc-35180.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/nerd-sniped-by-binfmt_misc/>)

Published: 2018-03-04T15:25:24Z

Content type: article

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [Containers](<https://devfeed.tech/topics/containers.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Lisp](<https://devfeed.tech/topics/lisp.md>), [Scripting](<https://devfeed.tech/topics/scripting.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>)

Tags: [containers](<https://devfeed.tech/tags/containers.md>), [go](<https://devfeed.tech/tags/go.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [scripting](<https://devfeed.tech/tags/scripting.md>)

### AI overview

The author explores using BINFMT_MISC to run scripts in different languages without installing their runtimes on the host. They combine it with binctr, a project that embeds a container image into a static executable, and demonstrate the approach with a Common Lisp container.

### Source excerpt

This is a story about how I got nerd sniped by a blog post from Cloudflare Engineering. The TLDR on their post is that you can script in Go if you use BINFMT_MISC in the kernel. BINFMT_MISC is really well documented and awesome. In the end, all they had to do to script in Go was to mount the filesystem: $ mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc Then, register the Go script binary format: $ echo ':golang:E::go::/usr/local/bin/gorun:OC' | sudo tee /proc/sys/fs/binfmt_misc/register :golang:E::go::/usr/local/bin/gorun:OC Then you can ./ any go file on your host: $ chmod u+x helloscript.go $ ./helloscript.go Hello, world! They go through all the extraordinary details of exit codes for the shell and blah blah blah. It's a great post you should really read it. Do it, go read it, then come back here and I will take it to 11. ... Okay, cool, you are back. That post was dope right? I kinda want to do this with all languages. Because I LOVE SCRIPTING. Have you seen my cloud native dotfiles? My bash scripts smell like roses. Right, so I want to do this with all languages... but what I also hate is installing shit on my host. Ew, we have containers for those silly things. Luckily, I know a thing or two about containers... A few years ago I made a project called binctr. It creates fully static, unprivileged, self-contained, containers as executable binaries. (Wow that was a lot of words, let's break it down.) What binctr does is embed an entire container image (aka rootfs) into a fully static binary and when you execute the binary it will unpack the image and run it as a container. So you get containers without a daemon or privileges and without even having the image for the rootfs of the container. You just need this one binary. (Huge thanks to @lordcyphar who got rootless containers into runc so I could actually archive my gross hack for binctr.) Kinda seems like the perfect match for trying to use all languages with BINFMT_MISC. So I tried it. (Preface: this post s

## Find The Missing Integer

DevFeed: [Find The Missing Integer](<https://devfeed.tech/articles/find-the-missing-integer-34556.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2017/05/find-the-missing-integer/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2017-05-30T17:56:54Z

Content type: article

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [math](<https://devfeed.tech/topics/math.md>), [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Computer science](<https://devfeed.tech/topics/computer-science.md>), [Lisp](<https://devfeed.tech/topics/lisp.md>), [Python](<https://devfeed.tech/topics/python.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [math](<https://devfeed.tech/tags/math.md>), [python](<https://devfeed.tech/tags/python.md>), [set](<https://devfeed.tech/tags/set.md>), [sorting](<https://devfeed.tech/tags/sorting.md>)

### AI overview

The article examines ways to find missing elements in a list. It contrasts sorting and the Gauss-sum method for one missing integer with set difference, which can handle multiple missing entries and arbitrary data types in Common Lisp and Python.

### Source excerpt

A recent interview question that I had to review was spelled like this: Find missing int element into array 1..100 Of course at first read I got it wrong, you have only one integer to look for into the array. So while the obvious idea was to apply classic sorting techniques and minimize array traversal to handle complexity (time and space), it turns out there's a much simpler way to do it if you remember your math lessons from younger. But is it that much simpler?

## Quicklisp and debian

DevFeed: [Quicklisp and debian](<https://devfeed.tech/articles/quicklisp-and-debian-34553.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2015/05/quicklisp-and-debian/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2015-05-02T14:06:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Debian](<https://devfeed.tech/topics/debian.md>), [Lisp](<https://devfeed.tech/topics/lisp.md>), [Software](<https://devfeed.tech/topics/software.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [automate](<https://devfeed.tech/tags/automate.md>), [automated](<https://devfeed.tech/tags/automated.md>), [debian](<https://devfeed.tech/tags/debian.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [library](<https://devfeed.tech/tags/library.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [releases](<https://devfeed.tech/tags/releases.md>)

### AI overview

The article describes using Quicklisp as an upstream source for packaging Common Lisp libraries for Debian. It explains how the ql-to-deb software reads Quicklisp metadata, compares releases with managed Debian packages, automates updates, and supports testing and signing packages before upload.

### Source excerpt

Common Lisp users are very happy to use Quicklisp when it comes to downloading and maintaining dependencies between their own code and the librairies it is using.

## Pgloader Post Gains Attention on Hacker News and Postgres Weekly

DevFeed: [Pgloader Post Gains Attention on Hacker News and Postgres Weekly](<https://devfeed.tech/articles/my-first-slashdot-effect-34547.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2015/01/my-first-slashdot-effect/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2015-01-22T00:48:00Z

Content type: opinion

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [backups](<https://devfeed.tech/topics/backups.md>), [FOSDEM](<https://devfeed.tech/topics/fosdem.md>)

Tags: [backups](<https://devfeed.tech/tags/backups.md>), [hacker-news](<https://devfeed.tech/tags/hacker-news.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>)

### AI overview

The author says a Pgloader post received attention in Postgres Weekly issue #89 and on the Hacker News front page, creating a surge in traffic described as a first Slashdot effect. The post also mentions upcoming pgloader talks at FOSDEM and PGDAY, including PostgreSQL migration and tested backups.

### Source excerpt

Thanks to the Postgres Weekly issue #89 and a post to Hacker News front page (see Pgloader: A High-speed PostgreSQL Swiss Army Knife, Written in Lisp it well seems that I just had my first Slashdot effect...

## Why is pgloader so much faster?

DevFeed: [Why is pgloader so much faster?](<https://devfeed.tech/articles/why-is-pgloader-so-much-faster-34540.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2014/05/why-is-pgloader-so-much-faster/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2014-05-14T12:59:00Z

Content type: article

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [CSV](<https://devfeed.tech/topics/csv.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [csv](<https://devfeed.tech/tags/csv.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [python](<https://devfeed.tech/tags/python.md>), [streaming](<https://devfeed.tech/tags/streaming.md>)

### AI overview

The article explains why a rewritten version of pgloader became much faster. Moving from Python to Common Lisp addressed performance and threading limitations while retaining PostgreSQL's COPY streaming protocol; a cited CSV import case was up to 30 times faster.

### Source excerpt

pgloader loads data into PostgreSQL. The new version is stable enough nowadays that it's soon to be released, the last piece of the 3.1.0 puzzle being full debian packaging of the tool.

## 7th European Lisp Symposium

DevFeed: [7th European Lisp Symposium](<https://devfeed.tech/articles/7th-european-lisp-symposium-34624.md>)

Original publisher: [Read original article](<https://tapoueh.org/conf/7th-european-lisp-symposium/>)

Published: 2014-05-04T22:00:00Z

Content type: opinion

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Lisp](<https://devfeed.tech/topics/lisp.md>), [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Python](<https://devfeed.tech/topics/python.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [language](<https://devfeed.tech/tags/language.md>), [lightning](<https://devfeed.tech/tags/lightning.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [modern](<https://devfeed.tech/tags/modern.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [python](<https://devfeed.tech/tags/python.md>), [rewrite](<https://devfeed.tech/tags/rewrite.md>), [switching](<https://devfeed.tech/tags/switching.md>), [talk](<https://devfeed.tech/tags/talk.md>)

### AI overview

A lightning talk at the 7th European Lisp Symposium discusses rewriting pgloader from Python in Common Lisp. The stated motivation was wanting a modern programming language.

### Source excerpt

A lightning talk about pgloader and why I chose to rewrite it enterily, switching from Python to Common Lisp. TL;DR -- I wanted a Modern Programming Language.

## Import fixed width data with pgloader

DevFeed: [Import fixed width data with pgloader](<https://devfeed.tech/articles/import-fixed-width-data-with-pgloader-34529.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2013/11/import-fixed-width-data-with-pgloader/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2013-11-18T11:48:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [import](<https://devfeed.tech/topics/import.md>), [data](<https://devfeed.tech/topics/data.md>), [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [file](<https://devfeed.tech/tags/file.md>), [import](<https://devfeed.tech/tags/import.md>), [lisp](<https://devfeed.tech/tags/lisp.md>)

### AI overview

This article revisits importing fixed-width data with pgloader, correcting earlier timing methodology and comparing results with a newer version. It reports loading times ranging from 366 to 700 milliseconds and describes a command that downloads and unpacks a ZIP source before loading and trimming the data.

### Source excerpt

A long time ago we talked about how to Import fixed width data with pgloader, following up on other stories still online at Postgres OnLine Journal and on David Fetter's blog. Back then, I showed that using pgloader made it easier to import the data, but also showed quite poor performances characteristics due to using the debug mode in the timings. Let's update that article with current pgloader wonders!

## Optimizing Integer-to-IP Conversion in Common Lisp

DevFeed: [Optimizing Integer-to-IP Conversion in Common Lisp](<https://devfeed.tech/articles/a-worthwile-micro-optimisation-34521.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2013/10/a-worthwile-micro-optimisation/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2013-10-03T20:10:00Z

Content type: article

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [little](<https://devfeed.tech/tags/little.md>), [optimisation](<https://devfeed.tech/tags/optimisation.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>)

### AI overview

This article describes a Common Lisp micro-optimization for converting integer values to IP representations while loading geolocation data into PostgreSQL. It precomputes dotted-byte representations at load time, substantially reducing the transformation's added cost.

### Source excerpt

In our previous article about Loading Geolocation Data, we did load some data into PostgreSQL and saw the quite noticable impact of a user transformation. As it happens, the function that did the integer to IP representation was so naive as to scratch the micro optimisation itch of some Common Lisp hackers: thanks a lot guys, in particular stassats who came up with the solution we're seeing now.

## Loading Geolocation Data

DevFeed: [Loading Geolocation Data](<https://devfeed.tech/articles/loading-geolocation-data-34524.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2013/10/loading-geolocation-data/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2013-10-01T14:52:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [data](<https://devfeed.tech/topics/data.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [database](<https://devfeed.tech/tags/database.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

The article discusses rewriting pgloader from Python in Common Lisp. It explains configuration-language limitations, concerns about performance when loading larger files into databases, and the use of geolocation data as a test case for improving pgloader's data-loading workflow.

### Source excerpt

As I've been mentionning in the past already, I'm currently rewriting pgloader from scratch in Common Lisp. In terms of technical debt that's akin to declaring bankrupcy, which is both sad news and good news as there's suddenly new hope of doing it right this time.

## Emacs Muse meets Common Lisp

DevFeed: [Emacs Muse meets Common Lisp](<https://devfeed.tech/articles/emacs-muse-meets-common-lisp-34507.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2013/07/emacs-muse-meets-common-lisp/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2013-07-08T11:34:00Z

Content type: article

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Emacs](<https://devfeed.tech/topics/emacs.md>), [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Publishing](<https://devfeed.tech/topics/publishing.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Lisp](<https://devfeed.tech/topics/lisp.md>), [Website](<https://devfeed.tech/topics/website.md>)

Tags: [emacs](<https://devfeed.tech/tags/emacs.md>), [git](<https://devfeed.tech/tags/git.md>), [hooks](<https://devfeed.tech/tags/hooks.md>), [html](<https://devfeed.tech/tags/html.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [muse](<https://devfeed.tech/tags/muse.md>), [static](<https://devfeed.tech/tags/static.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

The article describes using Emacs Muse to write and publish a blog, including support for inline images and static website generation. It then explains replacing the Emacs Lisp-based setup with a Common Lisp project that parses Muse files, generates HTML, and dynamically adds site sections through server-side includes.

### Source excerpt

This blog of mine is written in the very good Emacs Muse format, that I find much more friendly to writing articles than both org-mode and markdown-mode that I both use in a regular basis too. The main think that I like in Muse that those two others lack is the support for displaying images inline. *Here's what it looks like to edit with Emacs Muse* The Muse publishing system The idea is that you edit .muse files in Emacs then use a command to publish your file to some format like HTML. You can also publish a whole project, and then enjoy a fully static website that you can deploy on some URL.

## from Parsing to Compiling

DevFeed: [from Parsing to Compiling](<https://devfeed.tech/articles/from-parsing-to-compiling-34502.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2013/05/from-parsing-to-compiling/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2013-05-13T09:08:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Parsing](<https://devfeed.tech/topics/parsing.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

This tutorial explains how a command language for pgloader can be connected to a code API through a parser written in Common Lisp. It demonstrates producing nested Lisp data from parsed input and compiling that resulting code.

### Source excerpt

Last week came with two bank holidays in a row, and I took the opportunity to design a command language for pgloader. While doing that, I unexpectedly stumbled accross a very nice AHAH! moment, and I now want to share it with you, dear reader.

## Emacs Conference

DevFeed: [Emacs Conference](<https://devfeed.tech/articles/emacs-conference-34501.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2013/04/emacs-conference/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2013-04-02T07:56:00Z

Content type: opinion

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Emacs](<https://devfeed.tech/topics/emacs.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Lisp](<https://devfeed.tech/topics/lisp.md>), [learn programming](<https://devfeed.tech/topics/learn-programming.md>)

Tags: [emacs](<https://devfeed.tech/tags/emacs.md>), [learn-programming](<https://devfeed.tech/tags/learn-programming.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [macros](<https://devfeed.tech/tags/macros.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

A personal report from the Emacs Conference in London discusses the event, its talks, ideas for learning programming through mathematics and music, and practical Emacs tools including Redshank, Paredit, and color themes.

### Source excerpt

Yes it did happen, for real, in London: the Emacs Conference. It was easter week-end. Yet the conference managed to have more than 60 people meet together and spend a full day talking about Emacs. If you weren't there, a live stream was available and soon enough (wait for about two weeks) the video material will be published, as sacha is working on it. The conference has been packed with awesome really. Among the things that I'm going home with are new thoughts, tricks and tips, and new modes to use in Emacs.

## Playing with pgloader's new Common Lisp implementation

DevFeed: [Playing with pgloader's new Common Lisp implementation](<https://devfeed.tech/articles/playing-with-pgloader-34495.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2013/02/playing-with-pgloader/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2013-02-12T10:17:00Z

Content type: article

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Development](<https://devfeed.tech/topics/development.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [database](<https://devfeed.tech/tags/database.md>), [development](<https://devfeed.tech/tags/development.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [queue](<https://devfeed.tech/tags/queue.md>)

### AI overview

The article shares preliminary results from developing a new version of pgloader in Common Lisp. It discusses interactive development, object and condition systems, and a multithreaded design using workers and queues to process data from files or MySQL.

### Source excerpt

While making progress with both Event Triggers and Extension Templates, I needed to make a little break. My current keeping sane mental exercise seems to mainly involve using Common Lisp, a programming language that ships with about all the building blocks you need. *Yes, that old language brings so much on the table* When using Common Lisp, you have an awesome interactive development environment where you can redefine function and objects while testing them. That means you don't have to quit the interpreter, reload the new version of the code and put the interactive test case together all over again after a change. Just evaluate the change in the interactive environement: functions are compiled incrementally over their previous definition, objects whose classes have changed are migrated live.

## Common Lisp Scoping, Lexical Binding, and Closures

DevFeed: [Common Lisp Scoping, Lexical Binding, and Closures](<https://devfeed.tech/articles/lost-in-scope-34489.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2013/01/lost-in-scope/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2013-01-09T10:07:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [function](<https://devfeed.tech/topics/function.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [function](<https://devfeed.tech/tags/function.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [shadowing](<https://devfeed.tech/tags/shadowing.md>), [simple](<https://devfeed.tech/tags/simple.md>)

### AI overview

An article demonstrates Common Lisp scoping through examples involving lexical binding, variable shadowing, generalized booleans, closures, and REPL-based experimentation.

### Source excerpt

Thanks to Mickael on twitter I got to read an article about loosing scope with some common programming languages. As the blog article Lost in scope references functional programming languages and plays with both Javascript and Erlang, I though I had to try it out with Common Lisp too. So, here we go with a simple Common Lisp attempt. The Lost in scope article begins with defining a very simple function returning a boolean value, only true when it's not monday.

## CL Happy Numbers

DevFeed: [CL Happy Numbers](<https://devfeed.tech/articles/cl-happy-numbers-34479.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2012/11/cl-happy-numbers/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2012-11-20T17:20:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Lisp](<https://devfeed.tech/topics/lisp.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [emacs](<https://devfeed.tech/tags/emacs.md>), [emacs-lisp](<https://devfeed.tech/tags/emacs-lisp.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

This article revisits the Happy Numbers problem while exploring an implementation in Common Lisp. It compares approaches for iterating over digits, discusses using loop and setf values, and describes a faster method based on truncate, with references to earlier SQL and Emacs Lisp implementations.

### Source excerpt

A while ago I stumbled upon Happy Numbers as explained in programming praxis, and offered an implementation of them in SQL and in Emacs Lisp. Yeah, I know. Why not, though? Today I'm back on that topic and as I'm toying with Common Lisp I though it would be a good excuse to learn me some new tricks. As you can see from the earlier blog entry, last time I did attack the digits problem quite lightly. Let's try a better approach now.

## Implementing a Concurrent Hello World in Common Lisp

DevFeed: [Implementing a Concurrent Hello World in Common Lisp](<https://devfeed.tech/articles/concurrent-hello-34480.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2012/11/concurrent-hello/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2012-11-04T22:04:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

The article implements a concurrent "Hello World" program in Common Lisp using lparallel. It explains how worker synchronization produces the expected output and discusses a fix for REPL output interleaving caused by the main function returning too early.

### Source excerpt

Thanks to Mickael on twitter I ran into that article about implementing a very basic Hello World! program as a way to get into a new concurrent language or facility. The original article, titled Concurrent Hello World in Go, Erlang and C++ is all about getting to know The Go Programming Language better. To quote the article: The first thing I always do when playing around with a new software platform is to write a concurrent "Hello World" program. The program works as follows: One active entity (e.g. thread, Erlang process, Goroutine) has to print "Hello " and another one "World!\n" with the two active entities synchronizing with each other so that the output always is "Hello World!\n".

## Comparing Python, C, and Common Lisp Performance on a Simple Benchmark

DevFeed: [Comparing Python, C, and Common Lisp Performance on a Simple Benchmark](<https://devfeed.tech/articles/fast-and-stupid-34473.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2012/08/fast-and-stupid/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2012-08-22T14:05:00Z

Content type: opinion

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [C](<https://devfeed.tech/topics/c.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [c](<https://devfeed.tech/tags/c.md>), [compare](<https://devfeed.tech/tags/compare.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [optimisation](<https://devfeed.tech/tags/optimisation.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

The article compares Python, C, and Common Lisp implementations of a simple benchmark. It reports that Python is slowest, C is fastest, and Common Lisp falls between them, while discussing the trade-offs of manual optimization and deploying compiled C code from Python.

### Source excerpt

I stumbled onto an interesting article about performance when using python, called Python performance the easy(ish) way, where the author tries to get the bet available performances out of the dumbiest possible python code, trying to solve a very simple and stupid problem. With so many smart qualifiers you can only guess that I did love the challenge. The idea is to write the simplest code possible and see how smarter you need to be when you need perfs. Let's have a try!

## Porting Norvig's Sudoku Solver to Common Lisp

DevFeed: [Porting Norvig's Sudoku Solver to Common Lisp](<https://devfeed.tech/articles/solving-every-sudoku-puzzle-34470.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2012/07/solving-every-sudoku-puzzle/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2012-07-10T18:37:00Z

Content type: article

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [lisp](<https://devfeed.tech/tags/lisp.md>)

### AI overview

The author examines Peter Norvig's Sudoku-solving approach while developing an idiomatic Common Lisp version. They argue that porting the algorithm requires understanding the original Python code precisely, especially when using different data structures.

### Source excerpt

Peter Norvig published a while ago a very nice article titled Solving Every Sudoku Puzzle wherein he presents a programmatic approach to solving that puzzle game. The article is very well written and makes it easy to think that coming up with the code for such a solver is a very easy task, you apply some basic problem search principles and there you are. Which is partly true, in fact. Also, he uses python, and that means that a lot of trivial programming activities are not a concern anymore, such as memory management.

## Battle Language à la Marmite

DevFeed: [Battle Language à la Marmite](<https://devfeed.tech/articles/battle-language-a-la-marmite-34463.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2012/03/battle-language-%C3%A0-la-marmite/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2012-03-01T13:49:00Z

Content type: opinion

Language: fr

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Lisp](<https://devfeed.tech/topics/lisp.md>), [Emacs](<https://devfeed.tech/topics/emacs.md>), [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Erlang](<https://devfeed.tech/topics/erlang.md>), [Haskell](<https://devfeed.tech/topics/haskell.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [emacs](<https://devfeed.tech/tags/emacs.md>), [emacs-lisp](<https://devfeed.tech/tags/emacs-lisp.md>), [erlang](<https://devfeed.tech/tags/erlang.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [language](<https://devfeed.tech/tags/language.md>), [languages](<https://devfeed.tech/tags/languages.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [roots](<https://devfeed.tech/tags/roots.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

### AI overview

The author recounts participating in the Battle Language event at La Marmite, where they presented Emacs Lisp as part of the broader Lisp family. The presentation briefly covered John McCarthy's axiomatic approach and referenced Paul Graham's The Roots of Lisp and its Common Lisp implementation. The event also included discussion of functional and object-oriented languages, including Erlang, Haskell, and Ruby.

### Source excerpt

J'ai eu la chance hier soir de participer à la Battle Language à la Marmite, où j'avais proposé de parler de Emacs Lisp, proposition qui s'est transformée en porte-étendard de la grande famille Lisp. J'ai utilisé avec plaisir certains contenu de Lisperati dans ma présentation et je vous recommande le détour sur ce site ! J'ai dans cette présentation très rapide (5 minutes seulement) mentionné l'approche axiomatique de John McCarthy lorsqu'il a découvert le language, on peut en lire un peu plus sur le site de Paul Graham et son article The Roots of Lisp et le code associé, une implémentation du LISP de McCarthy en common lisp.