Posts

I’m Keeping a Journal

Image
I started the new blog Paolo Amoroso’s Journal . In the new journal, I write about the same topics of my main blog Moonshots Beyond the Cloud , but with more frequent and mostly short entries . My new blog, Paolo Amoroso’s Journal. The journal is hosted at the Write.as lightweight, distraction-free, Markdown-based blogging platform with good support for technical writing . Blogger, which I use for my main blog, is good for ordinary content. However, Google no longer releases new features and I’m actually happy the product is alive at all. I’ll continue updating my existing blog but I wanted to complement it with a journal. And I wanted to use a platform with much less friction than the clunky old Blogger. Researching a blogging platform was harder than I thought, so I’m happy I found Write.as. The new blog is at journal.paoloamoroso.com You can subscribe to the RSS feed or sign up to receive the posts via email as a newsletter.

Suite8080 0.5.0

Image
Version 0.5.0 of Suite8080 is out, and the package is available on PyPI . Suite8080 is a suite of Intel 8080 Assembly cross-development tools I’m writing in Python. The Assembly source of the Suite8080 hello world demo with uppercase constants. The new release is all about expressiveness. I extended the assembler to accept uppercase identifiers for instruction mnemonics, labels, and constants. The change allows an Assembly coding style in which constants are in all uppercase and stand out. For example, here’s the Suite8080 hello world demo greet.asm with constants such as TPA and BDOS : ; Hello world for CP/M TPA equ 100h BDOS equ 0005h ; BDOS entry point WSTRF equ 09h ; BDOS function: write string org TPA mvi c, WSTRF lxi d, message call BDOS ret message: db 'Greetings from Suite8080$' end I reformatted in this style a

Reading PDF Ebooks with Google Play Books

Image
Large tablets and desktop screens are the best for reading PDF ebooks and files. However, in my experience, using a medium-size Android tablet and turning on two options of the Google Play Books reading settings provides an acceptable experience . Under these conditions, Google Play Books works better with PDFs than Kindle for Android. The reading options for PDF ebooks of the Google Play Books Android app. This setup is helping me read more PDF ebooks, unlike with my previous tablet, a 7” Lenovo Tab E7. On its small screen, the text of nearly all PDF ebooks and files was still too small no matter what reading options I set. Landscape mode helped little. Let’s see why PDFs require specific reading tools, what my setup is, and how I read PDFs. Reflowable vs fixed-layout ebooks With reflowable ebook file formats, such as ePub and Mobi, reading apps rearrange the text and other content to fit any screen size, much like web browsers do with HTML pages. Text fills the viewing area with a co

Using Historical Space Add-ons with Celestia for Android

Image
Celestia for Android , my favorite universe simulation app, supports downloading add-ons from the project’s repository . This extensive archive hosts digital models of asteroids, deep-sky objects, exoplanets, spacecrafts, and more. The add-ons of spacecrafts are interesting as they let you examine the environment and context of historical space exploration missions , such as the views the vehicles had of their target bodies. But historical add-ons pose a potential pitfall. The Mariner 4 add-on in Celestia for Android on my Pixel 4 XL phone. The simulation date and time are set to a moment a few hours prior to the closest approach to Mars. Consider, for example, the add-on of Mariner 4 , the first human-made vehicle to fly by the planet Mars. If you download the add-on and go to it with the Celestia browser (menu > Browser > Spacecraft > Mariner 4 > GO ), the app will navigate to the 3D model of the spacecraft and make it fill up most of the field of view. But where is Mars?

Publishing Python Documentation to Read The Docs With Jupyter Book

Image
I published the documentation of Suite8080 , a suite of Intel 8080 Assembly cross-development tools I’m writing in Python with Replit. The Suite8080 documentation website built with Jupyter Book and Sphinx and hosted at Read The Docs. Like many Python projects, the documentation comprises a website hosted at Read The Docs. But, unlike most projects, I didn’t use Sphinx directly to generate the website. Instead, I created the documentation with Jupyter Book by The Executable Book Project, well known for Jupyter Notebook. Jupyter Book is a new system for producing publication-quality books and documents for software and research projects. Jupyter Book is significant and promising because, by building on top of Sphinx as a backend and offering a Markdown-based formatting language, it hides the complexity of Sphinx and reduces friction when writing documentation . Before this project I checked out Sphinx directly, but its arcane formatting language and complex setup didn’t make me go fa

Using a Bluetooth Keyboard on Android

Image
Two years ago I bought a cheap Bluetooth keyboard from Amazon.it. At €14, it was mostly an impulse buy for exploring mobile typing on the go and in similar settings , such as workstations with reduced desk space. My FREALL 7INKEYBD-BK Bluetooth keyboard. I initially used the keyboard with the Android tablet and smartphone I had, a 7” Lenovo Tab E7 and a Pixel 2 XL. I later repurposed the keyboard for the devices I replaced those with, a Lenovo Tab M8 HD 8” tablet and a Pixel 4 XL smartphone. Despite the simplicity of operation, it took me some trial and error to figure out how to pair the keyboard with an Android device and what keystrokes insert the characters I need, such as accented letters when writing in Italian. Moreover, I realized I never blogged about my experience with the unit. So I’m posting these notes in case you come across the same or similar keyboards. The keyboard The keyboard is a cheap, compact, plastic chiclet unit that comes with a small foldable stand for a ta

Suite8080 0.4.0

Image
I released version 0.4.0 of Suite8080 , the suite of Intel 8080 Assembly cross-development tools I’m writing in Python. It bundles some minor features and changes I did while thinking about what major task to work on next. New features There are two main new features in this release. A SID debugging session in the z80pack CP/M emulator. SID loaded the greet.com hello world program assembled with asm80, along with the greet.sym symbol table. The l command disassembled the program and showed the symbols MESSAGE and BDOS . The d command dumped memory from the address of the MESSAGE symbol. The first is the ability of asm80 to save the assembled program’s symbol table in the .sym CP/M file format . The other feature enhances the assembler to accept the double-quote character ” as a string delimiter , which means strings and character constants may be written as ”This is a string” and ”F” . In addition, the output of the assembler's help message ( -h option) and verbose mode