Yuriy Stets

424 posts

Yuriy Stets banner
Yuriy Stets

Yuriy Stets

@stainless_code

Bottom-up design & refactor oriented programming enjoyer.

Katılım Ocak 2017
21 Takip Edilen27 Takipçiler
Yuriy Stets retweetledi
Smitner Studio
Smitner Studio@SmitnerStudio·
People keep telling me that my door is broken, looks normal to me.
Smitner Studio tweet media
English
239
2.8K
40.6K
789.4K
Yuriy Stets
Yuriy Stets@stainless_code·
Я напиклад "живу" в дебагері, це дозволяє мати дуже короткий цикл фідбеку - не часто, але в ідеалі написав кілька лайнів коду, зразу простепав через них щоб впевнитись що моє розуміння співпадає з реальністю. Дебагер і профалер дають можливість підтримувати моє розуміння системи на різних рівнях, яке прінт/лог дебагінг не дасть.
Українська
1
0
0
71
Eugene Ostroukhov
@CaptainGPU Дебагери і профайлери - необхідні іноді, якщо щось дивне коїться. Якщо розробнику вони потрібні денно - то це вже skill issue, означає що він пише код який неможливо підтримувати.
Українська
2
0
8
1K
Yevhen Karpenko 🇺🇦
Напевно найголовніших скіл в житті програміста/розробника - вміння використовувати дебагер/відлагоджувач та профайлер. Математика для розробників та закарбовування в памʼяті книг Кнута та Дейкстри, це канєшно все круто. Але розуміння інструментів набагато крутіше…
Українська
9
1
110
10.6K
Yuriy Stets
Yuriy Stets@stainless_code·
@LibSoci @engineseer We have a term "developer" i guess. And we have different term for electical stuff - the PCB design guy is called Electronics engineer.
English
0
0
1
15
Boaris
Boaris@LibSoci·
@engineseer @stainless_code honestly from the flip side? 100% agree I have no degree. I'm not an engineer. I enjoy shitty CRUD apps and making people's lives easier. it's literally what drew me to this field. why the fuck haven't we distinguished between "electrical engineer" and "electrician"?
English
3
0
0
39
Yuriy Stets
Yuriy Stets@stainless_code·
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.
ThePrimeagen@ThePrimeagen

ngl, these headlines always mess with my head

English
14
20
375
29.8K
Yuriy Stets
Yuriy Stets@stainless_code·
@boh_dana_ @Brechaaaaa На рахунок італійської, можливо праві - я орієнтувався тільки на інгліш. А вот про хоббі - носії мови, мої американські колеги, не погоджуються, бо "по правилах" воно взагалі мало бути "хабі", але як мені сказали, то фактично вони вимовляють подвійну б, хоб-бі перша дуже коротка.
Українська
1
0
1
43
zhaba
zhaba@boh_dana_·
@stainless_code @Brechaaaaa Hobby не читається як "хоббі" бо в англійській немає подовження приголосних. А от pizza читається як "піцца", бо в італійській є подовження приголосних. Нашо писати те, у чому не розбираєшся, ну ля.
Українська
1
0
4
87
Бречаник
Бречаник@Brechaaaaa·
Чому ви всі пишете «хоббі»???? Ви не вчили тему про подвоєння в іншомовних словах???
Українська
40
6
290
27K
Yuriy Stets
Yuriy Stets@stainless_code·
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.
Hussein Nasser@hnasr

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.

