jsmp

@jsmp.bsky.social

A secret C practitioner, FreeBSD aficionado, cloud admirer (the real ones), and artist wannabe.

Tried porting Clang to Aster. Turns out C++ has an impressive talent for documenting everything my OS doesn’t implement yet. I’ll tell you all about it… later this decade. 😅

For me, the menu bar as a UX is incredible for discovering what an app can do. That's why DOS Edit was so approachable. For Aster Terminal Editor, ESC toggles a similar menu bar, with mouse support (works on macOS too).

Screenshot of the Aster operating system running in QEMU. A terminal editor window is open, displaying a psh script with syntax highlighting, including comments, variables, strings, functions, and structured values. A classic menu bar is visible at the top of the desktop, while a small dock with Files and Terminal icons sits in the bottom-left corner. The editor shows line numbers, a status bar, and a scrollbar, giving the interface a retro workstation feel.Screenshot of a terminal-based code editor running in a macOS window, editing the threes.psh sample script. The editor displays syntax-highlighted psh code with line numbers, a status bar showing the file path and encoding, and a help bar listing keyboard shortcuts such as save, quit, menu, and pipe. The dark theme and minimal interface focus attention on the code while providing a classic terminal editing experience.Screenshot of a terminal-based code editor running in a macOS window with a classic menu bar visible. The View menu is open, showing options for line numbers, word wrap, and syntax highlighting, with a submenu listing formats such as Auto, PSH, PSL, RC, Key = Value, and ASCII Plist. Behind the menus, a syntax-highlighted psh script is visible, while the status bar and help bar remain displayed at the bottom of the editor.Screenshot of a terminal-based code editor running in a macOS window with the Format menu open. A Transform submenu is expanded, offering text transformations such as uppercase, lowercase, snake_case, camelCase, and Pipe…, which sends the current selection to a shell command. Behind the menus, a block of psh code is selected, demonstrating the editor's ability to process selected text through external commands.

Went to draft an article using raise (a SSG written in C), and had forgotten it can display a QR code for opening the served pages on my iPhone. It brought back the struggle of getting the QR code rendering right, which I'd completely forgotten. Unfortunately, also how ugly that particular code is.

Terminal window showing the raise serve --bind-all --qr command serving a static website from a local _build directory. The output warns that --bind-all exposes the server on all network interfaces, then lists the local URL (http://localhost:9090), the LAN URL (http://192.168.1.204:9090), and displays a large QR code that encodes the network address for quick access from another device.

One nice aspect of building a POSIX-oriented operating system is that many of its components can stand on their own. psh, Aster's shell, builds and runs on macOS, making it easy to iterate on new features and continuously refine the user experience.

Screenshot of the psh terminal running on macOS. The terminal demonstrates array support by creating an array [1, 2, 3, 4], formatting it with fmt, and iterating over its elements with a for loop to print each value. The shell features syntax highlighting with a dark theme and displays the aster % prompt.Screenshot of three.psh, a sample game written in psh, running in the psh terminal on macOS. The game displays a 4×4 grid with numbered tiles (2, 4, 8, and a highlighted 16), along with the player's score, move count, and name. Instructions at the bottom explain how to move using the arrow keys or WASD and press q to save and quit, demonstrating that psh can be used to build interactive terminal applications.

You often hear people talk about how they used X to build Y, how great or painful X was, and how it changed the way they think. How often do you hear that nowadays with AI? Most people don't even know which algorithms are being used or what their limitations are until they run into one.

Aster’s terminal app (term) now has much better xterm compatibility and proper PTY handling across the system (gettty, PTYs, and major libc support). Also landed an early workspace/window compositor layer. #osdev #toyOS

Screenshot of the operating system running inside QEMU. The desktop has a light blue background with two overlapping terminal windows using a classic dark theme and silver-blue title bars. The terminals display xterm compatibility tests, process listings, and PTY device information. A small terminal launcher icon appears in the bottom-left corner. The UI is minimalist and retro-inspired.

The ideia that a machine had no pleasure in creating an artwork to me is pale in contrast to the fact that a human did not spent years honing the skills needed to understand and express oneself. A style is not only a perspective but also the sum of creative ways to deal with our own limitations.