A tool for glamorous shell scripts
Remember The Changelog #481 - Making the command line glamorous?
You can now make your shell scripts glamorous too. No Go required, just pure shell.
Remember The Changelog #481 - Making the command line glamorous?
You can now make your shell scripts glamorous too. No Go required, just pure shell.
Million makes creating user interfaces as easy as React, but with faster performance and smaller bundle size for the end user. By computing the user interface beforehand with a compiler, Million reduces the overhead of traditional Virtual DOM.
Okay cool… but why should I use Million if I can just use Preact if I need something a bit more lightweight?
While alternative libraries like Preact reduce bundle sizes by efficient code design, Million takes it a step further by leveraging compilation to make a quantum leap in improving bundle size and render speed.
Watch the video or get started with the docs.
Go 1.18 was a major release where we saw the introduction of generics into the language as well as other notables such as fuzzing and workspaces. With Go 1.19 slated to come out next month, one has to wonder what’s next. Are we in store to be blown away by new and major features like we saw in 1.18? Not exactly but there are still lots of improvements to be on the lookout for.
Joining Mat & Johnny to touch on some of the most interesting ones is Carl Johnson, himself a contributor to the 1.19 release.
Everyone’s telling us to “shift left” these days. This raises some questions. What’s being shifted? Who’s doing the shifting? How far left should we be shifting it?
To be honest, we’re not quite sure ourselves. It can be quite befuddling trying to sift through the reams of “shift left” content, trying to separate the ad copy from the nuggets of truth. But what we do know is…
This week we’re joined again by Ben Ubois and we’re talking about RSS. Yes, RSS…the tech that never seems to die and yet so many of us rely on it daily. Ben is the creator of Feedbin, which is self-described as “a nice place to read on the web.” Ben is also the maker of a new app on iOS for people who like podcasts. It’s called Airshow and you can download it at airshow.fm. Ben catches us up on the state of Feedbin, we discuss the nine lives of RSS and its foundational utility for the indie web, the possibilities and short-comings of RSS, we get deep in the weeds on the Podcast 2.0 spec and the work being done on <podcast:chapters>
, and Ben also shares the details on his new app called Airshow.
This isn’t the first attempt at making regular expressions more approachable, but it’s the first one I’ve seen that also brings type safety to the table. Example code:
import { createRegExp, exactly, oneOrMore, digit } from 'magic-regexp'
// Quick-and-dirty semver
createRegExp(
oneOrMore(digit)
.as('major')
.and('.')
.and(oneOrMore(digit).as('minor'))
.and(exactly('.').and(oneOrMore(char).as('patch')).optionally())
)
// /(?<major>(\d)+)\.(?<minor>(\d)+)(\.(?<patch>(.)+))?/
KBall and Juri dive deep into monorepos, their benefits and gotchas, and how Nx helps you improve the performance and maintainability of a monorepo setup.
Ok! So… there’s a cool new drawing app from Oleksii Trekhleb. “Draw to explain. Draw to grasp.” Check the demo video or just give it a try and see what you can dream up!
With every Python release, there are new modules being added and new and better ways of doing things get introduced. We all get used to using the good old Python libraries, but it’s time say goodbye to os.path
, random
, pytz
, namedtuple
and many more obsolete Python libraries and start using the latest and greatest ones instead.
Chris Bell on how Knock onboards engineers:
Onboarding engineers to a devtools company sounds like a no-brainer. After all, when developers are your customer, great engineering hires join the team with an inherent empathy for the customer and the tools they use everyday. But to build a truly great developer tool you need to go beyond the default empathy that new engineers have for developers at large. You need to use the tool itself, exactly as a customer would. That’s the only way to understand it completely and to find ways to improve it.
We designed our onboarding experience with this principle in mind. Every new engineering hire builds an onboarding project that integrates Knock into a sample application, exactly as a new customer would.
How using OpenAPI (previously called Swagger) has led to being able to ship a new service more effectively, by removing the need to write scaffolding, and instead focus on the business logic.
This framework allows software engineering managers to have meaningful conversations with their direct reports around the expectations of each position and how to plan for the next level in their career ladder.
The way that I run my Developer Relations team focuses on three different things:
In this post, I will explain each one of those pillars independently.
Partytown is a lazy-loaded library to help relocate resource intensive scripts into a web worker, and off of the main thread. Its goal is to help speed up sites by dedicating the main thread to your code, and offloading third-party scripts to a web worker.
Even with a fast and highly tuned website following all of today’s best practices, it’s all too common for your performance wins to be erased the moment third-party scripts are added. By third-party scripts we mean code that is embedded within your site, but not directly under your control. A few examples include: analytics, metrics, ads, A/B testing, trackers, etc.
I learned of this library during our fascinating discussion with Miško Hevery on (next week’s) JS Party.
Do you ever send the output of a process to /dev/null
and regret it, but can’t afford to stop and restart the process? catp
is here for you!
chiark is my “colo” - a server I run, which lives in a data centre in London. It hosts ~200 users with shell accounts, various websites and mailing lists, moderators for a number of USENET newsgroups, and countless other services…
chiark’s last major OS upgrade was to jessie (Debian 8, released in April 2015). That was in 2016.
A harrowing tale of planning and peril. Surprisingly, it went quite well!
We know that many of you listen to this podcast while running 🏃♀️ or cycling 🚴♂️ Hey Dan!
How many of you cycled to a conference? Gerhard knows a single person that cycled 764 miles for 8 days straight from Switzerland to Spain for this year’s KubeCon EU. His name is Johann Gyger, a CNCF ambassador & a cloud consultant at Peak Scale. Johann is a cloud engineer at heart that is all in on sustainability. He is the main reason why Gerhard is super excited to talk about electric cars & Dagger at the Swiss Cloud Native Day this September.
Reading other people’s code is a sure-fire way to improve as a developer. But what about as a database designer? The same process applies!
This post by Shekhar Gulati is him sharing what he learned by applying that principle to GitLab’s schema.
I learnt a lot from the GitLab schema. They don’t blindly apply the same practices to all the table designs. Each table makes the best decision based on its purpose, the kind of data it stores, and its rate of growth.
More posts like this, please!
Sean Moriarity:
A common argument against using Nx for a new machine learning project is its perceived lack of a library/support for some common task that is available in Python. In this post, I’ll do my best to highlight areas where this is not the case, and compare and contrast Elixir projects with their Python equivalents. Additionally, I’ll discuss areas where the Elixir ecosystem still comes up short, and using Nx for a new project might not be the best idea.
Sean is a prominent member of the Elixir community, so that’s the perspective on display here, but it’s a thorough and well-reasoned comparison. He concludes:
While there are still many gaps in the Elixir ecosystem, the progress over the last year has been rapid. Almost every library I’ve mentioned in this post is less than two years old, and I suspect there will be many more projects to fill some of the gaps I’ve mentioned in the coming months.
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…
In this Fully-Connected episode, Chris and Daniel explore the geopolitics, economics, and power-brokering of artificial intelligence. What does control of AI mean for nations, corporations, and universities? What does control or access to AI mean for conflict and autonomy? The world is changing rapidly, and the rate of change is accelerating. Daniel and Chris look behind the curtain in the halls of power.
John Goerzen built a computer for his 3yo, installed Debian on it, and set up a GUI for it.
The looks of shock I get from people when I explain, as if it’s perfectly natural, that my child has been able to log in by himself to a Linux shell since age 3, are amusing and astounding. Especially considering that it is really not that hard.
It’s not that hard, but it is so foreign to people that they’re quickly impressed by such things. Still, John decided to introduce his kids to a GUI eventually:
Jacob mastered the basics of xmonad really quickly. Alt-Shift-C to close a window. Alt-Shift-Q to quit back to the “big black screen”. Alt-Shift-Enter to get a terminal window.
We launched thunar (the XFCE file manager) and plugged in his camera. He had a good deal of fun looking at photos and videos from it. But then I dropped the true highlight of the day for him: I offered to install Tuxpaint for him. That’s probably his favorite program of all time.