Off-and-on trying out an account over at @tal@oleo.cafe due to scraping bots bogging down lemmy.today to the point of near-unusability.

  • 299 Posts
  • 9.98K Comments
Joined 3 years ago
cake
Cake day: October 4th, 2023

help-circle

  • There’s one “platform”, the Threadiverse, with three major current software packages (Lemmy, PieFed, and Mbin) that provide instances that interoperate. Unlike Reddit, there are those three different software packages that can be used to run instances, not a single codebase. You will choose a home instance (for you, nord.pub, which is PieFed) where your account lives, and which displays most of the content you see. There are also instances that host communities, and some of those probably don’t live on your home instance (e.g. you are posting this to the asklemmy community on the lemmy.world instance, which runs Lemmy).

    Lemmy was the original software package. It is written in Rust, which tends to be more-popular with systems programmers, which I think probably makes it a harder to get commits; Rust isn’t heavily used by Web developers, and a lot of the package is Web backend software. (I say this without any special bias against Rust; I personally would probably prefer writing software in Rust in general.) Some of the developers have hard auth-left positions (like, they want the Soviet Union back and Stalin is top-notch) which is a major turnoff to some users, especially since the main development instance, lemmy.ml, has admins that moderate along those lines in some ways. Lemmy is by far the most-widely-used software package as of this writing. Lemmy also has a number of “alternate Web frontends” — I don’t think that this is true of the others, though the PieFed situation may have changed since last I looked. Lemmy also has the most support from mobile clients (though as of this writing, all of the three packages have mobile clients that support them). I can think of a few things that Lemmy can do, like be set up to proxy images for users with a Lemmy home instance, that I don’t know if the others can do yet. Lemmy’s had a couple of really bad releases in terms of bugs, but nothing really substantial that I can think of recently, though I don’t admin an instance. The biggest Lemmy instance is lemmy.world, if you want to take a look at its Web UI.

    PieFed was a follow-up, done by a guy in IIRC New Zealand. It’s written in Python, a language that tends to be more-used in Web dev. There are far fewer PieFed instances, but I’d say that it’s generally been gaining userbase relative to the other two. I feel like the rate of development is generally quicker. I’ve seen some people saying that PieFed performance is generally better than Lemmy; I have not validated this myself. In general, Rust tends to be more performant than Python if you know what you’re doing, but the performance limitations on a package like PieFed and Lemmy are probably I/O and database-related, where the language doesn’t play much of a role, so I could believe this. PieFed’s Web UI lets one use keystores (like YubiKeys or similar) to authenticate, which I don’t believe that Lemmy can do. PieFed has the ability to rewrite links so that links posted by someone else don’t send you to another instance off your home instance, which…I’m not completely sold on, but I think is probably the best current fix for the problem of not being able to link to comments and posts on other instances without taking someone off their home instance and is generally easier for users. PieFed’s Web UI merges cross-posted articles into a single page of discussion. PieFed used to have better blocking features than Lemmy, could let users do instance blocks, but I think that Lemmy has caught up here. I’m currently using a Lemmy home instance because I’m happy with that instance, but if I were personally to choose a new instance, I’d probably favor a PieFed instance, all else held equal. The biggest PieFed instance is piefed.social.

    Mbin is a continuation of a discontinued project, Kbin. Kbin was originally done by some Polish guy, IIRC on an educational grant from the EU. I believe that this was more of a university project for him; he got kind of overwhelmed by the equivalent of a city of people flooding in when Reddit banned third-party clients, hadn’t really been planning to change the world. I think that Mbin is mostly being developed by a European set of users, but I haven’t spent much time poking at it after the fork from Kbin. It’s written in PHP, a language that’s pretty backend Web-dev oriented, but also tends not to be used much outside of that area. Its main claim to fame is that it tries to combine both Reddit-like threaded community forum discussions and Twitter/-like microblogging functionality, interoperates with Mastodon. I haven’t used it much recently, but last I did, I hit a number of what looked like bugs; I feel like it’s presently lagging on development. There are some things that I like about the Web UI, though I found it a bit annoying to rapidly access one’s list of subscribed communities. Last I looked, the Lemmy “spoiler” block to hide spoiler text in comments didn’t work on Mbin, but that may have been fixed. The biggest Mbin instance is fedia.io.

    All three have some subtle incompatibilities in their Markdown syntax, the language that you write your posts and comments in, but they’re close enough that it’s not generally an issue.

    In general, the decision from an end-user standpoint mostly comes down to which you want as your home instance, since they have different Web UIs. If you never use the Web UI, it’ll probably matter less; a client like Interstellar talking to a Lemmy instance looks pretty much like when it’s talking to a PieFed instance. You’ll probably use communities hosted on all three (as you are currently, with !asklemmy@lemmy.world being on Lemmy and your home instance of nord.pub being PieFed) and not notice the difference there.

    EDIT: I guess I should probably provide a summary-and-conclusions section:

    • Unless you’re a developer or administering an instance, the main difference you see is probably in the Web UI that is presented, if you use the Web UI.

    • There are some functional differences, though they often have copied successful features from each other.

    • Mobile client support exists for all three, but not all mobile clients support all instance types. Interstellar on Android supports all three, if you want to use a single client for all of them.

    • You can have accounts on home instances of all three types if you want, so easy enough to try out all three. I presently have my main account on a Lemmy instance, but I also keep an account around on a PieFed instance, which I’ve occasionally used as a backup if my main home instance is having technical issues or similar so that I can still respond to people; it’s a nice option that Reddit doesn’t really have. When Reddit goes down, the whole thing is down. The Threadiverse not infrequently has one instance somewhere having some sort of issue, but the thing doesn’t go down as a whole.


  • tal@lemmy.todaytoAsk Lemmy@lemmy.worldWhat Lemmy/Piefed/Mbin clients do ya'll use
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    edit-2
    5 hours ago

    Native Web interface on desktop. Eternity for Lemmy on Android. Interstellar for PieFed on Android.

    EDIT: While the last time I used Mbin on Android, there was only the PWA client, I suppose I’d probably at least try Interstellar for Mbin if I were using an Mbin instance right now. Can’t vouch for it specifically on Mbin instances, though; no experience with it there. My assumption is that the experience would be pretty much the same as Interstellar elsewhere.

    EDIT2: On the desktop Lemmy native Web interface, I do use the Firefox add-on Instance Assistant for Lemmy & Kbin on Lemmy instances. Lemmy doesn’t really have a great way to link to anything other than communities via bang links (!community@instance); any other link (like, if someone wants to link to a comment or post) takes you off your home instance. You will probably run into links that take you off your home instance. This sticks a button in the sidebar of Lemmy instances to let you bounce to the same page as viewed through your home instance.

    If you use a PieFed home instance, it tries to deal with this by rewriting links in posts and comments targeting other Threadiverse instances to aim at pages on your home instance. That has some benefits — simpler for an end user — but also some problems in that it’s kind of obnoxious if someone explicitly wants to link to a page on another instance. But if you’re using a PieFed home instance, you probably won’t run into that problem, so you won’t need the add-on.

    I don’t know whether and if Mbin attempts to address the problem.



  • I am not familiar, but, cutting the “changes” section out of a review:

    https://www.rpgland.com/games/hoshigamiremix/review.html

    Remix adds various, easier difficulty levels, new character art, redone music, a new character, and an overhauled localization.

    Another problem with the game is the extreme lack of portability. It is a DS title, and as such should be capable of being played for small amounts of time at once. Unfortunately, there is no suspend feature to allow for saving while in battle. Factor in that the average battle can take 20-40 minutes and that sometimes one battle immediately follows another with no break for saving, and here’s a game that is not at all good for playing on the move.

    So going entirely off that, it sounds like the remake is probably preferable, but it might not be a good idea if you plan to play the DS game as a “mobile” game — dropping into the thing for a few minutes while waiting in a line or something.



  • tal@lemmy.todaytolinuxmemes@lemmy.worldTerms of Service
    link
    fedilink
    English
    arrow-up
    1
    ·
    17 hours ago

    Instead of using fbcon (the default, in-kernel framebuffer-based terminal emulator), use fbterm (a userspace framebuffer terminal emulator, which supports backgrounds) with fbv as specified in the fbterm man page.

    It looks like there’s also a patch, fbcondecor, to add background support to fbcon, but it’s not in vanilla kernel.







  • I’m not personally familiar with Synology’s products, but if what’s going on is that you’re using some built-in feature of a Synology NAS to copy files from a USB drive to the NAS and seeing an error, I’d probably try copying that particular file to somewhere else on a PC, cutting the NAS out of the loop, to make sure that you don’t have, say, a corrupt filesystem where attempts to read the file contents are failing.



  • If one takes the position that part of the issue was that various leaders and diplomats hadn’t appreciated the degree to which military plans with fixed mobilization schedules essentially made it very difficult to back down once mobilization has started, I suppose that it’s possible that some clever people could have figured that out and started a series of arms control treaties aimed in such a way as to provide “breakpoints”, where even once mobilization had started, the move towards war could be reversed.

    https://en.wikipedia.org/wiki/Causes_of_World_War_I

    Primacy of offensive and war by timetable

    See also: Cult of the offensive

    Moltke, Joffre, Conrad, and other military commanders held that seizing the initiative was extremely important. That theory encouraged all belligerents to devise war plans to strike first to gain the advantage. The war plans all included complex plans for mobilization of the armed forces, either as a prelude to war or as a deterrent. The continental Great Powers’ mobilization plans included arming and transporting millions of men and their equipment, typically by rail and to strict schedules.[citation needed]

    The mobilization plans limited the scope of diplomacy, as military planners wanted to begin mobilisation as quickly as possible to avoid being caught on the defensive. They also put pressure on policymakers to begin their own mobilization once it was discovered that other nations had begun to mobilize.[citation needed]

    In 1969, A. J. P. Taylor wrote that mobilization schedules were so rigid that once they were begun, they could not be canceled without massive disruption of the country and military disorganisation, and they could not proceed without physical invasion (of Belgium by Germany). Thus, diplomatic overtures conducted after the mobilizations had begun were ignored.[152] Hence the metaphor “war by timetable”.

    Russia ordered a partial mobilization on 25 July against Austria-Hungary only. Their lack of prewar planning for the partial mobilization made the Russians realize by 29 July that it would be impossible to interfere with a general mobilization.[citation needed]

    Only a general mobilization could be carried out successfully. The Russians were, therefore, faced with only two options: canceling the mobilization during a crisis or moving to full mobilization, the latter of which they did on 30 July. They, therefore, mobilized along both the Russian border with Austria-Hungary and the border with Germany.[citation needed]

    German mobilization plans assumed a two-front war against France and Russia and had the bulk of the German army massed against France and taking the offensive in the west, and a smaller force holding East Prussia. The plans were based on the assumption that France would mobilize significantly faster than Russia.[citation needed]

    On 28 July, Germany learned through its spy network that Russia had implemented partial mobilisation and its “Period Preparatory to War”. The Germans assumed that Russia had decided upon war and that its mobilisation put Germany in danger, especially since because German war plans, the so-called Schlieffen Plan, relied upon Germany to mobilise speedily enough to defeat France first by attacking largely through neutral Belgium before it turned to defeat the slower-moving Russians.[citation needed]

    Christopher Clark states: “German efforts at mediation – which suggested that Austria should ‘Halt in Belgrade’ and use the occupation of the Serbian capital to ensure its terms were met – were rendered futile by the speed of Russian preparations, which threatened to force the Germans to take counter-measures before mediation could begin to take effect.”[153]

    Clark also states: “The Germans declared war on Russia before the Russians declared war on Germany. But by the time that happened, the Russian government had been moving troops and equipment to the German front for a week. The Russians were the first great power to issue an order of general mobilisation and the first Russo-German clash took place on German, not on Russian soil, following the Russian invasion of East Prussia. That doesn’t mean that the Russians should be ‘blamed’ for the outbreak of war. Rather it alerts us to the complexity of the events that brought war about and the limitations of any thesis that focuses on the culpability of one actor.”[154]

    If someone realized the implications of these war plans, they might have either placed more weight on pre-mobilization diplomacy or had some arms control agreement that reduced some of the time pressures and didn’t turn mobilization into an escalation spiral that led to all-in war.

    I am not saying that that would have happened had Franz Ferdinand not been assassinated, but I could at least imagine that time a non-assassination might have bought might have made it possible.


  • I wouldn’t refuse to use an LLM for coding if it were specifically requested by management. I mean, I might advise as to risks, but ultimately, if a business is willing to put their resources on the line as a business decision, then okay, their capital, their call. But I wouldn’t personally be spending time on it in 2026 on my own initiative either. Maybe for some special cases that are particularly well-suited to it, like “I need a limited amount of throwaway code in a language that I don’t know”.

    Why not?

    Software development has a lot of stuff that’s asserted to “change the world” come along all the time. Could be new tools, new programming languages, new paradigms, new validation software, whatever.

    First, assuming that one really does take over — be it a new programming language or a new editor or a particular LLM generating code — it’s typically easier to let other people do the work of breaking the path, since whatever the thing is typically not in a fantastic state. There are problems that are going to need to be solved. Some of those may never be solved, whatever the promises or expectations. And some of the early workarounds may be unnecessary in the long term. The first-mover benefits, on the other hand, aren’t likely that big a deal (and I think that we have enough data out now to show that while there might be benefits, as things stand, they aren’t that large).

    Second, a lot of the time, things that are put forward as being the future are not, in fact, the future. If you sit back and watch, then you don’t burn time heading down every new blind alley. If LLM-assisted coding becomes the norm, then five years from now, a lot of data will have been gathered showing that using them in coding produces benefits and what those benefits are, as well as drawbacks.

    Specifically in the case of AI writing software, I am pretty sure that in the long run, AI will be writing software at a human level. Same as AI will be doing a lot of things. But I am not at all sure that that it’s going to be an LLM of the present form taking the present approach. Also, a lot of the workarounds to learn today to deal with present limitations of the tools may not be the ones needed down the road. Further, those limitations probably vary by tool even today; I’m not very interested in learning how to try to get Llama 3 to do something only to switch to ChatGPT only to switch to Claude.

    Another issue is that most current code-generation models run on cloud services, which raises security and dependency issues.

    Plus reproducibility issues. Even if I decide that, say, a cloud-based LLM of a particular version works well and the tradeoffs are acceptable and I tune my workflow to use it, then I’m spending a lot of time learning to deal with one LLM. If that particular version of an LLM later becomes unavailable — as has happened to users in the past — then it may be that all the workflow and workarounds that I’ve developed are more-or-less useless, if the provider decides to alter the revision of the available model or entirely remove it. I enjoyed using Stable Diffusion 1.5, and picked up and developed a number of techniques that work well with it. But those same techniques don’t work well with even all models derived from SD 1.5, and if one’s using a different diffusion model like Flux, then suddenly all the rules go out the window and one is starting at ground zero.

    In the case of Stable Diffusion and Flux, I’m okay with that. I’m not professionally an image manipulator, so I’m not building much expertise on a foundation of sand, and I run both of them locally, so my ability to run them can never be taken away. But that’s not true when cloud services enter the picture.

    The reproducibility issues might be mitigated in some ways at a business level — AI service companies could enter into some sort of escrow agreement under what an LLM is guaranteed to be available as a service for N years or something, and if they go under some other company automatically becomes a provider, but frankly, I don’t think that any benefits now warrant that level of hassle.

    My expectation is that existing LLM service cloud providers — which are currently losing money — will, later on, do things like raise prices or otherwise use their leverage to make more money. That is, they are currently in a growth phase, where they accept losses to build their user base. Later, they will shift to a monetization phase. If you are heavily locked into use of that service, they can extract from you up to the cost of shifting off of their service, and you will keep using the service. My guess is that the costs of transitioning off might be quite substantial.

    EDIT: Okay, one exception to the “I wouldn’t refuse” case. If (a) I were working at a startup and (b) a substantial amount of my compensation were in the form of stock options or similar and (c) I were personally convinced that use of AI-assisted-coding would be an extremely bad move for the company, then I might take a “if we do LLMs, I walk out the door” position, because then it’s my capital on the line, not just the company’s. Part of the point of equity compensation is precisely to give you a kick in the rear to get you to act as you see being in the interests of the company. That being said, I’d try to talk to whoever was involved in making the decision to use it first in a scenario like that, to try to understand our difference in opinion on the matter, see if it couldn’t be reconciled.


  • untested

    Require new contributors to add test code with their patch that hooks into your continuous integration system, and have part of that CI path use a code coverage tool to validate that their test code is actually executing the patch in question?

    I mean, that:

    • Creates a speedbump that I’d assume that low-effort patches — LLM-generated or otherwise – won’t get past.

    • Shouldn’t obstruct someone willing to put effort into their patches.

    • Doesn’t affect long-term contributors at all.

    • Ensures that at you have at least some level of minimum test coverage. Yes, theoretically they could have not actually run their test code themselves and only have it running as part of your CI path, but even then, at least something is running it, and it’s probably going to be pretty obvious if they keep pushing a PR many times until it passes.

    • If you can get some LLM to generate test code that’s actually being run, good (well, okay, it might not be sufficient, but it’s at least clear that it’s not crashing the program or similar).


  • It doesn’t seem like a crazy idea to me to have some “second tier” of packages that undergo a higher level of scrutiny and have to pass that before they are released in that tier.

    Maybe an arbitrary set of security endorsements would be more flexible.

    That permits retaining a low bar for just making the stuff initially-accessible in packaged format, but also helps developers in raising the floor.

    Like, okay. Say I have something like:

    $ cat .config/npmrc
    required_security_endorsements=["npm_auto_audit", "maintainer_id_validated", "european_cybersecurity_competence_center_tier_1", "nsa_tier_1"]
    $
    

    An attempt to install a release of a package without those endorsements fails.

    That’s going to always create pressure to get something a security endorsement so that it can be used by people who only permit packages with some given security endorsement, but it lets parties start running security endorsement projects to improve the situation without excluding any existing projects from pushing stuff to npm.

    EDIT: Also, I’ve not done much node.js development, but assuming that the dependencies in a package manifest default to the newest version unless specific frozen versions are mandated, a la PyPI, it might reasonably be able to fall back to versions with the required security level automatically, if they’re available. If the dependency format permits specifying optional dependencies, a particular dependency could be automatically excluded to conform to the security endorsement requirements list.


  • “Zbijgl, my old fart, my favmamort n n n n number is 183442356742255214676213566873225566333543”

    https://www.workableweb.com/_pages/tips_how_to_write_good.htm

    How To Write Good

    Lesson 1 - The Grabber

    The “grabber” is the initial sentence of a novel or short story designed to jolt the reader out of his complacency and arouse his curiosity, forcing him to press onward. For example:

    “It’s no good, Alex,” she rejoined, “Even if I did love you, my father would never let me marry an alligator.”

    The reader is immediately bombarded with questions, questions such as “Why won’t her father let her marry an alligator?” “How come she doesn’t love him?” and “Can she learn to love him in time?” The reader’s interest has been “grabbed”!