Climbing Further Up the Stack
As Gen AI programming tools continue to develop, I’m wondering what things will look like when we remove the human from the loop.
Bytes that get stuck in your teeth.
Some practical advice on supporting AI agents from Diwank Tomer.
Two things that stood out to me:
As Gen AI programming tools continue to develop, I’m wondering what things will look like when we remove the human from the loop.
I’ve been looking for a way to search through the local copy of my blog using Raycast.
I ended up writing a custom extension to do it. ChatGPT helped grease the way—especially in rendering the results.
A replication focused storage engine.
Summaries is a feature I’ve long wanted in Instapaper.
In this post, Brian Donohue goes through how he implemented it.
Steve Nadis:
computer scientists have described a new way to approximate the number of distinct entries in a long list, a method that requires remembering only a small number of entries.
Kevin Yank:
From time to time someone will ask, “Does Culture Amp still use Elm?” I’ll answer privately that no, we are no longer investing in Elm, and explain why. Invariably, they tell me my answer was super valuable, and that I should share it publicly. Until now, I haven’t.
A long list of gems and tools.
I rebuilt A Strange Kind of Madness using Hugo a month or so ago. As with most photoblogs, it has pages with many images on them, and I was inspired by Photo Stream to load these images lazily.
Using Javascript Proxies to provide immutable data with a native feel.
Creating an event sourced, CQRS application is simple enough conceptually but there is a lot of hidden detail when it comes to building them. There are a couple of event sourcing libraries I’ve used that can help.
I’ve been meaning to work out how to maintain the convenience of the Lodash’s _.chain
function whilst only including the parts of Lodash that I actually need.
The default template for an Atom feed in Middleman Blog uses the last modified time of an article’s source file as the article’s last update time. This means that if I build the site on two different machines I will get different last updated times on articles in the two atom feeds. I’d rather the built site look the same regardless of where I build it.
How to follow good practices with Bash.
I use Middleman to build most of my content-focused websites. With the upgrade to version 4 comes the opportunity to move the asset pipeline out to an external provider such as Webpack.
I’m building an application in Elm and have been working on a strategy for breaking it down into smaller pieces.
My preferred approach is a few minor tweaks to the pattern used in this modular version of the Elm TodoMVC application1.
Boilerplate for developing Elm apps on Webpack.
I don’t understand a bunch of this but it has me intrigued.
I pulled the pin on working in the React/Redux space a few months ago after I became tired of the churn. Things were moving quickly and I found myself spending more time wiring together framework code than writing application code. This kind of thing sneaks up on you.
A list of everything that could go in the <head>
of your HTML document.
Guidelines for using rspec.
Lots of great tips in here.
Eric Clemmons:
At work this past quarter, we painstakingly started three new projects at work. I say “painstakingly” because every project required decisions to be made around tooling depending on the scope & needs.
Michael Fogus:
The approach that I now use for releasing code into the wild is governed by an approach called the “100:10:1 method,” a term coined by Nick Bentley.
Evan Czaplicki:
One of Elm’s goals is to change our relationship with compilers. Compilers should be assistants, not adversaries. A compiler should not just detect bugs, it should then help you understand why there is a bug. It should not berate you in a robot voice, it should give you specific hints that help you write better code. Ultimately, a compiler should make programming faster and more fun!
Paul Irish:
All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout. This is also called reflow or layout thrashing, and is common performance bottleneck.
James Hague:
PSYC 4410: Obsessions of the Programmer Mind
Identify and understand tangential topics that software developers frequently fixate on: code formatting, taxonomy, type systems, splitting projects into too many files. Includes detailed study of knee-jerk criticism when exposed to unfamiliar systems.
Ville Immonen:
JavaScript is evolving and new ES2015 and ES2016 editions (previously known as ES6 and ES7, respectively) pack a bunch of new features and Babel makes it very easy to use of them today. These features make some previously essential functions from utility libraries obsolete.
Brian Marick:
So, interesting: an enormous amount of effort is spent on apps that convert map/vector-structured data into map/vector-structured data.
Michael Snoyman:
As of today Front Row uses Haskell for anything that needs to run on a server machine that is more complex than a 20 line ruby script. This includes most web services, cron-driven mailers, command-line support tools, applications for processing and validating content created by our teachers and more. We’ve been using Haskell actively in production since 2014.
Tony Morris:
In this talk, I will explain to you how list folds work using an explanation that is very easy to understand, but most importantly, without sacrificing accuracy.
Ron Garret:
The Lisp model is that programming is a more general kind of interaction with a machine. The act of describing what you want the machine to do is interleaved with the machine actually doing what you have described, observing the results, and then changing the description of what you want the machine to do based on those observations. There is no bright line where a program is finished and becomes an artifact unto itself.
I use Vim as my text editor and ctags for source code navigation.
I’ve found ctag’s default javascript tagging to be lacking so I’ve added the
following to
my ctags config file
to handle some of the newer ES6 ES2015 syntax such as classes1.
Yehuda Katz:
- In Rust, as in garbage collected languages, you never explicitly free memory
- In Rust, unlike in garbage collected languages, you never explicitly close or release resources like files, sockets and locks
- Rust achieves both of these features without runtime costs (garbage collection or reference counting), and without sacrificing safety.
This post contains a nice summary of Rust’s ownership model.
The more Google pushes the sophistication of its web development tooling, the more we all benefit.
Do you need to build a map tile server that uses OpenStreetMap’s mod_tile for CentOS 6.4? You’re in luck!
Halvard and I put together a set of Ansible playbooks that builds one for you.
Nevan King:
In iOS 8, this code doesn’t just fail, it fails silently. You will get no error or warning, you won’t ever get a location update and you won’t understand why. Your app will never even ask for permission to use location.
Michael Johnston:
You cannot build a 60fps scrolling list view with DOM.
The Flipboard team have gone to great lengths to get the performance they want from the browser.
Bob Nystrom:
When they create 4089 libraries for doing asynchronous programming, they’re trying to cope at the library level with a problem that the language foisted onto them.
Recent posts from Glen Maddern and Thoughtbot inspired me to try my hand at some ES6.
I put together a toy app using jspm and liked what I saw.
Tom Stuart:
Monads are in danger of becoming a bit of a joke: for every person who raves about them, there’s another person asking what in the world they are, and a third person writing a confusing tutorial about them. With their technical-sounding name and forbidding reputation, monads can seem like a complex, abstract idea that’s only relevant to mathematicians and Haskell programmers.
Programming well is hard. Here are a few books that have helped me improve that I recommend.
This contains plenty of great advice even if you don’t code in Ruby. It focusses in on the message passing aspect of OO and how to structure your code around that ideal whilst keeping it amenable to change.