Paolo Amoroso's Journal


This is the 200th post over 10 months of my blog hosted at The milestone is even more significant considering I published 146 posts over 3 years to my previous blog hosted at the bloated, inflexible, and clunky old Blogger.

I credit the milestone in large part to, a lightweight blogging platform that nearly eliminates friction with its Markdown support and minimalist design.

Typing into the editing area is all it takes to insert, format, and present the content of a post. With Blogger, even basic text formatting requires laboriously moving and clicking the mouse to select text, click icons, pick menu items, and apply formatting. It all adds up to enough friction to dread the experience and be discouraged from posting.

I started this blog on February 28, 2022. I stumbled upon at the end of a long research process that led to the best platform for my technical writing needs.


Discuss... Email | Reply, where this blog is hosted, supports embedding rich media from many social platforms and websites such as YouTube videos and Twitter tweets. It's enough to insert in a post the bare URL of the content to embed, on a line by itself, for to render the media.

I wonder whether media embedding works also with Fediverse platforms, so this test post includes some of this content. Let's start with a toot of my Mastodon profile:

Here is the URL of a PeerTube video:

Another option with PeerTube is to insert the HTML video embedding code, as renders some HTML in Markdown:

Does it work?

After checking out the published post I updated it to report on the embeds. doesn't render the URLs of both the toot and the PeerTube video. The HTML embedding code does work, but the rendered video is not responsive and doesn't blend well with the page on mobile.

#blogging #fediverse

Discuss... Email | Reply

The Fediverse presence of this blog has some limitations and quirks, such as the way commenting is set up. Another quirk is if I edit an old blog post, a new Fediverse post ends up in the followers' Mastodon timelines.


Discuss... Email | Reply

This blog is hosted at and uses the default commenting system of the sister platform The Discuss... link in the footer of every post leads to the comment box, which does the job but requires a paid account.

To provide alternate options I added to the footer a link to email me and now I'm experimenting with comments from the Fediverse.

The blog has the Fediverse presence you can follow. On Mastodon you'll receive a toot for every new blog post. To comment, reply as usual to the toot. But be sure not to delete my Mastodon handle prefilled in the edit box, which is different from

This setup is motivated by a limitation of the blog's Fediverse presence and based on a workaround founder Matt Baer suggested.

The problem is the blog is unable to receive Fediverse mentions or reactions, so Matt suggested to mention a Mastodon handle anywhere in the blog posts. This way the blog posts' toots automatically include the right Mastodon account in replies, in my case

When replying to a toot, Mastodon highlights the textual handles of any extra mentioned accounts and typing anything deletes them. That's why you need to pay attention, for example by pressing the right arrow key to un-highlight the handle and move the cursor to the right spot to begin typing the reply.

How did I set up Fediverse commenting on In the blog settings, under Customize > Post Signature I inserted this code in the signature, i.e. the footer appends to posts:

<!-- comment -->
[Email]( | Reply

The <!-- comment --> shortcode inserts the link (I had to insert spaces to escape it, remove them in your signature). The email link has an ordinary mailto URL. And the Fediverse commenting option is just my Mastodon handle.


Discuss... Email | Reply

Over the three years I ran my discontinued Blogger blog I published 146 posts. In just seven months I published 151 posts on this new blog hosted at, which drives home the superiority of as a frictionless blogging platform.


Discuss... Email | Reply

The conventional blogging wisdom is to address the readers as you and avoid writing in first person. This is supposedly friendlier and makes the readers feel at the center of attention.

I use you sparingly. For example, when I write how-to or instructional material, ask something, or try to persuade. Most of the times I write in first person. It's a natural way of sharing with fellow tech enthusiasts my direct experience and projects, the steps I take, the thought processes I go through, the setbacks.

There's another reason I rarely address readers as you.

You may come across as a marketing or SEO tool. The insincere intention of pleasing and luring readers to sell something — products, ads, attention — and monetize blogs.

My readers can cut through the BS and know when I feels right.


Discuss... Email | Reply

Back in the early days of blogging, the tech press bashed RSS out of existence as it was supposedly too complex for ordinary users. To the point new bloggers don't even know what RSS is, some recent blogging platforms don't support RSS, and new personal and corporate blogs sometimes don't provide RSS feeds.

But if your blog doesn't have RSS or Atom, you shoot yourself in the foot.

You completely give up control of your traffic to search engines and social platforms. Along with email newsletters, RSS is among the few options remaining to bloggers for establishing a direct communication channel and relationship with readers. With no gatekeepers.

The readers who subscribe to your RSS feed always see all of your posts. No matter what Google, Facebook, or Twitter decide.

What if only a minority of readers subscribe to your RSS feed? Is it still worth it?

They are the readers you want. The superfans who share your work. They may be bloggers themselves and link to your posts from theirs, or enable other opportunities such as guest blogging or podcast interviews.

Those few RSS subscribers are much more engaged and valuable than the many social media users who don't read or click links.

I've seen two primary objections to RSS feeds.

The first is, if readers get the content in a feed without visiting the website, blogs can’t be monetized with ads. Aside from the growing use of ad blockers, bloggers can provide partial RSS feeds that contain only snippets of the posts. This way the readers have to visit the blogs to access the full text.

Another objection is RSS feeds make web scraping and content stealing easier. This is a legitimate concern. But, if a blog is valuable enough, the lack of an RSS feed is only a minor inconvenience for determined scrapers.


Discuss... Email | Reply

I discontinued my old Blogger blog and, going forward, I'll post only to this new blog hosted at After initially meaning to maintain both, I had been considering mothballing the old blog for months. The joy of using finally drove home I can't stand Blogger anymore.


Discuss... Email | Reply

The Python feed of my old blog Moonshots Beyond the Cloud has long been aggregated by Planet Python. But I'm no longer going to update that blog, so I removed the old feed from Planet Python and submitted the Python feed of my new blog, Paolo Amoroso's Journal.

#Python #blogging

Discuss... Email | Reply

One reason I chose as my blogging platform is great support for technical writing with Markdown and MathJax.

I use Markdown all the time but haven't played with MathJax much, which I may need for some occasional simple math. So this post is a quick overview of how I write MathJax and what it renders like.

Editing and previewing MathJax

I love, but it has a few rough edges that introduce friction when writing MathJax.

There's no post preview and the only workaround, publishing an anonymous post and moving it to my blog when satisfied, doesn't render MathJax. This forces to go blind. Until a post shows up on the blog and I can fix any formatting issues, in the few minutes since publication and prior to the newsletter and the RSS feed entry going out.

I came up with an alternate workflow. I edit the math in the Interactive LaTeX Editor. This nice little tool supports MathJax, renders as I type, and has no ads.

Once the LaTeX source looks good, I copy the code from the LaTeX editor and paste it into the editor. If some LaTeX symbols have meaning in Markdown, such as _, *, and \, I have to go the extra step of escaping them with \.

At this point I'm ready to publish the post and tweak the math as described earlier.

MathJax examples

Time to kick the tires.

Let's start with some inline big \(O\) notation, say an algorithm that's \(O(n \ln n)\). I also throw in some binary numbers such as \(10010101_2\) and \(11010111_2\), and a simple calculation like \(2^{16} = 65536\).

Here is a displayed logical operation:

$$00000101_2 \wedge 00001100_2 \Rightarrow 00000100_2$$

The quadratic formula renders like this:

$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}$$

Finally, the standard deviation:

$$\sigma = \sqrt{ \frac{1}{N} \sum_{i=1}^N (x_i -\mu)^2}$$


Discuss... Email | Reply