Why another file manager? I wanted something simple and minimalistic. Something to help me with faster navigation in the filesystem; a
lsreplacement. So I build “llama”. It allows for quick navigation with fuzzy searching.
cdintegration is quite simple. And you can open
vimright from the llama. That’s it. As simple and dumb as a llama.
It stores your shell history in context (what directory you ran the command in, whether it succeeded or failed, how long it took, etc). This is all stored locally and end-to-end encrypted for syncing to to all your other computers. All of this is easily queryable via the
hishtoryCLI. This means from your laptop, you can easily find that complex bash pipeline you wrote on your server, and see the context in which you ran it.
Russ Cox, for the Go team:
Today we celebrate the thirteenth birthday of the Go open source release. The Gopher is a teenager!
It’s been an eventful year for Go. The most significant event was the release of Go 1.18 in March, which brought many improvements but most notably Go workspaces, fuzzing, and generics.
He goes on to describe many of the other notable features and events of the past year and closes with a glance into Go’s future:
In Go’s 14th year, we’ll keep working to make Go the best environment for software engineering at scale. We plan to focus particularly on supply chain security, improved compatibility, and structured logging, all of which have been linked already in this post. And there will be plenty of other improvements as well, including profile-guided optimization.
Katana can run in standard mode, which is like
$PATH and you’re off to the races!
This is for people who need to administer a handful of machines, all fairly different from each other and all Very Important. Those systems are not Cattle! They’re actually a bit more than Pets. They’re almost Family. For example: a laptop, workstation, and that personal tiny server in Sweden. They are all named after something dear.
Liz Rice and I spoke about pets & cattle recently on The Changelog. I asked her, “from your perspective, are the people still doing it the old-school pets way?”
This tool is a great example of Pets-style administration being alive and well.
An open-source knowledge based community software. You can use it to quickly build your Q&A community for product technical support, customer support, user communication, and more.
Install with Docker, a Go binary, or from source.
This is a journey of how I, a developer unfamiliar with C, went down the rabbit hole of navigating the SQLite source and changed it to offer a capability that wasn’t available.
Zach Musgrave from Dolt reviews several case studies of performance problems they ran into while benchmarking Dolt DB to get row access to be as fast as MySQL.
Oh, and he also shares how to fix each problem, which is nice. 😉
Since our last blog post about the Go GC in 2018 the Go GC, and the Go runtime more broadly, has been steadily improving. We’ve tackled some large projects, motivated by real-world Go programs and real challenges facing Go users. Let’s catch you up on the highlights!
Lots of invisible changes/improvements, but Michael focuses in on a new knob that he’s encouraging gophers to play with: the soft memory limit
The title of this post is “Why I Love Go”, I saw it shared by Rob Pike (one of the founding team for Go). In the post David Yach talks about how productive interns can be with Go, writing substantial prototypes in a short period of time. That’s one of the reasons I like to use it for OSS container/networking projects and developer tools too.
This is cool because portability. But also because you can embed it as a library in your Go projects. It’s not identical to
jq in practice, though. Here’s a long list of differences between the two.
Julie Qiu, announcing Go’s new support for vulnerability management:
Go provides tooling to analyze your codebase and surface known vulnerabilities. This tooling is backed by the Go vulnerability database, which is curated by the Go security team. Go’s tooling reduces noise in your results by only surfacing vulnerabilities in functions that your code is actually calling.
There’s a new govulncheck command you can/should install and run against your project. It surfaces only the vulnerabilities that actually affect you, which is awesome.
Govulncheck is a standalone tool to allow frequent updates and rapid iteration while we gather feedback from users. In the long term, we plan to integrate the govulncheck tool into the main Go distribution.
Every so often, engineers need to pick up a new language. After ~6 years of professional development using Java, with a bit of Ruby sprinkled in, coming to Deliveroo meant that I’d be starting to work on some Go codebases.
So when it came to accepting the offer, I ended up thinking about getting started with learning Go, so I could hit the ground running. In this post I share different ways to get practical experience of the language, as well as thoughts on what Go is like to a newbie
You can think of this like
curl but entirely in SQL:
select request_url, response_status, response_headers from http_get('http://httpbin.org/get');
The cool thing is you can save everything from the request: status code, headers, the body (of course), timestamps, and more. Great for archiving!
-- initialize a table create table snapshots as select * from http_get('https://changelog.com'); -- To add more rows later on insert into snapshots select * from http_get('https://changelog.com');
Pulls data from many sources. Built with Go. Demo video here.
This library is the spiritual successor to the one we covered late last year, now with generics.
Ben Johnson is at it again.
LiteFS is a FUSE-based file system for replicating SQLite databases across a cluster of machines. It works as a passthrough file system that intercepts writes to SQLite databases in order to detect transaction boundaries and record changes on a per-transction level in LTX files.
I believe Ben was alluding to this (then unreleased) tool on his recent Ship It! appearance…
Testing distributed systems under hard failures like network partitions and instance termination is critical, but it’s also important we test them under less catastrophic conditions because this is what they most often experience. Comcast is a tool designed to simulate common network problems like latency, bandwidth restrictions, and dropped/reordered/corrupted packets.
It works by wrapping up some system tools in a portable(ish) way. On BSD-derived systems such as OSX, we use tools like
pfctlto inject failure. On Linux, we use
tc. Comcast is merely a thin wrapper around these controls.
TFW you come up with the perfect name for your open source project ✨
Matt Holt (creator of Caddy) gives a deep dive into how the web server works and some of the design decisions and patterns that make it reliable, extensible, and delightful.
One of the interesting things about the design of Caddy is that its core is just configuration management. It pushes out all other functionality into modules so that basically the only thing left in core is accepting and reacting to configuration changes.
Vaultless as in you do not need to manage a password vault.
Instead of storing your passwords in a vault it derives your password on the fly from your master password and supplied realm string (for example, resource URL).
How cool is that?! Here’s an example use:
gokey -p super-secret-master-password -r example.com
Rewind like video, see output in a pager, Vim-like keymaps, and more. “Viddy well, gopher. Viddy well.”
dns.toys is a DNS server that takes creative liberties with the DNS protocol to offer handy utilities and services that are easily accessible via the command line.
Provides world time, unit conversion, weather and more. All over DNS.