2025 Update and consolidation

My github blogs have proliferated over the years and many of my strategies were poorly thought out. Cleanup is in order after a few weeks of work with Hugo. The goal for the next week or so will be guided by the following strategy.

Blog post or README text?

  • Convert posts from various blog branches to this blog.

  • Code Project blogs I have several code projects with related blogs, this information needs to be divided between the project README and a related blog post. Configuration and API details of a component should be in the README, along with a link to longer explanation posts and use case posts. When explaining a problem to be solved, it should be in a blog post.

Working with Common Lisp under Windows

I usually use SBCL, slime and, emacs on Windows 11 OS. Compiling SBCL from source using the msys2 system has worked for years. Today, monthly source releases of SBCL typically include compiled Windows MSI.

The release of quicklisp, in 2010, has made finding the source for Common Lisp packages much easier. Zach Beane's quicklisp distribution of Common Lisp source software has made the difference. The ultralisp distribution allows work to be done between quicklisp monthly releases.

[Read More]

OpenSSH v plink:known hosts - sync problems

If you use Emacs tramp on Windows and cygwin/msys2 derived shells you should be aware. The OpenSSH software stores host keys in ~/.ssh/known_hosts while plink, the Windows SSH client, stores host keys in the Windows registry, and the two stores are NOT synced. The emacs manual suggests using plink for ssh connection for Windows.

Did you know that OpenSSH and plink have separate storage locations for remote known host keys? The trap I fell into I had a backup all by user files but, not my registry. I expected that when I reinstalled all my apps all the related registry items would be restored.

[Read More]

What is it about LISP?

LISP, Little Insignificant Stupid Parentheses.

LISP has been jokingly maligned for much of my life. Others write praises and dub it Alien Technology or a Secret Weapon.

LISP is a customizable compiler/interpreter where the source code modifies the compiler at run time.

Generally, the model a compiler/interpreter in these four phases:

  • Lexical analysis - scan for token
  • Syntax analysis - build Abstract Syntax Tree, the AST.
  • Optimization - analyze and refine the AST
  • Machine Coding - Excutute the AST or encode the AST for later execution.

In LISP the syntax is simple paren encoded lists called s-expressions. LISP source code is a paren encoded AST. The lexical READER strips away the parens under control of LISP functions and macros and a LISP data form, an s-expression, is produced. Because this data form is an AST of the program the AST can be optimized before it is converted to executable code. The data form is evaluated under LISP rules which are in many places customized by LISP function and macros from the LISP program source. The LISP PRINTER adds the parens format to output result form where necessary under the control of LISP functions and macros.

[Read More]

The Battle for CL-GD on Windows.

To use graphical tools to display output from my Lisp programs running on Windows. Should I expect to be able to do this?

  1. SBCL does not have the fragile port message it used to have.
  2. quicklisp works on Windows
  3. The Common Lisp standardization is 39 years old and, the ANSI standard is 29 years old.
  4. Most of the Unix tools have been ported to Windows this is represented by the mingw64 effort.
  5. There are good FFI systems that work on Windows, Linux, and MacOS.

It is a common complaint in some online Lisp groups that some are frustrated with the lack of Foreign Library access in Common Lisp. However, the implementations are old, conceived, and maintained under Linux-only considerations, and the problems continue to propagate.

[Read More]

CL+SSL has cross platform method of specifiation of external binaries.

CL+SSL allows the user to directly specify the external binaries that is will use.

I propose the general adoption of two methods of foreign library location currently implemented by CL+SSL. Most .dll or .so files are located by heuristics, which are guesses. CL+SSL added a static feature check and a method for users to specify other binaries.

CL+SSL/src/reload.lisp has complex heuristics to define libssl and libcrypto.

Statically linked feature.

The recent post Distributing binaries with Common Lisp and foreign libraries illustrates how static linking with feature declaration is used.

[Read More]

Mastodon Culture - Search and Hashtags

A few days ago I did a series of hashtag searches and found groups of conversations of a bunch of interesting topics. Hashtags add speed and excitement to Mastodon. Given that Mastodon has no global text search except for hashtags and there is a reason for it.

Mastodon was designed with "friction" to slow down the propagation of information. By forcing propagation of post through posts of individuals and the lack of site wide search. Mastodon promote small conversations and not the quick spread of mass outrage

[Read More]

Adding DISQUS comments.

Installation of DISQUS for this blog. Updates my disqus account, on my site which has the Beautiful Jekyll Theme uncomment the disqus line in _config.yml and add my Disqus short name from the General Page on my Disqus account. I want to allow comments on this post I add comments: yes to my front matter.

First try

Hope it works.

Updating my site with org-mode

I have updated blogging procedure

This is of a technical interest on how I actually produce my blog. I have always written by blog pages in emacs and historically have authored in Markdown syntax and the Beautiful Jekyll theme on GitHub. I now author my pages in org mode and use org-publish to render them to the Jekyll repository. Next I ensure that the blog posts are in the _posts/ folder and commit those changes to the git image of my site. Finally, I upload and push my local site to GitHub.

[Read More]

Sauron buys Twitter!!

BREAKING

Middle Earth

In a report from the Bree Daily, Sauron, of Mordor, has reportedly paid 44 Billion Dollars in exchange for a Seer Stone called “Twitter”, a dollar being some odd foreign currency made of paper.

Mayor Sam Gamgee, of Bag End, has been quoted that “he knows nothing of any of Sauron’s latest dealings” but is “quite certain that no Rings of Power are involved.”

In other headlines from the Shire, ByWater and Beyond

[Read More]