Yuriy Stets

402 posts

Yuriy Stets banner
Yuriy Stets

Yuriy Stets

@stainless_code

Bottom-up design & refactor oriented programming enjoyer.

Entrou em Ocak 2017
18 Seguindo10 Seguidores
Yuriy Stets
Yuriy Stets@stainless_code·
@nicbarkeragain I put the thing I'm comparing on the left, and the thing I'm comparing to - on the right, if that makes sense :) Basically variable/my thing on the left, constant/other thing on the right.
English
0
0
1
115
Nic Barker
Nic Barker@nicbarkeragain·
Programmers: do you have a consistent preference for which side you put the literal on in a comparison? // Right-hand side if (someValue == 1) {} // Left-hand side if (1 == someValue) {}
English
41
0
42
10.9K
Yuriy Stets
Yuriy Stets@stainless_code·
Even though abstractions, sometimes, can be useful and siplify things, most of the time they only makes the system harder to understand and maintain. Code that is readable from top to bottom, without jumping around or having to read in-between the lines to understand the meta structure, make it much simpler and cheaper to modify, extend or rewrite.
English
1
1
2
31
Yuriy Stets
Yuriy Stets@stainless_code·
@archeologistdev The benefit of software is that it is easily changable. If you design your code to be the simplest one that satisfies the requirements, then extending it is as easy as removing only the parts of the code and replacing them with new ones that handle the old+new requirements.
English
1
1
2
57
software archæologist
software archæologist@archeologistdev·
What separates (most) software from rocket engines is that it needs to change over time to accommodate new requirements. Well-designed interfaces and modules lower the cost of change (typically at the expense of execution time and increased LOC). Beware of overfitting to today’s requirements or you’ll pay the price tomorrow.
Jebrim@AgileJebrim

The way you achieve Raptor 3-style software is by eliminating interfaces and modules. Inline your code to streamline it. This is effectively what SpaceX did, going against the high cohesion, low coupling advice that dominates the industry. Raptor 4 will have fewer interfaces.

English
3
0
2
845
Yuriy Stets
Yuriy Stets@stainless_code·
@meesedev I worry if that leak could be used by ms to go after all mc-like/looking voxel games. Seems that it should be easy to defend against, but the pressure can be overbearing.
English
0
0
0
339
oxcrow
oxcrow@oxcrowx·
Since we can parse ~1M LoCs in ~1s, I feel like in future NxN can compile ~1M LoCs to binary executable in ~10s to ~20s, (with QBE and mold). That should cover 99.99% of all software developed by anyone in future. And the performance target seems good enough.
GIF
English
4
0
12
857
Vjekoslav Krajačić
Vjekoslav Krajačić@vkrajacic·
File Pilot 0.7.0 is out! Drag & drop from external apps and ZIP archives is finally here, plus dropping files onto other files. Also launching the public roadmap toward v1. filepilot.tech/roadmap
English
29
59
779
49.4K
Yuriy Stets
Yuriy Stets@stainless_code·
The integration seems to be working, It doesn't yet have all of the Tracy's features, but should be usefull enough for now.
Yuriy Stets tweet media
English
0
0
0
18
Yuriy Stets
Yuriy Stets@stainless_code·
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:
Yuriy Stets tweet media
English
1
0
0
31
Yuriy Stets
Yuriy Stets@stainless_code·
Oof, debug build of LLVM takes closer to a 0.5s on my 9800X3D. I definitely need to profile it because there's definitely something wrong. How are you calling into LLVM? emitting to a text file & llc, or linking with it and using C++ api? In my case I'm running only a C api that I extended a bit to handle a couple of cases that I need.
English
0
0
0
27
Olex (Solo gamedev Diablo-like) 🇺🇸🇺🇦
I once again thank LLVM for doing all the hard work for me. Front end is the easiest part for a new toy language. IR = Intermediate Representation, an assembly-like text format for LLVM to consume to produce the real binary. First 3 steps are part of my front end.
Olex (Solo gamedev Diablo-like) 🇺🇸🇺🇦 tweet media
English
2
0
9
1.5K
Yuriy Stets
Yuriy Stets@stainless_code·
@OlexGameDev I never understood why people like shadowing (or not hate it enough), it is so error-prone, its not even funny.
English
0
0
0
376
Yuriy Stets
Yuriy Stets@stainless_code·
@anicic_filip @VinciRSS @cmuratori I've tried FreeCAD fairly recently, and couldn't make even a simple door stopper model to 3d print. It was very angry and throwing a ton of error at me for making a basic sketch with a few constraints. I had high hoped to finally jump of off fusion360, but got so dissapointed. :(
English
1
0
0
47
Filip Aničić
Filip Aničić@anicic_filip·
@VinciRSS @cmuratori Idk about professional CAD requirements, but FreeCAD was really useful on Linux (compared with traditional CAD programs)
English
2
0
1
257
Casey Muratori
Casey Muratori@cmuratori·
The top critical replies to Coder Girl here were "4 hours fixing audio drivers nobody asked about", "Installing Linux is a mess", and "sure if you don't like to game". I have been a Linux user since SlackWare in the mid 90s. I would have agreed with all three of those up until around a year ago. Here is the reality I have been experiencing now: 1) My livingroom gaming machine is now permanently Bazzite. I installed the default Bazzite distribution from a USB key with no modifications. It can run Steam in deck mode, so I can use it with my (Microsoft!) XBox controller, and I play almost exclusively Windows games on it, which run (shockingly) flawlessly in Proton. I have yet to encounter a single compatibility problem, although I am sure I would if I played competitive shooters since their anticheat kernel drivers are designed to prevent using it anywhere but on unaltered Windows distributions. Anticheat is really the only thing holding Linux back from being an immediate substitute for a Windows gaming machine. 2) My audio workstation is now also Bazzite, since I figured it was easier than maintaining two distros. Default install just worked, no drivers necessary, despite the equivalent Windows install needing both Yamaha and Behringer drivers to be installed manually to function properly. It "just worked" out of the box for audio as compared to the Windows equivalent, and has been rock solid - no drop outs, no crashes. I did not have to touch a single audio configuration option. I just installed Reaper and PianoTeq, and everything worked. 3) The only machine I've found so far that has trouble working out-of-the-box with Linux is a Microsoft Surface tablet. But I still got it to work, it just required me to manually install a kernel patch because support for things like the Surface touchscreen aren't built into Linux distros currently. Once I did install the patch manually, it works perfectly, and even has a touchscreen keyboard just like Windows does. So even Microsoft's own hardware can run Linux just fine, and it would even be turnkey if your Linux distro of choice decided to mainline the Surface driver repo. The bottom line is that people who think Linux is worse than Windows either haven't used it lately, or are not being honest about how bad Windows has become. Windows is circling the drain. Every update, it gets worse. The number of problems I regularly have to solve on our remaining Windows machines dwarf anything I have to do for Linux system maintenance. Windows had a good run, but Microsoft has obviously focused its resources on SaaS and cloud computing. They don't care about Windows anymore, and neither should you. The next decade is about transitioning to Linux everywhere.
Coder girl 👩‍💻@dev_maims

