Changelog News
Developer news worth weighting for
Jerod here! š
After our conversation with Alya Abbott last week, we decided to try Zulip in earnest for a bit. So far so good! If youād like to kick the tires with us, join here.
Ok, letās get into the news.
š§ Your pods for the week
š¤ AI is more than GenAI (Daniel Whitenack)
š Starbucks DVD peddlers (Emily Freeman)
šļø Open source threaded team chat?! (Alya Abbott)
š Learning & teaching networking & AI (DuāAn Lightfoot)
šŖ© Donāt ever use these TypeScript features (JS Party crew)
šļø Is Linux collapsing under its own weight?
A Rust for Linux developer, Wedson Almeida Filho, resigned from the project after an unfortunate interaction with another maintainer. Wedsonās parting words:
I am retiring from the project. After almost 4 years, I find myself lacking the energy and enthusiasm I once had to respond to some of the nontechnical nonsense, so itās best to leave it up to those who still have it in them.
After that, Asahi Lina (developer of the Apple GPU drivers for Linux) sounded off with her own frustrations with maintainers and Rust from the DRM perspective. Her conclusion:
But I get the feeling that some Linux kernel maintainers just donāt care about future code quality, or about stability or security any more. They just want to keep their C code and wish us Rust folks would go away. And thatās really sadā¦ and isnāt helping make Linux better.
The post Iām linking to is in response to those two events. The author (ācbā) thinks they āsignal deeper issues in Linux, both technical and cultural.ā Some of the technical & cultural issues are explained in the post. What does this mean for the Rust for Linux project?
I think Rust for Linux as a project is in danger as a project, not because of technical reasons (though larger kernel ones donāt help matters), but because of social ones. Itās trivial for a maintainer who doesnāt want Rust to sandbag integration efforts for their subsystem, for whatever reason (not liking it, not wanting the workload, etc.) via refusing to help.
And what does this mean for the future of Linux? The author seems to believe an eventual fork is likelyā¦
šŗļø Bret Victor introduces Dynamicland
Dynamicland is essentially making the real world computational then giving people what they need to compute it however they like. You really should watch the six minute introduction video, which is filled with amazing statements like:
You donāt have to simulate a virtual world when the real world simulates itself.
And this one, which is just bonkers (emphasis added):
Everything Iāve shown is taking place in our communal computing system, called Realtalk. And this is it. Realtalk is not a codebase. Itās a poster gallery.
To call this endeavor ambitious would be an understatement. Hereās the sum, which, if they pull it off (and maybe they already have?) would be a big technical achievement & an enormous cultural achievement:
Dynamicland is nonprofit, and Realtalk is not a product. You donāt buy communal computing. You donāt download communal computing.
Our goal is to invent a form of computation which local communities of non-specialists can make for themselves. From the ground up, for their own needs, which they fully understand and control.
A form of computation which is learned and taught, not downloaded and used. Like reading and writing, or mathematics, or the arts.
Not a product, but a practice.
š¤·āāļø āSREā doesnāt mean anything useful any more
Rachel (by the bay) laments her realization that āSite Reliability Engineerā has become useless as a way to categorize people with a very particular set of skills, much like every other title has before it:
Clearly, somewhere along the line, someone lost the thread, and it has completely destroyed any notion of what a SRE was supposed to be.
Just so weāre operating on a level playing ground here, Iāll lay down my own personal definition of the term, and what I expected from people in that role and what I expected from myself.
To me, a SRE is both a sysadmin AND a programmer, developer, whatever you want to call it. Itās a logical-and, not an XOR.
She goes on to detail what is meant by āsysadminā and what is meant by āprogrammerā, but what sheās been seeing in attempts to hire are āSREās who are just ops people. I agree with Rachel, but not just about SREsā¦ Iāve found most job titles in the software world to be relatively useless, and so much more so as each title ages.
š° 3.7 million fake GitHub stars
Thanks to Socket for sponsoring Changelog News
How much weight do you put in a projectās GitHub star count? Probably too muchā¦
Socket researchers have uncovered 3.7 million fake GitHub stars, highlighting a growing threat linked to scams, fraud, and malware, with these campaigns rapidly increasing over the last six months.
Based on this research, Socket is launching a new āSuspicious Stars on GitHubā alert that utilizes the low activity and clustering heuristics to detect packages associated with repositories that have fake stars.
if you want to get proactive alerts and check your entire organization for suspicious star packages (and 70+ indicators of supply chain risk), install the free Socket for GitHub app in just 2 clicks. Whenever a new dependency is added or updated in a pull request, Socket analyzes the packageās behavior and security risk, alerting you before any malicious code has the chance to land in your project.
š£ Your company needs Junior devs
Doug Turnbull does a good job laying out the case for hiring junior devs, a drum that Iāve been beating off & on for years.
Lately, BigTech only wants elite squads of Staff devs that can āhit the ground runningā on the big (often AI) initiative. Itās been remarked (over and over) that AI will completely replace junior developers. Juniors, after all, exist to do ācode monkeyā work, easily replaced with an LLM.
However, that misses the mark on why we have junior employees. Coaching junior employees becomes its own force multiplier for innovating at scale. Itās not about the added labor, itās about a psychologically safe culture that values teaching and learning, and the innovation that this unlocks.
Doug makes a lot of great points in this article. Iāll add one: junior developers are plenteous! That means you can take your time and find the ones that will really gel with your organizational culture. Also you donāt have to pay them as much while you train them up & make them more valuable so you can pay them more.
Q: āBut what if we train them up and they leave?ā
A: āWhat if you donāt train them and they stay?ā
š The LLM honeymoon phase is about to end
Baldur Bjarnason has been consistently bearish on the current crop of AI tools/products since Iāve been following him. I donāt agree with him in all aspects, but he does a good job of arguing his position, so I appreciate his writing on the subject.
In this latest post, Baldur explains how weaknesses in how LLMs work are making them great targets for manipulation.
Weāve also known for a while that prompts are effectively impossible to secure.
It should not come as a surprise that some researchers decided to see if prompt āsecurityā could be bypassed with a malicious token stream that completely bypasses the whole ācomprehensible languageā part.
The process for discovering these malicious token streams ā sorry, āStrategic Text Sequenceā ā is quite similar to what Profound, the company mentioned earlier, seems to be doing. You automate a process of shoving customised prompts into one end of the LLM black box and you map the output to discover token streams that have an unusually big impact on the output.
Given the opportunity for businesses to gain an unfair advantageā¦ we all know what theyāll do with it. Baldur thinks this is going to go from bad to much, much worse as these techniques are uncovered:
This is going to get automated, weaponised, and industrialised. Tech companies have placed chatbots at the centre of our information ecosystems and butchered their products to push them front and centre. The incentives for bad actors to try to game them are enormous and they are capable of making incredibly sophisticated tools for their purposes.
šļø Clip of the week: You canāt trust the network
This is why my favorite Go Proverb is āa little copying is better than a little dependency.ā
š³ Creating a Git commit the hard way
This is a rad deep-dive by Aryan Ebrahimpour on Git internals viewed through the lens of trying to create a commit without using git commit
or a GUI tool:
Git has two sets of commands: Porcelain (high-level commands) such as
git add
,git commit
,git remote
, etc., and low-level Plumbing commands, which are used by higher-level commands to manipulate Git objects and references. We used these low-level commands to craft a commit by creating its underlyingtree
andblob
objects.
š° Supabase + Vercel (official first-party integration)
Thanks to Supabase for sponsoring Changelog News
Vercel just added official First-Party Integrations. Supabase is one of them.
This makes it a lot easier to launch Postgres databases from Vercel with full support for Vercel Templates and integrated billing. This integration means that you can manage all your Supabase services directly from the Vercel dashboard. You can create, manage, and delete databases and all the credentials are automatically injected into your Vercel environment. All the billing is unified in your Vercel bill.
I donāt think we would have grown so quickly without Supabase and Vercel. We have used many different products since we started the company, but Supabase and Vercel are the few services that we still use today. Now, there are 180,000 Resend users sending millions of emails every single day, and even though we outgrew many other products, Supabase and Vercel continue to help scale our company despite our challenges evolving all the time. āZeno Rocha, CEO @ Resend
š Greppability is an underrated code metric
Moriz BĆ¼sing:
When Iām working on maintaining an unfamiliar codebase, I will spend a lot of time grepping the code base for strings. Even in projects exclusively written by myself, I have to search a lot: function names, error messages, class names, that kind of thing. If I canāt find what Iām looking for, itāll be frustrating in the best case, or in the worst case lead to dangerous situations where Iāll assume a thing is not needed anymore, since I canāt find any references to it in the code base. From these situations, Iāve derived some rules you can apply to keep your code base greppable
- Donāt split up identifiers
- Use the same names for things across the stack
- Flat is better than nested
Click through for explainers on these and code samples for each.
š A bit more on your way out the door
- The State of ES5 on the Web
- Managing dotfiles with chezmoi
- Comment your regular expressions
- Crazy debugging stories - Recursion
- Broadcast Box: A broadcast, in a box
- Six degrees of Kevin Bacon in Postgres
- Bypassing airport security via SQL injection
- Why I still self host my servers (and what Iāve recently learned)
- Blitz: a high performance HTML / CSS renderer powered by WGPU
Thatās the news for now, but we have some great episodes coming up this week:
- On Wednesday: Erez Zukerman talking ergonomic keyboards
- On Friday: Natalie Pistunovich talking AI coding tools
Have a great week, forward this to a friend who might dig it & Iāll talk to you again real soon. š
āJerod