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, abstract algebra
-
LocationGuildford, UK (also Budapest)
-
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
-
I prefer VSCode over visual studio for a ton of tiny conveniences. Some git operations can really only be done conveniently by switching rapidly between the command line and the big scrollable list of diffs. The currently open file is automatically focused in the tree, not by explicit user command. Ctrl+Tab shows the last viewed section of files and not their name, so I can find an arbitrary point in my jump chain. If I open the diff for a newly added file it's possible that I want to edit the file, but it's also possible that I didn't notice that it's newly added. Painting the whole background green doesn't hinder the first scenario nearly as much as it solves the second, in contrast to VS not showing any changes, which just has me confused because of the total lack of modification marks.3
-
Trust Google. Trust the Process.
The Android Studio Installer doesn't show download progress bars, speeds, ETAs or the size of files being downloaded. I hate this design. Tell me exactly what, why, and where is being downloaded so that I can download it myself with a better HTTP large file client, put it where you want it, and restart the installer. I know my machine and ISP and Google does not. I don't trust Google to make a single right decision, and I only want to relinquish control when I don't have time to do something myself.7 -
I have an unreasonable phobia of bugs, but I never really feared wasps. I still don't, actually. They mostly just mind their own, sure they carry a weapon, but if I remain calm they aren't as trigger-happy as most policemen.
BUT GOD DAMN IT, if this FUCKING STRIPED DUMBASS decides to crawl under my wrist while I'm typing, hidden completely from view, in total silence, standing on a hard surface with something obviously alive above its head, I feel like it DESERVES to get squished and it should take it without a retaliatory strike against the densest collection of nerve endings on exposed skin on a human body. FUCK. I can't even type right, pure anger fuelled me through this rant.3 -
Is there a debug tool in Visual Studio that acts like a global HashMap<String, object> that you can add random objects to so that you can verify which objects are the same instance between breakpoints and view the state of an object that you had access to but is not in scope at a given breakpoint? I'm debugging a GUI app right now and it's an enormous pain in the ass to track identities, I resorted to adding random properties and statics to classes just so I can express this basic ass persistent debugger state6
-
Git's fucked, I guess I have to retype my website from memory. :/
```
git restore --source=HEAD :/
```2 -
y'all the optometrist just fat fingered the parameters for my 500€ custom order glasses for my uniquely fucked up eyes
I ask specifically the seasoned webdevs here, what's the most effective typo prevention system you've ever seen, where a measurable decrease in mistakes indicates the effectiveness of the system?3 -
So fun fact about message-passing plugin APIs, everything becomes a parallel programming problem. My lexer (the part of an interpreter that recognizes fundamental syntax elements) spawns a callback thread with request and reply channels, and then messages a plugin which is able to either talk to the callback thread or message the original thread with a successfully parsed token or an abort.
It has just occurred to me that plugins are under no obligation to sequence their requests to the callback thread, which means that having one channel for requests and one for responses no longer suffices; the requests need to each contain their response channel. -
in a moment of enlightenment, I realized what problem Cow (copy-on-write smart pointer) actually solves.
Time to touch every file I guess4 -
I played around with Git Rebase today to learn a bit about it, and it was fun, but in the process I completely obscured my process and erased a commit that has a published artifact associated with it. What remains is a few incremental preparation commits hoisted up from today's cleanup, then a pair of commits on two projects both of which only compile against the version of the other repo built from the other commit.6
-
election period always makes me cynical (more cynical than I already am that is).
Apocalyptic fantasies are indulgent because they suggest a catastrophe that might end the world. The dull reality is that the world doesn't end, and you just have to go about your life with a new standard.4 -
I actually found a use for Outlook's scummy default behaviour to open links in Edge and not the default browser.
On my company laptop I mainly use Librewolf because it allows installing plug-ins despite group policy. I only use Edge for Azure DevOps and company portals because MS SSO doesn't work with Librewolf for some reason.
Because Outlook disregards the OS settings and uses Edge by default, MS software forms a sort of bubble, and I can freely set Librewolf as my default browser.9 -
I love reading code samples where the author was clearly very talented and up to the task, but had clearly used a different language up until that point, so they write with a strong accent. The C# codebase I'm working on right now for example had clearly been written by Delphi programmers6
-
Zoom free tier calls end after 40 minutes.
Idea: pwyw conference software where the call ends after 40 minutes if the host isn't paying €5 more monthly than everyone else in the call. There is no way to discover whether this is a limited call until the 40 minute mark, and there's no way to discover who outbid the host at all except by getting everyone to show their bank statement.1 -
My department head is shitposting in the company slack on the middle day of a 3 day weekend. I guess it doesn't really count as encouraging overtime because it's not work-related, but come on, does he really have nothing better to do?2
-
What's the message passing IPC with the least RTT for messages that are in the 16-32 byte range? It's gonna run approximately once per command in an interpreter.5
-
My new favourite RUNTIME c# error, evidently thrown by the standard library because the string is not present in the project:
"no parameterless constructor defined for this object"6 -
group policy prevents me from installing browser plugins at work. For crying out loud, I'm a dev! Any set of permissions that enables me to do my job would include an escape hatch for this! I can just rebuild Firefox without group policy support! What the fuck is this meant to achieve besides waste company resources!?4
-
I made a very obvious realization since the last time I rewrote Orchid; the 3 year project that has now become an eloquent documentation of my learning process; Types aren't free. Sure they're free at runtime, in fact the more you have the less the language has to work to separate values, but they generate significant cognitive load.
Oftentimes it's better to have one enum with 12 variants 3 of which are specific to a narrow case to be able to define operations for this enum once, than it is to have 3 distinct enums of 10, 11 and 8 variants respectively, and to have to define common operations (or the dispatch part anyway) thrice.
As for my previous observations about catchall abort acting like the new type abort, I still think that, and I still think that this is only justifiable if the number of invalid variants is low enough in every case that you can list all of them before the abort.4 -
some of the smartest people I know are about to fail a CS bachelor's
what the absolute fuck is up with Hungarian higher education3 -
I specifically asked my employer when fix time is, whether I get a work laptop, and whether WFH is optional, because
- I'm a night owl and don't function until 10am
- my personal laptop is slow as shit and I don't want to put Windows on it
- I don't have a decent chair at home yet
- client team agreed on fix time starting an hour before what's in my contract, and PM made it clear that they expect to be able to call us an hour before and two hours after (that's what fix time means unless I misunderstand)
- I got a crap backup laptop after a week of moaning, with promise of a better one two weeks from now
- I won't get an RFID card for weeks, so I effectively can't enter or leave the client offices12 -
I've been trying to define a trait `Inherits<T>`, a trait `Extends{ type Parent }` and an arbitrary amount of scaffolding around it such that
- the scaffolding for a given type only has to acknowledge that type, its parent and the types of which it is a parent
- `T: Inherits<U>` if a chain of `Extends` leads from `T` to `U`
I suspect that this is impossible, but I'd seen Rust traits bent to do crazier things, so if you know of such a system or can come up with a way to implement it despite the orphan rules, I'd be over the moon.2 -
My bandwidth is ordinarily a few hundred kbps, but whenever I torrent it can reach up to 2 mbps, while all other traffic from me and my housemates is stuck in the single digit kbps range.
What does BitTorrent do so fucking well, and how can other protocols replicate this success? Would the total available bandwidth be different if every protocol did whatever enables BitTorrent to summon bandwidth from thin air?10 -
I'm looking for a licence
I'd like to publish open-source projects with a licence to the extent of "free without restrictions for noncommercial use forever, contact me for anything else", the idea being that if you intend to make a profit you should care enough to email the authors of complicated things your business relies on and agree on a fee or share of profits.
I'm unsure how to handle pull requests. Asking for right to relicence the patch could be an option.
do you know a licence with similar ideas?6 -
So apparently I'd been hired 2 emails ago, only because the email said "I've been told that you're starting with us in April" and not "you're hired" I didn't realize it. Extremely neurotypical behaviour.16
-
Diesel is an incredibly beautiful ORM, but the size of the DSL means that despite Rust's state-of-the-art IDE integration I'm back to editing code, waiting for it to compile (as soon as I stop typing) and changing random shit if there are red squiggles.
The error messages are totally unreadable, all in-code references point me to meaninglessly generic abstractions, and a good portion of the impls are generated by macros so I can't even look at an actual final definition.
The confidence that if it compiles it'll run is stil there, but nothing else.11 -
I love the Rust community but this can't seriously be part of an example as in expected usercode for Yew.21