A Repository of Mostly Techie Notes

Welcome to decuser’s blog

Topics on this blog include computing, retro-computing, operating systems, math, and whatever other technical subjects I happen to be exploring that I find interesting enough to take and share notes about.

Posts

    • Setting up Slackware 15 on T430 for X Window Programming

      The note walks through the process of installing and configuring a working Slackware 15 64 instance with the packages mirrored locally for ease of access and eliminating the need to be online as much. When the system is up and running it provides xdm services to nearby hosts (those on the local network). This makes running and testing x window clients simpler and more interesting. You may notice that the note references other environments that you may not have or want to use (MacOS Mojave and FreeBSD 13.1). Just ignore those references as they are not strictly required.

      I chose Slackware 15 64 as the environment after trying out various flavors of Debian, Arch, Kwort and others. While these worked ok, they did not provide much of a clean, vanilla x experience. Slackware, on the other hand, provided a sane, simple, and understandable x environment that was pretty vanilla :). It feels really good to get back to Slackware and its simplicity. I don’t have a gazillion processes running doing who knows what, the laptop sleeps without crazy interventions, and stuff works well. That said, Slackware is not for the faint of heart. You should be somewhat familiar with Linux and it’s command line interface and be willing to do your own research before jumping into it.

      two

    • A Modern PDF Cleanup Workflow

      This note provides a workflow for taking a less than optimized PDF and optimizing it for viewing and printing. It isn’t a cure-all for sick PDF’s, but it does work for a lot of them. I’ve struggled with badly scanned PDF’s for a long time and this workflow represents my current best approach.

      The note also provides a cookbook of solutions to problems I have run up against and the solutions that I currently use to address those problems.

    • Xlib basics

      This note explores the basics of Xlib. It covers enough to open a window, configure it, display a message, respond to some events, and close it gracefully - see figure 1 for a hint at what this will look like.

      Why xlib? Well, because we can, because it is the lowest level above the X protocol (sending bits around), and because, contrary to many espoused beliefs these days, knowing how to do something the ‘hard way’ helps you understand what’s going on with the ‘easy way’… and when things inevitably go wrong, you want to have a clue.

      Figure 1. A Basic Xlib Application

      one

    • Setting up for X-Windows Development on MacOS

      This note describes setting up a development environment for doing X Windows Development on Mac OS from the ground up. The notes do apply to other environments… with minor tweaks (I tried the same basic setup on Debian Linux, DragonFly BSD, and FreeBSD with no major issues).

      This is enough setup to build applications in X Windows using Xlib - the lowest level of programming in X… other than the X Protocol :). I did this because I have developed an interest in how graphical interfaces work and X, for all its quirks, is not self-limiting, crippled, partially proprietary or any of that nonsense and it is widely used.

      After setting up, downloading some source, building and deploying, here’s what we’re looking at… on a Mac:

      one

    • Site Update for Monday, January 23, 2023

      Today, I did my 50th deployment (this is the 51st) of the blog, adding mermaid-js support to the site. So, now I can add in flow diagrams and such as I explore fossil scm or other flowing stuff.

      I hope you’re finding the posts here interesting, useful, or fun. If you like, drop me a note and tell me what is needed, what’s good, what needs to go. As always, please be constructive :).

    • Enabling Mermaid in Jekyll without a Plugin

      Mermaid is a javascript tool to generate graphics - diagrams and charts and such using markdown-like syntax. This note describes adding it into a jekyll site such as mine https://decuser.github.io

      flowchart LR id1((a)) --> id2((b)) & c--> d

      Flowchart Example

    • Merging binary files in Fossil - to do or not to do?

      This is a note about merging (or not merging) binary files in Fossil.

      Scenario

      Two users Marilyn and Jim update to latest and begin working on their versions of the repository. Marilyn, changes a binary file called DEMO and commits her changes. Meanwhile, Jim changes his DEMO and tries to commit his changes. When he does so, he is warned that a fork would result from his commit.

      Current Situation

      flowchart LR START[ ]-->id1((2))-->id2((3)) id1((2))-..->STOP[ ] style START fill-opacity:0, stroke-opacity:0 style STOP fill-opacity:0, stroke-opacity:0

      In this note, I look at different solutions to the problems arising when two different committers try to commit changes to the same binary file. This is just a note, not a published solution set. It presents my current thinking on the matter and will inevitably evolve as my understanding of Fossil grows.

    • Installing and running DragonFly BSD 6.4

      This note is about installing and running DragonFly BSD 6.4

      one

      DragonFly BSD from https://dragonflybsd.org is a BSD :). As such, it is a rock and the userland is sane. It was forked from FreeBSD long ago and is renowned for its HAMMER FS. I started the exploration with the intention of learning more about HAMMER and have enjoyed the journey.

    • Installing and running Fossil on TrueNAS Core

      This note is about installing and running Fossil SCM on TrueNAS Core.

      Fossil is brought to us by the same people who developed SQLite. It was created to serve their needs, but is useful to everybody with a similar set of needs (pretty much any dev team). According to the fossil folks over at https://fossil-scm.org, “Fossil is a simple, high-reliability, distributed software configuration management system…” To mme, it’s my git-killer.

      I have been running Fossil for about a year to see if it was worth replacing git for my own use. After this year, while I still like git and I will continue to use it for disposable repos, I have completely jumped ship for my own repos and won’t be going back to hosting them on anything else anytime soon. Fossil is very lightweight, fast and responsive, has a fantastic server side ui, and is slightly more intuitive to use. It is also easier to recover from when things go wonky.

    • Sculpt 22.10 - A Truly Alternative OS

      This note is about installing and running Sculpt OS 22.10 in VirtualBox.

      SculptOS is an operating system built out of components provided by the Genode Operating System Framework and as such it qualifies as a truly alternative operating system. These days, that’s quite a feat. Most ‘alternatives’ are linux distros or flavors. This OS runs on a microkernel - Nova or any one of several other choices. It is decidedly not unix, windows, linux, haiku, beos, os/2 or any other mainstream os.

      Sculpt OS is made so that it is relatively straightforward, if not easy, to provide a secure computing environment where applications and services are built on a Trusted Computing Base… that is an application is provisioned explicitly to depend on a tree of components that are known to be trustworthy, and are sandboxed. It is similar in some ways to Qubes OS, but significantly different in others.

      The learning curve is steep. So, as I explore the environment and learn more about it, I’ll post more of these notes.

      Here’s the OS running stuff.

      fortytwo