<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>insphex &amp;mdash; Paolo Amoroso&#39;s Journal</title>
    <link>https://journal.paoloamoroso.com/tag:insphex</link>
    <description>Tech projects, hobby programming, and geeky thoughts of Paolo Amoroso</description>
    <pubDate>Mon, 27 Apr 2026 18:00:14 +0000</pubDate>
    <image>
      <url>https://i.snap.as/68i8povn.jpg</url>
      <title>insphex &amp;mdash; Paolo Amoroso&#39;s Journal</title>
      <link>https://journal.paoloamoroso.com/tag:insphex</link>
    </image>
    <item>
      <title>Rearranging the File Browser menu for Insphex</title>
      <link>https://journal.paoloamoroso.com/rearranging-the-file-browser-menu-for-insphex?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Insphex adds the Hexdump item to the File Browser menu to view the hex dump of the selected files. The initial implementation called the public API for adding commands at the top level of the menu.&#xA;&#xA;In order to move the item to the See sumbenu that groups various file viewing commands I later resorted to list surgery, as the API doesn&#39;t support submenus. The problem is internal system details can and do change, which happened to the File Browser menu and led to an Insphex load error.&#xA;&#xA;I fixed the issue by reverting the public API call and now the item is back at the top level of the menu.&#xA;&#xA;Insphex is a hex dump tool similar to the Linux command hexdump. I wrote it in Common Lisp on Medley Interlisp.&#xA;&#xA;#insphex #CommonLisp #Interlisp #Lisp&#xA;&#xA;a href=&#34;https://remark.as/p/journal.paoloamoroso.com/rearranging-the-file-browser-menu-for-insphex&#34;Discuss.../a&#xD;&#xA;Email | Reply @amoroso@oldbytes.space&#xD;&#xA;&#xD;&#xA;!--emailsub--]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="https://github.com/pamoroso/insphex">Insphex</a> adds the <code>Hexdump</code> item to the <a href="https://files.interlisp.org/medley/library/FILEBROWSER.TEDIT.pdf">File Browser</a> menu to view the hex dump of the selected files. The <a href="https://journal.paoloamoroso.com/adding-an-exec-command-and-file-browser-support-to-insphex">initial implementation</a> called the <a href="https://files.interlisp.org/medley/library/FILEBROWSER.TEDIT.pdf#page=23">public API</a> for adding commands at the top level of the menu.</p>

<p>In order to move the item to the <code>See</code> sumbenu that groups various file viewing commands I later resorted to list surgery, as the API doesn&#39;t support submenus. The problem is internal system details can and do change, which happened to the File Browser menu and led to an Insphex load error.</p>

<p>I fixed the issue by reverting the public API call and now the item is back at the top level of the menu.</p>

<p>Insphex is a hex dump tool similar to the Linux command <code>hexdump</code>. I wrote it in Common Lisp on <a href="https://interlisp.org">Medley Interlisp</a>.</p>

<p><a href="https://journal.paoloamoroso.com/tag:insphex" class="hashtag"><span>#</span><span class="p-category">insphex</span></a> <a href="https://journal.paoloamoroso.com/tag:CommonLisp" class="hashtag"><span>#</span><span class="p-category">CommonLisp</span></a> <a href="https://journal.paoloamoroso.com/tag:Interlisp" class="hashtag"><span>#</span><span class="p-category">Interlisp</span></a> <a href="https://journal.paoloamoroso.com/tag:Lisp" class="hashtag"><span>#</span><span class="p-category">Lisp</span></a></p>

