Ask HN: Share your favorite software blog posts of 2023
P.S. Wishing you all a Merry Christmas and Happy Holidays!
P.S. Wishing you all a Merry Christmas and Happy Holidays!
Bartosz has many great blog posts, maybe most famously the one on mechanical watches published in 2022: https://ciechanow.ski/mechanical-watch/
HN posts for Bartosz's blog: https://news.ycombinator.com/from?site=ciechanow.ski
As a cyclist for decades - I still learned a lot - how to put to words that which I had innate muscle memory knowledge of, but no language for.
The demonstrations are fantastic.
Hands down should get some sort of IRL award of meaning.
I forgot I had seen the watch as well... Man this guy is amazing!
Thanks for resurrecting these for me.
A wild mix of super short videos about current software engineering topics, extremely well made, always on the edge of slapstick comedy, trashy memes, inside jokes, but still extremely densely packed with actual information. Plus, the nearly daily video series "the code report" is godlike: https://www.youtube.com/watch?v=GyllRd2E6fg&list=PL0vfts4Vzf...
This! is up my alley. thanks.
-
Ill come back with more when i grok ;-) this whole channel
Where LLMs are headed: https://blog.quastor.org/p/language-models-future
SwiftUI at Airbnb: https://www.infoq.com/news/2023/10/airbnb-transitioning-swif...
GPU Computing Explained: https://codeconfessions.substack.com/p/gpu-computing
Building and operating S3: https://www.allthingsdistributed.com/2023/07/building-and-op...
Meta’s new Serverless platform: https://read.engineerscodex.com/p/meta-xfaas-serverless-func...
Happened to see Paige Watson present about FaST Agile at the PhillyXP meetup group and then tried some of the concepts with my team at work to great success. We were looking for a good way to turn high-level product asks into actionable work and Discovery Trees fit the bill for us.
Smashing the state machine: the true potential of web race conditions
https://portswigger.net/research/smashing-the-state-machine
The talk (on YouTube) is also absolutely brilliantly done.
James finds new vulnerabilities classes where others don’t even see potential for problems. Absolutely amazing!
How Many Lines of C it Takes to Execute a + b in Python?
https://codeconfessions.substack.com/p/a-war-story-involving...
I think you gave the wrong URL :)
This one talks about how CPython executes a + b: https://codeconfessions.substack.com/p/cpython-dynamic-dispa...
The entire point of giving a methodology a name and writing about it is to get everyone on the same page. So if people have different ideas on what TDD is, then people should stop talking about TDD until everyone agree what is and what is not TDD.
And only after everyone agrees, one should talk about the pros and cons and assess the success of the methodology depending on the situation. "you are doing it wrong" is not helpful.
Back to the article. I think not mentioning TDD at all would make it a better article.
I wrote a short rant about it last week: https://dev.to/thiht/tdd-is-a-personal-practice-3o76
I tried banning a particular word once and coming up with 6 new words on the basis that you couldnt tell which of the 6 meanings somebody was using unless you used a different term for each one. That didnt work very well. People got too attached to the old, overloaded term.
Expecting an entire industry to stop using a term theyve become used to is not realistic.
Another example: Nation State. I can't get a clear answer to what that really means :-).
Back to computers: REST is a great example.
(Also, you can easily run integration tests in parallel with a little planning and attention to detail. For example, if your IDs don't rely on a sequence (like UUIDs), you can generally run them in parallel regardless of database connections.)
Are you avoiding rewriting your code so you can write integration tests, or are you writing integration tests so you can avoid rewriting your code?
Those that have been around the block of refactoring code so you can write good unit tests, tend to realize that the better-designed code isn't a side benefit. It's the entire point. The test is the side benefit.
Integration tests should be avoided if the same coverage can be reached with a refactor and some unit tests. For instance, it's very common for components to rely on complicated combinations of state. For instance, imagine a nightmare component that has nine boolean state parameters. To integration-test every combination, that's 512 cases. But in cases like those, you might discover through refactoring that some of those state combinations can compressed. For instance, you might be able to refactor into three sub-components, each of which take three boolean parameters and return one boolean result, and where the parent component only depends on those three booleans, which can be mocked. So then in that case, you've reduced the amount of tests you need to write to 32 total... that's 1/16th the effort.
I mean, I know that in common practice, neither are done, and people just leave the component largely untested, and then get bug reports that they close as "Can't reproduce".
The Classicist point of view resonates strongly with me - I’ve long considered mocking in tests to be a code smell, and only usually justified for stubbing external services or hardware.
Never happened to me, and we use a lot of junit tests at work.
I don't see the value in "Do not isolate code". Isolating a single method or such is often necessary, especially a unit test of a Utils class. But I only tend to do this if the "user story" centric test cases don't end up covering everything.
https://www.pragmaticengineer.com/ - industry insights.
https://www.workspaces.xyz/ - people sharing their home office setup incl. photos.
https://bigtechdigest.substack.com/ - all recent tech articles from companies engineering blogs.
https://leaddev.com/ - leadership stuff.
https://hackernewsletter.com/ - weekly hackernews summary nicely split into categories.
https://www.ben-evans.com/ - product and business around tech with nice deep dives.
https://terrytao.wordpress.com/2023/12/05/a-slightly-longer-...
https://terrytao.wordpress.com/career-advice/ask-yourself-du...
Both previously appeared on HN.
Some may know my other writings (e.g. Little Go/Redis/MongoDB Book). I don't feel like I captured Zig quite as well, but it's hopefully a useful resources especially if you're coming from a garbage collected language.
The visualizations help with the understanding while keeping it engaging too
These writeups and animations are great.
There is so much one can learn in this thread alone.
Came across them via multiple sources, but what got me hooked was a reference from Robert Morris' work.
Kinda funny to reference this here :D.
Also, https://www.applied-cartography.com/ from Justin Duke
In the end, I think my most popular article of the year ended up being a relatively short note on how Bill Tindall approached software development for the moon landings: https://two-wrongs.com/tindall-on-software-delays.html
The latest article is: “The simplest way to build an instant messaging app with Django ” https://www.photondesigner.com/articles/instant-messenger
I learned a lot while writing it!
This isn’t a software blog post. It’s a juvenile political screed with some tech buzzwords.
It teaches you how to probe the system, scrape out the proprietary microcode, and use it to build against a newer kernel (albeit with much tweaking)
I haven’t thought much about education and school, but this got me interested.
Here are some highlights from this past year:
"YIKES: Bing's Chatbot Made a Pass at Me After Only 90 Minutes of Relentless Prodding" https://imightbewrong.substack.com/p/yikes-bings-chatbot-mad...
Six Products That Will Gently Defeat Your Baby. https://imightbewrong.substack.com/p/six-products-that-will-...
AI Spells Doom for Incompetent Hacks. https://imightbewrong.substack.com/p/ai-spells-doom-for-inco...
The "Rules" About Which Actors Can Play Who Never Made Sense. https://imightbewrong.substack.com/p/the-rules-about-which-a...
Holy Moly Do We Ever Over-Value College https://imightbewrong.substack.com/p/holy-moly-do-we-ever-ov...
Before You End Fencing Scholarships, Consider the Impact That Would Have on Major League Fencing https://imightbewrong.substack.com/p/before-you-end-fencing-...
Why Is Homelessness a Municipal Issue? https://imightbewrong.substack.com/p/why-is-homelessness-a-m...
EDIT: Just noticed the "software" qualifier in the OP. I almost deleted this comment, but it includes a few software-adjacent articles, on AI, so I'll leave it up.
"How Levels.fyi scaled to millions of users with Google Sheets as a backend"
https://www.levels.fyi/blog/scaling-to-millions-with-google-...
I found Timers to be a perfect tool to free up my brain and reminding me when I need to do something else. Making tea but I need to walk around, or do something else; timer on and I can get back to the right brew that I wanted. Browsing HackerNews but I need to get out after a specific time; timer on and I can get out.
Start a Zoom meeting but the attendant(s) are missing; timer on for 5 minute increment, then decide to ignore/cancel the meeting in either 5-min or 10-min.