Details
-
AboutChief Procrastination Officer, Keeper of The Keys to My Grandma'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
-
it _shouldn't_ deadlock, destructors are guaranteed in Rust and Tokio also has a fair scheduling liveness guarantee to ensure that eventually the forked future will run, but this technique of forking from a destructor has been a major source of bugs in the past because it's literally impossible to tell when they actually run. Currently destructor safety is guaranteed by blocking on these loose references before exit and relying on Tokio's liveness guarantee for them to be freed quickly since nothing else is happening.
-
there's a small risk of deadlock because the interpreter and extensions communicate through messages which are async and there are a handful of places where I had to send a message from a destructor. I intend to replace these with a panicking destructor and a manually invoked async "dispose" function like I've done in "BorrowedExprStore" but that's for the (near) future.
-
if it doesn't print anything and exits that's a whole other issue, it should _definitely_ not be doing that.
-
@retoor if you use --logs and --msg-logs (both go immediately after orcx, unfortunately Clap doesn't promote arguments) then it'll tell you how the conversation between the interpreter and the stdlib went, which is a lot of information but it's pretty useful in debugging deadlocks.
-
@retoor I'm sure it's not in a good state, but I'm also as sure as I can be that it's portable and should at the very least print "2" followed by a line break and flush to standard out. I'll test it on Linux tomorrow, though again, I'm quite sure it should be portable.
-
@retoor Either way the main example of contemptible AI use in open-source is when people use it for the english part of the patch, i.e. justification and docs. If a real human takes responsibility for the patch and the quality is fine there isn't really an explicit reason to block it.
-
@retoor I'm thinking about an AI policy. I'm not sure I want to ban AI-generated code outright, I'm morally opposed to it and just personally dislike it, but at the same time policies regarding the origin of code are unenforceable. I suppose if the quality is fine I couldn't really complain anyway.
-
@retoor I wouldn't call it a system, it's just a gitea container behind Caddy. The services on this host are mostly independent utilities.
-
@retoor I moved it off Github. I'll update the Github repo with a link and archive it. This repo is now the authoritative source for new versions.
-
@NotJeckel As for custom licences being cringe:
Everything that's commonplace today was at some point unusual. Kill the part of you that cringes, learn to engage with new ideas in good faith.
But also, this isn't even unusual. In the past 5 years, a variety of initiatives branched off the open-source movement to develop new licences that address the now acute open source funding problem. This isn't a brand new idea, it's just my take on an ongoing discussion. -
@NotJeckel Your points about custom licenses are valid, I definitely need a waiver and eventually advice from a lawyer, although that's expensive.
however, I don't think we can talk about user freedom without talking about development funding. Users and software don't exist in a vacuum. Problems need fixing, new standards need to be adopted, not to even talk about evolving use cases. I didn't make it proprietary because I don't want it to be proprietary. It's free for noncommercial use with copyleft protection.
User freedom as such is actually not even something I care about, I don't mention it in either file. I care about noncommercial use freedom. Amazon and Microsoft should not be free to trample over free software. Commercial use should be commercialized, and free use should be free. -
@djsumdog what is in your opinion an acceptable way for an open-source project to make money?
what is an acceptable way to make money using an existing open-source project? -
I added a native "record" type this time around which is backed by a hashmap from interned string, both because it's faster and because it's wayy easier to use from native code than the shitty lazy key-value-list dictionaries the old system required.
-
@whimsical I had to fix a major conceptual problem in the macro system so I'm pretty much in the same place I thought I was at the end of September. I'll tell you when I think it's worth trying.
-
Immediately above that title is the CLA which is also different from a conventional CLA in that it allows contributors to retain ownership of their work so that the noncommercial free licence can receive the typical protections of copyleft.
-
Shift/CTRL and q/e are also common.
-
@whimsical why though? What's wrong with assigning to onclick?
-
I only disagree with your proposed solution; iptables is an interop standard and interop and UX design constraints don't mix well. If we wanted to give it good UX, a better language that can be "compiled" to iptables rules is absolutely the way to go. It should have a custom userspace emulator and debugger and possibly be "decompiled" from an existing iptables config for easier reverse engineering and conflict debugging.
-
@D-4got10-01 The reason why we're supposed to "always ask for help" is that the company has a really bad knowledge silo and code rot problem. Nothing has a well-defined contract and half the team wouldn't know what to do with it if it existed, so even uncommon codepaths that are taken once a month tend to become incorrect over time. As a result, the only way to determine how anything works is to work with specifically that subsystem for years and years until you learn the general shape of every single function by heart.
-
@BordedDev it isn't a definite gdpr violation because we're developing the software for about 100 in-house dau and 300 in-house mau, so nobody would gaf. And even if it somehow got flagged as a violation even though it's not especially sensitive data, arguably legitimate interest, and at a very small scale, they would just pay off the regulator from the same money they're too stingy to spend on less than a TB of disk space for individual databases for all active branches, because this is Hungary we're talking about.
-
same, it's a bit of a shame that prety much every Rust job seems to be in this field. I can't wait for robotics and other fields that harbor actual innovation to pick it up. In AI, everyone is trying to sell an idea, be the first to satisfy a use-case, with ready made tools, while contributing as little as possible.
-
@Lensflare Well, in an async context you don't ever need a generator because you can do the same thing with a parallel task and an unbuffered SPSC channel that prevents the sender from continuing until the current message has been received. That's what the snippet on the picture I linked does.
Generators or coroutines are a bit different from async in that they can be called from any function since their public interface can't express waiting for an external event. Rust's Future trait has this capability in the form of the Waker, but you are free to ignore or stub this feature as long as you ensure that you don't ever yield to another async function that uses it, so you can technically accept an async function and then only use it as a compiler-generated state machine. -
The one thing python is good for is calling into high quality libraries that don't have bindings for better languages.
-
@BordedDev I mean me too, but that's because I tried it to see what all the ruckus was about and came away with a detailed list of complaints. I don't bitch about anything I can't reason against.
-
Can you believe that there are people with 5 years of experience who never used Python for anything?
-
On the other hand, we made a competency matrix at work where everyone was supposed to log what they were familiar with in a predetermined long list of languages and libraries and we got scored on it, which is a hilarious management-mandated dick measuring contest.
Anyway, I got like 10x as much as everyone else because I like fucking around with tools. My only low scored category was a big fat zero in AI tools. -
Also, @blindXfish has a devrant-inspired bbs at https://my.devplace.net/ which is in early development so it's not very polished but image uploads happen to work so that's already a big step up from dR.
-
@retoor had a service but she's having server trouble.
-
for a while now. I've taken to using the same S3-compatible bucket I use for the private websites I maintain.
-
@Lensflare well yeah then that struct/class would be the state machine. The point of a generator is that the compiler takes care of converting your function into a state machine.
