I think you can keep doing the SMB shares and use an overlay filesystem on top of those to basically stack them on top of each other, so that server1/dir1/file1.txt
and server2/dir1/file2.txt
and server3/dir1/file3.txt
all show up in the same folder. I’m not sure how happy that is when one of the servers just isn’t there though.
Other than that you probably need some kind of fancy FUSE application to fake a filesystem that works the way you want. Maybe some kind of FUES-over-Git-Annex system exists that could do it already?
I wouldn’t really recommend IPFS for this. It’s tough to get it to actually fetch the blocks promptly for files unless you manually convince it to connect to the machine that has them. It doesn’t really solve the shared-drive problem as far as I know (you’d have like several IPNS paths to juggle for the different libraries, and you’d have to have a way to update them when new files were added). Also it won’t do any encryption or privacy: anyone who has seen the same file that you have, and has the IPFS hash of it, will be able to convince you to distribute the file to them (whether you have a license to do so or not).
I think the article is probably right. A software developer should be able to make software to do whatever needs doing. Maybe not good at any given thing, but able to do it. Eventually. Nobody wants a software developer who isn’t themselves Turing-complete.
Will they always do it the Right Way if they spent 10 years learning compiler design and you want them to program an ESP32? Of course not. But if you hired a compiler engineer who cannot teach themself to solve a user’s ESP32-shaped problem, then you have hired a compiler engineer who can be completely incapacitated by a sufficiently leaky abstraction.
Sooner or later when doing any one thing in software development, you are going to run into a problem that requires you to dig into something else that you don’t actually know how to do. The abstraction leaks and suddenly how file handles work or the fact that an ESP32 needs to go to sleep sometimes is now impinging on your compiler design problem and the users are not able to do the things because of it. If you have an expert on whatever the thing is, sure, you call them in and they help you out. But if not, you learn enough to make yourself useful and you hit the problem with research and analytical thinking until it stops bothering the users.
The death of the device and the return of the system.
A device is a sealed thing provided on a take it or leave it basis, often designed to oppose the interests of the person using it. Like hybrid corn, a device is infertile by design: you cannot use a device to develop, test, and program more devices.
A system is a curated collection of interchangeable hardware and software parts. Some parts are only compatible with certain other parts, but there is no part that cannot be replaced with an alternative from a different manufacturer. Like heirloom seeds, systems are fertile: systems can be used to design and program both other systems and devices.
A system is a liberatory technology for manipulating information, while a device is a carceral technology for manipulating people.
Alice is a pretty good 3D programming environment aimed at kids, with little programming blocks to snap together.
You might want to try going back into the archives and pulling out something like MS-DOS and QBasic, or Logo. You can find a good tutorial in book form, and you can get a system that was designed to be programmed offline, with things like local help in the editor instead of behind a Google search, so it should be 100% safe to leave the kid alone with the machine.
Why does Lemmy even ship its own image host? There are plenty of places to upload images you want to post that are already good at hosting images, arguably better than pictrs is for some applications. Running your own opens up whole categories of new problems like this that are inessential to running a federated link aggregator. People selfhost Lemmy and turn around and dump the images for “their” image host in S3 anyway.
We should all get out of the image hosting business unless we really want to be there.
C++ is a worse idea, it is not a good web backend language.
C# is pretty easy. As long as your boss doesn’t expect you to magically already be good at the thing they refused to allocate time for you to train in, you probably can just start trying to glue bits of C# web API examples together as your first project.
I think the Hyper stuff is mostly a new name for the same thing.
The real “replacement” might actually be Bluesky though, which is Paul Frazee’s new project that he seems to be doing instead.
-----BEGIN PGP MESSAGE-----
wcFMA908A2JpOQV0AQ/8CVpj7KCuC+LyFOuz7vSpHvgHZHIfvPZaKYzEqoImmH4O
vlumSMYg0bai7oV0TaCe/HP+9Cx25yQZQIZgUo76av1LFzii1UEu8L6fYZ8h16iG
0XytXbIP0IUOf8WLAXFmSYPTtsHnaS8FSFxEPjfNqRKCF8H8K8Ove49D9GnL85gi
SW+FlbP3XaoWmR9wU+BH0QQ+pmshrMf50EEfym6sj1AxBuBOjtmOgBPhNFhlt1M7
e6gLZ/I+uXhw87xUUR19G5SUS+dH25lvUnyzwWOkAvDi/McEVKBef4bKGVDG/B/8
9ouuN1jnIybR3MAu4lppDAyJ1JcvQ/PAyOGIvxZIAxJhBz491x+pgm0N9IPSVFh2
elxKTpxSTPBJQGp5FLfl4Kf8Uy+HldeEGIT0AR3nxaQqY2AZBirxCQxOSRU4MM0E
F/K1Ed6d3uAt5ZI/MigrUrWc95BcjPEM+IXAG9jVu+YL8PC7LLA4zQzlYmBOhwRD
37CxQgQkNfdxLBMA+GTOaT1IqwTWtjMsdqRsKsDYQkLB44WR+Uq56wvU3TLc58gP
7/azhgZX4e4eqjC2qTCe1RsNYfjjKUOD0R78Sr9sX+ZcMSuF+etFs6dAe57eWKtD
MPqzlfmjcztyoaDjZKpFOxSDE4ojV7QJGCQqez0GcZrNcTAgF/Hj0zHR4YDsQqfS
VwHv190PdZqKbxBEE8BS03yfciOKiVXqDUXpKwaxsC6TktUm5u4bMgs9LkIqNe/q
OQV5Dm+5JjiPf3kSbwvLDqOgAsdCjCvxN0g/Z4fj2ddlNRUYoZ+C+Q==
=sAV3
-----END PGP MESSAGE-----
That might just be an Inscryption/Wine compatibility problem. You should check maybe ProtonDB or WineHQ for the game to see if this is a known problem or if there is a particular Wine or Proton version you need to use or a particular library or setting that is needed to make sound work on Linux for the Windows version of this particular game.
Lawsuits don’t generally just throw themselves out. You have to pay a lawyer to show up and ask the judge to throw out the lawsuit on account of the fact that you don’t host the thing, or whatever the reason is.
Judges don’t go out and do research; if one side’s lawyer says Whirlybird runs The Pirate Bay out of their kitchen and the other side’s lawyer isn’t there, then the court is going to proceed as though that is at least plausible.
I’m struggling to understand how there can be so many security flaws, even in things that don’t seem to matter for security. I think the bar for a security problem might be too low; a lot of these look like footguns that could give my package a security hole, rather than genuine security flaws in the packages they are reported on.
Here’s a progress bar package with a “high” security vulnerability because it contains an internal utility that merges objects and doesn’t stop you writing to the prototype. Did the progress bar package ever promise to provide an object merge function that was safe to use on untrusted user input?
Here’s a notification UI element that bills using HTML in your notification messages as a feature. It has a “medium” level “XSS” security vulnerability where the message
parameter is not sanitized to remove HTML. A CVE was issued for this.
Here’s an arbitrary code execution vulnerability in sqlite3! High severity! The bug is that, if you tell sqlite3 to substitute an object into an SQL statement, it will run the ToString()
method on the object. If an evil hacker has broken into your lead developer’s house and written a malicious ToString()
method into one of the classes of object you use as a database query parameter, then that code would run! The fix here was, instead of letting the normal Javascript stringification rules apply, to hardcode all objects to be inserted into the database as “[object Object]”, because surely that is what the programmer meant to store.
ZFS zRAID is pretty good for this I think. You hook up the drives from one “pool” to a new machine, and ZFS can detect them and see that they constitute a pool and import them.
I think it still stores some internal references to which drives are in the pool, but if you add the drives from the by-ID directory when making the pool it ought to be using stable IDs at least across Linux machines.
There’s also always Git Annex for managing redundancy at the file level instead of inside the filesystem.
Not all of the same weaknesses. If it’s just “let the judge move stuff around because they’re a judge”, then yeah. But if you implement any sort of security on it, you can say that the judge can only move stuff when also countersigned by the jury, who were demonstrably selected by a fair random draw, or something.
And even if you don’t do that you still have a great record of which judge exactly is stealing everyone’s stuff.
You can’t just wave a blockchain wand and get a government that works, but you can just wave a blockchain wand and get an accountable record of things.
Yes, the document from the county administration would be much better, than some “magic” contract from the internet that may or may not be enforced by the county.
If the magic contract from the Internet is not actually likely to be enforced by the county, then the county is not actually using the magic Internet contract system. If the system were adopted by the county, then the official records from the system would be known to be enforceable.
I sound like I am for and against blockchain because I am. I don’t think you can stand up any existing blockchain system and start slapping government functions onto it and get a good result. People won’t understand it well enough or have sufficient resources to be true peers in the system, and if they did it wouldn’t scale very well.
But I do think that governmental systems can be improved by taking inspiration form blockchain technology and drawing on its underlying philosophical principles of accountability and consensus.
Tying keys to natural people is indeed an unsolved problem.
The system can be designed to recognize more people than just the current owner as authorized to do a transfer. You could do the whole tax record tracking in the same system, to ensure that property can be seized for back taxes exactly when back taxes are owed.
If you don’t have a system of law that even its designated enforcers are obliged to follow, you don’t have a legitimate government, you have a mafia.
The easier it is to make cases where a law is broken common knowledge, the easier it is to gather the political will to enforce the law. That mechanism is what obliges the enforcers to actually follow the law, and it can work more or less well depending on the structure of the society, the relative power of different groups of people, and the communication technologies in use. If the President guns someone down in broad daylight, they get thrown out more often if you have a reputable newspaper than if you don’t. An election is a convenient substitute for everyone trying to kill each other until we find out who is left.
Blockchains are one technology for establishing common knowledge among a group of participants. They’re not magic, they don’t even usually work particularly well. But they do offer techniques for binding the administrators of systems of rules to actually follow those rules, which have the potential to be applied more broadly.
One of the good things about using a blockchain system is that it forces you to set out and follow a set of programmatic, and thus at least minimally fair, rules for how the system is going to work. It means you are running on some kind of rule of law, and for it to work everyone involved has to be able to replicate the history of the system and agree that it is correct.
It seems a fairly natural fit for something like land, especially in the US, where we know for a fact that huge swathes of it were seized in the past from Native Americans, or revoked after being given to Black folks at the end of the civil war, or otherwise moved around by the government in suspiciously ad-hoc ways that we have later come to regret.
If you can design the entire system to grind to a halt if rights are not respected or someone tries to rewrite the rules on the basis of they have the guns, it could be a powerful force for the rule of law and the maintenance of a consensus reality.
It sounds like nobody actually understood what you want.
You have a non-ZFS boot drive, and a big ZFS pool, and you want to save an image of the boot drive to the pool, as a backup for the boot drive.
I guess you don’t want to image the drive while booted off it, because that could produce an image that isn’t fully self-consistent. So then the problem is getting at the pool from something other than the system you have.
I think what you need to do is find something else you can boot that supports ZFS. I think the Ubuntu live images will do it. If not, you can try something like re-installing the setup you have, but onto a USB drive.
Then you have to boot to that and
zfs import
your pool. ZFS is pretty smart so it should just auto-detect the pool structure and where it wants to be mounted, and you can mount it. Don’t do a ZFS feature upgrade on the pool though, or the other system might not understand it. It’s also possible your live kernel might not have a new enough ZFS to understand the features your pool uses, and you might need to find a newer one.Then once the pool is mounted you should be able to
dd
your boot drive block device to a file on the pool.If you can’t get this to work, you can try using a non-ZFS-speaking live Linux and
dd
ing your image to somewhere on the network big enough to hold it, which you may or may not have, and then booting the system and copying back from there to the pool.