RSSAmplifier

Blog

use the computer - a blog by Derrick Turk

usethe.computerRSS feed ↗29 posts

Latest posts

Three Futures I: For Whom the Bell Tolls

Before the radio operator had even finished saying his call sign, somewhere in the avionics bay an instruction pointer jumped to the object code of a hundred thousand lines of C++ which were to a Kalman filter approximately as Claude was to ELIZA.

If You Get The Message, Hang Up The Phone; or, Whalefall

As Alan Watts pointed out, if you’ve achieved your desired mystical insight by direct mental communion with transcendental math entities, chaos demons, non-human intelligences, and so forth, it’s best to cash in your chips and exit the conversation before your sanity takes a hit.

How Far Apart Are Two Wells?

Like most of reality, there’s also a surprising amount of complexity to the problem, and a surprising number of small decisions to make along the way.

Inadvisable Unit Shenanigans

It's overwrought, hard to type check, confusing to read, and probably doesn't meaningfully catch errors a human would actually make. Nonetheless, I like it.

Trie-ing Too Hard With 297 and 298 Files

Once upon a time, there was a family of data formats called 297 and 298.

Blood From a Stone

Reverse engineering the Petra .GRD grid format.

Zipping Python Trees

Let's walk amongst the trees for a bit.

Surviving the Energy (To “Coding”) Transition

It’s a great time, maybe the best time in the short history of computer technology to date, to learn programming and data science. You’re surrounded by an incredible wealth of free tools and resources, and the excitement about these disciplines in society at large is palpable. But with that wealth comes danger: snake oil salesmen and the “quick fix”. The answer is the same as it always was.

Jupyter Ascending: A Retrograde Development

Computational notebooks combine literate programming’s interleaving of source text with prose descriptions and multimedia output with image-based development’s interactivity and mutability. It’s the combination of the two ideas that kills notebooks as a practical tool for software engineering.

Fun With Simulated Typestate in Python 3.8

“There’s an old saying in Tennessee—I know it’s in Texas, probably in Tennessee—that says, ‘Fool me once, shame on…shame on you. Fool me—you can’t get fooled again.’” –George W. Bush

Irregular Expressions, Revisited

Last time, we used a minimalist parser combinator library to build a parser for an oddly familiar language called OBAN. The problem with our previous parser is that it produces extremely unhelpful error messages. This is probably fine for a parser which runs as part of an automated toolchain and processes almost-always-valid input, but is completely unacceptable for a user-facing tool.

Irregular Expressions: You Need a Parser

Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems. –Jamie Zawinski

A Dialogue

SOCRATES: What is “machine learning”?

The Shadow Knows

It’s a nightmare scenario: trapped behind enemy lines with no hope for rescue. For unfathomable reasons of bureaucracy, your access to Turing-complete tools of the trade has been denied. Will you fight? Or will you perish like a dog (in a mire of spreadsheets)?

Minimalist DCA in Python

It’s important, as a rule of thumb, when operating or investing in a firm which produces a physical commodity, to have the ability to reliably quantify the expected future production of the commodity given the firm’s assets. In the oil and gas industry, we have many different ways to forecast future production from an oil or gas well. Some rely on detailed measurements and explicitly incorporate…

XMHell: Handling 38GB of UTF-16 XML with Rust

A couple weekends ago, I found myself with the desire to fetch oil and gas production data for a specific county in New Mexico from the New Mexico Oil Conservation Division (OCD).

Typing group by, Revisited

If you wish to make an apple pie from scratch, you must first create the universe. –Carl Sagan

“Typing” group by

A few weeks ago, chatting with some friends who also occupy the tiny intersection between engineers and programmers, the topic of “group by” came up in the context of in-memory data management with Python.

Dashboard Confessional

Many clients, friends, acquaintances, and (in the Before Times) strangers in bars have asked me over the years: what do I think about “business intelligence” (BI) tools? These are applications which make it easy, without any custom programming required, to connect to data sources, visualize data, and create interactive analytics and “dashboards”.

Open Recursion: the Essence of Object Oriented Programming?

What is object-oriented programming really about? What’s so special about “late binding”? And why do I have to pass self around everywhere in Python? We’ll take a meandering path in today’s post which will try to answer each of these questions, and build our own miniature object system along the way.

“Why Are Data Scientists Switching from R to Python?”

Oh, R. I can’t tell you why “data scientists” have switched, for the same reason I can’t tell you how Santa’s reindeer achieve lift: I simply don’t believe in them. But, I can tell you why I no longer use R for new projects.

POTD: “A Mathematican's Lament”

Today’s Paper of the Day continues this week’s theme of “education”; this time, with a research mathematician turned educator’s thoughts on why K-12 math education ends up leaving so many graduates with negative feelings toward math.

POTD: “Why Teach Programming Languages?”

We continue our celebration (or perhaps examination) of Computer Science Education Week with today’s POTD.

POTD: “Functional Programming: More Fundamental than BASIC?”

Today’s POTD continues our theme of Computer Science Education Week. Yesterday we saw a paper (and retraction), and meditated on the topic of why it’s so hard to teach programming.

POTD: “The camel has two humps” (and retraction)

This week is Computer Science Education Week! It’s an initiative I watch each year with a mix of admiration and dread; I’m dead convinced that our society needs to expose more students to computer science, not fewer; that programming is getting more accessible and relevant, not less; that the only way to build diversity of experience and perspective downstream in industry and academia is to…

POTD: “Unskilled and Unaware of It”

Today’s POTD is a well-known classic in the genre of “social sciences research that confirms what we’ve always suspected: people are terrible”.

POTD: “A Few Useful Things To Know about Machine Learning”

The Paper of the Day for today comes to us from the distant past: a time before venture capital firms would seemingly hurl trebuchet-loads of money at anyone with a “.ai” domain name and the ability to spell “deep learning”. (I’ve been working on this long enough that my folder of papers on machine learning and data science is labeled “AI”.)

POTD: “Generalized Algebraic Data Types and Object-Oriented Programming”

Today’s POTD presents a translation of a great tool from the functional programming community into the more mundane world of 90s-style object-oriented programming languages.

“Learning to Code” for Petroleum Engineers (and Other Technical Types)

A recent discussion on the SPE discussion board inspired me to jot down some thoughts on how a young (or experienced!) petroleum engineer—or for that matter any other technically skilled non-programmer—might best engage with “learning to code”.