English
0
0
1
115
Yuriy Stets
Yuriy Stets@stainless_code·
These things are completely orthogonal. You can have war time/peace time approach even, if you need to crunch on a load of tickets. Go back and reconsider the quick decisions that were made, while your engineers still have context of the changes and iron things out to quality standards. The longer you wait the wors it gets, techincal debt is called a debt for a reason.
English
1
0
12
977
GoPal
GoPal@_GopalSir·
@stainless_code But honestly how many people get to apply themselves for real ? and build something to call it their creation... One can try that , sit like a thinker. But very soon there will be bills to pay and tickets to resolve.
English
2
0
7
1.1K
Yuriy Stets
Yuriy Stets@stainless_code·
@engineseer I agree and that is a bit sad, but my post more about the programming itself before any project management. "If we implement the feature in this way vs the other, what impact it will have on maintanability of other features or the system as a whole?" - no one asks this question.
English
1
0
12
903
proc0
proc0@engineseer·
@stainless_code Engineering has been transformed into product management yet they keep the name. There's nothing that is engineering about coordinating the release of a feature and presenting the results. Companies have undermined the technical part and we can see the disastrous results.
English
2
0
20
1.1K
Yuriy Stets
Yuriy Stets@stainless_code·
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.
A Flock of Meese@meesedev

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.

English
1
0
3
421
Yuriy Stets
Yuriy Stets@stainless_code·
Because dealing with text is slow. Dealing with text file paths cost (small but it adds up) performance in the kernel. Instead, you can have a proper API that gives you things in a very performant and directly-usable format. And if you want to have that info as a text to parse it with something that is not performant and cannot call a c function, you can alwas build it on top, either as a separate utility or a service that maintains familiar file system structure.
English
0
0
2
17
Yuriy Stets
Yuriy Stets@stainless_code·
Clang on windows strives to match under the hood behavior one-to-one with msvc, so not really surprising. I wonder if @ChenCravat might have some lore to share on this. But this behavior is really stupid - knowing how things go in these companies, I would bet that the debugger team had issues with typedefs and ask the compiler team to point to the unaliased type or something and they never changed it back or fixed it.
English
0
0
0
731
Ryan Fleury
Ryan Fleury@rfleury·
Thank you MSVC (Clang has the same behavior, for whatever reason)
Ryan Fleury tweet media
English
17
3
315
23.6K
Yuriy Stets
Yuriy Stets@stainless_code·
@rfleury Is there a bug in this screenshot per chance? The global_eval_tests.l_xyz shows a value of 200, but it can never be that. Is it reading the value of l_abc by mistake?
English
0
0
0
79
Ryan Fleury
Ryan Fleury@rfleury·
Small but important change: The RAD Debugger can now disambiguate identically-named local-statics regardless of selected thread position, by either using a disambiguating index, or - more usefully - a dot operator (or scope resolution operator) used on the containing function name. The selected thread's position will still, of course, be used to find a sensible default, when appropriate.
Ryan Fleury tweet media
English
2
0
129
10.9K
Yevhen Karpenko 🇺🇦
Yevhen Karpenko 🇺🇦@CaptainGPU·
@Serhii_the_Dev @BitKovin В OpenGL не існує такої речі як бінарник шейдера. Усі шейдери написані на мові GLSL, це звичайні текстові файли, які завантажуються на конвеєр і ніби «компілюються», а розробник отримує тільки унікальний ідентифікатор шейдера, з яким буде працювати далі і нічого більше.
Українська
2
0
1
69
Yevhen Karpenko 🇺🇦
Yevhen Karpenko 🇺🇦@CaptainGPU·
Epic Game почали додавати Advanced Shader Delivery в Unreal Engine. ASD це технологія винесення етапу компіляції шейдерів з локального клієнта у хмару. Подивимось що з цього вийде і як це вплине на shader compilation stutters, які уже всіх заколебали… github.com/EpicGames/Unre…
Yevhen Karpenko 🇺🇦 tweet media
Українська
4
0
19
2K
Yuriy Stets retweetledi
Ryan Fleury
Ryan Fleury@rfleury·
@drilllllllllllm I wrote it from scratch with straightforward procedural code instead of importing 10,000 libraries and gluing them together in deranged ways
English
5
25
668
69.3K
Yuriy Stets
Yuriy Stets@stainless_code·
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.
English
0
0
1
32
Yuriy Stets
Yuriy Stets@stainless_code·
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.
dax@thdxr

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?

English
1
0
2
40