tobii's recent activity

  1. Comment on late.sh - a cozy command-line clubhouse for computer people in ~tech

    tobii
    Link Parent
    I wouldn't recommend using Docker to sandbox it... It's better than going raw, but the point of docker containers is putting your dependencies together, it makes no effort to be a secure sandbox

    I wouldn't recommend using Docker to sandbox it... It's better than going raw, but the point of docker containers is putting your dependencies together, it makes no effort to be a secure sandbox

    3 votes
  2. Comment on What can be done about Linux being slopified? in ~tech

    tobii
    Link Parent
    Off topic; anecdotally, from what I've seen in software, every time someone sees a solution in "a structured format for defining tasks and expectations", it starts as a structured text config file...

    structured format

    Off topic; anecdotally, from what I've seen in software, every time someone sees a solution in "a structured format for defining tasks and expectations", it starts as a structured text config file and then tends to eventually evolve (or devolve, depending on how you look at it) into a programming language to express the tasks and expectations.

    This part I don't necessarily think is true. A lot of compiled languages ship bloated binaries which can be really hard to unwind.

    This is always seen as the result of an unavoidable trade-off between "development speed" and "quality". Looking at the state of software in the world, including the pre-LLMs era, I'd say the bloat is too much.

    I suspect the truth is that 90% of the extra bloat we see in the software running today comes from bad software practices like "use the mega-kitchen-sink-framework, just in case, it's considered very productive and we must ship fast!". The extra development speed rarely justifies the boat.

    Tooling that incorporates programming language research into their designs is amazing nowadays, and I think if we genuinely reconsidered how software engineers learn to deal with complexity over time a bit more deeply than "look at Java Object Oriented Programming, put the complexities in the classes and problems gone", by actually using tools to make life easier, we could have better development time & less bloat. LLMs can benefit a lot from static analysis too, although sometimes I see them do weird workarounds just to avoid a compiler warning.

    Sometimes these run poorly too, but that's not a given.

    Maybe modern CPUs and smart interpreters can do their magic to the point where users don't feel the difference, but still the software uses more resources than it should. If we keep building on top of it, eventually it will become a problem. If it was a bloated incoherent mess, either fix it or accept that it will get worse.

    It's great if we can understand the underlying assembly, but that's not a requirement for functioning and working software.

    Then the underlying assembly is doing what you expect it to do, and you trust that the compiler is working correctly, as the compiler is deterministic, and it follows a well-specified and debuggable set of rules that create the assembly. You've just traded the understanding requirement for trusting that the compiler engineers understand, so you can worry about your source code, instead of assembly. You now focus on making sure the source code follows the rules of the compiler. If it does, and you didn't introduce some logic but into your code, then you will have working software.
    The understanding is still a requirement for working functioning and working software, because what is actually happening on the CPU is still raw instructions.

    LLMs are not compilers, they're not the same process or type of abstraction: I can't trust an LLM, and, because of their design, they will not provide understanding, even if it was made deterministic with a set seed and temperature and all that.

    If I can get the LLM to produce correct code, I will only be able to trust that my input was correct by looking at the produced source code. There simply is no set of rules it actually follows, at least not that a human can understand: it "simply" does matrix multiplications and spits out the highest scoring tokens.

    For a one-shot program, fine, check the produced source code and go on.
    But on a project that needs to evolve over time, which needs to be understood, if the "official description" or "high level definition" of what the software actually does on the CPU lives inside of an LLM, or if the specifications are the input to an LLM, as if really using it like a "higher level compiler", I still don't know what the software will actually do.
    The best we can get is guesswork, which is why it's not the same kind of abstraction as compilers, where high level language (+ compilation flags) is enough.
    BTW all of this ignores the ethical and technical limitations of LLMs.

    I'd even argue that as an industry pre llms few pieces of software had someone who fully understood it.

    When addressing "compilers abstraction <> LLM abstraction", the point is that someone you trust understands it, that it is well specified, that it always follows rules, enough to poke and prod at so that, if you really wanted to, eventually you can find out. All the passes between "high level specification" to "raw machine code" are understood by a group of people that we trust enough.

    This doesn't work for an LLM: we don't know how to follow the LLMs "rules", because even if it's deterministic, some slight change might make it hallucinate completely wrong code, and I have no idea how to actually figure out why. If that can happen for every slight change, it's going to be a useless abstraction, especially compared to what compilers allowed us to do when moving from assembly to something like C.

    If you go into legacy systems even the purpose of the system could be lost a decade ago...

    I mean legacy software is actually a good example of why vibecoded projects turn into an incoherent mess: the understanding of why the code does things is missing.

    Now that doesn't mean we shouldn't care about software quality, just that the situation hasn't really changed much beside the pace at which (often poor quality) software is produced.

    I agree, I mostly wanted to address the "liken the introduction of LLMs to the introduction of compilers" part. I think the state of software engineering was already a disaster, noticably affecting the quality of software. Now it's accelerating in the wrong direction.

    4 votes
  3. Comment on What can be done about Linux being slopified? in ~tech

    tobii
    Link Parent
    Committing all the LLM run parameters to get deterministic output later might be interesting, but without the ability to poke and prod at how the model is created, will all of its training data,...

    Committing all the LLM run parameters to get deterministic output later might be interesting, but without the ability to poke and prod at how the model is created, will all of its training data, I'd argue it's still "opaque" output.

    • compilers versions
    • compilers flags
    • underlying hardware
    • operating system

    Of course, but all of those are well understood, maybe not always by users, but definetly by the compiler people. If I can't get a build environment where I can recreate the exact binary you get, same inputs, then I don't like this compiler. Compiler engineering does focus on this, and most of the times when you can't reproduce an artifact byte for byte, external platform dependencies are to blame, not the compiler.

    So maybe we should look at ways of optimizing the input so we get better output. Maybe some semi structured format for defining tasks and expectations?

    Structured format for defining tasks is a programming language.
    Structured format for defining expectations is programming and tests.

    Point is that today most devs don't care if the compiled assembly is "an incoherent mess", potentially we shouldn't care if the source code we compile is either.

    If the compiled assembly is an incoherent mess, the software will run like an incoherent mess, and we should definitely care, and we should poke at the compiler until we understand why it's doing what it is doing.
    Yes, if it's a silly throwaway program where you don't really care, sure, who cares...
    But as a basis for engineering practices, "(deep) understanding = wasted productivity" is a horrible set of practices for the industry to be barreling towards.

    I still love computers and programming, but if the industry keeps going in this direction, I'll soon be mourning it as a profession, and only do it as a hobby.

    8 votes
  4. Comment on What can be done about Linux being slopified? in ~tech

    tobii
    Link Parent
    I hate it when people claim it's just like compilers. Compilers are deterministic. If you get different results because of a compiler flag, anyone looking over the assembly or anyone familiar...

    I hate it when people claim it's just like compilers.
    Compilers are deterministic. If you get different results because of a compiler flag, anyone looking over the assembly or anyone familiar enough with your programming language and compiler can point and say "that's not right", and fix it. This is possible because the source code and flags are right there for anyone to see, and someone still understands the process that creates your software. If the same input creates different output, that's a compiler bug.

    LLMs don't have that. English is a terrible programming language, wayyy too much ambiguity. If we're genuinely going the "it's just like compilers" route, then we would be checking prompts and LLM versions into version control (no AGENTS.md is not that). Although that might help us understand why the clanker code looks like it does, still, it's a stochastic chatbot, it's not deterministic, it's not a compiler, and proceeding as if it were will eventually create an incoherent mess.

    9 votes
  5. Comment on What programming/technical projects have you been working on? in ~comp

    tobii
    Link Parent
    Turns out the real Turing's Test is the friends we made along the way

    Turns out the real Turing's Test is the friends we made along the way

  6. Comment on What is your dream game? in ~games

    tobii
    Link Parent
    For me this is Blur, but its more multiplayer focused

    For me this is Blur, but its more multiplayer focused

    1 vote
  7. Comment on Apple announces significant price increases for MacBooks, iPads, more in ~tech

    tobii
    Link Parent
    Do you guys stop writing it in all caps because your keyboard gets sore?

    Do you guys stop writing it in all caps because your keyboard gets sore?

    2 votes
  8. Comment on <deleted topic> in ~tildes

    tobii
    Link Parent
    Thank you, I think it's working

    Thank you, I think it's working

    5 votes
  9. Comment on Have you played with bubbles recently? in ~talk

    tobii
    Link
    Thank you so much for this post

    Thank you so much for this post

    4 votes
  10. Comment on Which Linux distro do you use, and why? in ~tech

    tobii
    Link Parent
    I switched from Debian to Void for these reasons, zero regrets.

    I switched from Debian to Void for these reasons, zero regrets.

    2 votes
  11. Comment on Email obfuscation: what works in 2026? in ~comp

    tobii
    Link
    I like this article. The SVG method being better than the HTML entities surprised me a little bit (I know sample size is small but still). I'd expect most scrapers to be something like:...

    I like this article. The SVG method being better than the HTML entities surprised me a little bit (I know sample size is small but still). I'd expect most scrapers to be something like:

    html_content = download_page();
    parts = html_content.split_by(/* whitespace or HTML tag stuff*/);
    for word in parts {
        if word.contains('@') {
            if word.validate_email() {
               send_spam(word);
            }
        }
    }
    

    Where if the SVG element is in html_content, it would probably catch it.

    The "remove .fluff" downside might actually be a benefit, as it would also filter out people that don't read things when commenting :D

    1 vote
  12. Comment on What's something you've moved on from? in ~talk

    tobii
    Link Parent
    That's a lot! I want one (or I think I do), not for speed but for the ergonomics, I'm starting to feel discomfort from angling my wrists when I type correctly.

    That's a lot!
    I want one (or I think I do), not for speed but for the ergonomics, I'm starting to feel discomfort from angling my wrists when I type correctly.

  13. Comment on What's something you've moved on from? in ~talk

    tobii
    Link Parent
    But @delphi, what about split keyboards?

    But @delphi, what about split keyboards?

    2 votes
  14. Comment on How to get found by recruiters on LinkedIn in ~tech

    tobii
    Link Parent
    Yeah, I'm also a software engineer. I originally created my profile because I felt obligated. For my current job it's not a requirement, but for landing the job it was. My first interactions with...

    Yeah, I'm also a software engineer.
    I originally created my profile because I felt obligated. For my current job it's not a requirement, but for landing the job it was.

    My first interactions with LinkedIn were to find an internship (I'm in Europe). I'd agree: it's pretty critical, and we were told so as students entering the workforce.
    I remember during the last year of university we had an event on campus, something like a job fair. At the end of all the companies presentations, one of our professors have a talk where she offered us some wisdom and encouragement (a lot of platitudes you'd already have heard a hundred times at that point). During that, she asked us to raise our hand if we had created a LinkedIn profile, all hands were up. Next: how many people had updated their profile just before the event, and still most hands stayed up, which got an approving nod from her. At the time that really surprised me, I remember this kind of depressing thought of "oh no, this garbage might really be necessary?".
    It might not be a requirement if you already have a good job or connections to a role you want. However, it's likely that you don't, and if you're looking for a job, then LinkedIn is sadly the default (at least in software), where recruiters will try to find you, the first place where companies advertise open roles, and where people advertise that they are looking for a role. It is a shame because it's also flooded with fake jobs and incredible amounts of other bullshit, which makes it awful.
    I created a profile out of a feeling of obligation, but for the path that I have taken (mediocre software engineer) I'd say it was required, it wouldn't have been possible without it. I'm lucky enough to have an OK job right now, so I can stay far away, and only update the profile if I start looking again.

    14 votes
  15. Comment on How to get found by recruiters on LinkedIn in ~tech

    tobii
    (edited )
    Link
    Yes all probably very true and helpful, still the fact that this exists and might be necessary makes me want to put a screwdriver through my eyeballs. I hate LinkedIn so much, it's such a...

    Yes all probably very true and helpful, still the fact that this exists and might be necessary makes me want to put a screwdriver through my eyeballs. I hate LinkedIn so much, it's such a cesspool. Interaction with this platform is bad for your soul. A cancerous blend of HR insects encouraged by Satan's spawn doing some sort of American Psycho bit to impress users of the world's most deluded social media. I can't wait for it to die and rot and implode and free us from its theater of uncanny valley vibes, although I imagine whatever marketing/recruiting abomination emerges from its corpse will somehow be worse.

    45 votes
  16. Comment on <deleted topic> in ~comp

    tobii
    Link
    Fucking FINALLY! My ls -la ~/ will be perfect at last. I found it insane that this bug had been open for 21 years.

    Fucking FINALLY! My ls -la ~/ will be perfect at last. I found it insane that this bug had been open for 21 years.

    2 votes
  17. Comment on Known as 'the trip chocolate', Kvikk Lunsj has fuelled outdoor Norwegian adventures for generations in ~food

    tobii
    (edited )
    Link
    I just had the first Kvikk Lunjs of my life this week, during a hike in Norway. I expected it to be just a KitKat. It is a little bit better than a KitKat, but I do think the reason these vikings...

    I just had the first Kvikk Lunjs of my life this week, during a hike in Norway. I expected it to be just a KitKat. It is a little bit better than a KitKat, but I do think the reason these vikings love it so much is more nostalgia than the actual product (on a hike you might as well eat banana).

    I looked into the history of Freia, the company that makes Kvikk Lunjs, and it seems it was acquired by Mondelēz in 1993. Can any Norwegian tilderono that has tried pre 1993 Kvikk Lunjs confirm if that changed the quality?
    The article mentioned an early dark chocolate version of it, and I kinda wanna try it...

    5 votes
  18. Comment on What's your current PC wallpaper? in ~tech

    tobii
    Link
    I am sensing a distinct lack of bliss in these answers.

    I am sensing a distinct lack of bliss in these answers.

    3 votes
  19. Comment on Make new friends here! in ~life

    tobii
    Link Parent
    Depressingly relatable :/

    Depressingly relatable :/

    2 votes
  20. Comment on How Tea’s founder convinced millions of women to spill their secrets, then exposed them to the world in ~tech

    tobii
    Link Parent
    Thanks for the detailed answer :> I think I see some holes in this method, but I'm bad at talking about cryptography and authentication so I'm gonna go with an example: Imagine Alice wants to...

    Thanks for the detailed answer :> I think I see some holes in this method, but I'm bad at talking about cryptography and authentication so I'm gonna go with an example:

    Imagine Alice wants to visit GenericAdultWebsite.com and she has paid TrustedVerifier for a certificate. She proved she's older than 18 to TrustedVerifier. She also wants to apply to GenericInsuranceOnline.com.
    Both sites require her to provide proof she's over 18 years old.

    • How does she avoid using info that exposes her identity across both websites? Does she have to trust the sites not to keep the public key?
    • Would she ask the verifier for two distinct keys that the sites can use? Does she pay per key?

    The way I understand it now, either the certificates lose credibility because Alice could generate as many keys as she wants (and let other people use them), or she has to trust the sites not to keep verification info that can identify her somehow: meaning she has to keep paying for every proof.