@enkiv2@eldritch.cafe
@enkiv2@eldritch.cafe avatar

enkiv2

@enkiv2@eldritch.cafe

A pig in a cage on antibiotics.
Ex-Xanadu, resident hypertext crank.

"Under electronic conditions, there is no escape" -McLuhan
Elsewhere:
@enkiv2 https://mastodon.social/@enkiv2 https://oulipo.social/@nkiv2 https://me.dm/@enkiv2

This profile is from a federated server and may be incomplete. Browse more on the original instance.

markusl, to random
@markusl@fosstodon.org avatar

deleted_by_author

  • Loading...
  • enkiv2,
    @enkiv2@eldritch.cafe avatar

    @markusl
    Yes; pretty sure it's related to other tunnel vision / attention type issues.

    enkiv2, to random
    @enkiv2@eldritch.cafe avatar

    a date? sorry, i can't: a six hour video about a video game i'll never play just dropped, and so did an 8 hour video about a disney channel sitcom i've never heard of

    enkiv2, to random
    @enkiv2@eldritch.cafe avatar

    How Hollywood Corrupts Trans Stories - YouTube https://www.youtube.com/watch?v=5olpTmqsB9o

    enkiv2, to random
    @enkiv2@eldritch.cafe avatar

    Where Does Grounded Electricity Actually Go? - YouTube https://www.youtube.com/watch?v=jduDyF2Zwd8

    futurebird, to random
    @futurebird@sauropods.win avatar

    There is no human genre of music that if you listen to some of the most popular songs and some of the “critically acclaimed” songs you won’t be able to find at least one song that’s interesting enough to listen to a few times and end up liking… challenge.

    Give me a genre.

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @futurebird
    Ambient harshnoise

    enkiv2, to random
    @enkiv2@eldritch.cafe avatar

    when making a cultural product, aim for making it so weird that it almost doesn't work, so that if it doesn't work, then at least it's pretty weird

    enkiv2, to random
    @enkiv2@eldritch.cafe avatar

    language is a technology. government is a technology. writing is a technology. drawing is a technology.

    enkiv2, to random
    @enkiv2@eldritch.cafe avatar

    Mastodon should probably default to hiding replies from non-mutuals from notifications.

    vertigo, to random

    Really getting sick and tired of the "you can't share code if it's statically linked" mantra.

    It's a lie that has been spoken so many times that it has taken on the status of truth.

    But there exists one very significant falsification to that mantra -- AmigaOS.

    This is my yearly reminder to people, it seems, to study exec.library and how OpenLibrary() works. Everything's there.

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @vertigo

    i'll have to dig into this; there are certainly mechanisms for code sharing that do not involve dynamic linking (like message passing & interrupt service routines) but i'm struggling to imagine a code-sharing mechanism based on linking that's not a variation on dynamic linking (even if it's static linking plus a kind of emulation of dynamic linking)...

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @vertigo

    Oh, ok. Yeah, in my head that's a kind of pseudo-dynamic-linking but I'm sure there's some distinction

    Gwendolyn, to random
    @Gwendolyn@eldritch.cafe avatar

    Who came up with the idea that "ph" would make an "F" sound?

    Like, "Sh" makes sense. I can hear how you'd get a "shh" sound... but "ph"?

    I'm sure there's a really fascinating linguistic explanation, but I prefer to think it was invented by some kid trying to write swears without getting trouble.

    "Those phucking phuckers need to die in a phire"

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @Gwendolyn
    'ph' is an orthography we settled on for a strong p in greek (which i think is pi?)

    i know there are linguistics people around who can correct me on this, but i think the plosive beginning of the strong p sound slowly disappeared in greek loan words to some other language (maybe latin?) leaving only the fricative end of the sound

    foone, to random
    @foone@digipres.club avatar

    reading some documentation: "Python is not a strongly typed language"

    WRONG. It's not a STATICALLY typed language. The two are not synonyms, damn it.

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @foone

    half the time when people say strong/weak typing they actually mean static/dynamic typing

    the other half of the type they actually mean nominative/structural typing

    i don't think they ever actually mean strong/weak typing

    enkiv2, to random
    @enkiv2@eldritch.cafe avatar

    the fact that some people find LLMs useful for writing code is not a credit to LLMs but an indictment of the average signal to noise ratio of code: it means that most code is confusing boilerplate -- boilerplate because a statistical model can only reliably reproduce patterns that reoccur many times across its training corpus, and confusing because otherwise-intelligent people capable of convincing a hiring manager that they are competent programmers find it easier to ask a statistical model to produce an incorrect prototype they must debug than write the code themselves. we all know from experience that most code is bad, but for LLMs to be able to write more-or-less working code at all indicates that code is much worse than we imagine, and that even what we consider 'good' code is from a broader perspective totally awful. (in my opinion, it is forced to be this way because of the way we design programming languages and libraries.)

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @feld
    what part of it isn't true? that some professional programmers are trying to use LLMs, or that LLMs produce incorrect code? because I can verify both from experience.

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @feld
    maybe not yet. or maybe you're asking it to produce exceedingly trivial code. either way, you must be at least reading and checking it for bugs -- something that's a lot easier to do with code one has written oneself.

    that said, you've completely missed the point of my post.

    the fact that LLMs perform well enough on code generation that anybody wants to use them instead of coding means that we are doing coding in a fundamentally antihuman, gatekeepy way.

    statistical models like LLMs work well in a narrow novelty range (since they are novelty-minimizing engines). that novelty range is well below the one we would want programming to live in.

    we're supposed to all be refactoring code to avoid duplication, using third party libraries to avoid duplication of effort, writing code that's dense enough that it can be understood and consulted without putting too much load on short-term memory but spread out enough that new maintainers can reason about it. if we were doing that, LLMs couldn't write code based on arbitrary prompts, because most lines of code would be so specific to their top-level requirements that the only patterns that LLMs could learn would be generic -- it would not be able to do any better than a typeahead that checked the current token against a list of reserved words.

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @drwho

    i haven't read enough go code to know how bad it is in practice, though i've written enough to know that some common patterns are extremely awkward and verbose if you do them in a naive way.

    i do know that actual-existing java code is horribly and unnecessarily verbose, that writing clean and dense java code is nigh-impossible because of various stylistic rules enforced by the compiler, and that in practice most java programmers are doing a copy-paste-modify loop for development and don't refactor away even completely identical chunks of code.

    (i've also seen, in real time, as python gets java syndrome and actually-existing python code becomes unnecessarily verbose and repetitive on average -- mostly a result of an influx of java programmers, poor training, & people taking linters way too seriously.)

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @drwho

    part of this problem is probably also not the result of particular languages being poorly designed but the result of people using the wrong language, too.

    the correct language for any job -- for code that ought to survive beyond a few hours -- is the one that makes the resulting code as maintainable as possible. part of maintainability is that the important/novel parts of the code should be more voluminous than the unimportant/generic parts -- that the number of characters in a section of code should roughly correlate to how long you ought to be thinking about it in order to understand it.

    but in a business context where learning new languages is typically considered an expensive distraction, the correct language for a job is assumed to be whichever language some developer already knows (or worse, whichever language was listed in the job listing). so you get a lot of mismatches between language and problem, all of which make the code unnecessarily confusing and some of which make the code into a monstrosity. naturally, when all the code is super confusing, maintainers and developers chunk differently: doing something that would be 1 line in language X is 500 in language Y, and some slightly different action, which would be a completely different 1 line in language X, is also 500 lines in language Y, 300 of which are near-exact duplicates that due to language affordances can't be easily factored out.

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @mnl @clacke

    The thing is, we already have constraint solvers and optimizing compilers.

    The common solutions (like template expansion systems) are a nightmare, sure: nobody wants to write m4 code. But if you have a requirement, and you want to generate code to satisfy the requirement that actually works without writing any code yourself, the right way to do this is to use a constraint solver.

    Normal code-monkey ecosystems have almost no interaction with the kind of tooling that solves these problems reliably -- they aren't covered in most university undergraduate CS programs, and they were too slow and awkward to use for this purpose when they were originally invented in the late 60s -- but there's no theoretical reason why we can just write formal requirments as prolog & generate javascript or whatever, provided somebody writes an ontology for doing it.

    Retaining compatibility with popular and widely-used technical stacks is a killer in this respect, though: prolog is slow because optimizations intended for early-70s hardware (now incorporated into the standard) prevent certain modern hardware features from being used, algol68-like languages (i.e., basically every 'mainstream' language) are structured in a way that makes most tasks unnecessarily verbose but people don't want to learn the 'weird' languages that make these tasks easier, etc. Languages and development tools, outside of the esolang context and the occasional weird experiment like smalltalk, are designed to resemble and interact with the rest of the development ecosystem (and thereby inherit the ecosystem's attitudes and problems).

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @mnl @clacke

    like, sure: the individual developer working for some company doesn't have any power over the tech stack, and is forced to write code that's less maintainable than it could be with proper tooling. and furthermore, the proper tooling largely doesn't exist or is limited to unmaintained experiments. that doesn't mean that we should all give up on the possibility of eventually having non-horrifying computing ecosystems.

    using an LLM to write code is a lot like cramming for tests: it allows you to pass short-term metrics, which is fine if you don't care about long-term or big-picture concerns, but LLM-generated code is never going to be substantially better than the average piece of human-written code, and the average piece of human-written code is trash

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @wakame @drwho

    This is true (and the trend toward using type hints in python code is probably downstream of the influx of java people into python) but many of the elements of 'java syndrome' that have made their way into python don't relate to the type system at all.

    (I think we've really overplayed this whole "the most important part of any programming language is the type system" thing. Certain representations of types are powerful in unexpected ways, but using these powers is awkward, and only type system nerds know how. You know what else is unexpectedly powerful but difficult to use? The c++ template system, and every esolang.)

    Something like a decade ago, because big data was hype and numpy was a thing, a bunch of people who learned java in college started writing python that's structured like java: a billion tiny little classes that, individually, do nothing, all in a complicated class hierarchy, intermixed with single giant totally-procedural monolithic functions that do all the real work (when the dev gets tired of figuring out the class hierarchy); running linters to enforce somebody else's idea of what good code looks like; integration with big build systems and CICD pipelines. Pretty quickly, you got the kind of code that makes people want to install an IDE.

    Python used to be the kind of language where you can write a quick function, naively, that's a couple of lines long, to perform even fairly complex tasks, and that function will typically be longer but more readable than the equivalent perl. Now, it's more like java: a piece of software enforces a list of 'best practices' written by a committee and following those best practices turns a program from four lines of simple understandable code into fifty lines of Extruded Software Product.

    enkiv2, to random
    @enkiv2@eldritch.cafe avatar

    i don't like light mode because using light mode means i need to turn on the lights in my house (and probably even install more lights) if i want to use my computer & also do things around the house. but a computer monitor is a light source, so it makes sense to just tune it so that the amount of light it puts into my eyes when i look at is is comparable to the amount of ambient light reflected off of the surfaces in my home. it's not possible to dim your monitor to the point where a white background won't ruin your night vision, but combining a black background with a red, green, or amber foreground works fine.

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @whitequark @ljrk

    Well, they can submit one, but that doesn't mean I'll approve it (or even really look at it)...

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @whitequark @ljrk

    It is. I don't think it's a tenable policy for anything other than, like, medical equipment & maybe cryptography.

    Those things can have the highly technical and supportable aspects modularized out, though.

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @whitequark @ljrk

    My policy is that any software development I do in my spare time is for me, and while I allow everybody else to have it, I don't owe them anything.

    So -- "maintained" or "unmaintained" is more of a spectrum. How many years has it been since the last commit? Do I actually remember this section of the code? Is the problem interesting? All of these are factors in what the binary "maintained" / "unmaintained" means.

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @whitequark @ljrk

    Yeah, software quality is generally quite bad -- proprietary is no better than open source on this. The bar is extremely low on doing better than average here.

    I suspect that much of the problem is organizational: how do we think about what a program is with respect to who uses it, and how would we do that differently if we wanted to invite users deeper into the development process -- what kinds of possibilities would that open up for us. I think that a lot of software can afford to be bad (software that performs a task acceptably enough for its developer's purposes) and some software needs to be extremely solid (like cryptography, statistical and mathematical libraries, core OS functions), and we don't distribute the workload in a sensible way.

    This belief might be a little self-serving: if I take it seriously, then the correct response is not to make Extremely Solid Applications (which I find kind of tedious) but to write polemics (which I enjoy immensely), make Extremely Solid Libraries (which I find fun), and design New Languages (which I also love).

    feoh, to accessibility

    Partially blind guy here with an PSA:

    I'm seing a trend away from "Text Size" sliders or old fashioned font dialogs and towards a few set choices "Default", "Large","Larger", etc.

    This is a HUGE step backwards. Your 'larger' is never large enough for my crazy busted eyeballs when I'm using my 34" monitor.

    If you must do this, please be sure to add "Largest" and even "ZOMG ARE YOU SERIOUS LARGE" options. Some of us REALLY need them, even if it seems insane to you.

    enkiv2,
    @enkiv2@eldritch.cafe avatar

    @sidereal @feoh @smyth

    I fairly regularly use the text-based client tootstream, & I wrote the TUI client Fern (though some python version compatibility problems are plaguing it right now). There's also the (graphical but minimalist) web client Brutaldon.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • mdbf
  • ngwrru68w68
  • modclub
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • InstantRegret
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • DreamBathrooms
  • JUstTest
  • GTA5RPClips
  • tacticalgear
  • normalnudes
  • tester
  • osvaldo12
  • everett
  • cubers
  • ethstaker
  • anitta
  • provamag3
  • Leos
  • cisconetworking
  • lostlight
  • All magazines