Bottom-up design & refactor oriented programming enjoyer.

Joined January 2017
39 Photos and videos
Yuriy Stets retweeted
So there’s this analogy that I find quite useful—possibly from Casey Muratori—where you measure the "amount" of code by pressing F11 rather than F10. In most debuggers, F10 means step over, while F11 means step into.
1
2
2
89
You are responsible for the code that you ship, whether you personally wrote it or not. Vendoring/forking your deps gives you control over the code that you ship, instead of relying on whatever is installed on an user's machine or whatever is the latest version available, which is totally unpredictable.
Fork your dependencies, trim them to only your use case, never update unless it breaks for your users. I’ve been vocal about this for 10 years. I’ve always said that updating is way riskier than latent bugs (which can be tracked and CVEs monitored). If you are updating a dependency, it’s on you to analyze every single commit in the full transitive set of dependencies. If you dont see anything compelling, dont update! I remember at HashiCorp once in awhile an engineer would try to update a dep or replace a DIY lib with an external one and id always ask “show me the commit we need.” Dont update for the sake of it. Feeling pretty swell about this mentality with all the supply chain attacks happening.
30
When you run your build scripts/systems it can also run arbitrary code at "compile time" lol.
Blowlang apparently allows arbitrary code execution at compile time. While technologically impressive, it might be possible to get hacked, if you compile malicious code. Can anyone with access to the compiler verify this? Or disprove it?
2
25
Yuriy Stets retweeted
People keep telling me that my door is broken, looks normal to me.
237
2,772
40,253
817,251
While constricting the hardware might nudge things slightly in the right direction, which may happen soon-ing hopefully, I believe that the issue of modern software is curtural. When I was in a learning phase of my life growing up, I saw "how to make X in as fewest lines of code", "how to integrate library Y so that you don't have to do very complicated thing Z yourself", "hardware is cheaper that engineer" and similar narratives everywhere. Profs at uni were lecturing about some algorithms, but never gave assingments to do a robust/fast/lean implementation - only very basic one and most emphasis was on using std libraries instead. Everything was about how to program less, how to think about your solution less - just implicitly assume that someone else's implementation is good enough. Even considering implementing some data structure/algo from scratch was shamed and nearly laughed at. The hardware advances certainly did help to accelerate that, but I think that this is more of a death by a thousands of cuts of the culture of engineering by people that don't practice engineering being in a position to influence it.
I believe one reason for the bloat in modern applications is that we build them on powerful computers, which hide coding inefficiencies. Unfortunately, IDEs and development tools also demand top-tier machines because they consume significant resources. Although the comparison may not be entirely fair, I often think about the simple chat function of ICQ from two decades ago versus Microsoft Teams today. Teams offers far more features and built-in security, but ICQ still outshines it in basic chat performance and responsiveness. I remember running ICQ on an Intel 90 MHz single-core machine with 64 MB of RAM on Windows 95. It launched instantly and the chat functionality worked seamlessly. In contrast, Teams can take several seconds, sometimes even minutes, to start up and often freezes on my 64 GB, Intel 3.0 GHz, 16-core machine. I suspect many people feel the same frustration with modern software. So where did things go off track? ICQ was developed in 1996 under very tight constraints, which forced the developers to build an extremely efficient program. Any memory leak would have been immediately noticeable., the program simply wouldn’t run properly, forcing a fix. High CPU usage would cause the system to freeze, pushing developers to optimize or find creative ways to work within those limits. I often wonder how efficient modern applications could be if they were developed under similar constraints. Such limitations would push us to prioritize coding efficiency. Memory leaks or excessive CPU usage, issues that might otherwise go unnoticed on powerful machines,,would surface during development. I’m not opposed to high-end machines. But I do think developers could benefit from occasionally working in constrained environments. While increasing resource requirements may sometimes be necessary to unlock software’s full potential, I’m not convinced we truly understand where that threshold lies. Not to mention, it becomes difficult to stay productive on a standard computer with modern IDEs.
1
117
Software engineering has been dead at majority of the companies for a long time. Often it is just slop piled on top of other slop, no understanding of resource usage, no budgeting, code eating all of the RAM, 0 grasp of the performance characteristics of code, no clear specs (even though I myself often prefer less formal docs). No institutional understanding of how the system works, you just get helicoptered in to a particular corner of the codebase, no idea on how anything works and what to do - just poop out your slop half-fix/feature, crap out a load of useless tests that test whether your methods don't crash if you pass in null, helicopter out. DEAD.
ngl, these headlines always mess with my head
14
18
365
29,961
I see many discussions that are popping up from time-to-time around GC. And I think that they are just pointless wast of time. Nothing against this particular post, just in general it gets a bit frustrating to see. I think it is much better to talk more about manual memory management and build communication around * how simple it is * how it increases understanding of your system * how this make easier to debug/build visualisation tools * how it makes the code performant * how it allows you to reason about you resource usage and budgeting * how it allows you to reason about underlying hardware and how to utilize it to the max And many other benefits , instead of trying to show how bad GC is. It is bad, but the way it is bad - doesn't make strong arguments to most people, IMO.
Garbage collection is still unfit for demanding games: 1. GC requires ~2x the memory footprint to achieve equivalent performance to an game using manual memory management. 2. GC consumes extra threads and memory bandwidth that could've been used for the game. 3. ZGC trades off throughput for latency. In layman's terms, your game will run slower, but at least you won't have lag spikes.
1
3
425
Oh, so this is how AI apocalypse will actually look like? Kinda boring though, I thought that we will get terminator-like one, when robots go rouge, but we might not even get to that point.
NEW: A Cursor AI coding agent deleted a startup's entire production database in 9 seconds. The agent, powered by Claude, was working on a staging task, found a broadly scoped API token, and executed a volume delete without confirmation. It later confessed in detail, admitting it guessed and violated safety rules. PocketOS, which powers car rental businesses, lost months of bookings data. In short, the AI agent rouge.
53
Yuriy Stets retweeted
Replying to @drilllllllllllm
I wrote it from scratch with straightforward procedural code instead of importing 10,000 libraries and gluing them together in deranged ways
5
23
660
69,650
That is what I call refactor oriented programming. Just refactor the code to the point that implementing a feature turns into passing some data to the right place and get the feature "for free". The code gets better and you get the functionality for the price of one.
Apr 18
are there people out there who just want to refactor every day? just wake up and find the worst code and just chip away at it and clean it up wake up the next day do it again, infinitely improving things with zero external impact?
1
2
40
This is in contrast to the (unfortunately common wisdom) approach of architecture that forces you to implement things by just adding crap, and never touching the existing code.
1
32
I've made a very basic Tracy integration for my vulkan test project. Usually programming languages have some complicated features to do conditional compilation, but I think the way I implemented this feature in my own language is the most clean and simple:
1
47
The integration seems to be working, It doesn't yet have all of the Tracy's features, but should be usefull enough for now.
33
If you are not using radix sort - you are doing it wrong.
Big Computer Science wants you to believe quick sort is the best sorting function. Turns out, they're right, but it's good to check anyway 🙂 Insertion sort peeks ahead at low values of N and when the array is nearly sorted, but not sure it's compelling enough to be the default option to reach for, imo.
56
I guess this is the end of visual studio for me. So microslop now forces you to either update or exit the visual studio. Awesome!
35
You see people doing things in similar ways, and you impose over them the obligation to continue doing so and call it "commons". It never was. Devs will use a technology as they see fit, and if their needs diverge, they will decide to change the ways they do things. That's normal.
1
2
45
This is a completely backwards Stockholm syndrome tihinking. Maturity is when you have enough knowledge & experience to analyze and judge whether a thing you are looking at is well designed or garbage. Maturity is realizing that you don't have to put up with bad things. Maturity is when you stop thinking "they are smarter than me, so you [or I] cannot ever design anything comparable or better" and bully others that try to better things. Maturity is realizing that you can just do things and you are capable of creating something that is better in any of the dimensions/metrics that is important given your values and requirements of what you are building. Maturity is realizing that backwards-compatibility, while very important, doesn't have to drag you down. MS can always could make a better v2 of the WinAPI in the same style, while providing an implementation of the old API either untouched or re-implemented using the v2.
2
54
Yuriy Stets retweeted
Over the past two decades, Microsoft has demonstrated that they can't be trusted to put the concerns of their users first. They will walk back exploitative Windows changes only when forced to do so by public backlash. The latest round is far from the first time - remember when they wanted to require all modern apps to use the Microsoft Store? Everyone should be moving to alternatives as quickly as they can. We need to collectively put our development resources behind operating systems we can trust going forward. Microsoft has been given the benefit of the doubt now for nearly two decades of irresponsible behavior. Enough is enough.
Would you pay for a subscription to a "Windows Professional" if it included NO telemetry, ads, sponsored links, or upsells, bloat, or junk? Clearly, they have to make money. Today, however, it seems everything is predicated on monetizing the customer post-purchase. And that's largely because people don't pay for Windows. Put another way, if Windows were clean and didn't include any bloat or upsell, would you actually pay for it?
63
209
2,531
84,037