Samantha Cristoforetti's Logbook

Ten years ago today my astronaut friend Samantha Cristoforetti began her first space flight. On November 23, 2014 she was launched aboard the Soyuz TMA-15M spacecraft for a mission to the International Space Station. I had the privilege of helping Samantha with a public outreach … | Continue reading


@journal.paoloamoroso.com | 4 hours ago

Wrapping up my RetroChallenge 2024 project

The end of the work on WebCard marked the completion of my RetroChallenge 2024 project, in time as hoped. I accomplished the initial goal of extending NoteCards to visit websites. This is my Linux desktop after traversing a NoteCards link to a Web card which opened the associate … | Continue reading


@journal.paoloamoroso.com | 26 days ago

A demo notefile for WebCard

To complete WebCard for my RetroChallenge 2024 project I created a demo notefile, a file that stores the data of a NoteCards hypertext. The notefile WCDEMO.NOTEFILE contains exmples of Web cards filed into various types of containers and cards such as fileboxes and Text cards. I … | Continue reading


@journal.paoloamoroso.com | 27 days ago

Documenting WebCard

With the last feature of WebCard behind me I proceeded with the next task to wrap up my RetroChallenge 2024 project: documenting the system. Since WebCard enhances NoteCards with only a few simple but significant features a full manual would be overkill. So I added to the README … | Continue reading


@journal.paoloamoroso.com | 29 days ago

Designing a WebCard bitmap the hard way

NoteCards link icons leading to cards of a certain type can and typically do have a custom bitmap associated with the type. WebCard cards of type Web initially inherited the bitmap of the parent type Text, a stylized NoteCards blank card frame. To visually differentiate links to … | Continue reading


@journal.paoloamoroso.com | 1 month ago

Planning the next steps for WebCard

Over the past days I ran WebCard a bit, reviewed the code, and checked my notes and I'm satisfied with what the system does. Since WebCard is nearly feature complete it's a good time to chart the next steps for wrapping up my RetroChallenge 2024 project. Aside from some tweaks o … | Continue reading


@journal.paoloamoroso.com | 1 month ago

Keeping track of visited URLs in WebCard

WebCard has very limited control over the web browser of the host operating system. It can only command the browser to visit a URL when the user traverses a Web link or executes the Visit URL menu command. But with no precautions the browser would open a new tab for every visit … | Continue reading


@journal.paoloamoroso.com | 1 month ago

Revising card shape and initialization in WebCard

In NoteCards, Text cards are rectangular windows with proportions similar to a post-it note. The Web card type of WebCard inherits from Text, including the default window size. Since a Web card needs only display a URL, the default shape leaves most of the text area blank. To ma … | Continue reading


@journal.paoloamoroso.com | 1 month ago

Fixing URL validation in WebCard

I fixed a URL validation bug of WebCard I have been stuck with for almost a week. When creating a new card, the function WCD.AskURL brings up a dialog and loops prompting for a URL to go with the card until the input is valid. After the fix the input dialog looks like this, here … | Continue reading


@journal.paoloamoroso.com | 1 month ago

Managing card text in WebCard

The text of WebCard cards is intended to be read only but my previous attempt to achieve it by overriding card editing didn't work. I implemented a new, simpler approach that actually works. The card type Web inherits from the Text type whose "substance" is a text stream associa … | Continue reading


@journal.paoloamoroso.com | 1 month ago

Adding title bar menu items to WebCard cards

A URL is associated with a WebCard card of type Web at creation time but it may later be necessary to change or take action on the URL. For example, to correct a typo or visit the URL again if its web browser tab was closed since an earlier visit. For such situations I added the … | Continue reading


@journal.paoloamoroso.com | 1 month ago

Working on WebCard card initialization and URL visiting

The WebCard project is moving forward again. My latest work involved card initialization and URL visiting. When a new Web card is created, the associated URL is now inserted as text in the content area of the card. This is useful documentation and prevents the potential confusio … | Continue reading


