Details
-
AboutChief Procrastination Officer, Keeper of The Keys to My Father's Flat, proud holder of a mediocre BSc. Analytical fundamentalist Manufactured: Budapest, 2001 Calories: 70,000 May contain traces of other viewpoints Matrix: @lbfalvy.matrix.org
-
SkillsTypescript, C#, Rust, Orchid, goofy altlangs, group theory
-
LocationBudapest, HU
-
Website
-
Github
Joined devRant on 5/18/2018
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API

From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
@antigermgerm He's there to pinch my ear when I've been talking for too long.
-
every shitty startup that's funded by an incubator or other investment firm is shoveling money out of hedge funds and into the economy.
-
anyone remember when the author's previous employer declared that they own NGINX because he wrote it on a company laptop? What was the end of that story?
-
@jestdotty Yeah. SemVer doesn't really indicate the significance of changes, that's part of why it's not popular for user-facing software. New features, even if they introduce shortcuts that replace most of everything you were doing before, don't force a major change, as long as the old methods work. Ideally, SemVer majors actually don't include any features, because it's enough trouble dealing with the fallout. They only remove deprecated APIs, and add tiny tweaks that subtly change the correctness or meaning of old calls. This is the complete opposite of what most people perceive as 'significance'.
-
@jestdotty worlds can always be migrated forward, at least in Minecraft. Is it really whether a change is "breaking" that matters for you, or is it how substantially the change affects the intended gameplay sequences?
-
And that''s why all of our programs are doomed to forever support Excel as a data format even though Excel has CSV exports.
-
But I guess I see your point.
-
@AlgoRythm Odd, the only reason I ever stayed on an older version was for modding and servers (which stayed on an older version for plugins). It never occurred to me to stay on an older version of the game for itself.
-
@AlgoRythm I guess not, but if it was a major update, would you have stayed on the older version just to avoid this?
-
That story was an anecdote from before my time, but shit like this is constant. Semver is a curse enough on library development. Don't force it on projects that aren''t libraries.
-
The only thing I hate more than breaking compat is assuming compat where none was ever promised. No I will not fucking move my functions out of the class because Daniel from engineering unilaterally decided that the order and number of functions in my interface can be manually mapped to COM member function indices.
-
Minecraft has no cross-version compatibility policy, so there's nothing to break. It's not a dependency that's part of hundreds of unique fully automated stacks collectively underpinning billions of euros of commerce, it's user-facing recreational software with no officially documented APIs of any kind. That means they have no obligation towards modders either.
-
Minecraft doesn''t use SemVer and it never did. It uses era/update/patch, wherein "update" is something worth trying, "patch"" is nice to have but not that important, and "era" changes maybe twice or thrice over the entire lifetime of the project.
-
@jestdotty I'm familiar, I don't think it applies here. The main problem is that foreign code is allowed to enumerate the member list of modules so there must be a reference to the tree, but the concrete values of constants are what keeps the foreign code objects alive, so the tree cannot reference the constants.
It would be possible to build the relationship differently, for example, foreign code doesn't have to be able to keep the tree alive, but I've decided that dealing with the complexity of a weak reference in the interpreter is preferable because there's expected to be a lot more foreign code. -
I don't think this one applies to GC'd languages, but I'm pretty sure it applies to C-likes.
-
@Lensflare They're actually the NSA's eyes glaring at our data.
-
@Lensflare this is tsql, fuck the standard
-
@angerydev no justification. The only excuse legacy code can have, and the only one it needs, is that it has been getting the job done.
-
@Lensflare in that timeline we would be mercifully unaware of JavaScript as a concept. I guess if you must sandbox a compiled language, Haskell isn't the worst option, with how difficult and explicit side effects are.
-
@Lensflare I think LaTeX actually supports variable layouts in principle, only maybe you need a bit of Haskell.
which brings me to the third reason why this would suck; web content would arbitrarily depend on plug-ins that you can't properly sandbox, a lot like the old java applets and adobe flash, except they would be less useful because their functionality is limited by PDF. -
Is LaTeX any good at variable page sizes? Responsive layout? I know it's slow as shit to render so we'd have to add that multi-second delay on every navigation. No browser apps, you just have to install 7 or so chat apps on every computer you own with file system access and everything. None of them are distributed for Linux. YouTube has ring 0 anti-adblock.
-
Tampermonkey
-
while (e == coyote) { .... }
-
@Demolishun I hear they're best when cooked with apples.
-
this thought formed in my head just now, but maybe the downfall of socialist liberalism will be problematizing AI universally. I'm gonna need to dwell on that a bit.
-
what heretofore unimaginable Kafkaesque horror did mankind invent today?
-
This reminded me of this strangeloop talk about spoken language code editing:
https://youtu.be/NcUJnmBqHTY/...
As programmers, we learn new languages monthly. Conceding fine control to the convenience of English is just as antithetical to programming in spoken language as it is in writing. -
DI containers were born in an era before every language had lambda functions with good type system support and lexical scoping.
-
@Lensflare I'll die on this hill; DI containers don't contribute anything to 99.9% of projects. Just take a factory callback or an instance as a constructor parameter. It's marginally more code, and the ability to manually overrule the global configuration for a specific place of use without affecting other instances of the same class is well worth it.
-
@Lensflare Interfaces have basically two uses; one's to add user-defined candidates to heterogenous collections, the other is inversion of control. When I say DI, I don't mean a DI container that uses reflection or whatnot to automate the process, but plainly the practice of parameterizing a piece of code on an interface even when the choice of implementation is assumed to be universal just so you can change the context of the code more easily.