Paolo Amoroso's Journal

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

This is the laptop bag for my Lenovo Yoga N26 11.6” Chromebook. Nothing fancy, just a cheap Amazon Basics shoulder bag that does the job.

The laptop bag for my Lenovo Yoga N26 11.6" Chromebook

What makes the item interesting is it's the only product I ever bought after clicking an online ad.

I had googled and searched extensively Amazon, eBay, and other retailer websites without coming across anything that met my requirements. Then, on an unrelated website, I saw an Amazon ad for that bag. It was exactly what I wanted, it seemed 3D-printed from the spec in my brain. I immediately clicked the ad and bought the product.

The event is even more remarkable considering I've been surfing the web for almost three decades. Yet none of the countless ads I was served were compelling enough to lead to a click, let alone a purchase.

The first reason I nearly never find ads that match what I want is that, although I don't use ad-blockers, I tune out ads and hardly notice them.

But, even when I do check out the ads, nothing matches my interests or needs. All I get is braindead remarketing that follows me across the web to push stuff I already own or researched and discarded.

Putting aside for a moment the security and privacy issues with online advertising, I'd love ads that drew attention to stuff I really want, like the Amazon one. Yet, despite all the tracking, personalization, machine learning, and advanced technologies the advertising industry deploys, the results are irrelevant or underwhelming.

I can't think of anything more inefficient than the online advertising industry.

#misc

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

I'm going to use Twitter less and focus on my journal and blog.

After over a dozen years on Twitter, I hit a growth ceiling: my follower count is flat and I'm invisible. Despite the occasional viral tweet, I get less than a hundred impressions and nearly no engagement per tweet.

I tried posting text, threads, media, links, replies, mentions, quote-tweets, lists, the works. Nothing makes a difference, no matter how good my content is.

The algorithms just don't like me and bury my tweets. Fair enough.

On platforms with a level playing field, such as RSS aggregators, I get an order of magnitude more visibility and engagement. After less than a month, my journal gets roughly the same views as after over a dozen years on Twitter.

I'll continue using Twitter as a source of content and discussion. But tweeting is a waste of time as nobody sees my content.

Instead, I'm doubling down on my existing blog and my new journal, where I post about the same interests I cover on Twitter.

I left the links to my journal and blog in my Twitter profile. I'd share them there, but social platforms did an effective job conditioning users not to escape their walled gardens and explore the open web, so Twitter would bury my link tweets.

#blogging

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

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

Enter your email to subscribe to updates.