Skip to content

Releases: gilramir/programmers-edc

predc 1.0.1 — the programmer's every-day carry

Choose a tag to compare

@gilramir gilramir released this 12 Sep 18:05

predc is a desktop of small tools a programmer reaches for weekly, in one
terminal window instead of ten browser tabs: an RPN calculator, a hex dump
viewer, a time zone converter, an ASCII chart, a Unicode decoder, base64 /
percent / C / HTML encoding both ways, a random value generator, an environment
variable browser, a calendar, and a pad of notes.

Each is a window on one desktop. They stay open while you work, any of them is
one Alt-key away from anywhere, and they share a clipboard with each other and
— when the terminal allows it — with the rest of the machine.

predc in the Borland scheme, with the hex dump viewer, the time zone converter and the RPN calculator open at once

Installing

npm install -g programmers-edc     # the command it installs is `predc`
predc

The npm package is programmers-edc because predc was taken; the command is
predc either way.

Node 20 or newer. That floor is Gren's rather than Turbo Vision's — the
compiler emits Array.prototype.toSpliced, which arrived in Node 20.

On linux-x64 nothing is compiled: a prebuilt binary ships inside the
tvision-node tarball, built against glibc 2.28, so it runs on anything from
CentOS 7's era onward. Everywhere else npm compiles Turbo Vision's 206 C++
sources at install time — about a minute, needing node-gyp's usual toolchain
and ncurses headers, and no cmake.

Or the tarball below, which needs neither npm nor a compiler

predc-1.0.1-linux-x64.tar.gz: unpack it, run ./predc, and the only thing the
machine needs is node. Verified on Debian 11 (glibc 2.31) and Debian 12; the
addon asks the loader for libc, libm, libpthread and a terminfo database and
nothing else.

What is underneath it

predc is the large example for three packages that anybody can build a terminal
application on — Turbo Vision, Borland's
1990 framework as revived by magiblot, bound to Node and driven from
Gren as an Elm-architecture program.

gilramir/gren-tvision the Gren API: windows, menus, dialogs, widgets and mouse handling described as data
gren-tvision-runtime the JavaScript half — diffs the UI description and drives the binding. Also ships the pty test harness
tvision-node the native addon: Turbo Vision through Node-API, with its blocking event loop inverted so Node keeps running

Turbo Vision, from Gren
is the guided tour, with a screenshot of every widget.

1.0.1

A README-only change to the npm package page. The code is identical to 1.0.0
apart from the version string.