LINUX IS BETTER THAN WINDOWS LINUX IS BETTER THAN WINDOWS LINUX IS BETTER THAN WINDOWS LINUX IS BETTER THAN WINDOWS LINUX IS BETTER THAN WINDOWS LINUX IS BETTER THAN WINDOWS LINUX IS BETTER THAN WINDOWS LINUX IS BETTER THAN WINDOWS LINUX IS BETTER THAN WINDOWS

English
309
424
6.3K
457.8K
Yuriy Stets
Yuriy Stets@stainless_code·
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!
Yuriy Stets tweet media
English
0
0
0
20
Yuriy Stets retweetou
Non-consing robot @phenlix@mastodon.online
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.
English
0
1
2
30
Yuriy Stets
Yuriy Stets@stainless_code·
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.
Daniel Colascione@dcolascione

For starters, kernel32 performs various path transformations as it passes filenames from user programs to ntdll and the kernel. A program using ntdll directly, especially if it isn't careful to emulate win32 semantics (which I doubt Zig takes care to do) will behave unlike other Windows programs, e.g. when figuring out what actual disk file a string path names. Is the direct ntdll way better? Yes, it is, viewed in isolation. I quite like NT. Win32 is aesthetically suboptimal. But a direct ntdll program is *different*, and it's the difference that will cause subtle headaches for all sorts of users and integrators. Maturity in software is understanding that you sometimes have a duty to put up with an ugly interface for the greater good of a consistent interface. Our decisions ramify in time, and it's better for everyone to be consistently warty than for every program to be selfishly special. Plus, it's just rude to do this stuff, because 1) Zig is making a lot of work for the Windows team by making them support a second API surface they never signed up to support, and 2) Zig is constraining the evolution of the Windows platform by forcing Microsoft to freeze internal APIs in amber when they should be able to improve them. The Zig people do the same thing on Linux, by the way. They bypass libc and go straight to the kernel, breaking LD_PRELOAD shims Linux users rely on. And for what? Nothing! It's infuriating. The interface layers Zig bypasses on Linux and Windows are thin and add practically no overhead. Zig programs are not faster or better for having bypassed these layers that everyone else has relied on for decades. So what's the root cause of Zig-ism? Vibes about being closer to the metal? A feeling of power stemming from wielding esoteric knowledge? A kind of glee in annoying people like me, with my silly appcompat war stories and spiritually boomer worries about long term ecosystem evolution? Is it some kind of innumerate gutfeel that load bearing elements of the system are "bloat"? Do they understand how shared libraries work? A decade ago, the Zig people would be posting on forums about how they optimized (but in actuality pessimizd) their Gentoo systems by compiling with -O99 -funroll-all-loops -DMOAR_SPEED, saying a numerically "for sure felt smoother". A decade before that, the Zig people would have been attaching enormous spoilers and illegally loud mufflers to their Honda Civics. Probably painting them red too, because as everyone knows, the red ones go faster. There's just a sort of timeless personality type prone to this sort of thing. And that's fine. People are allowed to be ridiculous. Except this generation, this personality type comes armed with a trendy programming language. The Gentoo system gets reimaged with Debian stable. The Honda Civic eventually gets compressed into a cube in some landfill. We cannot serve similar justice unto Zig programs doing flagrantly stupid things forever.

English
0
0
2
40
Yuriy Stets retweetou
Casey Muratori
Casey Muratori@cmuratori·
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.
Dave W Plummer@davepl1968

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?

English
65
221
2.6K
83.5K