Peter Naur's classic 1985 essay "Programming as Theory Building" argues that a program is not its source code. A program is a shared mental construct (he uses the word theory) that lives in the minds of the people who work on it. If you lose the people, you lose the program. The code is merely a written representation of the program, and it's lossy, so you can't reconstruct
impl<V: Value> core::str::FromStr for NonNormalizingDec<V> { | |
type Err = &'static str; | |
#[inline(never)] | |
#[rustfmt::skip] | |
fn from_str(s: &str) -> Result<Self, Self::Err> { | |
/// Converts an ASCII decimal digit to an int. | |
/// | |
/// In release builds, no range checks are performed and passing a | |
/// non-digit character will result is undefined (yet safe) behavior. |
// 3D Dom viewer, copy-paste this into your console to visualise the DOM as a stack of solid blocks. | |
// You can also minify and save it as a bookmarklet (https://www.freecodecamp.org/news/what-are-bookmarklets/) | |
(() => { | |
const SHOW_SIDES = false; // color sides of DOM nodes? | |
const COLOR_SURFACE = true; // color tops of DOM nodes? | |
const COLOR_RANDOM = false; // randomise color? | |
const COLOR_HUE = 190; // hue in HSL (https://hslpicker.com) | |
const MAX_ROTATION = 180; // set to 360 to rotate all the way round | |
const THICKNESS = 20; // thickness of layers | |
const DISTANCE = 10000; // ¯\\_(ツ)_/¯ |
#!/bin/bash | |
# Use this script to copy shared (libs) files to Apache/Lighttpd chrooted | |
# jail server. | |
# ---------------------------------------------------------------------------- | |
# Written by nixCraft <http://www.cyberciti.biz/tips/> | |
# (c) 2006 nixCraft under GNU GPL v2.0+ | |
# + Added ld-linux support | |
# + Added error checking support | |
# ------------------------------------------------------------------------------ | |
# See url for usage: |
Supercompilation is a deep program transformation technique due to V. F. Turchin, a prominent computer scientist, cybernetician, physicist, and Soviet dissident. He described the concept as follows [^supercompiler-concept]:
A supercompiler is a program transformer of a certain type. The usual way of thinking about program transformation is in terms of some set of rules which preserve the functional meaning of the program, and a step-by-step application of these rules to the initial program. ... The concept of a supercompiler is a product of cybernetic thinking. A program is seen as a machine. To make sense of it, one must observe its operation. So a supercompiler does not transform the program by steps; it controls and observes (SUPERvises) the running of the machine that is represented by the program; let us call this machine M1. In observing the operation of
use std::{future::Future, io, time::Duration}; | |
use tokio::{net::TcpStream, time::sleep}; | |
struct Worker { | |
addr: String, | |
stream: Option<TcpStream>, | |
} | |
impl Worker { |
04/26/2103. From a lecture by Professor John Ousterhout at Stanford, class CS142.
This is my most touchy-feely thought for the weekend. Here’s the basic idea: It’s really hard to build relationships that last for a long time. If you haven’t discovered this, you will discover this sooner or later. And it's hard both for personal relationships and for business relationships. And to me, it's pretty amazing that two people can stay married for 25 years without killing each other.
[Laughter]
> But honestly, most professional relationships don't last anywhere near that long. The best bands always seem to break up after 2 or 3 years. And business partnerships fall apart, and there's all these problems in these relationships that just don't last. So, why is that? Well, in my view, it’s relationships don't fail because there some single catastrophic event to destroy them, although often there is a single catastrophic event around the the end of the relation
-spec os_cmd(string()) -> | |
{integer(), iolist()}. | |
os_cmd(Command) -> | |
PortOptions = [stream, exit_status, use_stdio, stderr_to_stdout, in, eof], | |
PortID = open_port({spawn, Command}, PortOptions), | |
os_cmd_collect(PortID, []). | |
-spec os_cmd_collect(port(), iolist()) -> | |
{integer(), iolist()}. | |
os_cmd_collect(PortID, Data) -> |
/* Copyright (C) 2017 Andrew Ayer | |
* | |
* Permission is hereby granted, free of charge, to any person obtaining a | |
* copy of this software and associated documentation files (the "Software"), | |
* to deal in the Software without restriction, including without limitation | |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
* and/or sell copies of the Software, and to permit persons to whom the | |
* Software is furnished to do so, subject to the following conditions: | |
* | |
* The above copyright notice and this permission notice shall be included |