When most teams complain about poor quality, they usually mean reliability woes; however, quality spans a more extensive spectrum and can mean many things. This post posits a quality hierarchy that identifies the pertinent challenges and helps with making the right tradeoffs.
How much faster is it? See Timing. If the branch is currently checked out, then 10x is a reasonable estimate. If the branch is not checked out, then it’s even faster.
Is performance the only added feature?
git movealso offers several other quality-of-life improvements over
git rebase. For example, it can move entire subtrees, not just branches. See the git move documentation for more information.
git move is part of the git-branchless suite. Cool stuff.
Tim Raderschad shares some knowledge he acquired the hard way. The tricks are:
- Any vs Unknown
- Typing Objects with Records
I knew exactly zero of these (although I’ve only written a few hundred lines of TypeScript thus far. I’m mostly ignoring it so I can retain my arch nemesis status with Nick (the perpetual TypeScript bull) on JS Party. 😉)
O’Reilly said it best this year when they summarized learning trends in 2021:
Observability saw the greatest growth in the past year (128%), while monitoring is only up 9%. While observability is a richer, more powerful capability than monitoring — observability is the ability to find the information you need to analyze or debug software, while monitoring requires predicting in advance what data will be useful — we suspect that this shift is largely cosmetic. “Observability” risks becoming the new name for monitoring. And that’s unfortunate. If you think observability is merely a more fashionable term for monitoring, you’re missing its value.
We can’t lose sight of that value. We can’t afford to. This isn’t just a tale of vendors arguing to define marketing terms for their own benefit. The pain and suffering that people endure every day because they can’t understand their own damn systems is too real. The long hours, the toil, the greasy hacks moldering away into technical debt, the late nights, the missed sleep, the burnout. The pain is real, and the solutions are specific. We need specific, meaningful technical terms to help users navigate the future and find their way to those solutions.
Smashing Mag always delivers on these epic reference-style posts packed with knowledge:
Writing CSS has probably never been more fun and exciting than it is today. In this post we’ll take a look at common problems and use cases we all have to face in our work and how to solve them with modern CSS.
Turns out Niek and his team were also inspired by other Todo or Die implementations:
Lately, there is some talk about Todo or Die plugins in languages. According to your latest newsletter, it is now supported in Rust, Ruby, Python, and Elixir. We’ve now added support for TypeScript as a language server plugin!
For now, it has a minimal feature set, because this was created in a day during our company’s Innovation Day, but we have lots of ideas to extend the project.
Earlier this year, we took Notion down for five minutes of scheduled maintenance. While our announcement gestured at “increased stability and performance,” behind the scenes was the culmination of months of focused, urgent teamwork: sharding Notion’s PostgreSQL monolith into a horizontally-partitioned database fleet.
This is a deep-dive with lots of lessons along the way.
Zach Leatherman has been considering sustainability models for Eleventy, so he surveyed the field to see what everyone else in the web framework ecosystem are doing. Check out his post for the raw data and his analysis. Here’s where he stands as of today:
I don’t have the answers. I definitely wouldn’t agree that Eleventy has figured out our sustainable monetization strategy but I do really admire the success that Vue has had solving this exact problem. I do know that I have no interest in Trend 2 (raise investment money) but I’ll continue to keep a keen eye on what other indie-framework folks are doing.
This customer story shares how DiviPay used Sentry to go from reactive/manual debugging to a more proactive approach and improved performance up to 20x for mobile and web.
Matthew Egan, Engineering Team Lead at Divipay, recalls: “Once our code was deployed, it was in the abyss. We would have to find it by dogfooding or just hearing from customers when something wasn’t working.”
While the team worked around-the-clock to resolve bugs, the onus often fell on the customer to help first find the issue. Egan notes: It was hard to replicate issues. I would have to tease it out of the customer, asking them what steps they took— and most of the time, I couldn’t replicate it because they’d missed something. Then, I would have to go crawling through the logs. It was a process that took a lot of time.
In its creator’s own words:
It’s an API development ecosystem. Supports many API protocols. This project has crossed 31.6k+ GitHub stars in 2 years. One of the most growing open source projects in Asia / World.
Try it for yourself at Hoppscotch.io
Chris McCord gives a deep history on Phoenix LiveView, going all the way back to the state of Ruby on Rails in 2013 up to the present. A 30-minute read! (LiveView-based uploads looks particularly interesting to me, since I’m rewriting how our uploads work at the moment.)
In gaming, MOBA (multiplayer online battle arena) players have a mental framework for describing just what kind of player is empowered by different characters. This framework describes all characters in terms of two statistics: their skill floor and their skill ceiling.
Local development of remote/cloud functions has been various levels of painful ever since the computing trend started its rise, so it makes a lot of sense why Cloudflare would invest in easing that pain. Now they get to say developing with Cloudflare Workers is:
- 🎉 Fun: develop workers easily with detailed logging, file watching and pretty error pages supporting source maps.
- 🔋 Full-featured: supports most Workers features, including KV, Durable Objects, WebSockets, modules and more.
- ⚡ Fully-local: test and develop Workers without an internet connection. Reload code on change quickly.
Trisha Gee writes (because Someone Is Wrong On The Internet):
The problem is not that we shouldn’t write readable code. Of course we should aim to write readable code, if only for our own poor selves further down the line (there is no one less capable of reading my code the following week than me). The problem is that these two issues are not mutually exclusive. It’s not “write readable code” or “learn to read code”. That’s like saying, “I’m going to drive really economically so I don’t need to put petrol in the car”. No. You’re still going to need to put fuel in the car (if it’s not electric!) at some point no matter how economically you drive.
She writes a lot more than just that (of course) and even gave a talk about it, which is also worth digesting.
This page is built by the Nomad folks, so keep that in mind when reading through the comparison;
Kubernetes is an orchestration system for containers originally designed by Google, now governed by the Cloud Native Computing Foundation (CNCF) and developed by Google, Red Hat, and many others. Kubernetes and Nomad support similar core use cases for application deployment and management, but they differ in a few key ways. Kubernetes aims to provide all the features needed to run Linux container-based applications including cluster management, scheduling, service discovery, monitoring, secrets management and more. Nomad only aims to focus on cluster management and scheduling and is designed with the Unix philosophy of having a small scope while composing with tools like Consul for service discovery/service mesh and Vault for secret management.
I’m just excited to see strong competition in this space, and had never heard of Nomad prior to today. If you’ve used it and have experience/opinions, I’d love to hear ’em!
This cool open source project provides transparent client-side encryption to be used with your cloud file storage of choice. Which choices, you ask?
Works with Dropbox, Google Drive, OneDrive, MEGA, pCloud, ownCloud, Nextcloud and any other cloud storage service which synchronizes with a local directory
This is a wrapper script that simplifies deployment of RPiPlay, which does the heavy lifting. How well does it work?
Screen mirroring and audio works for iOS 9 or newer. Recent macOS versions also seem to be compatible. The GPU is used for decoding the h264 video stream. The Pi has no hardware acceleration for audio (AirPlay mirroring uses AAC), so the FDK-AAC decoder is used for that.
Both audio and video work fine on a Raspberry Pi 3B+ and a Raspberry Pi Zero, though playback is a bit smoother on the 3B+
Kubegres is fully integrated with Kubernetes’ lifecycle as it runs as an operator written in Go. It is minimalist in terms of codebase compared to other open-source Postgres operators. It has the minimal and yet robust required features to manage a cluster of PostgreSql on Kubernetes. We aim keeping this project small and simple.
We’ve struggled with running Postgres inside K8s around these parts. Maybe this would’ve helped?
Encore now supports the two most highly requested features from our users!
- Native support for building REST APIs
- Support for ORMs and other database query helpers
Encore v0.17 also comes with improvements to authentication, and lots of minor improvements and bug fixes!
We often turn down news submissions that are published on Medium* because the reading experience sucks. With Scribe, you can simply swap
scribe.rip and fix that problem for good! Here’s an example of what a Medium post looks like on Scribe.
Of course, most things done manually can be automated with a browser exension, and this is no exception to that rule. Here’s a general purpose redirector extension and Scribe’s author provides a ruleset you can use with it. Pretty cool!
(*Maybe instead of declining Medium posts we should code this into our platform for future submissions?)