@journal.paoloamoroso.com | 1 month ago

The first three months since my return to Linux

This is the year of my Linux desktop. Three months ago today I moved back to Linux for good after almost a decade with ChromeOS. That day I installed Linux Mint Cinnamon on a freshly delivered System76 Merkaat. I was growing increasingly dissatisfied with ChromeOS and bumping i … | Continue reading


@journal.paoloamoroso.com | 1 month ago

Stumped with URL validation in WebCard

I started working on URL validation in WebCard and soon bumped into a bug. When creating a new Web card, WebCard prompts for a URL to store in the card. I wrote the predicate WCD.ValidURLP to do some minimal validation and make sure the input resembles a URL. For example, the fu … | Continue reading


@journal.paoloamoroso.com | 1 month ago

Overriding card editing with a no-op in WebCard

I wrote some throwaway code to experiment with editing cards of type Web in WebCard, my RetroChallenge 2024 project. The goal is to make the card read only with the least amount of effort. In a NoteCards hypertext a Web card is a stand-in for a website, a placeholder for a URL t … | Continue reading


@journal.paoloamoroso.com | 1 month ago

NoteCards visited a website for the first time

Success! My WebCard prototype made NoteCards visit a site on the World-Wide Web for the first time. Think of it as a wormhole that connects the old world of hypertext with the new world of the modern web. WebCard, a NoteCards extension for visiting websites, is my RetroChallenge … | Continue reading


@journal.paoloamoroso.com | 1 month ago

Fixing and enhancing the WebCard card constructor

I fixed a bug in the initial code of WebCard, my RetroChallenge 2024 project. An infinite loop in the constructor of the Web card type caused a stack overflow that aborted Medley. The Web constructor was supposed to call the constructor of the parent card type Text. But I misund … | Continue reading


@journal.paoloamoroso.com | 1 month ago

Laying the foundation of WebCard

The initial Interlisp code of WebCard, my RetroChallenge 2024 project, defines the new type "Web" of NoteCards card. It's the first step for extending NoteCards to visit websites. The main code is in the function WCD.CreateWebCardType, a thin wrapper around the NoteCards API fun … | Continue reading


@journal.paoloamoroso.com | 1 month ago

WebCard specification and design

Now that I entered the RetroChallenge 2024 the next step is to flesh out the scope and details of my WebCard project, a NoteCards extension for visiting websites. What will WebCard do? How will it work? Specification In NoteCards the area of a card or filebox that makes up a li … | Continue reading


@journal.paoloamoroso.com | 1 month ago

A NoteCards project for the RetroChallenge 2024

Team Lisp is ready to play: I'm entering the RetroChallenge 2024 (RC2024) with a NoteCards project targeting Medley Interlisp. The RC2024 announcement explains the point of the challenge is to do something new, learn, and have fun with retro systems: In a nutshell, the RetroC … | Continue reading


@journal.paoloamoroso.com | 1 month ago

Exploring Lisp programs as hypertexts with NoteCards

I'm examining in depth NoteCards, the hypermedia environment of Medley Interlisp well described in the 1987 paper NoteCards in a Nutshell. To experiment with the NoteCards API I set out to explore the space of possible answers to the question: what if Lisp programs were represen … | Continue reading


@journal.paoloamoroso.com | 2 months ago

How to build Medley Interlisp

Although online access to Medley Interlisp is convenient and prebuilt binaries are available for all major operating system, it's also possible to compile it from source. I first built Medley from source when I wanted to run it on my Raspberry Pi 400 and no ARM64 binaries were a … | Continue reading


@journal.paoloamoroso.com | 2 months ago

Upgrading from Linux Mint 21.3 to 22: failure and success

I upgraded my System76 Merkaat mini PC from Linux Mint 21.3 Cinnamon to Mint 22 "Wilma". It didn't go as hoped but some extra effort eventually made Mint 22 run fine. I began by starting the upgrade process from Mint 21.3. I didn't get a good feel for the upgrade tool, with a c … | Continue reading


