60 Followers
83 Following
1.4K Posts

TECHNICAL DEBT is like a ROTTING ROOF

On rainy days, it's too wet to fix it.
On sunny days, there's no leak… so you ignore it.
Then one day, boom, ceiling caves in, buckets everywhere, and you're duct taping production at 2am.

That's technical debt.
Not just messy code. Not just bad practices.
It's what you chose not to fix when you could have.

The missing tests.
The config you hardcoded "just for now".
The abstraction you skipped because "it works".
The one extra iteration after the ticket was marked as "done".

And now it's slowing you down.
It's holding your future hostage.
You're spending engineering cycles bailing water, not shipping value.

We love to say we're "building", but half the time we're just… leak managers.
You can't scale rot.

So next time the sun's out, fix the roof.
Because when the rain hits, it's too late.

#TechnicalDebt #SoftwareEngineering #Minimalism #DevEx #LegacyCode #BuildRight #PragmaticEngineering #TechLeadership #CodeQuality #DeveloperExperience #SustainableSoftware #TeamVelocity #FixTheRoof

@scalzi They are quite different under the hood, so I would say that this is still surprising to an extent. You can run Android apps on ChromeOS, but you can also do that on regular Linux. It's ultimately mostly a hack and doesn't bring you closer to unifying the platforms.

The only way this can go IMHO is that they get rid of ChromeOS altogether and try to focus more on a desktop experience for Android, since that is a bigger market by far and they're unlikely to make it more like ChromeOS.

@burakemir Yes, I totally agree, that's awesome!

@burakemir Unfortunately rust doesn't actually have linear types. Rust ownership makes values "use at most once" and not "exactly once", mostly because memory can be leaked intentionally. See also the leakpocalypse: https://cglab.ca/~abeinges/blah/everyone-poops/

But Rust gets at least parts of the benefits that linear types have.

Pre-Pooping Your Pants With Rust

Do-nothing scripting: the key to gradual automation

Every ops team has some manual procedures that they haven’t gotten around to automating yet. Toil can never be totally eliminated. Very often, the biggest toil center for a team at a growing …

Dan Slimmon

The Free Lossless Audio Codec (#flac) is now an IETF standard!

https://www.rfc-editor.org/rfc/rfc9639.html

Thanks to everyone who worked to document and clarify this important format for sound and music archive and exchange on the internet, to Martijn van Beurden for maintenance of the reference implementation, and to Josh Coalson for originally publishing his work for everyone to use.

RFC 9639: Free Lossless Audio Codec (FLAC)

This document defines the Free Lossless Audio Codec (FLAC) format and its streamable subset. FLAC is designed to reduce the amount of computer storage space needed to store digital audio signals. It does this losslessly, i.e., it does so without losing information. FLAC is free in the sense that its specification is open and its reference implementation is open source. Compared to other lossless audio coding formats, FLAC is a format with low complexity and can be encoded and decoded with little computing resources. Decoding of FLAC has been implemented independently for many different platforms, and both encoding and decoding can be implemented without needing floating-point arithmetic.

In 2000, I read about CI/CD, but there weren’t tools yet (CruiseControl came out in 2001). So, we implemented CI by having a physical card that had to be on your desk in order to commit code. Then, you had to go over to our build (desktop) machine, get your code, run the build/test scripts (and fix if you broke them).

We eventually automated it all, but just that step saved a lot of “works on my machine” bugs from breaking our builds.

#extremeprogramming #softwareengineering

This is how I imagine the #fish rewrite to #rust happened...

Just published a first release candidate of axum v0.8.0! If you're using axum, would be great if you could give it a try and let us know if there's any issues.

https://github.com/tokio-rs/axum/releases/tag/axum-v0.8.0-rc.1

#rustlang #axum

Release axum v0.8.0-rc.1 · tokio-rs/axum

Note: there are further relevant changes in axum-core's changelog. Since v0.8.0-alpha.1: breaking: Move Host extractor to axum-extra (#2956) breaking: Remove WebSocket::close. Users should explici...

GitHub

@matthiaskrgr Sometimes you want a small helper method to be usable like `.map(helper)` or `.map_err(helper)` instead of having to resort to `.map(|&argument| helper(argument))`

It can be useful for those cases I guess.