an implementation of an animated #visual-programming notation for the λ calculus, like To Dissect a Mockingbird.
international #energy outlook: in 2016 they say, “Total world consumption of marketed energy expands from 549 quadrillion British thermal units (Btu) in 2012 to 629 quadrillion Btu in 2020 and to 815 quadrillion Btu in 2040—a 48% increase from 2012 to 2040.” I think actual energy consumption will increase much faster than this starting in the mid-2020s.
Textfiles has a replica of the bitsavers computer #history repository. #retrocomputing
Alan Moore wrote a novel called Jerusalem about the working-class people he grew up with and about how the passage of time is actually an illusion. He’s disowned his most famous comics because he doesn’t own them.
a 240-page (120-leaf, I guess) Moleskine here in Buenos Aires costs AR$649
#video of the presentation of Digimind’s 256-byte intro “Immediate Railways” at Function 2015 with the audience reaction. An interesting 3-D rendered animation in MS-DOS in 256 bytes: mindboggling. #demoscene #smallisbeautiful
list of most popular #demoscene demos and intros of 256 bytes or under. #smallisbeautiful
#emulation of the PDP-1 running Spacewar, the first of all computerized #video-games, from 1962
Ellen McCrady’s overview of the paper permanence standard ANSI Z39.48 and other related standards for acid-free paper for #archival. The brief summary is that the pH inside the paper needs to be 7.5 to 10.0 and it needs an alkaline reserve equivalent to 2% CaCO₃.
for using the NGSpice mostly-free-software version of #SPICE for (among other things) transient #simulation, Kurt Peters’s Kjwaves provides a Java front end for editing the netlist (without a schematic view AFAICT) and viewing simulation waveforms
A comparison of compact #C standard libraries, including dietlibc, musl, uClibc, and (as a control) glibc
Federal Reserve Federal Open Market Committee (FOMC) meeting calendar. #finance
#Reverse-engineering the 74181 ALU from 1970, kind of a predecessor to the Am2901 which provides 32 functions (including AND, OR, XOR, and binary addition) for 4 bits using 67 gates (!!) and about 170 transistors (!!!) and was used in the PDP-11, Nova, VAX 11/780, and the Datapoint 2200 that gave us the 8008. Its XOR consists of two transistors! He decapped the chip from a ceramic package with a chisel instead of the traditional red fuming nitric acid or boiling sulfuric acid technique. Includes high-res die photos. #hardware #history #retrocomputing
The Nibbler, by Big Mess O’ Wires, is a #homebrew computer whose 4-bit CPU is built from EPROMs, 74181 ALU chips, and 7400-series register chips. #hardware #smallisbeautiful
The #LGP-30, selling for US$47000 in 1956, was one of the first computers designed for a single person; it used a drum memory (with some tracks used as delay lines for its registers) and was bit-serial, with 15 flip-flops, 113 vacuum tubes, and 1450 diodes. Its logic design is fully documented in its hardware manual on Bitsavers. It’s famous as the computer from The Story of Mel. #hardware #history #smallisbeautiful #bootstrapping
Joonas Pihlajamaa used an ATtiny2313 #AVR and a USB/serial converter as a low-speed (50 ksps) logic analyzer to debug his PS/2 keyboard #hardware interface.
The International Obfuscated #C Code Contest listing of all previous entries for all years, with brief explanations of what they do. Some parts are public-domain (entries up to 2011); others are noncommercial use only (the guidelines and rules themselves); others are licensed under some version of CC BY-SA (entries 2012 and later). All entries are under about 2 kibibytes, under 1 kibibyte or 1.5 kibibytes in early years. Generally, to fit within this limit, entrants have to find ridiculously simple ways to do difficult things, as well as micro-optimizing to insane levels. Many of the world’s best programmers (Dan Bernstein, Oscar Toledo, Fabrice Bellard) compete. #smallisbeautiful
“a simple stack-based virtual game console, designed to be as simple as possible to implement. Maker is a compiler for a Forth-like language that targets the Mako VM.” The #virtual-machine provides “a pixel-scrollable 31x41 grid of 8x8 background tiles, a set of 256 variable-size sprites” and stuff, and the provided VM implementation is a few hundred lines of Java. Looks like a much better alternative to the PICO-8, since it’s licensed under the Do What The Fuck You Want To Public License.
Jonathan Payne, who wrote the JOVE text #editor for the PDP-11/70, endorses the gap #buffer data structure in 1990. Interestingly, the article mentions emacsclient, which I thought didn’t exist for many years. (In fact, I learned vi in 1994 because I didn’t know emacsclient existed.)
discussion on different text #editor #buffer data structures
on the “piece chain” #editor #buffer data structure used in Bravo, Oberon, Microsoft Word, and AbiWord, which is probably not a coincidence.
Chicken #Scheme comes with a gap #buffer, one originally written for Guile
a #RISC-V implementation in 7400-series #hardware — incredible and maybe a bit perverse. Each of the registers in the 16-register register file, for example, is on a separate 8-chip circuit board.
on text #editor gap #buffer data structures (and how they compare to ropes)
A #smallisbeautiful but high-performance #SAT #solver; the original version in 2003 was 600 lines with “conflict-clause recording, conflict-driven backjumping, VSIDS dynamic variable order,” and a “two-literal watch scheme”, plus “extensions for incremental SAT and for non-clausal constraints over boolean variables”, by Niklas Eén and Niklas Sörensson.
BSD-licensed diff algorithm in Python by sbp and Tony Garnock-Jones, using the Ukkonen-Myers algorithm. Diff and patch are 64 lines of code, including blanks. #smallisbeautiful #algorithms
The hugi-compo sizecoding competition was a series of #smallisbeautiful contests organized by the #demoscene diskmag Hugi, mostly 1998–2003. These compos had strict specs on what the (MS-DOS) program had to do (like ACM and many ICFP programming contests) but were scored strictly by program size. Problems included data compression, text sorting, video games (Pong, Snake (“Nibbles”), sokoban), virtual machine implementations, a sudoku solver, and a program to retrieve the device descriptor from an attached USB device. In more than half of the 29 compo rounds over the years, the winning program was under 150 bytes.
the binary λ-calculus (#BLC, though I suppose it should be BΛC) and a graphical notation for it. Also a binary encoding of SK-combinators from combinatory logic.
2012 #IOCCC entry on the #BLC, a pure functional language interpreter in 650 bytes of C; accompanied by a bunch of tiny BLC programs
an animated GIF that shows its own #MD5. #security
“Fast Base64 encoding/decoding with #SSE #vectorization”, supposedly the best #introduction to SSE
on the #J1 #Forth CPU, optimized for FPGAs (rather than #hardware as such). 200 lines of #Verilog. “Originally designed to run the six WGE100 Ethernet cameras in the Willow Garage PR2 robot.” Amazing: “J1 runs at about 100 Forth MIPS on a typical FPGA. This compares with about 0.1 Forth MIPS for a traditional threaded Forth running on an embedded 8-bit CPU.”
The Gameduino is a video card shield (“hat”?) for your #Arduino (or anything else via SPI!), providing sprites, tiles, scrolling, collision detection, VGA output, and a 64-voice synthesizer, using an embedded #J1, for US$39. Open-source #hardware. #video-games
Another replica of Arthur Whitney’s J or K incunabulum from 1989, the one-page interpreter for the 3B1. #smallisbeautiful #APL
#FFT #algorithms for #DSP expressed or explained in BASIC. #smallisbeautiful
#DJB version of #SHA-3 (#Keccak) as a C Python (2) extension module, called "simplesha3", in 47 lines of C (though several lines, taken from the 9-tweet @tweetfips202, are quite dense and obfuscated.) #crypto #smallisbeautiful
AA trees are a simplified variant of the red-black tree data structure #algorithms where red links are only on the right child, thus implementing a 2-3 tree instead of a 2-3-4 tree; less space-efficient, because each node requires a level number.
#Markdown has lots of incompatibilities. Shortened URL: https://is.gd/fuckmd
sbp ported #simplesha3 to #Python 3. #SHA-3 #Keccak #crypto
a multi-terabyte torrent of the UC #Berkeley #video lectures that UCB pulled off YouTube.
you can get a HSS step drill bit for #machining mostly sheet metal for AR$629
#video by clkindred of a homemade coffee can forge with about 10cm of homemade castable refractory (perlite, plaster of paris, and sodium silicate #materials) and a homemade stainless steel gas-fueled (propane?) burner modeled after the one in his camp stove. The gas orifice is an 0.016" hole drilled in a ⅛" NPT plug coupled to a ⅛" hose barb with a standard pipe coupler. The stainless-steel burner tube is from an apple corer. He seems to be getting to 1100°, guessing from the incandescence color. He seals the surface of the perlite with a cement of sodium silicate, talc, and corundum abrasive, with a slight amount of plaster of paris as an accelerant, to have a kind of hot face. (I’m sort of surprised the perlite isn’t melting.)
Sergey Baldenkov #video of #machining stone with extremely primitive vibrating bits (chunks of pipe tied to rocks, bent copper sheets, wires, other rocks) and wet abrasive, driven by a loudspeaker driving a metal diaphragm. Most of the sonic energy sounds like it’s in the 100Hz–1kHz band — the method would likely be faster and way less annoying if it were at a higher frequency, though getting vibrations big enough to use coarse abrasive would require higher power densities. Associated with all kinds of free-energy #pseudoscience nonsense (“technology of the ancients”, John Keely, Ed Leedskalnin’s Coral Castle, UFOs, etc.)
Sympathetic Vibratory Physics wiki (Keely, Cayce, Tesla abuse, etc.)
Sergey Baldenkov’s #pseudoscience site about #machining stone with vibrations in ancient #Egypt and stuff.
James Hague improved his #web #performance; now you can read his blog with under 4K transferred in a single HTTP transaction.
scrolling #performance and why it kind of sucks in #browsers and how to improve it in your #JS, e.g. with passive listeners. #UX
at 23 minutes into this #video, we see the #Contiki web browser displaying amiga.org on a #Commodore-64. #6502
A #6502 #C cross-compiler (used for compiling #Contiki). Also supports Nintendo NES and Apple ][+.
this US$6.21 #CC1300 family 50kbps ISM transceiver IC #hardware has a 48MHz Cortex-M3 embedded in it that can run #Contiki, 28K of RAM, plus 30 GPIO lines, a 200ksps 12-bit ADC, and a separate ultra-low-power 16-bit sensor controller. It supports 300MHz to 930MHz frequencies, can receive at -124 dBm at lower bit rates, supports up to +15dBm output power, and runs on 1.8 to 3.8 volts. Supported by GCC and GDB. Datasheet claims 51 μA/MHz at 48MHz and 3.6V; 48MHz is probably about 48MIPS, so that’s probably about 200 pJ per instruction, less than a (16-bit!) MSP430.
How to use #CC1300 family and CC2600 family #hardware, TI’s new (2015) RF transceivers with embedded Cortex-M3 microcontrollers.
the biggest difference in programming from the 1980s is that now you have to filter through information online instead of figuring stuff out from scratch
this megabit SRAM chip for US$2.37 lets you clock the data out in a continuous stream at 20Mbps, and also lets you clock data in and out at 2 or 4 bits in parallel at 20MHz for 40 or 80Mbps