Paolo Amoroso's Journal

Tech projects, hobby programming, and geeky thoughts of Paolo Amoroso

Today I attended the funeral service of my beloved mother who passed away peacefully two days ago.

I'm signing off a nearly continuous shift as a full time caregiver started almost 13 years ago. Over this long time I took care first of my father, then a sister of my mother, and finally my mother. The years of the pandemic were the most demanding and exhausting, constantly pushing me to the edge of burnout and forcing me to take some time off.

I assisted my dear family members until their very end to the best of my capabilities. Now I'm ready and eager to start a new life.

#personal

Discuss... Email | Reply @amoroso@oldbytes.space

Write.as, the blogging platform I use, lets me embed a YouTube video in a post by just inserting the URL in a blank line of the Makrdown source.

It's a valuable feature with a major drawback: YouTube embeds contain user tracking code by Google. I don't mind such trackers but my many privacy minded readers do.

As a workaround I could insert the trackerless code YouTube provides, but the design of the video player is not responsive and gets cropped on mobile screens. Write.as relies on Embed.ly for YouTube and other embeds and Embed.ly doesn't support trackerless embeds. I and others tried to bring the issue to the attention of the Write.as developer but not much happened.

Managing tracking and cookie consent is a hassle, so what to do? I just went ahead and replaced the half a dozen embeds of my blog with links to the corresponding videos on YouTube.

A nice side effect is the Blacklight privacy inspector now reports 0 trackers and cookies on my blog.

#blogging #Google

Discuss... Email | Reply @amoroso@oldbytes.space

I left Reddit and Twitter in early 2022 when I joined Mastodon.

It was a few months prior to the rumors Elon Musk might acquire Twitter and my decision had different motivations: I was invisible on the platform. As an average user, the algorithms made it impossible for me to be seen or have interactions.

As for Reddit I left for a combination of these reasons:

  • algorithmic feeds designed to arise strong, often negative emotions
  • snark and noise in the comments
  • ads
  • impenetrable moderation rules that make it difficult to figure why posts are rejected, even after reading the guidelines and FAQs cover to cover and reviewing past threads

The Reddit API restrictions of June of 2023, and the migration of many to the Fediverse, made me curious about federated and independent Reddit alternatives, particularly Lemmy. I joined the Lemmy.ml instance because it focuses on topics I'm interested in and values I share, plus it has a critical mass.

I've been on Lemmy for the past couple of weeks. In the first days my instance was slow and broken, then performance and stability improved substantially.

Although not polished as corporate platforms, which is a feature, Lemmy's design is functional and intuitive. Some features make Lemmy better than Reddit, such as the ability to expand and collapse posts in the feed to quickly browse them.

While there's a lot of activity around mainstream or popular topics, some Lemmy communities are pretty quiet.

I don't mind new or lesser known platforms as content quality and valuable interactions are what I'm after, which doesn't necessarily correlate with size. I'm making it a point to seed with content and discussions the communities I subscribe to, as well as comment on and interact with posts by others.

All I need now is to stick around and keep contributing.

#fediverse

Discuss... Email | Reply @amoroso@oldbytes.space

I'm writing another Interlisp program, Sysrama, an Interlisp documentation tool for presenting information on the Lisp objects of a program. It produces reports that list the types and signatures of functions, the fields of records, global variables, property lists, Executive commands, and more.

The way I reference the details of Lisp objects when coding gave me the idea for Sysrama.

I often forget the names and signatures of the functions or the names of the record fields I need. Browsing or looking up the code for referencing them is a source of friction.

Interlisp comes with the powerful program analysys tool Masterscope that gives its best with answering specific questions on the internals of programs. But it has a steep learning curve and it doesn't provide the kind of big picture view I seek. Instead, I wanted a simple tool for producing an overview of the main Lisp objects in a program.

This is a sample report Sysrama prints on another of my Interlisp programs, Stringscope:

Sample output of the Sysrama documentation tool for Interlisp.

The main sections group objects under the same File Manager types, such as FNS or RECORDS. This is because Sysrama can extract information only from programs under File Manager control.

Suppose you want to analyze the Lisp program MYPROG. Once Sysrama is in memory, load MYPROG:

(LOAD 'MYPROG)

To have Sysrama print a report with information on MYPROG evaluate:

(SUMMARIZE 'MYPROG)

You can narrow down the information to specific File Manager types such as FNS and RECORDS:

(SUMMARIZE 'MYPROG '(FNS RECORDS))

or to specific objects like the function MYFUN:

(SUMMARIZE 'MYPROG 'FNS 'MYFUN)

More documentation is available at the project repo.

Sysrama already does most of what I had in mind but I'll implement a few more features.

I'll tweak the reports to show more information on some Lisp objects. And I'll add the ability to redirect the output to a scrollable window rather than to the primary output stream. By default Interlisp windows don't save the output history and can't be scrolled back, so such a feature will help review reports that don't fit in a window.

#sysrama #Interlisp #Lisp

Discuss... Email | Reply @amoroso@oldbytes.space

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, a tiny — hence femto — unit test framework for Interlisp.

I wanted a small framework simple to port to or write for Interlisp, yet useful in practice. At less than a couple dozen lines of code, Femtounit took very little effort to design and write as it's based on the PCL test framework Peter Seibel described in Chapter 9 of his book Practical Common Lisp