Details
-
AboutChief Procrastination Officer, Keeper of The Keys to My Mother's Flat, proud holder of a mediocre high school diploma. Analytical fundamentalist Manufactured: Budapest, 2001 Calories: 70,000 May contain traces of other viewpoints
-
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
-
A more interesting related fact is that this Tuesday I got fired and it was the first occasion that an event that impacted my career didn't have tenfold the impact on my faith in my own abilities. In fact, I didn't even really feel responsible at all. They were clearly looking for a senior with low self-esteem.
Now I just have to figure out how I'll feed myself for four more months before I graduate and get a full-time job anywhere around London.3 -
On the one hand I really wish there was a good open-source self-hosted file sharing and collaboration service which made use of modern web technologies to provide most of its features inline as well and not just through APIs consumed by client applications.
On the other hand, I tried writing a WebDAV server once, and I fully empathize with the people who have to deal with this madness. -
A remarkably stupid but efficient technique I invented today to measure the latency of an audio feedback channel involving multiple hardware elements that is difficult to synchronize by itself:
1. Knock. Observe the echo in the feedback.
2.Try to knock in such a way that the physical sound more-or-less lines up with the feedback. The human brain is really good at this on average.
3. Once you often only hear one knock (as perfect synchronization as your ear can tell), record several minutes of audio
4. Stop knocking, count the additional knocks in the echo
5. Multiply the average delay between knocks on the recording by the number of additional knocks from step 44 -
Make good progress on Orchid, my pet project, the functional programming language that has no syntax apart from what the macros define. A type system, an interpreter and provisions for a compiler would be nice for a start.
Finish my bachelor's degree on some unspecified part of Orchid, at the current pace that would most likely be just the Hindley-Milner algorithm.
Don't get fired from the gem of a job I have, and move to London because I'm a city rat and the only way I can sleep well apparently is with a tram or drunken people screaming under my window.2 -
For a side project I identified the need for RPC (originally over Websocket but can be extended to WebRTC/DTLS) that supports
- JSON-serializable values
- Promises
- MessagePorts (including shortcut detection for ports that are passed back on a different route)
- async functions
I have ideas for all of these and this is an exciting prospective library, but it's also major scope bloat that will prevent me from ever finishing the project that depends on it.
Would you be interested in such a library if it ever got built?4 -
I wasted all of yesterday trying to create a business object in staging which can't be created with the admin panel instead of modifying an existing one to fit the case I was testing, because i forgot that this is staging and just assumed that existing objects are not to be touched.
Flu Brainfog sucks.1 -
I want to build an ECS-based web metaframework and CMS. Is this a new idea? If not, what are some existing implementations? I have very particular goals and constraints so I'm making it anyway but I was wondering if there's prior art to learn from.3
-
What do I call Components as used in ECS when my app is entirely written in React and I want to avoid the tedium of qualifying the names?
This is a really fundamental thing to the project so I get to pick less-than-ideal but short names since anyone who works with the code will encounter it within the first 5 minutes.9 -
Exhausting all other options is a precondition for making a timeout heavily dependent on the system setup configurable according to the VSCode team. They advised us to not use NVM, to buy faster computers, to move time-consuming processes from .bashrc into .profile, before allowing us to manually make VSCode wait a bit longer. Microsoft attitude
https://github.com/microsoft/...5 -
The reason there aren't independent web browsers anymore is that the web standards include a lot of concepts that should never have been standardised and their presence in the browser as opposed to compilers and interpreters targeting the web has no benefit whatsoever.9
-
1. Enter repository of proprietary Node package that you maintain
2. Run `npm outdated | tail -n +2 | awk '{ print "npm i " $1 "@latest" }' | bash`
3. push to master3 -
Microsoft seems to be struggling with basic human decency such as linking the original when closing an issue someone spent their time writing as duplicate:
https://github.com/microsoft/...4 -
I have 2FA enabled on NPM so it would shut up about it, the recovery codes are in my password manager, right next to my secure randomly generated password.
Password authentication is fucking stupid.3 -
Another day, another critical vulnerability due to an out of bounds write that could never have occurred in Rust
https://github.com/openssl/openssl/...31 -
Windows 10 had one groundbreaking UI innovation, but no one adopted it and even Windows 11 discareded this revolutionary idea:
BUTTONS NEXT TO EACH OTHER AND AT THE EDGE OF A BOX DON"T NEED AN ADDITIONAL MARGIN
Windows 10 was the first and last OS where I never accidentally clicked right next to the X on a window, in a passive area that had no other purpose so it might as well have belonged to that motherfucking button.
I passionately hate this trend, adopted nowadays by every OS, that everything needs to be rounded, separated from the things around it, and "allowed to breathe". They don't breathe. They're not alive. They're fucking UI elements and the space between them is unused, lost space.
The only interaction a button has with its surroundings is that it pushes other content away to make room for itself and responds to the cursor. It doesn't wiggle, it doesn't grow and shrink, and it ESPECIALLY doesn't fucking breathe. Please, just let me click the motherfucking button.
Relatedly, do you know of a good, preferably bluish dark GTK theme that provides window decorations that stretch the full height of the titlebar and are laid out next to each other at the very end of the bar without gaps?8 -
It's nice that more and more languages are introducing async/await syntax, but by the example of Rust in particular I'm starting to wonder why we don't instead introduce this syntax for monads in general?
We could have a keyword (say, `bind`) which unwraps a value from any monad provided that the return value of the function is wrapped in the same monad. The ? operator does something a little similar, and I'll be intrigued whether it can actually be implemented for monads other than Result and Option once GATs are stabilized. In particular in the case of Rust, it would be possible to create a reference counting monad for heap-bound management of objects derived from references.9 -
I really liked the idea with the new Firefox page, but the execution made me angry so I fixed it
- Removed the paddings and margins that took up space from information and actions
- Removed the four sentences that contained the same explanatory text I already understood in the initial popup
- Removed the fucking sidebar ad for Colorways
- I really like the Firefox logo so it can stay
Here's my userchrome repo if you want it, I reserve the right to discard the project and stop updating the repo at any point. It's best used as inspiration:
https://github.com/lbfalvy/...1 -
Oh my god, when will Firefox shut up about its motherfucking colours!? Themes have been a feature since forever, none of this is new. Also, I DO NOT want my fucking userchrome to be colourful, and I DO NOT want to be constantly bugged about this. It's a fucking browser. I want iit have a reasonably high contrast and otherwise blend into the edge of the screen, because for a web browser, the UI is not important and should not stick out.
I respect if someone has different opinions about UI, but it pisses me off to no end that Mozilla doesn't respect mine.6 -
I used to play on an electric guitar which I was trusted to store after the original owner emigrated, now that I left as well I'm out of a hobby.
I have an ever-extending list of small luxuries I plan to buy once I have stable disposable income, the first item is a stratocaster with an amp.1 -
Scrolljacking is an act against accessibility so harmful that it is never realistically outweighed by the possible benefits.
https://www.indesit.co.uk/2 -
font-family expects a comma-separated list. Fonts haven't been displaying on my blog for months because of this issue.
Why could NONE of the browsers I tested this on give me a real syntax error instead of "invalid property value" which could mean literally anything.
Edit: Actually, why can't the CSS plugin for VSCode tell me that I'm making a syntax error in the value of a well-known property?10 -
Rust's DX is incredible. I previously published a couple packages to NPM and every step of the way i had to fight with NPM, Webpack, Rollup, Typescript and the mass of third party plugins for all of these that wired them together. Here it's literally just
cargo publish5 -
I wrote a small crate that does unsafe operations, please help me verify its soundness: https://github.com/lbfalvy/bound
(Also I think you'll like it, I'm solving a fairly abstract problem that's not possible in safe Rust)
It's essentially a struct that ties together a heap reference and a struct that's constructed from it. The main use case is to return lock guards derived from Arc<Mutex> but it's defined in a very abstract way intentionally because I'm using Marc from mappable-rc and async-std's RwLock and I didn't want this to depend on either crate.
It actually has no dependencies apart from STD (I think this one may be unavoidable) -
Useless language feature #1: specify kind in explicit expression type annotations that you insert to guide the type inference engine.
How did I work on this for 6 months without realizing that the kind of a value's type is always the kind of types because that's literally what the kind of types means?2 -
In type systems without variadic generics, tuples should be defined as a type-level conslist:
Tuple<int, Tuple<string, Tuple<bool, TupleEnd>>>
Consider the possibilities, even just in a regular type system, then consider how much more is possible with dependent types!4 -
To make something impactful. I don't want to be fully credited, though being able to point to it in interviews would be great.
While working, I constantly segment my product into tiny reusable abstract solutions, most of which I eventually publish. I want some of these to grow into popular solutions to the problem I had or some other similar issue. Or, I want one of my major projects to become either a tool or an inspiration in something significant, but frankly the point is that some people appreciate something I created.