RSSAmplifier

Blog

(untitled)

/RSS feed ↗21 posts

Latest posts

“Senior” Software Engineers

“Senior” Software Engineers I used to work with someone, who as a defence mechanism, would always say “This idea is terrible, but $X .” And you know what? Some of her ideas were terrible. Some of them were great, too! When I think about what it means to be a “senior” software engineer, I think the most important aspect of the job is being able to take an idea and dissect it as quickly as possible.…

“Meta-circular” Static Types

“Meta-circular” Static Types I’ve only ever written little languages without static typing. There’s no particularly good reason here. I’m not against static types; it’s just not the thing that I’m typically exploring. A while back I started thinking about exploring a basic language that was heavily inspired by PreScheme. I call it “Underploy,” and like PreScheme it aims to compile a restricted…

On the Missed Opportunities of Static Types

On the Missed Opportunities of Static Types Recently, a colleague spent a bunch of time working on a bug. When attempting to perform some action, the system would provide feedback that everything was going as planned, and then “go dark,” seemingly out of no where. It’s important to realize that this is a complex distributed system, and that there is a network connection between the “part that…

The Best Part of Waking Up, is a Sound Board in Your Cup

The Best Part of Waking Up, is a Sound Board in Your Cup A few years ago, while sitting in a conference room with colleagues, I told a joke. When the joke was about to land, I slapped my hands in quick succession on the table, and said TSSHH. It was San Francisco office space, so the wall behind me may have been brick, although the lights weren’t on me, nor was the room smoke filled. I immediately…

Serving Traffic “Directly” from SQLite

Serving Traffic “Directly” from SQLite Late last week I was nerd sniped by the idea that you might be able to push more work into SQLite than just data storage. This question came from a post on Lobsters about sqlsite , which serves static websites “directly” from SQLite. Well, it uses a bunch of Python to do it “directly,” so I wondered… how far could you actually take it? On Lobsters, I…

ELI5: Employment History Edition

ELI5: Employment History Edition My kids got curious about what I’ve done for work. The explain like I’m 5 goes something like this: In high school I spent my summers watching people swim so they didn’t drown. I also taught people how to swim so that they didn’t drown. Also while in high school, I made sure that the grocery store shelves were full of food so that people could take it home to eat.…

Check for Go Errors

Check for Go Errors There’s a lot of discussion about error handling in Go. I’m not part of those conversations, and certainly haven’t read all of the arguments out there, but it seems to be the case that something like try() is leading the mindshare . As a user of Go, I’m not a fan–for many of the same reasons that have been stated in the above linked issue, and beyond. To summarize my…

Combining Similar Time Series

Combining Similar Time Series This week was Monitorama 2019, in Portland. I was there. Many in the monitoring community were there. A great time was had by many. ( note: I’ve never really considered myself part of the monitoring community, but perhaps should make more of an effort?) Evan Chan gave a talk entitled: “Rich Histograms at Scale: A New Hope.” ( slides ) In it, he made everyone aware of…

Be Moore Like Chuck

Be Moore Like Chuck Not too long ago, ( *cough* over 2 years ago at this point) Phil and I were chatting about some projects, Forth , and simplicity when “Be Moore Like Chuck” appeared in my buffer. Liking nothing more than t-shirts and bad puns, I simply couldn’t resist the urge to, well, make a t-shirt out of this bad pun. There’s of course more to it than that. The phrase “Be Moore Like Chuck”…

Simplifying Slideshow

Simplifying Slideshow I gave a talk at (seventh racket-con) last month on new Racket #lang called slideshow/simple that is a simpler way to harness the power of slideshow in a DWIM sort of way. What follows is a post adapted from the talk. I’ve been dabbling with Lisps, and specifically Scheme since about 2005, and though I’ve written quite a few little things here and there, nothing has ever…

Dr. Charles Kapps

Dr. Charles Kapps My friend Chris reminded me today that I still haven’t done any acting. It’s easy to say, “So what? Most people don’t ever do acting.” And, you’d of course be right. It’s not really about the acting, though, I’d love to be an extra 1 , or have a 1-line role of some sort, someday. It’s more about what the term “acting” reminds me of–a genius of a man, gracious as can be, who…

How to provide help

How to provide help If you’re looking for help on a particular topic, a good way to go about it is to ask someone who knows more than you, or as is common in the community of programmers, send a message to a mailing list containing persons likely to know more than you. Recently, I saw someone ask about a particular library that they were struggling to integrate into a personal learning project–you…

Playbooks Aren’t Written For “You”

Playbooks Aren’t Written For “You” Heroku engineers are on call for the services they operate, which has great benefits, unless the team size is 2, or 3 people. To reduce our pager burden, my team of 3, and a few other teams of 3, combined our on call resources into a single pool, a decision that I could never even begin to regret 1 . While this post isn’t necessarily about that, it’s important to…

Scanabanana

Scanabanana My kids have a few Scanimation books. These books add animation to the pages while flipping pages using an animation technique called Kinegrams . I had no idea how they worked, or even what a Kinegram was until one of the books fell apart (after much abuse!) and I did some investigation. The animated image is composed of an image which is built in the following way (pseudocode): For…

Grapt

Grapt In Plotting Points , I ranted about how it’s difficult to take a column of data and turn it into something visual without resorting to non- CLI tools. Well, with grapt , I may have done something about it, or at least started on something that could be a reasonable solution. If you recall, the problem statement was something along the lines of “Why can’t I tack on | linegraph to get a nice…

Plotting Points

Plotting Points Yesterday, I captured some data from pidstat during a failure simulation. I had hypothesized that the components memory usage would be pretty stable regardless of failure, but wanted to confirm it just to be sure. At the end of the simulation, I had a bunch of pidstat records that looked like this (with the params I gave it): 06:53:23 PM PID %usr %system %guest %CPU CPU Command…

A Language by Any Other Name

A Language by Any Other Name Some programs are configurable, and they expose a so called “configuration” language. These tend to range from key value pairs to full-fledged, Turing-complete , programming languages. A “programming” language is also a “configuration” language, but only in the abstract. A programming language (somehow, by compiler, or virtual machine, or direct execution of an AST)…

Static Analysis

Static Analysis Recently, I took part in a discussion about whether or not it was possible to implement something like Dialyzer in Python. The answer is of course yes , and there are many examples of such tools 1 . The discussion soon turned into “why?” Here’s the thing. Using a static analyzer in a dynamic language isn’t supposed to be 100% accurate–that’d be pretty tough to guarantee, and if you…

A Spreadsheet is Not a Database

A Spreadsheet is Not a Database Thinking of Databases as an Excel File is too simplistic a metaphor and misses the main point that differentiates the two. But, Justin isn’t completely wrong. Sure, a spreadsheet can represent rows and columns of data ( i.e. tabular). And, some spreadsheet packages actually go so far as to allow you to have multiple “sheets”, which, with a bit of stretching and…

Fabric not Uniforms

Fabric not Uniforms Too many decisions in the software industry are made, not by rigorous evaluation or personal experience, but instead by fads that a small, vocal minority tout. These things aren’t typically as simple as the best sorting algorithm, or a recipe for hashing passwords 1 (maybe a bad example 2 ), but are deeper than that–I’m talking about which programming language one should use,…

Side Projects and your Full-Time Job

Side Projects and your Full-Time Job Programmers who partake in side projects have a significant advantage career- wise over those who don’t. There are millions of reasons that this is true, but one such reason is that of hiring. Given two nearly identical candidates, with the exception of side projects (e.g. candidate A has none, while candidate B writes programming languages on the side),…