Blog: David Crawshaw| crawshaw.io
How I program with Agents| crawshaw.io
How I program with LLMs| crawshaw.io
new year, same plan| crawshaw.io
log4j: between a rock and a hard place| crawshaw.io
Software I’m thankful for| crawshaw.io
Remembering the LAN| crawshaw.io
The asymmetry of Internet identity| crawshaw.io
Zero Trust Networks| crawshaw.io
Go 1.13: xerrors| crawshaw.io
Fast compilers for fast programs| crawshaw.io
UTF-7: a ghost from the time before UTF-8| crawshaw.io
Reasoning with Regret| crawshaw.io
Searching the Creative Internet| crawshaw.io
Service Throughput Tradeoffs| crawshaw.io
Sharp-Edged Finalizers in Go| crawshaw.io
The Tragedy of Finalizers| crawshaw.io
Go and SQLite: when database/sql chafes| crawshaw.io
Experimentation Adrift| crawshaw.io
Leaving Google| crawshaw.io
Less cgo overhead in Go 1.8| crawshaw.io
The linked paper describes a new TCP congestion control algorithm. The key insight is an old assumption about networks is no longer true. It used to be the case that networks only dropped packets when they were unusable or when they were congested. Thus TCP stacks could work out how rapidly to send packets by ramping up until they saw packet loss.| crawshaw.io
A tiny C program that compiles to a 16GB executable. Builds in a cool 27 minutes:| crawshaw.io
"HEISENBERG: Well that's not quite right. I would say that I was absolutely convinced of the possibility of our making a uranium engine but I never thought that we would make a bomb and at the bottom of my heart I was really glad that it was to be an engine and not a bomb. I must admit that."| crawshaw.io
"No one else would follow; even the minister failed to show. Shaking his head ever so slightly, Jerry Flemmons of the Fort Worth Star-Telegram turned to me and said, 'Cochran, if we're gonna write a story about the burial of Lee Harvey Oswald, we're gonna have to bury the son of a bitch ourselves.'"| crawshaw.io
A post I wrote over on the Go blog.| crawshaw.io
"Bill and I were actually talking about what kind of investments GV was looking to make. He stressed that GV was looking to invest in businesses that were actually good businesses. As a counterexample, he brought up Twitter, which at the time he considered to be a 'good investment' (said with a grin and a wink) but not a 'good business'. I had one of those feelings that you get when somebody really smart just shared with you The Truth."| crawshaw.io
"The irresistible proliferation of graphomania shows me that everyone without exception bears a potential writer within him, so that the entire human species has good reason to go down into the streets and shout: we are all writers! For everyone is pained by the thought of disappearing, unheard and unseen, into an indifferent universe, and because of that everyone wants, while there is still time, to turn himself into a universe of words. One morning (and it will be soon), when everyone wakes...| crawshaw.io
"moving the font engine out of the kernel in Windows (which Microsoft has done starting with Windows 10)."| crawshaw.io
Rick and Austin just published their design doc for their new Go garbage collector. It is an attempt to get the advantages of isolated heaps via lightweight dynamic analysis, without making the programming model harder to use.| crawshaw.io
"The average width of such a channel is 0.002 inch. For this kind of work, the shop often uses spade-type end mills as small as 0.001 inch wide, although even smaller tools have been used occasionally."| crawshaw.io
In 2012 Dean et al. published a paper on unsupervised learning using 16000 CPU cores. Seeing machine learning successfully scaled across a modern data center convinced me that human-equivalent and better-than-human AIs were coming soon. In the past few months I've revised my estimates of what soon means, from years to decades. This is quick attempt to jot down my reasoning.| crawshaw.io
COPY Relocations| crawshaw.io
I've attempted to add an atom feed to this page. Please let me know if there are any issues.| crawshaw.io
"Well, Mr. Frankel, who started this program, began to suffer from the computer disease that anybody who works with computers now knows about. It's a very serious disease and it interferes completely with the work. The trouble with computers is you play with them. They are so wonderful. You have these switches—if it's an even number you do this, if it's an odd number you do that—and pretty soon you can do more and more elaborate things if you are clever enough, on one machine.| crawshaw.io
"Unless you’re a plow driver or a parka-clad elected official trying to look essential, one doesn’t pretend to do battle against a blizzard. You submit. Surrender. Hunker down. A snowstorm rewards indolence and punishes the go-getters, which is only one of the many reasons it’s the best natural disaster there is.| crawshaw.io
SQL as a stream processing language.| crawshaw.io
2016-01-15| crawshaw.io
While I hear a lot more talk about the Raspberry Pi and Arduino, these BeagleBoard products are what I want to use for any embedded or small hardware development (in my case, a custom scientific instrument).| crawshaw.io
Over the holidays I took some real vacation and finally got stuck back into my hobby project. As part of it I implemented a Unix shell with job control. It turns out a shell is a reasonably easy introduction to some of the crustier parts of Unix I've been avoiding for a while now. It lets you get a sense of TTYs without dealing with the really terrible parts.| crawshaw.io
A chart showing what interplanetary probe science missions will be active over the next few years.www.planetary.org/blogs/emily-lakdawalla/2015/12311322-planetary-exploration-timelines.html| crawshaw.io
typedef int (*WTF[1])[x = x * 77];| crawshaw.io
"As if this were somehow a morally inferior form of megadeath to lobbing a couple thousand half megaton nuclear missile warheads at your least favorite country. Apparently this is how civilized countries who do not possess enemies with a plurality of coastal cities exterminate their foes. I don’t understand such people. Nuclear war is bad in general, m’kay?"| crawshaw.io
2016-01-02| crawshaw.io
"It’s a Cortex M4F MCU with extraordinarily-low current consumption. How low? They’re quoting 34 uA/MHz running from flash."| crawshaw.io
"One of Heraclitus’ best lines turns on a pun. In the archaic dialect of Greek that Homer used the word for an archer’s bow is bios (βιός). The Greek word for ‘life’ is spelled the same way (βίος). Heraclitus’ line runs:| crawshaw.io
Under the heel of the spirit| crawshaw.io
Additive manufacturing results in unexpected designs.www.insidemetaladditivemanufacturing.com/blog/design-for-slm-topology-optimisation-of-metallic-structural-nodes-in-architecture-applications| crawshaw.io
A CPU with integrated 10-meter range photonic IO (1.3W/Tbps) made on a standard commercial fab.news.berkeley.edu/2015/12/23/electronic-photonic-microprocessor-chip/| crawshaw.io
Useful starting point for understanding shells.www.gnu.org/software/libc/manual/html_node/Implementing-a-Shell.html#Implementing-a-Shell| crawshaw.io
64-bit DLLs are installed in C:\Windows\System32.| crawshaw.io
An article which covers a project I started at Google called Lingo (Logs In Go). Thanks to a lot of effort by many people, the project of replacing Sawzall with Go is now complete.www.unofficialgoogledatascience.com/2015/12/replacing-sawzall-case-study-in-domain.html| crawshaw.io
Single-threaded CPU performance of high-end ARM-based tablets now outperforms the Intel-based MacBook Air.arstechnica.com/apple/2015/11/ipad-pro-review-mac-like-speed-with-all-the-virtues-and-limitations-of-ios/4/| crawshaw.io
"Where the jury actually comes out on Go may take years to determine. There are no clear formal methods of measurement for how 'good' a language is, so it mostly happens by default as popular systems thrive and unpopular ones wither and die."| crawshaw.io
"So OpenSSL has optional code to reject attempts to use weak DES keys. It, sanely, is not enabled by default; if you want it you have to compile with DEVP_CHECK_DES_KEY.| crawshaw.io
2015-08-07| crawshaw.io
A CubeSat is going to hitch a ride on SLS as a secondary payload, and then use a tiny electric engine to do a two-month lunar transfer. Amazing.www.nasa.gov/feature/goddard/lunar-icecube-to-take-on-big-mission-from-small-package| crawshaw.io
"Finally we decided to design the processor ourselves, because only in this way, we thought, could we obtain a truly complete display processor. We approached the task by starting with a simple scheme and adding commands and features that we felt would enhance the power of the machine. Gradually the processor became more complex. We were not disturbed by this because computer graphics, after all, are complex. Finally the display processor came to resemble a full-fledged computer with some spe...| crawshaw.io
My favorite error page.books.google.com/googlebooks/error.html| crawshaw.io
A one hour, high-level overview of modern chip design and fabrication techniques. Just enough detail to convince a layperson like myself that underneath our nebulous high-level concepts like cores, Moore's law, and clock speed lurks a tumultuous melange of industrial chemistry and mechanical engineering.www.youtube.com/watch?v=NGFhc8R_uO4| crawshaw.io
New Horizons runs on a 12 MHz MIPS R3000.| crawshaw.io
"I hated types, I admit it. And when I hate something, I study it. So I went to the vatican of types and when I came back, my hate was deeper and more nuanced."| crawshaw.io
"While the Union survived the civil war, the Constitution did not. In its place arose a new, more promising basis for justice and equality, the 14th Amendment, ensuring protection of the life, liberty, and property of all persons against deprivations without due process, and guaranteeing equal protection of the laws.| crawshaw.io
"Cherokee is the first Unicode language in which lower case runes have smaller values than upper case runes."| crawshaw.io
A wonderful amateur photo of Saturn along with a description of how it was made. I never cease to be amazed at the power of cheap consumer-grade computers.imgur.com/a/ErrVN| crawshaw.io
"Two URL objects are equal if they have the same protocol, reference equivalent hosts, have the same port number on the host, and the same file and fragment of the file. Two hosts are considered equivalent if both host names can be resolved into the same IP addresses;"| crawshaw.io
Literature Survey of 2D scrolling.docs.google.com/document/d/1iNSQIyNpVGHeak6isbP6AHdHD50gs8MNXF1GCf08efg/pub| crawshaw.io
When my programs were stored in CVS I learned to backup draft work regularly by writing diff output to scratch files. It is an odd workflow. I got good at extracting hunks of unified diffs, and even editing them in place.| crawshaw.io
"- Picture two conversations sharing a congested gateway as two separate train tracks with one common section.| crawshaw.io
Index| crawshaw.io
JPL C style guide. In particular: No malloc. Static loop bounds. -Werror. One level of pointer dereferencing.lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf| crawshaw.io
Index| crawshaw.io
2015-01-11| crawshaw.io
Swimming on the moon would be great fun.what-if.xkcd.com/124/| crawshaw.io
Discrete 555 Timershop.evilmadscientist.com/productsmenu/652| crawshaw.io
2014-07-28| crawshaw.io
ELF Auxiliary Vectorsarticles.manugarg.com/aboutelfauxiliaryvectors.html| crawshaw.io
Turns out evolutionary algorithms for antenna design are real. NASA's ST-5 (X-band), then LADEE (S-band), both flew antennas that no human would design.ti.arc.nasa.gov/news/ladee-sband-evolved-antenna/| crawshaw.io
public static void/main args System out println/| crawshaw.io
Mobile devices would be significantly better if we could manage 1ms visual response.www.youtube.com/watch?v=vOvQCPLkPt4| crawshaw.io
When solving a big problem, focus on the process you are using to solve the problem.www.azarask.in/blog/post/the-wrong-problem| crawshaw.io
"pogo oscillation occurs when a surge in engine pressure increases back pressure against the fuel coming into the engine, reducing engine pressure, causing more fuel to come in and increasing engine pressure again."| crawshaw.io
jsonfile: a quick hack for tinkering| crawshaw.io
One process programming notes (with Go and SQLite)| crawshaw.io