<p><a href="https://remark.as/p/journal.paoloamoroso.com/rearranging-the-file-browser-menu-for-insphex">Discuss...</a>
<a href="mailto:info@paoloamoroso.com?subject=Reply%20to%20Paolo%20Amoroso%27s%20Journal">Email</a> | Reply <a href="/@/amoroso@oldbytes.space" class="u-url mention">@<span>amoroso@oldbytes.space</span></a></p>


]]></content:encoded>
      <guid>https://journal.paoloamoroso.com/rearranging-the-file-browser-menu-for-insphex</guid>
      <pubDate>Sun, 01 Mar 2026 09:16:40 +0000</pubDate>
    </item>
    <item>
      <title>Adding an Exec command and File Browser support to Insphex</title>
      <link>https://journal.paoloamoroso.com/adding-an-exec-command-and-file-browser-support-to-insphex?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[I implemented the last features originally planned for Insphex, my hex dump tool in Common Lisp for Medley Interlisp.&#xA;&#xA;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 arguments, a file name and an optional boolean flag to indicate whether the output should go to a separate window:&#xA;&#xA;← HD FILENAME [NEWIN-P]&#xA;&#xA;The other feature is the addition to the File Browser menu of the Hexdump command, which shows the hex dump of the selected files in as many separate windows:&#xA;&#xA;Hexdump File Browser command of the Insphex hex dump tool on Medley Interlisp.&#xA;&#xA;For other commands that produce output in windows the File Browser lets the user view one window at a time, with menu options for skipping through the windows. Insphex doesn&#39;t do anything so elaborate though.&#xA;&#xA;Implementing the features was easy as the relevant Interlisp APIs are well documented and I have experience with adding an Exec command to Stringscope.&#xA;&#xA;The Medley Lisp library modules manual covers the File Browser API from page 115 of the PDF, with the explanation of how to add commands on page 118. It&#39;s as simple as registering a callback function the command invokes, INSPHEX::FB-HEXDUMP for Insphex.&#xA;&#xA;An issue I bumped into is that instead of 4 arguments as the manual says, the callback actually requires 5. The last, undocumented argument was likely introduced since the publication of the manual.&#xA;&#xA;#insphex #CommonLisp #Interlisp #Lisp&#xA;&#xA;a href=&#34;https://remark.as/p/journal.paoloamoroso.com/adding-an-exec-command-and-file-browser-support-to-insphex&#34;Discuss.../a&#xD;&#xA;Email | Reply @amoroso@oldbytes.space&#xD;&#xA;&#xD;&#xA;!--emailsub--]]&gt;</description>
      <content:encoded><![CDATA[<p>I implemented the last features originally planned for <a href="https://github.com/pamoroso/insphex">Insphex</a>, my hex dump tool in Common Lisp for <a href="https://interlisp.org">Medley Interlisp</a>.</p>

<p>The first new feature is an Exec command for invoking the program. The command <code>HD</code> works the same way as the function <code>INSPHEX:HEXDUMP</code> and accepts the same arguments, a file name and an optional boolean flag to indicate whether the output should go to a separate window:</p>

<pre><code>← HD FILENAME [NEWIN-P]
</code></pre>

<p>The other feature is the addition to the File Browser menu of the <code>Hexdump</code> command, which shows the hex dump of the selected files in as many separate windows:</p>

<p><a href="https://i.snap.as/RxzT0KL3.png"><img src="https://i.snap.as/RxzT0KL3.png" alt="Hexdump File Browser command of the Insphex hex dump tool on Medley Interlisp."/></a></p>

<p>For other commands that produce output in windows the File Browser lets the user view one window at a time, with menu options for skipping through the windows. Insphex doesn&#39;t do anything so elaborate though.</p>

<p>Implementing the features was easy as the relevant Interlisp APIs are well documented and I have experience with <a href="https://write.as/paoloamoroso/an-exec-command-and-other-new-features-of-stringscope">adding an Exec command to Stringscope</a>.</p>

<p>The Medley <a href="http://www.bitsavers.org/pdf/xerox/interlisp-d/198809_Medley_1.0/300006_Lisp_Library_Modules_Sep88.pdf">Lisp library modules manual</a> covers the File Browser API from page 115 of the PDF, with the explanation of how to add commands on page 118. It&#39;s as simple as registering a callback function the command invokes, <a href="https://github.com/pamoroso/insphex/blob/ef7045408639860adf9940d215a101c361b43419/INSPHEX#L81"><code>INSPHEX::FB-HEXDUMP</code></a> for Insphex.</p>

<p>An issue I bumped into is that instead of 4 arguments as the manual says, the callback actually requires 5. The last, undocumented argument was likely introduced since the publication of the manual.</p>

<p><a href="https://journal.paoloamoroso.com/tag:insphex" class="hashtag"><span>#</span><span class="p-category">insphex</span></a> <a href="https://journal.paoloamoroso.com/tag:CommonLisp" class="hashtag"><span>#</span><span class="p-category">CommonLisp</span></a> <a href="https://journal.paoloamoroso.com/tag:Interlisp" class="hashtag"><span>#</span><span class="p-category">Interlisp</span></a> <a href="https://journal.paoloamoroso.com/tag:Lisp" class="hashtag"><span>#</span><span class="p-category">Lisp</span></a></p>

<p><a href="https://remark.as/p/journal.paoloamoroso.com/adding-an-exec-command-and-file-browser-support-to-insphex">Discuss...</a>
<a href="mailto:info@paoloamoroso.com?subject=Reply%20to%20Paolo%20Amoroso%27s%20Journal">Email</a> | Reply <a href="/@/amoroso@oldbytes.space" class="u-url mention">@<span>amoroso@oldbytes.space</span></a></p>


]]></content:encoded>
      <guid>https://journal.paoloamoroso.com/adding-an-exec-command-and-file-browser-support-to-insphex</guid>
      <pubDate>Tue, 25 Jun 2024 08:54:57 +0000</pubDate>
    </item>
    <item>
      <title>Building a GUI for Insphex</title>
      <link>https://journal.paoloamoroso.com/building-a-gui-for-insphex?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[I added a GUI to Insphex, the hex dump tool I&#39;m writing in Common Lisp on the Medley Interlisp environment.&#xA;&#xA;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 next page of output, redisplaying from the beginning of the file, and exiting the program.&#xA;&#xA;Window and command menu of the Insphex hex dump tool for Medley Interlisp.&#xA;&#xA;Most window, menu, and other Medley GUI facilities, like the TEdit rich text editor, provide Interlisp APIs in the IL package that Common Lisp programs such as Insphex can access. However, since the APIs usually rely on Interlisp records, from Common Lisp it&#39;s often necessary to write quite a few package qualifiers like this example to create a menu record:&#xA;&#xA;(IL:CREATE IL:MENU&#xA;           IL:ITEMS IL:← &#39;(ITEM1 ITEM2 ITEM3)&#xA;           IL:MENUFONT IL:← &#39;(IL:MODERN 12)&#xA;           IL:TITLE IL:← &#34;Menu&#34;&#xA;           IL:CENTERFLG IL:← T)&#xA;&#xA;The XCL:DEFINE-RECORD macro helps reduce package qualifiers by wrapping Interlisp records in equivalent Common Lisp structures with ordinary structure accessors, setters, predicates, and constructors. The structures can be in any package, not just IL like Interlisp symbols. XCL:DEFINE-RECORD is described on page 7-3 (page 143 of the PDF) of the Medley 1.0 release notes.&#xA;&#xA;This way Common Lisp blends well with Interlisp and reduces verbosity. For example, this is the Insphex Common Lisp function that creates the output window:&#xA;&#xA;(DEFUN CREATE-HEX-WINDOW (FILE)&#xA;   &#34;Create and return a window to display the hex dump of FILE.&#34;&#xA;   (LET* ((IN (OPEN FILE :DIRECTION :INPUT :ELEMENT-TYPE &#39;(UNSIGNED-BYTE 8)))&#xA;          (COMMANDS (IL:MENUWINDOW (MAKE-MENU :ITEMS &#39;((&#34;Next&#34; :NEXT &#34;Show the next page.&#34;)&#xA;                                                       (&#34;Reread&#34; :REREAD &#34;Reread the input file.&#34;)&#xA;                                                       (&#34;Exit&#34; :EXIT &#34;Quit the program.&#34;))&#xA;                                          :MENUFONT&#xA;                                          &#39;(IL:MODERN 12)&#xA;                                          :TITLE &#34;Commands&#34; :CENTERFLG T :WHENSELECTEDFN &#xA;                                          #&#39;HANDLE-MENU)))&#xA;          (OUT (IL:OPENTEXTSTREAM))&#xA;          (TEDIT-PROC (IL:TEDIT OUT))&#xA;          (WINDOW (IL:WFROMDS OUT)))&#xA;     (IL:ATTACHWINDOW COMMANDS WINDOW &#39;IL:TOP &#39;IL:LEFT)&#xA;     (IL:WINDOWPROP WINDOW &#39;INSTREAM IN)&#xA;     (IL:WINDOWPROP WINDOW &#39;OUTSTREAM OUT)&#xA;     (IL:WINDOWPROP WINDOW &#39;BLOCK-OFFSET 0)&#xA;     (IL:WINDOWPROP WINDOW &#39;IL:TITLE (FORMAT NIL &#34;Insphex ~A&#34; FILE))&#xA;     (NEXT-HEX-PAGE WINDOW)&#xA;     WINDOW))&#xA;&#xA;The INSPHEX::MAKE-MENU constructor creates a Common Lisp INSPHEX::MENU structure that wraps the Interlisp IL:MENU record.&#xA;&#xA;Most of the Insphex GUI functionality is in place but I need to work on a couple of tweaks.&#xA;&#xA;First, the Insphex window should be read-only whereas now the user can type into the editor buffer. Next, I need to clean up all the allocated resources when the user quits the program via various interaction flows, such as closing the window instead of clicking the Exit menu item.&#xA;&#xA;#insphex #CommonLisp #Interlisp #Lisp&#xA;&#xA;a href=&#34;https://remark.as/p/journal.paoloamoroso.com/building-a-gui-for-insphex&#34;Discuss.../a&#xD;&#xA;Email | Reply @amoroso@oldbytes.space&#xD;&#xA;&#xD;&#xA;!--emailsub--]]&gt;</description>
      <content:encoded><![CDATA[<p>I added a GUI to <a href="https://github.com/pamoroso/insphex?tab=readme-ov-file">Insphex</a>, the <a href="https://journal.paoloamoroso.com/tag:insphex">hex dump tool I&#39;m writing in Common Lisp</a> on the <a href="https://interlisp.org">Medley Interlisp</a> environment.</p>

<p>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 next page of output, redisplaying from the beginning of the file, and exiting the program.</p>

<p><a href="https://i.snap.as/7ufwKQZx.png"><img src="https://i.snap.as/7ufwKQZx.png" alt="Window and command menu of the Insphex hex dump tool for Medley Interlisp."/></a></p>

<p>Most window, menu, and other Medley GUI facilities, like the TEdit rich text editor, provide Interlisp APIs in the <code>IL</code> package that Common Lisp programs such as Insphex can access. However, since the APIs usually rely on Interlisp records, from Common Lisp it&#39;s often necessary to write quite a few package qualifiers like this example to create a menu record:</p>

<pre><code class="language-lisp">(IL:CREATE IL:MENU
           IL:ITEMS IL:← &#39;(ITEM1 ITEM2 ITEM3)
           IL:MENUFONT IL:← &#39;(IL:MODERN 12)
           IL:TITLE IL:← &#34;Menu&#34;
           IL:CENTERFLG IL:← T)
</code></pre>

<p>The <code>XCL:DEFINE-RECORD</code> macro helps reduce package qualifiers by wrapping Interlisp records in equivalent Common Lisp structures with ordinary structure accessors, setters, predicates, and constructors. The structures can be in any package, not just <code>IL</code> like Interlisp symbols. <code>XCL:DEFINE-RECORD</code> is described on page 7-3 (page 143 of the PDF) of the <a href="http://www.bitsavers.org/pdf/xerox/interlisp-d/198809_Medley_1.0/400006_Lisp_Release_Notes_Medley_Release_1.0_Sep88.pdf">Medley 1.0 release notes</a>.</p>

<p>This way Common Lisp blends well with Interlisp and reduces verbosity. For example, this is the Insphex Common Lisp <a href="https://github.com/pamoroso/insphex/blob/39db257397258430bb47291895cf7d6c86b912d8/INSPHEX#L44">function that creates the output window</a>:</p>

<pre><code class="language-lisp">(DEFUN CREATE-HEX-WINDOW (FILE)
   &#34;Create and return a window to display the hex dump of FILE.&#34;
   (LET* ((IN (OPEN FILE :DIRECTION :INPUT :ELEMENT-TYPE &#39;(UNSIGNED-BYTE 8)))
          (COMMANDS (IL:MENUWINDOW (MAKE-MENU :ITEMS &#39;((&#34;Next&#34; :NEXT &#34;Show the next page.&#34;)
                                                       (&#34;Reread&#34; :REREAD &#34;Reread the input file.&#34;)
                                                       (&#34;Exit&#34; :EXIT &#34;Quit the program.&#34;))
                                          :MENUFONT
                                          &#39;(IL:MODERN 12)
                                          :TITLE &#34;Commands&#34; :CENTERFLG T :WHENSELECTEDFN 
                                          #&#39;HANDLE-MENU)))
          (OUT (IL:OPENTEXTSTREAM))
          (TEDIT-PROC (IL:TEDIT OUT))
          (WINDOW (IL:WFROMDS OUT)))
     (IL:ATTACHWINDOW COMMANDS WINDOW &#39;IL:TOP &#39;IL:LEFT)
     (IL:WINDOWPROP WINDOW &#39;INSTREAM IN)
     (IL:WINDOWPROP WINDOW &#39;OUTSTREAM OUT)
     (IL:WINDOWPROP WINDOW &#39;BLOCK-OFFSET 0)
     (IL:WINDOWPROP WINDOW &#39;IL:TITLE (FORMAT NIL &#34;Insphex ~A&#34; FILE))
     (NEXT-HEX-PAGE WINDOW)
     WINDOW))
</code></pre>

<p>The <code>INSPHEX::MAKE-MENU</code> constructor creates a Common Lisp <code>INSPHEX::MENU</code> structure that wraps the Interlisp <code>IL:MENU</code> record.</p>

<p>Most of the Insphex GUI functionality is in place but I need to work on a couple of tweaks.</p>

<p>First, the Insphex window should be read-only whereas now the user can type into the editor buffer. Next, I need to clean up all the allocated resources when the user quits the program via various interaction flows, such as closing the window instead of clicking the <code>Exit</code> menu item.</p>

<p><a href="https://journal.paoloamoroso.com/tag:insphex" class="hashtag"><span>#</span><span class="p-category">insphex</span></a> <a href="https://journal.paoloamoroso.com/tag:CommonLisp" class="hashtag"><span>#</span><span class="p-category">CommonLisp</span></a> <a href="https://journal.paoloamoroso.com/tag:Interlisp" class="hashtag"><span>#</span><span class="p-category">Interlisp</span></a> <a href="https://journal.paoloamoroso.com/tag:Lisp" class="hashtag"><span>#</span><span class="p-category">Lisp</span></a></p>

<p><a href="https://remark.as/p/journal.paoloamoroso.com/building-a-gui-for-insphex">Discuss...</a>
<a href="mailto:info@paoloamoroso.com?subject=Reply%20to%20Paolo%20Amoroso%27s%20Journal">Email</a> | Reply <a href="/@/amoroso@oldbytes.space" class="u-url mention">@<span>amoroso@oldbytes.space</span></a></p>


]]></content:encoded>
      <guid>https://journal.paoloamoroso.com/building-a-gui-for-insphex</guid>
      <pubDate>Tue, 28 May 2024 09:25:43 +0000</pubDate>
    </item>
    <item>
      <title>Insphex, a hex dump tool in Medley Common Lisp</title>
      <link>https://journal.paoloamoroso.com/insphex-a-hex-dump-tool-in-medley-common-lisp?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[I&#39;m developing the new program Insphex (inspect hex), a hex dump tool that is created with and runs on the Medley Interlisp environment.&#xA;&#xA;Similarly to the Linux command hexdump, it shows the contents of files as hexadecimal values and the corresponding ASCII characters. An early version of the program prints the hex dump to the standard output like this. &#xA;&#xA;Output of the Insphex hex dump tool for Medley Interlisp.&#xA;&#xA;I plan to enhance Insphex to optionally display the dump in a separate window one page at a time. An attached menu will have options for showing the next page and exiting. I&#39;ll also provide an Exec command for running the program.&#xA;&#xA;The code is in Common Lisp but will include some Interlisp to access the required system functionality.&#xA;&#xA;Although Insphex is useful in itself, I have three main goals for it. First, I want a real project to practice the process for writing Common Lisp with the residential environment of Medley. This is the native way of coding on Medley and takes full advantage of its development environment and features such as the File Manager and the SEdit editor.&#xA;&#xA;Most Medley tools and facilities are written in Interlisp or expose Interlisp APIs through which the functionality can be invoked. So another goal is to interface with Interlisp from Common Lisp to access the functionality I need like windows and menus.&#xA;&#xA;My third goal is to experiment with displaying textual output in TEdit, the Medley word processor where the hex dump will optionally go.&#xA;&#xA;Although the Interlisp API of TEdit supports advanced editing and formatting, Insphex does only basic text output. The primary feature I want is TEdit&#39;s ability to automatically handle repainting the window after it&#39;s resized or a hidden portion is exposed. This is handy as by default Interlisp windows mostly don&#39;t handle the repaint.&#xA;&#xA;Now that the basic functionality of Insphex is in place I will implement displaying the hex dump in a TEdit window.&#xA;&#xA;#insphex #CommonLisp #Interlisp #Lisp&#xA;&#xA;a href=&#34;https://remark.as/p/journal.paoloamoroso.com/insphex-a-hex-dump-tool-in-medley-common-lisp&#34;Discuss.../a&#xD;&#xA;Email | Reply @amoroso@oldbytes.space&#xD;&#xA;&#xD;&#xA;!--emailsub--]]&gt;</description>
      <content:encoded><![CDATA[<p>I&#39;m developing the new program <a href="https://github.com/pamoroso/insphex">Insphex</a> (inspect hex), a hex dump tool that is created with and runs on the <a href="https://interlisp.org">Medley Interlisp</a> environment.</p>

<p>Similarly to the Linux command <code>hexdump</code>, it shows the contents of files as hexadecimal values and the corresponding ASCII characters. An early version of the program prints the hex dump to the standard output like this.</p>

<p><a href="https://i.snap.as/QAznV3xz.png"><img src="https://i.snap.as/QAznV3xz.png" alt="Output of the Insphex hex dump tool for Medley Interlisp."/></a></p>

<p>I plan to enhance Insphex to optionally display the dump in a separate window one page at a time. An attached menu will have options for showing the next page and exiting. I&#39;ll also provide an Exec command for running the program.</p>

<p>The code is in Common Lisp but will include some Interlisp to access the required system functionality.</p>

<p>Although Insphex is useful in itself, I have three main goals for it. First, I want a real project to practice the process for <a href="https://journal.paoloamoroso.com/paoloamoroso/a-single-package-common-lisp-workflow-for-medley">writing Common Lisp with the residential environment of Medley</a>. This is the native way of coding on Medley and takes full advantage of its development environment and features such as the File Manager and the <a href="https://journal.paoloamoroso.com/paoloamoroso/medley-interlisp-structure-editing-first-impressions">SEdit editor</a>.</p>

<p>Most Medley tools and facilities are written in Interlisp or expose Interlisp APIs through which the functionality can be invoked. So another goal is to interface with Interlisp from Common Lisp to access the functionality I need like windows and menus.</p>

<p>My third goal is to experiment with displaying textual output in TEdit, the Medley word processor where the hex dump will optionally go.</p>

<p>Although the Interlisp API of TEdit supports advanced editing and formatting, Insphex does only basic text output. The primary feature I want is TEdit&#39;s ability to automatically handle repainting the window after it&#39;s resized or a hidden portion is exposed. This is handy as by default Interlisp windows mostly don&#39;t handle the repaint.</p>

<p>Now that the basic functionality of Insphex is in place I will implement displaying the hex dump in a TEdit window.</p>

<p><a href="https://journal.paoloamoroso.com/tag:insphex" class="hashtag"><span>#</span><span class="p-category">insphex</span></a> <a href="https://journal.paoloamoroso.com/tag:CommonLisp" class="hashtag"><span>#</span><span class="p-category">CommonLisp</span></a> <a href="https://journal.paoloamoroso.com/tag:Interlisp" class="hashtag"><span>#</span><span class="p-category">Interlisp</span></a> <a href="https://journal.paoloamoroso.com/tag:Lisp" class="hashtag"><span>#</span><span class="p-category">Lisp</span></a></p>

<p><a href="https://remark.as/p/journal.paoloamoroso.com/insphex-a-hex-dump-tool-in-medley-common-lisp">Discuss...</a>
<a href="mailto:info@paoloamoroso.com?subject=Reply%20to%20Paolo%20Amoroso%27s%20Journal">Email</a> | Reply <a href="/@/amoroso@oldbytes.space" class="u-url mention">@<span>amoroso@oldbytes.space</span></a></p>


]]></content:encoded>
      <guid>https://journal.paoloamoroso.com/insphex-a-hex-dump-tool-in-medley-common-lisp</guid>
      <pubDate>Sat, 11 May 2024 10:17:08 +0000</pubDate>
    </item>
  </channel>
</rss>