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]

Halcyon Days, Hype and Halucinations

On January 1, 2023

Toomas Hendrick Ilves wrote on Mastodon

Elon Musk's text messages are a skeleton key for the final, halcyon days of the tech boom, @cwarzel writes. https://www.theatlantic.com/technology/arc

This is a view of a largely unregulated market of mergers.

The collapse of monopolistic walled gardens because of "Boy's Club" activities becoming public should not surprise anybody. The "Big Three" steel companies of 1960 are gone; their progenitors, the railroads, are in public hands. The boys club of Henry Clay Frick, Andrew Carnagie and Andrew Mellon who had enlarged the dam at the South Fork Hunting Club which collapsed causing the 1899 Johnstown Flood.

[Read More]

A SCOPE 3.?, CDC 6400 Malware

During an introductory computer class at Lehigh in the fall of 1976, a fellow student scribbled the following lines on the margin of his notebook. I interpreted this as a series of punch cards of the university's batch system.

LOGIN, A1234
REWIND
BATCH INPUT

The CDC SCOPE commands for the University's CDC 6400. The card sequence was read as an input file.

  • Line one, the login authentication.
  • Line two, the input file is rewound to the beginning.
  • Line three, the rewound file is sent to the system input queue.

Rinse, lather, repeat.

[Read More]

The Waste of Early Optimization

Can we really blame data center energy use on Pyhton?

I am reacting to this article https://levelup.gitconnected.com/python-is-destroying-the-planet-951e83f22748 This is really another version of the classic "Python considered dangerous" type headlines on Slashdot from the 1990s. This analysis is too siloed; the details do not matter in light of systematic global energy analysis; the focus on a particular computer language is inane.

To learn about problems engineers measure

During the elimination of energy consumption, we must focus on global measurements. Deploying a systematic analysis of the energy contributions of our activities.

[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]