@journal.paoloamoroso.com | 3 months ago

System76 Merkaat with Linux Mint: first impressions

I'm writing this on my new desktop computer. It's a Linux system I chose after deciding to migrate from ChromeOS back to Linux: a System76 Merkaat short case mini PC with a 5 GHz 13th gen Intel Core i7 processor, Intel Iris Xe graphics, 32 GB RAM, 500 GB SSD, 2.5 G Ethernet, and … | Continue reading


@journal.paoloamoroso.com | 4 months ago

My ChromeOS to Linux migration: requirements and setup

I'm going back to Linux after nine years of ChromeOS. In 2015 I had been using Linux for a couple of decades. Exasperated by the frequent maintenance issues, that year I migrated to ChromeOS. I was living in the browser anyway and ChromeOS seemed like a stable alternative, so I … | Continue reading


@journal.paoloamoroso.com | 4 months ago

Adding an Exec command and File Browser support to Insphex

I implemented the last features originally planned for Insphex, my hex dump tool in Common Lisp for Medley Interlisp. The first new feature is an Exec command for invoking the program. The command HD works the same way as the function INSPHEX:HEXDUMP and accepts the same argumen … | Continue reading


@journal.paoloamoroso.com | 5 months ago

Building a GUI for Insphex

I added a GUI to Insphex, the hex dump tool I'm writing in Common Lisp on the Medley Interlisp environment. The initial version printed the hex dump only to the standard output, now optionally to a separate TEdit window with a command menu. The menu has items for displaying the … | Continue reading


@journal.paoloamoroso.com | 5 months ago

Insphex, a hex dump tool in Medley Common Lisp

I'm developing the new program Insphex (inspect hex), a hex dump tool that is created with and runs on the Medley Interlisp environment. Similarly to the Linux command hexdump, it shows the contents of files as hexadecimal values and the corresponding ASCII characters. An early … | Continue reading


@journal.paoloamoroso.com | 6 months ago

Testing the Practical Common Lisp code on Medley

When the Medley Interlisp Project began reviving the system around 2020, its Common Lisp implementation was in the state it had when commercial development petered off in the 1990s, mostly prior to the ANSI standard. Back then Medley Common Lisp mostly supported CLtL1 plus CLOS … | Continue reading


@journal.paoloamoroso.com | 7 months ago

Reading Recursion via Pascal

I read the book Recursion via Pascal by Jeffrey S. Rohl, Cambridge University Press, 1984. I discovered this rare, little known gem by chance and, although it's available online, I also bought a cheap printed copy. The book Recursion via Pascal. What makes this short book so in … | Continue reading


@journal.paoloamoroso.com | 8 months ago

A fix for duplicate definitions in Femtounit

I finally fixed a longstanding duplicate definitions issue with Femtounit, my Interlisp unit test framework. Femtounit creates a new File Manager type for unit tests, TESTS. DEFTEST, which defines a test, adds an entry of type TESTS and expands into an internal function that car … | Continue reading


@journal.paoloamoroso.com | 8 months ago

I mothballed Free Python Books

I shut down Free Python Books, the list of Python books that are free to read online or download I had been maintaining since 2019. I archived the project's GitHub repo, which is now read-only and no longer accepts contributions. If you're interested you're welcome to fork the r … | Continue reading


@journal.paoloamoroso.com | 8 months ago

Reading A Programmer's Guide to COMMON LISP

I got a cheap used copy of the book A Programmer's Guide to COMMON LISP by Deborah G. Tatar, Digital Press, 1987. The book A Programmer's Guide to COMMON LISP by Deborah G. Why did I read such an old book, published a few years after CLtL1 and well before ANSI finalized the Com … | Continue reading


@journal.paoloamoroso.com | 9 months ago

Femtounit, a unit test framework for Interlisp

Medley is a rich development environment but it's missing a test framework. Or so I thought. To fill the supposed gap I wrote Femtounit, ... | Continue reading


@journal.paoloamoroso.com | 1 year ago