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
-
@princess I meant to say that I'm not aiming for demonstrable functionality. The exact objective is intentionally vague and I'm not breaking up the work into incremental sprints. This is, of course, no way to deliver a product, but the true purpose of the project is to learn anything and to have fun. I tend to start over with substantial architectural changes about once a year.
-
@Lensflare It's Transcode, but it refers to the process of translating design documents to a programming language.
-
I have the same problem with SQL that I do with CSS. An unfamiliar execution model doesn't replace basic abstraction features. Your language needs virtual calls of some description, or a preprocessor that supports virtual calls.
-
If you could write query plans directly in C for a database to compile and execute that would have better ergonomics than SQL for anything more complicated than a single-table select, update or delete.
-
@retoor SQL has me re-stating the same set of columns 3 times just to create copies of a few records with one column modified. It is not a tool, it's 5 different RPC protocols for different programs that pretend to be interoperable, none of which are fit for human authorship as evidenced by the (lack of) language design, tooling, or error reporting.
-
Reminds me of the "paradox of tolerance", an argument that was directly answered by Rosseau's concept of the social contract 250 years ago.
-
Really though, I hate CSS because the layout techniques are good but the language I have to use to configure them is insane.
Selector dispatch is like if foo.bar.baz(a, b, c) would look for any path that includes, in that order, an object in scope called foo, a member access for bar, a member access for baz, and any function call, where the function has three arguments of types that a, b, c can be cast to, and call every resulting function with default values for the other arguments in them.
(+ and also functions can't ever call other functions, only the entrypoint can call functions) -
@Lensflare C sucks because it gives you zero information, CSS sucks because you don't understand the information.
-
@Lensflare it eats your time like no other hobby. What's your perfect language?
-
@YourMom the widths are actually cemented in the standard. I think the reason why float isn't considered a bijection to its bit sequence is that implementations are allowed to repurpose NaN payloads for optimization.
-
@YourMom I think C++ has a special category for types that have a meaningful value for every bit combination in their memory area so assigning them via bit cast produces an unspecified value but not UB. It includes integers, but I actually don't think it includes float, so you couldn't perform this cast in the other direction.
-
isn't it UB to read a variant other than whatever was last written? I thought that was a key feature of unions; they don't limit how each of the variants can be optimized.
-
tbf grant/deny is just plain better than black/white, the association is more direct. Names of colors generally aren't great metaphors, the point of communicating via color on a high-resolution display is that it doesn't take space up alongside the text and it can be interpreted without the effort of reading, but it needs to be complemented by the clarity of text. My favourite is red-green, obviously representing port-starboard, or ripe-unripe
-
@jestdotty we could rename parent to owner and child to... oh wait. Hmm. up/down? That would imply trees, although still the wrong way around. outer/inner? at least that one intuitively suggests the expected lifetime relationship between the two nodes. Between processes, manager/worker already exists. There's lots of alternatives if the idle revolutionists get around to this burning question. Anything before labor law reform.
-
Looks like steak tartare
-
@Lensflare Supposedly, they actually went around advertising MSSQL to executives when they first got into the DB business to get it off the ground. The fact that an executive listens to an external salesman for anything other than management tools is insane.
-
Any interop standard designed today assumes that the implementation and the performance landscape that advises it will soon be unrecognizable. They try to betray as little of the internals as possible. I'm just wondering whether the 8-bit byte is really as universal as we think, or just the worst case of tech debt.
-
This is not a very serious take either way since, as I said, I don't know much about hardware design in the nanometer and microsecond scale. I'm just not convinced that the answer is so obvious. Generally, Assembly is so disconnected from the hardware it runs on that manufacturers pretty much do whatever and then implement the actual specs on top.
-
@CoreFusionX It would take a bit of additional circuitry (pun not intended), but the number of neighboring bits that would ideally be processed together is a manufacturing concern and I would be very surprised if 8 is that number for today's popular RAM designs. I'll grant that I don't know much about modern hardware design, but I think it would be way more interesting and not that much more complicated than everything already is for the CPU and RAM to negotiate this stuff.
-
@Lensflare it would take 3 additional bits to turn byte addressing into bit addressing. 64-bit pointers have a lot more than 3 unused bits between the sign bit (used to separate kernel memory on Linux) and the usable range. Matter of fact, 64-bit address space is so absurdly big that most CPUs require the top few bits to be the same for loads and stores, and the exact number of these matching bits is barely considered a compatibility concern.
-
@Lensflare I think a lot of really efficient techniques are grossly underutilized because bitfields are hard and slow. If bit-aligned reads and writes had first-class support, a lot more specialization would be possible in code, as we could rely on booleans and enums that occupy just a handful of bits to be neatly compacted. A lot of effort is expended in both language and library design to optimize enums and pack them together better. A related but different problem is that i64 is huge and it's not really possible to fill it, so a lot of bits are wasted in pointers that could be used to solve this problem by assigning just 3 of the ~24 unused bits in a pointer to sub-byte indices. Instead, ARM uses the extra bits of i64 to solve out-of-bounds access vulnerabilities, a problem that is decidedly better solved in language design.
-
This is an unpopular opinion but I think that memory addressing should have been bit-aligned.
-
Trie is a generic datastructure for maps keyed by sequences of elements from the same finite (small) set. It's typically taught with keys as ASCII characters, but actually the most popular variant uses keys as booleans, commonly known as binary tree.
-
you are the first person I meet who thinks that "where" intuitively suggests booleans any less than "if" does.
-
@xcodesucks I'm too busy these days to respond in full, but Rust also uses "if let", and the idea comes from Lisp, so it's neither unsuitable for systems programming (since, again, it requires much less generated code than a function call), nor new, nor a divergence from the common assumptions of polyglot programmers.
-
@xcodesucks To me, "if let" visually suggests "if the assignment is valid" or "if there is something inside this optional that can be assigned", the same way " if ! my_condition" doesn't visually suggest that my_condition has to be true. If your visual intuition has a tendency to skip over tokens, consider FORTRAN or COBOL.
-
C++''s error printing is very barebones, it basically tells you where the type solver got stuck. Nice error printing is really hard so I don't really blame them, but I think it would be worth some more attention.
-
did you catch a ddos botnet virus?
-
Drastically less funny with the new monarch. Old fucks rule the world.
-
Is it still super deadly? Does the strawberry flavour replace the visceral flight reflex caused by the signs of necrosis bubbling up from untold depths of evolutionary history that has accompanied all warm blooded species, or is the animalistic fear now strawberry flavoured?