Skip Navigation

User banner
Posts
10
Comments
767
Joined
2 yr. ago

  • Absolutely no self-reflection at all. Why, precisely, are Sikhs in Canada in the first place? Why are they protesting against India? Could it have anything to do with the politics of hatred Modi is spewing?

    Nah. It's Trudeau's fault obviously!

  • Sloppiness is rarely contained in one narrow area. If programmers are so sloppy they're using up 1.5-2GB to do literally nothing, then they're sloppy in how they do pretty much everything.

    My very first computer had all my friends exceedingly jealous. I had 208KB of RAM see. (No, that's not a typo. KB.) I could run four simultaneous users, each user having 48KB of RAM with a staggering 16KB available for the operating system. I had available spreadsheet and word processing applications, as well as, naturally, development applications. (I also had a secret weapon that drove my friends crazy: while they were swapping around their floppy disks holding 160KB of data each, I had two of those … and I had a 5MB hard disk!

    I compare those days to now and I have to laugh. My current computer (which is considered pretty weak by modern standards since I don't game so I don't give a fuck about GPUs and ten billion cores and clock rates in the Petahertz range) is almost four orders of magnitude faster than that first computer at the CPU level. I have six orders of magnitude more disk space and the disks are at least 3 orders of magnitude faster (possibly more: I don't have the stats for the old drive on hand.) I have five orders of magnitude more memory and it, again, is probably 3 orders of magnitude or more faster.

    Yet …

    I don't feel anywhere from 3 to 6 orders of magnitude more productive. Indeed I'd be surprised if I went about an order of magnitude better in terms of productivity with this (barely) modern machine than I had with my first machine. Things look prettier (by far!) I'll admit that, but in terms of actually getting anything done, these thousands, to millions of times more resources are basically 100% wasted. And they're wasted precisely because every time we increase our ability to do something in a computer by a factor of 10, sloppy- and lazy-assed programmers increase the resources they use to get things done by a factor of 11.

    And it shows.

    That old computer? Slow as it was, it booted from nothing to full, multi-user functionality in 10 seconds. 10 seconds after turning the power on, I could have up to four users running their software (or in my case one user with four screens) without a care in the world. Loading the word processor or spreadsheet was practically instantaneous. One, maybe two seconds. It didn't register as a wait. I just timed loading LibreOffice Writer on this modern system that runs four orders of magnitude faster. Six seconds, give or take. Which not even a slow-loading program! (Web browsers take significantly longer….)

    And you know what problem I never once faced on that old computer running under a ten-thousandth (!) the speed? Typing faster than the system could keep up while displaying text. Yet as I type this I'm consistently typing one or two characters faster than the web browser can update plain text in a box. More than a ten thousand times faster!

    So yes, yes it matters. When a system made likely before you were even born is running circles around a modern system in key pieces of functionality (albeit looking far, far, far prettier while doing it!), there's something that's going horribly wrong in software. And shit like VS Code is almost the Platonic Form of what's wrong with software today: bloated, slow, and so overpacked with features it has no elegance in functionality or implementation.

    But hey, if you want to waste 2GB of RAM to load a 12KB text file, more power to you! I'll stick with a system that only wastes 30MB of RAM to do the same, and runs faster, and looks cleaner, and is easier to extend. (And since its total code, including the C code and the Lua extensions, is something you can peruse and understand out of the box in a weekend, it's also less buggy than VS Code: that's the other cost of bloat, after all. Bugs.)

  • The thing that made me go to it was its syntax highlighting engine. I tend to use languages that aren't well-supported by common tools (like VSCode), and Textadept makes it simple. REALLY simple.

    As an example, I supplied the lexer for Prolog and Logtalk. Prolog is a large language and very fractious: there's MANY dialects with some rather sizable differences. The lexer I supplied for Prolog is ~350 lines long and supplies full, detailed syntax highlighting for three (very) different dialects of Prolog: ISO, GNU, and SWI. (I'll be adding Trealla in my Copious Free Time™ Real Soon Now™. On average it will be about another 100 lines for any decently-sized dialect.) I've never encountered another syntax highlighting system that can do what I did in Textadept in anywhere near that small a number of lines. If they can do them at all (most can't cope with the dialect issue), they do them in ways that are painful and error-prone.

    And then there's Logtalk.

    Logtalk is a cap language. It's a declarative OOP language that uses various Prologs as a back-end. Which is to say there is, in effect, a dialect of Logtalk for each dialect of Prolog. So given that Logtalk is a superset of Prolog you'd expect the lexer file for it to be as big or bigger, right?

    Nope.

    64 lines.

    The Logtalk support—a superset of Prolog—adds only 64 lines. And it's not like it copies the Prolog support and adds 64 lines for a total of ~420 in the file. The Logtalk lexer file is 64 lines long. Because Textadept lexers can inherit from other lexers and extend them, OOP-style. This has several implications.

    1. It seriously reduced the number of lines of code to comprehend.
    2. It made adding support for another backend dialect automatic. Originally I wrote the Prolog support for just SWI-Prolog and then wrote Logtalk in terms of the Prolog support. When I later added dialect support, adding ISO Prolog and GProlog, to the Prolog support file, Logtalk automatically got those pieces of dialect support added without any changes.

    In addition to this inheritance mechanism, take a look at this beautiful bit of bounty from the HTML lexer:

     lua
        
    -- Embedded JavaScript ().
    local js = lexer.load('javascript')
    local script_tag = word_match('script', true)
    local js_start_rule = #('<' * script_tag * ('>' + P(function(input, index)
      if input:find('^%s+type%s*=%s*(["\'])text/javascript%1', index) then return true end
    end))) * lex.embed_start_tag
    local js_end_rule = #('') * lex.embed_end_tag
    lex:embed(js, js_start_rule, js_end_rule)
    
    -- Embedded CoffeeScript ().
    local cs = lexer.load('coffeescript')
    script_tag = word_match('script', true)
    local cs_start_rule = #('<' * script_tag * P(function(input, index)
      if input:find('^[^>]+type%s*=%s*(["\'])text/coffeescript%1', index) then return true end
    end)) * lex.embed_start_tag
    local cs_end_rule = #('') * lex.embed_end_tag
    lex:embed(cs, cs_start_rule, cs_end_rule)
    
      

    You can embed other languages into a top level language. The code you read here will look for the tags that start JavaScript or CoffeeScript and, upon finding them, will process the Java/CoffeeScript with their own independent lexer before coming back to the HTML lexer. (Similar code is in the HTML lexer for CSS.)

    Similarly, for those unfortunate enough to have to work with JSP, the JSP lexer will invoke the Java lexer for embedded Java code, with similar benefits for when Java changes. Even more fun: the JSP lexer just extends the HTML lexer with that embedding. So when you edit JSP code at any given point you can be in the HTML lexer, the CSS lexer, the JavaScript lexer, the CoffeeScript lexer, or the Java Lexer and you don't know or care why or when. It's completely seamless, and any changes to any of the individual lexers are automatically reflected in any of the lexers that inherit from or embed another lexer.

    Out of the box, Textadept comes with lexer support for ~150 languages of which ~25 use inheritance and/or embedding giving it some pretty spiffy flexibility. And yet this is only ~15,000 LOC total, or an average of 100 lines of code per language. Again, nothing else I've seen comes close (and that doesn't even address how much EASIER writing a Textadept lexer is than any other system I've ever seen).

  • Canadian CRAP, yes. Absolutely. It was Canadian CRAP.

  • Doing nothing from the problem domain. I mean I could make a "hello world" program that occupies 16TB of RAM because it does weird crap before printing the message.

    The problem domain is text editing. An idle text editor (not even displaying text!) is "doing nothing". The fact it was programmed by someone to occupy multiple GB of space to do that nothing is bad programming.

  • Let's not forget that glorious period where they were called the Conservative Reform Alliance. Which everybody in the world instantly turned into the Conservative Reform Alliance Party.

  • And if recognition of your name wasn't enough to identify you as a troll, your subsequent follow-up nailed that coffin shut.

  • This is a common wish in F/OSS circles ... and then the owners/maintainers of F/OSS projects make the process of contributing anything convoluted, difficult, and emotionally draining (via a whole lot of bikeshedding)1.

    When F/OSS projects make contribution culture a thing, they'll get contributors. Until then ... ugh. No. They won't.


    1 Obligatory example: on a particular F/OSS game server a specific command by default gave this massive wave of output that was, for an average user, 95% useless. It listed things the user couldn't participate in. AND it listed the small number of things the user could participate in first, ensuring it scrolled right off the screen before it could get spotted. A user with actual UX design experience posted a long and detailed critique, explaining the problems, explaining why the available suggested solutions were flawed, and made a concrete suggestion for keeping existing behaviour with a simple /all switch on the command while making the default useful for 95% of users. From a quick glance at the code base myself, I figured it would take the maintainers two hours tops to fully implement and test the recommended change. It was a trivial change to metadata in the command processor, not even an actual code change.

    And she got "well akshuallied" to death. A bunch of programmers with zero knowledge of UX, no perceivable talent for tasteful design, and egos that got bruised by the suggestion that their output wasn't perfect dumped on this poor woman (the fact she was a woman being, I suspect, a major factor) to the point she's sworn never to get involved in suggesting anything for a F/OSS project ever again. Because F/OSS communities are just that toxic.

    So solve that problem and you'll get UI and UX designers galore. And maybe get people who'll document too, provided you don't tell them (literally!) that their contributions matter less than code. (Because nothing motivates contribution better than telling people doing the contributions that they don't matter!)

  • By making it convenient on the tech side

    This more than anything, I think, made the largest difference. There were lots of alt-scolds on every other platform, but Mastodon embraced alt text to a far greater degree ... BECAUSE IT'S SO EASY.

  • Respond with contrarian-bait and then go slap-happy with blocks. Eventually the professional contrarians vanish from your feed never to be seen again.

  • That it's filled with people who complain about it being filled with Marxists despite clearly not having any idea what a Marxist actually is.

  • I use Textadept over any of the named ones, including VS Code. (I use the vi subset of Vim for remote access to machines I haven't yet installed Textadept on.)

    Why?

    I have a moral objection to ... Well let me show you:

    One of those is VSCode (well, VSCodium, which is VSCode without Microsoft's spyware installed), and the other is Textadept. One of those is occupying almost 30MB of memory to do nothing. The other is occupying about 1.5-2GB of memory ... to do nothing. In both cases there are no files open and no compilers being run, etc. I find this kind of intense wastefulness a sign of garbage software and I try not to use garbage software. (Unfortunately I'm required to use garbage Windows 10 at work. 😒)

    Oh, and Textadapt has both a GUI version (and not the shit GUI that Emacs provides in its GUI version!) and a console version, allowing me to quickly get it running even on remote machines I have to use. VSCode/Codium ... not so much. I'd have to run it with remote X and ... that is painful when doing long-distance stuff.

  • By stopping asking how to make it more popular and starting making it a place that could become popular.

  • If they perpetrate and normalize advertising-driven income, they effect every part of the Internet. That's the whole point of this entire thread: ads are the Original Sin™ of the Internet and shit little sites like this perpetuate this toxic mix.

    If they can't pay a buck a month for themselves, their hobby deserves to die.

  • Ah. So turning the Internet into a Hellscape of graffiti and malware is fine so that 300 idiots who can't afford a buck a month won't, and I quote, "dox my ass".

    What's the word again for a (typically very small) minority trying to force their will on a (typically very large) majority by using actions intended to create fear? You know, actions intended to create terror in the target audience. The word's on the tip of my tongue...

    Fuck the 300. If they can't afford a buck a month then their hobby can just die. I don't want to have to put up with advertising spam on literally everything my eyes fall on just because 300 "girls" will "dox my ass".

  • I'm happy that the total destruction of the Internet into a Hellscape of graffiti and malware is helping your 300 people save a buck a month.

  • I understand that. And those people buying and selling clothes on that site can't afford a buck a month?

  • This is because they have no fucking clue what a 15-minute city even is and just reflexively knee-jerk "libbrulz bad!"

    They're idiots, in short, who don't understand what they're complaining about, don't care to understand it, because in the end it isn't anything to do with the thing but rather the tribe.