cpmulator
computer
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cpmulator
- Show HN: A simple Golang CP/M emulator that can run Zork
-
Ask HN: What rabbit hole(s) did you dive into recently?
A while back I wrote a game in assembly, for CP/M. Since I have a single-board Z80-based computer on which I can run it.
I later ported the game to the ZX Spectrum, because that was a fun challenge, and I only needed a few basic I/O operations - "write to screen", "read a line of input", etc, etc.
It occurred to me that I could reimplement the very few CP/M BIOS functions and combine those implementatiosn with a Z80 emulator to run it "natively". So I did that, then I wondered what it would take to run Zork and other games.
Slowly I've been reimplementing the necessary CP/M BDOS functions so that I can run more and more applications. I'm not going to go crazy, anything with sectors/disks is out of scope, but adding the file-based I/O functions takes me pretty far.
At the moment I've got an annoying bug where the Aztec C-compiler doesn't quite work under my emulator and I'm trying to track it down. The C-compiler produces an assembly file which is 100% identical to that produced on my real hardware, but for some reason the assembler output from compiling that file is broken - I suspect I've got something wrong with my file-based I/O, but I've not yet resolved the problem.
TLDR; writing a CP/M emulator in golang, and getting more and more software running on it - https://github.com/skx/cpmulator
computer
-
Ask HN: What rabbit hole(s) did you dive into recently?
gs (ghostscript), mutool, ocrmypdf...
To add/remove: mutool merge -h
To split PDF pages: mutool poster -h
I made a script here that I use frequently for scanned documents: https://github.com/chapmanjacobd/computer/blob/main/bin/pdf_...
Shrink PDFs: gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/prepress -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out.pdf in.pdf
(or switch prepress to ebook to shrink more)
or to really shrink, b&w only:
gs -q -dNOPAUSE -dBATCH -dSAFER -sProcessColorModel=DeviceGray -sColorConversionStrategy=Gray -dDownsampleColorImages=true -dOverrideICC -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dColorImageDownsampleType=/Bicubic -dColorImageResolution=120 -dGrayImageDownsampleType=/Bicubic -dGrayImageResolution=120 -dMonoImageDownsampleType=/Bicubic -dMonoImageResolution=120 -sOutputFile=out.pdf in.pdf
-
Ask HN: Why does GNU Stow (et al.) exist?
I've been putting my whole home folder under git for almost a year [1].
I haven't seen any other repos on GitHub with a similar layout. Why do people rely on GNU Stow and other complicated tools to essentially do what git does? I haven't noticed any performance problems with just using git.
[1]. https://github.com/chapmanjacobd/computer/
-
A browser plugin that shows you which search results require a login to use their services before you even click on them
with these settings: https://github.com/chapmanjacobd/computer/blob/main/.github/firefox/ublacklist-settings.json
- I'm new to termux, so suggest me what cool stuff to use termux for.
-
My Bad Habit of Hoarding Information
The problem with a lot of these tools is there is no incremental escape hatch. I had 25,000 tabs last year which I saved as a line delimited text file.
Then every day I automate opening 7 tabs and I force myself to get through them. Sometimes it takes 2 minutes, sometimes it takes an hour. Sometimes it ends with me adding 50 more links to the text file. Sometimes the tabs are garbage but often they are worthwhile.
https://github.com/chapmanjacobd/computer/blob/main/.config/...
https://github.com/chapmanjacobd/computer/blob/main/.config/...
But over the past year I've gone through 2,555 tabs! So it seems like it is working. Maybe in 10 years I'll reach tab zero
-
Script suggestion post!
autocrop.lua
-
Yet another yt-dlp linux script
I started doing this with my phone and it made formatting my phone painless. The hardest part is getting started. I still haven't added all my config files to git; I have a daily script that will remove one line from my home directory gitignore so I can incrementally add config files. And it has already brought me a lot of peace of mind even if I'm only like 30% of the way done on the desktop.
What are some alternatives?
hamster-system - Ultra-simple framework to organize your life.
tabist - Simple Tab Manager Extension for Chrome and Firefox.
evafast - mpv script for hybrid fastforward and seeking
lkmpg - The Linux Kernel Module Programming Guide (updated for 5.0+ kernels)
mpv-scripts - Various scripts for mpv
yt-dlp - A feature-rich command-line audio/video downloader
mpv-youtube-quality - A userscript for MPV that allows you to change youtube video quality (ytdl-format) on the fly
mpv-quality-menu - A userscript for MPV that allows you to change the streamed video and audio quality (ytdl-format) on the fly.
termux-tasker - Termux add-on app for integration with Tasker.