Paolo Amoroso's Journal

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

Fabrizio Ferri Benedetti studies old computer manuals as a source of technical writing ideas and techniques on content organization, structure, and design. Tiemoko Ballo collects vintage programming books to discover the history and context of computing technologies.

My Suite8080 project is making me rediscover old books and software documentation on Intel 8080 Assembly, CP/M programming, and more. I read these publications for reasons similar to Fabrizio's and Tiemoko's, as well as for learning the systems and technologies they cover.

Most of the old documentation I read is in digital form, such as the COHERENT Unix manual, but I have a few print books from the 1980s.

#retrocomputing

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

After test-driving Write.as on an Android phone, here I am typing this post on an external keyboard wirelessly connected to a tablet.

I'm using a Lenovo Tab M8 HD 8” Android 10 tablet with a Bluetooth keyboard. At under 150 EUR combined, both devices are pretty cheap.

I have the Write.as plain text editor open in the Chrome app. I'm no touch typist. But using a physical keyboard, even a cheap unit like this, makes a difference in productivity as it speeds up writing and editing.

Markdown formatting

Markdown support in the editor lets me type rich text such as bold and italics. I can enter lists too, here's a bullet one:

  • one
  • two
  • three

And an ordered list:

  1. first
  2. second
  3. third

Let's have some quoted text:

I'm afraid I don't have anything witty or memorable to say. This is just to show what quoted text looks like.

Where a physical keybord makes a real diffrence is with complex text formatting, such as a table:

Column 1 Column 2
1 2
3 4
5 6

Conclusion

A tablet, an extenal keyboard, and a lightweight blogging platform like Write.as make for a serviceable and productive on the go writing setup.

#blogging

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

I released version 0.5.0 of Suite8080, a suite of Intel 8080 Assembly cross-development tools I'm writing in Python. Although still in an early stage, this version makes Suite8080 gain enough functionality to be useful in a variety of Assembly applications.

In my next steps I'm going to focus on two areas of improvement.

First, I'll write more 8080 programs to process with the Suite8080 assembler and run on emulated CP/M systems or actual hardware. After all, this is the fun part I began the project for.

The Suite8080 Python sources are still a tangled mess of tightly-coupled, unencapsulated, beginner code with global state that makes it difficult to add new features or change existing ones. Therefore, the other area of improvement I'll work on is a major redesign. This should make the code easier to work with and extend.

#Python #Suite8080

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

Every few days, Telegram notifies me one of my contacts joined the platform. Aside from other Google enthusiasts, only 3-4 of my contacts are still on Google Chat.

This is emblematic of the complete failure of Google in the messaging space.

#Google

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

For years Google encouraged Android developers to pretty please support tablet screens.

Nothing happened. Then Google repeatedly reported Chromebook shipments and Android app usage on Chrome OS were skyrocketing. Again, crickets. Google didn't lead by example either.

The carrot didn't work, so Google is going with the stick. The Play Store will change search rankings and recommendations to prioritize apps with tablet and large screen support, and warn when installing apps that don't meet these quality standards.

About damn time.

#Android

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

I love the Discourse discussion forum platform. It's fast and smooth, has a clean design, works nicely on mobile, and supports Markdown.

But Discourse is missing by design a feature that gets in the way of my workflow: it doesn't allow marking read in bulk all unread messages. This makes it difficult to keep track of what I want to see and skip what I'm not interested in.

#misc

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

I extended the Suite8080 assembler to allow the ds directive to take a label as an operand. The label, which must be defined before use, may be in uppercase. I also broke into subsections the section of the documentation about the assembler limitations, as well as mentioning the limitations of org and ds.

This hopefully concludes the work to make the assembler accept uppercase identifiers such as instruction mnemonics, labels, and constants.

Suite8080 is a suite of Intel 8080 Assembly cross-development tools I'm writing in Python.

#Suite8080 #Python

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

My work on Suite8080 is making me rediscover the Unix M4 macro processing language.

Suite8080, a suite of Intel 8080 Assembly cross-development tools I'm writing in Python, includes also an assembler. I designed the latter to optionally read from the standard input, a feature that gives for free macro processing via a separate tool like m4. I can feed macro Assembly source to m4 and pipe the expanded output into the assembler.

The M4 language is a good choice thanks to its power and ubiquity on POSIX systems.

However, m4 is an obscure tool with a learning curve made steep by the unintuitive quoting and expansion rules. There are few resources and no books or tutorials. The very few code samples are abstract, short, and formatted with little or no whitespace and indentation, which doesn't help readability.

After extensive online research, I put together a list of the best learning and reference resources:

#Linux #development

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

Bob Nystrom, a Google software engineer who works on the Go programming language, self-published two software development books, Game Programming Patterns and Crafting Compilers.

The books, available in digital format and in print, are deservingly popular. They cover interesting topics, provide clear explanations and code, are beautifully designed, and can be read online for free.

But the meta level is as interesting as the creative works themselves.

Bob posted to his blog a series of articles describing his tech book publishing process. These long and detailed posts are a fascinating read, a peek behind the curtain of running two complex tech writing projects.

The posts share every aspect of the work that went into the books.

The description of the custom-built toolchain and the workflow for formatting the Markdown manuscript is geeky. This involved combining the text and sample code, taming the arcane Adobe InDesign, and producing both the digital and print versions of the books.

Bob goes into a lot of detail also on his writing routine. For years he had the discipline to write every single day despite the stress of a demanding job, family life, personal tragedies, and setbacks.

Finally, the posts discuss the business and marketing side of the publishing projects. Bob reports on the book launches, the promotion strategy, and the early sales.

The experience of Bob, who declined a traditional publishing deal to go full indie, is a valuable resource for self-published technical authors.

#selfpublishing

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

While reporting my challenging experience with picking a blogging platform, I incorrectly assumed Silvrback was unmaintained. I hadn't heard back from my email inquiry to them and the latest activity on their Twitter profile dated back to two years earlier.

Silvrback's founder, Kermit Kuehn, later reached out to me to confirm the platform is still maintained and supported.

I updated my previous post. I'm glad Silvrback is alive and I recommend checking it out. Although I'm happy with with my choice of Write.as, Silvrback was a close runner up.

#blogging

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

Enter your email to subscribe to updates.