Paolo Amoroso's Journal

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

One reason I chose Write.as 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 Write.as, 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 Write.as 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}$$

#blogging

Discuss... Email | Reply @amoroso@fosstodon.org

On my Chromebox, XMODEM file transfer from Linux to the Z80-MBC2 is broken, but I've been trying with every new chromeOS version just in case an update delivers a fix. So far the transfer still doesn't work with chromeOS up to 104.

#z80mbc2 #sbc #chromeOS

Discuss... Email | Reply @amoroso@fosstodon.org

I'm reposting here some content I published elsewhere, such as this and this. My journal will be my primary blog, so I'm consolidating here some of my other material. Which is an opportunity to revisit, filter, and revise old content.

#blogging

Discuss... Email | Reply @amoroso@fosstodon.org

The conventional marketing wisdom is to emphasize product benefits rather than features.

Is it universally true? Are there products or customers for whom the features are more important than the benefits? Think for example of technical products such as tools or platforms for software developers.

I prefer to learn about the features because the benefits are too vague, focus on average users, and often feel unrealistic or patronizing. I wonder how representative I am.

The features let me figure the benefits that are important to me, which those promoting the product may not even think of.

If I know the product domain well, the features suggest the benefits I can get out of it. Or I may plan to use the product in ways the vendor didn't intend or anticipate in their benefits-oriented communication.

If you pitch a product to me, skip the benefits and talk features.

#misc

Discuss... Email | Reply @amoroso@fosstodon.org

It all started when I added a new Intel 8080 Assembly demo to Suite8080. Pushing the commit to the GitHub repo triggered a rebuild of the project documentation hosted on Read The Docs, which failed.

I maintain the Suite8080 documentation with Jupyter Book and publish it to Read The Docs with Sphinx as the backend.

Over the previous months, while my work on Suite8080 was on hold, some backward incompatible Jupyter Book update broke the Suite8080 documentation configuration. I had no idea what to do, so I opened a Read The Docs issue. After some troubleshooting with the help of Manuel Kaufmann, Benjamin Balder Bach contributed a Suite8080 pull request that fixed the issue.

Benjamin's patch has an additional advantage. I no longer have to manually edit conf.py to let sphinx.ext.autodoc discover the project's Python packages.

#Suite8080 #Python

Discuss... Email | Reply @amoroso@fosstodon.org

Write.as is such a low-friction blogging platform it enables me to blog daily. I love sharing my tech projects and experiences, and I can squeeze some writing into pretty much any time snippet.

But life threw at me something I struggle to handle.

The health of my old mom got worse quickly and she became no longer self-sufficient, requiring me to care for her continuously and full time. I love mom so much I even resumed using WhatsApp, I can do all it takes. But the current situation is demanding and exhausting, keeping me at the edge of burnout.

It's not so much I have little time to write. It's I don't have time to work on the projects and stuff I blog about.

I'm posting much less, but I still update this blog. I need it.

#personal #blogging

Discuss... Email | Reply @amoroso@fosstodon.org

I joined the mastodon.technology Mastodon instance on March 23, 2022. It turned out to be an interesting time as, a few weeks later, Elon Musk tried to acquire Twitter and stirred the debate on alternate social platforms.

Back then the About page of the instance listed, under server stats, about 22K users and 2.2K active monthly users. In the weeks after Elon's bid, the user base of the instance started growing, several introduction toots by new users showed up in the local timeline, and monthly active users peaked at 2.3K.

As I write this there are 23.5K users and 1.66K active monthly users. In the local timeline I haven't seen new user toots for a while.

Although the decreased activity hints at a waning interest in the instance or Mastodon, this can just be a seasonal effect over the summer. Even if the decrease is real, interest in Mastodon seems to come in waves.

We'll see in the fall.

#fediverse

Discuss... Email | Reply @amoroso@fosstodon.org

Exploring the Z80-MBC2 is a required learning step for the adventurous hobbyists and electronic enthusiasts who use this Z80 homebrew computer, to whom it's aimed.

The device comes only with schematics, source code, and a few brochures. However, despite the lack of an official manual, there is a lot of information on the Z80-MBC2 scattered across a number of websites. Put together, this content makes for a solid starting point for further exploration.

In my own journey I'm collecting these resources, which I share here in the hope they will help you get started. I'll update the post with more as I discover them.

Features and operation

The closest thing to a manual is the Z80-MBC2 guide by DarS007, a user who compiled an unofficual user guide. It consists of original notes and snippets from other sources organized into an architectural overview, software information, and tips.

The Z80-MBC2 developer Just4Fun published most of the available information on the project's Hackaday page. All its sections are well worth reading in full, particularly Details and Logs. Section Discussion contains Z80-MBC2 user posts with interesting links and tips.

I also recommend the project page of the Z80-MBC, the Z80-MBC2 predecessor with which it shares most hardware and software features. These pages provide complementary content, i.e. the Z80-MBC page has useful information missing from the Z80-MBC2 page.

Just4Fun published much of the same content on his personal website and has an Instructables guide.

The Z80-MBC2 user Coopzone posted some notes on managing virtual disks and files. Another user blogged his experience with assembling and using the Z80-MBC2.

Operating systems

The Z80-MBC2 can boot a number of operating systems such as CP/M 2.2 and 3.0, as well as UCSD p-System.

Nearly all the existing documentation on these historical systems applies to the versions that ship with the Z80-MBC2. The same goes with the application software for these operating systems that's preinstalled on the Z80-MBC2, for example WordStar and Turbo Pascal.

Some of these operating systems and programs are less known. Refer to the official QP/M and Collapse OS official websites for documentation on Q/PM 2.71 and Collapse OS, bootable from the Z80-MBC2.

As for lesser known application software, see the documentation of the VDE text editor on which the CP/M ZDE16 editor that comes with the Z80-MBC2 is based.

Programming languages

Along with the operating systems, the Z80-MBC2 firmware can boot a couple of programming language interpreters like the BASIC and Forth systems in the ROMs of typical 1980s microcomputers.

The Z80-MBC2 ships with a Nascom BASIC implementation modified by Grant Searles. See the Nascom BASIC documentation.

Development tools

In addition to using the supplied software, it's fun to program the Z80-MBC2 in C or Assembly. The project sites of the major compilers and development tools usable for the Z80-MBC2 usually provide documentation:

#z80mbc2 #sbc #retrocomputing

Discuss... Email | Reply @amoroso@fosstodon.org

The GitHub repo of my Free Python Books project is about to get 3.5K stars. As I write this it has 3,499 stars, 448 forks, and 149 watches.

This milestone is mind blowing, humbling, and unexpected.

The project is a categorized list of Python books that are free to read or download. Despite the simplicity, something in the resource resonates with many Python developers and enthusiasts.

It all started as a personal list of books I discovered while learning Python, which I wanted to read later or reference. I shared the early list on Reddit and it snowballed from there.

I'm happy also because this success hints there are many learners who, in the age of video, still seek books and text resources.

#Python #books

Discuss... Email | Reply @amoroso@fosstodon.org

I created a YouTube playlist about the Z80-MBC2 Z80 homebrew computer.

The videos visually decument my journey to using, learning, and programming the Z80-MBC2. They are screencasts demonstrating various features of the device and my projects, such as feature walkthroughs, running programs, coding sessions, and so on.

As I gain more experience with the Z80-MBC2, I'll publish more videos.

#z80mbc2 #sbc #retrocomputing

Discuss... Email | Reply @amoroso@fosstodon.org

Enter your email to subscribe to updates.