Undo Systems

An undo stack and a redo stack This is the most common way to implement undo and redo. It’s used in almost everything that supports undo. Whenever you make a change, the previous state is saved to the undo stack. When you undo something, the most recent change is popped off of the undo stack and pushed onto the redo stack. Finally, if you undo some changes and then starts modifying the document, the redo stack is cleared....

NXEngine Variants

NXEngine (2010?-2014) Written from scratch by Caitlin Shaw (aka rogueeve) with the goal of porting the game to new platforms as accurately as possible. For more information about the origins of NXEngine, see this discussion by rogueeve. nxengine-libretro (2011-) A port of NXEngine to the libretro platform. It includes some fixes for bugs in the original NXEngine. NXEngine (EXL’s fork) (2013-) Forked from NXEngine in 2013. Primarily made to port the game to unusual low-end platforms like MotoMagx and Dingoo....

Make Variants

GNU Make An original implementation initially released in 19881. NetBSD Make pmake – Written in 1988 or earlier.2 Included in BSD.3 Inherited by 386BSD and then NetBSD. NetBSD has maintained it ever since. A few times, they imported changes from FreeBSD’s version. FreeBSD Make For many years they maintained their own derivative of pmake. In FreeBSD 10.0 (2014), they switched to bmake, a portable version of NetBSD make.4 OpenBSD Make OpenBSD maintains its own derivative of pmake....

C Libraries for Using D-Bus

libdbus The reference implementation. The API is low-level and designed to be used in bindings. The developers recommend that you use a higher-level library or binding instead. Distribution support: Everything. All Linux distros, all BSD ports distributions, Homebrew. Used by too many things to list. Here are some highlights: User applications: Firefox, Chromium, Steam System services: jack2, Pulseaudio, libvirt, BlueZ According to 1, it’s not that hard and is practical to use even though it’s low level....

A Comparison of Shell Features

Jobs POSIX bash dash fish xonsh zsh When shell exits unspecified1 send SIGHUP to jobs2 reparent jobs send SIGHUP to jobs3 4 send SIGHUP to jobs send SIGHUP to jobs5 disown unspecified yes no; not needed yes no yes http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sh.html ↩︎ https://www.gnu.org/software/bash/manual/html_node/Signals.html#Signals ↩︎ http://fishshell.com/docs/current/commands.html#disown ↩︎ https://github.com/fish-shell/fish-shell/issues/3497#issuecomment-267803217 ↩︎ http://zsh.sourceforge.net/Doc/Release/Jobs-_0026-Signals.html#Jobs ↩︎

A Comparison of Markdown Converters I Use

Blackfriday cmark kramdown lcmark marked Pandoc Python Markdown Render as PDF no yes yes yes no yes no Templates no no ERB Pandoc no custom no Extentions some1 no many2 no some3 many4 many5 Implementation Language Go C Ruby Lua Javascript Haskell Python Users Hugo Jekyll TagSpaces My Python scripts https://github.com/russross/blackfriday#extensions ↩︎ https://kramdown.gettalong.org/syntax.html#kramdown-syntax ↩︎ https://marked.js.org/#/README.md#specifications ↩︎ https://pandoc.org/MANUAL.html#markdown-variants ↩︎ https://python-markdown.github.io/extensions/#officially-supported-extensions ↩︎

A Comparison of Some Free Software Licenses

This page is obsolete. You should take a look at choosealicense.com instead; it’s much better. Apache not copyleft about 3 pages long CC0 public domain plus a fallback license for jurisdictions that don’t have public domain this is the recommended way to dedicate a work to the public domain GNU GPL the most popular FOSS license copyleft does not allow linking from code with other licenses about 10 pages long GNU LGPL copyleft allows linking from code with other licenses defined as the GPL plus a page of additional terms ISC only requires that the copyright info remain intact most readable license I have seen a single concise sentence MIT only requires that the copyright info remain intact very readable a single wordy sentence MPL weak copyleft, i....