frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Convert photos to Atkinson dithering

https://gazs.github.io/canvas-atkinson-dither/
151•nvahalik•3h ago•23 comments

Bill Atkinson has died

https://daringfireball.net/linked/2025/06/07/bill-atkinson-rip
864•romanhn•7h ago•171 comments

Joining Apple Computer

https://www.folklore.org/Joining_Apple_Computer.html
37•tosh•3h ago•4 comments

Self-Host and Tech Independence: The Joy of Building Your Own

https://www.ssp.sh/blog/self-host-self-independence/
96•articsputnik•5h ago•19 comments

BorgBackup 2 has no server-side append-only anymore

https://github.com/borgbackup/borg/pull/8798
96•jaegerma•4h ago•57 comments

You need much less memory than time

https://blog.computationalcomplexity.org/2025/02/you-need-much-less-memory-than-time.html
40•jonbaer•1h ago•5 comments

Coventry Very Light Rail

https://www.coventry.gov.uk/coventry-light-rail
13•Kaibeezy•2h ago•0 comments

My experiment living in a tent in Hong Kong's jungle

https://corentin.trebaol.com/Blog/8.+The+Homelessness+Experiment
114•5mv2•6h ago•44 comments

Math Symbol Frequencies

https://leancrew.com/all-this/2025/06/math-symbol-frequencies/
14•tosh•3h ago•4 comments

What was Radiant AI, anyway?

https://blog.paavo.me/radiant-ai/
140•paavohtl•10h ago•86 comments

Updates to Advanced Voice Mode for paid users

https://help.openai.com/en/articles/6825453-chatgpt-release-notes
25•mfiguiere•3h ago•18 comments

The time bomb in the tax code that's fueling mass tech layoffs

https://qz.com/tech-layoffs-tax-code-trump-section-174-microsoft-meta-1851783502
1283•booleanbetrayal•3d ago•795 comments

Washington Post's Privacy Tip: Stop Using Chrome, Delete Meta Apps (and Yandex)

https://tech.slashdot.org/story/25/06/07/035249/washington-posts-privacy-tip-stop-using-chrome-delete-metas-apps-and-yandex
235•miles•7h ago•125 comments

Discovering a JDK Race Condition, and Debugging It in 30 Minutes with Fray

https://aoli.al/blogs/jdk-bug/
40•aoli-al•4h ago•7 comments

Low-Level Optimization with Zig

https://alloc.dev/2025/06/07/zig_optimization
228•Retro_Dev•16h ago•108 comments

Why We're Moving on from Nix

https://blog.railway.com/p/introducing-railpack
190•mooreds•12h ago•83 comments

Field Notes from Shipping Real Code with Claude

https://diwank.space/field-notes-from-shipping-real-code-with-claude
28•diwank•5h ago•1 comments

OneText (YC W23) Is Hiring a DevOps/DBA Lead Engineer

https://jobs.ashbyhq.com/one-text/b95952a2-9bc2-4c3a-9da1-3dcc157b4a27
1•bluepnume•6h ago

Hate Radio (2011)

https://rwandanstories.org/genocide/hate_radio.html
124•thomassmith65•9h ago•104 comments

A tool for burning visible pictures on a compact disc surface

https://github.com/arduinocelentano/cdimage
125•carlesfe•15h ago•45 comments

Researchers develop ‘transparent paper’ as alternative to plastics

https://japannews.yomiuri.co.jp/science-nature/technology/20250605-259501/
368•anigbrowl•1d ago•229 comments

Getting Past Procrastination

https://spectrum.ieee.org/getting-past-procastination
281•WaitWaitWha•20h ago•131 comments

The FAIR Package Manager: Decentralized WordPress infrastructure

https://joost.blog/path-forward-for-wordpress/
177•twapi•18h ago•43 comments

Musk-Trump dispute includes threats to SpaceX contracts

https://spacenews.com/musk-trump-dispute-includes-threats-to-spacex-contracts/
135•rbanffy•10h ago•242 comments

How we decreased GitLab repo backup times from 48 hours to 41 minutes

https://about.gitlab.com/blog/2025/06/05/how-we-decreased-gitlab-repo-backup-times-from-48-hours-to-41-minutes/
506•immortaljoe•1d ago•215 comments

I read all of Cloudflare's Claude-generated commits

https://www.maxemitchell.com/writings/i-read-all-of-cloudflares-claude-generated-commits/
202•maxemitchell•1d ago•199 comments

PyOpticL – Code-to-CAD optical system engineering

https://github.com/UMassIonTrappers/PyOpticL
14•cinquemb•7h ago•1 comments

A year of funded FreeBSD development

https://www.daemonology.net/blog/2025-06-06-A-year-of-funded-FreeBSD.html
336•cperciva•1d ago•110 comments

Why are smokestacks so tall?

https://practical.engineering/blog/2025/6/3/why-are-smokestacks-so-tall
160•azeemba•22h ago•42 comments

Log-Linear Attention

https://arxiv.org/abs/2506.04761
19•sva_•7h ago•3 comments
Open in hackernews

BorgBackup 2 has no server-side append-only anymore

https://github.com/borgbackup/borg/pull/8798
96•jaegerma•4h ago

Comments

LeoPanthera•4h ago
Is that a big deal? You should probably be doing this with zfs immutable snapshots anyway. Or equivalent feature for your filesystem.
topato•4h ago
I'm also completely confused why this was at the top of my hacki, seems completely innocuous
ajb•4h ago
Ideally a backup system should be implementable in such a way that no credential on the machines being backed up, enable the deletion or modification of existing backups. That's so that if your machines are hacked a) the backups can't be deleted or encrypted in a ransom attack and b) If you can figure out when the first compromise occurred, you know that before that date the backup data is not compromised.

I guess some people might have been relying on this feature of borgbackup to implement that requirement

philsnow•4h ago
The purpose of the append-only feature of borgbackup is to prevent an attacker from being able to overwrite your existing backups if they compromise the device being backed up.

Are you talking about using ZFS snapshots on the remote backup target? Trying to solve the same problem with local snapshots wouldn't work because the attack presumes that the device that's sending the backups is compromised.

LeoPanthera•4h ago
> Are you talking about using ZFS snapshots on the remote backup target?

Yes.

homebrewer•3h ago
There's not much sense in using these advanced backup tools if you're already on ZFS, even if it's just on the backup server, I would stick with something simpler. Their whole point is in reliable checksums, incremental backups, deduplication, snapshotting on top of a 'simple' classical filesystem. Sounds familiar to any ZFS user?
nijave•3h ago
Dedupe is efficient in Borg. The target needs almost no RAM
globular-toast•3h ago
Are there any good options for an off-site zfs backup server besides a colo?

Would be interested to know what others have set up as I'm not really happy with how I do it. I have zfs on my NAS running locally. I backup to that from my PC via rsync triggered by anacron daily. From my NAS I use rclone to send encrypted backups to Backblaze.

I'd be happier with something more frequent from PC to NAS. Syncthing maybe? Then just do zfs sync to some off site zfs server.

gaadd33•2h ago
I think Rsync.net supports zfs send/receive
aeadio•1h ago
Aside from rsync.net which was mentioned in a sibling comment, there’s also https://zfs.rent, or any VPS with Linux or FreeBSD installed.
PunchyHamster•1h ago
well, till lightning fries your server. Or you fat finger command and fuck something up.
aborsy•4h ago
Borg2 has been in beta testing for a very long time.

Anyone knows when will it come out of beta?

mrtesthah•4h ago
FYI for those using restic, you can use rest-server to achieve a server-side-enforced append-only setup. The purpose is to protect against ransomware and other malicious client-side operations.
homebrewer•4h ago
For anyone looking to migrate off borg because of this, append-only is available in restic, but only with the rest-server backend:

https://github.com/restic/restic

https://github.com/restic/rest-server

which has to be started with --append-only. I use this systemd unit:

  [Unit]
  After=network-online.target

  [Install]
  WantedBy=multi-user.target

  [Service]
  ExecStart=/usr/local/bin/rest-server --path /mnt/backups --append-only --private-repos
  WorkingDirectory=/mnt/backups
  User=restic
  Restart=on-failure
  ProtectSystem=strict
  ReadWritePaths=/mnt/backups
I also use nginx with HTTPS + HTTP authentication in front of it, with a separate username/password combination for each server. This makes rest-server completely inaccessible to the rest of the internet and you don't have to trust it to be properly protected against being hammered by malicious traffic.

Been using this for about five years, it saved my bacon a few times, no problems so far.

champtar•2h ago
If you want to use some object storage instead of local disk, rclone can be a restic server: https://rclone.org/commands/rclone_serve_restic/
rsync•2h ago
You can achieve append-only without exposing a rest server provided that 'rclone' can be called on the remote end:

  rclone serve restic --stdio
You add something like this to ~/.ssh/authorized_keys:

  restrict,command="rclone serve restic --stdio --append-only backups/my-restic-repo" ssh-rsa ...
... and then run a command like this:

  ssh user@rsync.net rclone serve restic --stdio ...
We just started deploying this on rsync.net servers - which is to say, we maintain an arguments allowlist for every binary you can execute here and we never allowed 'rclone serve' ... but now we do, IFF it is accompanied by --stdio.
dblitt•3h ago
It seems the suggested solution is to use server credentials that lack delete permissions (and use credentials that have delete for compacting the repo), but does that protect against a compromised client simply overriding files without deleting them?
qeternity•3h ago
Append-only would imply yes. There is no overwriting in append-only. There is only truncate and append.
mosselman•3h ago
You have misread I think.

There used to be append-only, they've removed it and suggest using a credential that has no 'delete' permission. The question asked here is whether this would protect against data being overwritten instead of deleted.

throwaway984393•2h ago
No. Delete and overwrite are different. You need overwrite protection in addition to delete protection. The solution will vary depending on the storage system and the use case. (The comment in the PR is not an exhaustive description of potential solutions)
TheFreim•3h ago
I've been using Borg for a while, I've been thinking about looking at the backup utility space again to see what is out there. What backup utilities do you all use and recommend?
TiredOfLife•3h ago
Kopia
conception•2h ago
Kopia is surprisingly good. I use it with a b2 backend, had percentage based restore verification for regulatory items and is super fast. Only downside is lack of enterprise features/centralized management.
Saris•3h ago
Restic is nice. Backrest if you like a webUI.
singhrac•2h ago
I spent too long looking into this and settled on restic. I'm satisfied with the performance for our large repo and datasets, though we'll probably supplement it with filesystem-based backups at some point.

Borg has the issue that it is in limbo, i.e. all the new features (including object storage support) are in Borg2, but there's no clear date when that will be stable. I also did not like that it was written in Python, because backups are not always IO blocked (we have some very large directories, etc.).

I really liked borgmatic on Borg, but we found resticprofile which is pretty much the same thing (it is underdiscussed). After some testing I think it is important to set GOGC and read-concurrency parameters, as a tip. All the GUIs are very ugly, but we're fine a CLI.

If rustic matures enough and is worth a switch we might consider it.

seymon•3h ago
Borg vs Restic vs Kopia ?

They are so similar in features. How do they compare? Which to choose?

aborsy•3h ago
Restic is the winner. It talks directly to many backends, is a static binary (so you can drop the executable in operating systems which don’t allow package installation like a NAS OS) and has a clean CLI. Kopia is a bit newer and less tested.

All three have a lot of commands to work with repositories. Each one of them is much better than closed source proprietary backup software that I have dealt with, like Synology hyperbackup nonsense.

If you want a better solution, the next level is ZFS.

seymon•2h ago
I am already using zfs on my NAS where I want my backups to be. But I didn't consider it for backups till now
aeadio•1h ago
You can consider something like syncthing to get the important files onto your NAS, and then use ZFS snapshots and replication via syncoid/sanoid to do the actual backing up.
aborsy•1h ago
Or install ZFS also on end devices, and do ZFS replication to NAS, which is what I do. I have ZFS on my laptop, snapshot data every 30 minutes, and replicate them. Those snapshots are very useful, as sometimes I accidentally delete data.

With ZFS, all file system is replicated. The backup will be consistent, which is not the case with file level backup. With latter, you have to also worry about lock files, permissions, etc. The restore will be more natural and quick with ZFS.

PunchyHamster•1h ago
Kopia is VERY similar to Restic, main differences is Kopia getting half decent UI vs Restic being a bit more friendly for scripting

> If you want a better solution, the next level is ZFS.

Not a backup. Not a bad choice for storage for backup server tho

the_angry_angel•2h ago
Kopia is awesome. With exception to it’s retention policies, but work like no other backup software that I’ve experienced to date. I don’t know if it’s just my stupidity, being stuck in 20 year thinking or just the fact it’s different. But for me, it feels like a footgun.

The fact that Kopia has a UI is awesome for non-technical users.

I migrated off restic due to memory usage, to Kopia. I am currently debating switching back to restic purely because of how retention works.

zargon•44m ago
I’m confused. Is Kopia awesome or is it a footgun? (Or are words missing?)
spiffytech•2h ago
I picked Kopia when I needed something that worked on Windows and came with a GUI.

I was setting up PCs for unsophisticated users who needed to be able to do their own restores. Most OSS choices are only appropriate for technical users, and some like Borg are *nix-only.

jbverschoor•3h ago
Moved to duplicacy. Works great for me
neilv•3h ago
I used to have a BorgBackup server at home that used append-only and restricted-SSH.

It wasn't perfect, but it did protect against some scenarios in which a device could be majorly messed up, yet the server was more resistant to losing the data.

For work, the backup schemes include separate additional protection of the data server or media, so append-only added to that would be nice, as redundant protection, but not as necessary.

nathants•3h ago
Do something simpler. Backups shouldn’t be complex.

This should be simpler still:

https://github.com/nathants/backup

yread•2h ago
Uh, who has the money to store backups in AWS?!
nathants•2h ago
Depends how big they are. My high value backups go into S3, R2, and a local x3 disk mirror[1].

My low value backups go into a cheap usb hdd from Best Buy.

1. https://github.com/nathants/mirror

seized•1h ago
Glacier Deep Archive is the cheapest cloud backup option at $1USD/month/TB.

Google Cloud Store Archive Tier is a tiny bit more.

mananaysiempre•1h ago
Both would be pretty expensive to actually restore from, though, IIRC.
ikiris•1h ago
To quote the old mongodb video: If you don't care about restores, /dev/null is even cheaper, and its webscale.
PunchyHamster•1h ago
Support for S3 means you can just have minio server somewhere acting as backup storage (and minio is pretty easy to replicate). I have local S3 on my NAS replicated to cheapo OVH serwer for backup
orsorna•1h ago
Is this a joke?

I don't see what value this provides that rsync, tar and `aws s3 cp` (or AWS SDK equivalent) provides.

nathants•1h ago
How do you version your rsync backups?
iforgotpassword•1h ago
Dirvish
nathants•1h ago
Perl still exists?
somat•27m ago
I use rsyncs --link-dest

abridged example:

    rsync --archive --link-dest 2025-06-06 backup_role@backup_host:backup_path/ 2025-06-07/

Actual invocation is this huge hairy furball of an rsync command that appears to use every single feature of rsync as I worked on my backup script over the years.

    rsync_cmd = [
      '/usr/bin/rsync',
      '--archive',
      '--numeric-ids',
      '--owner',
      '--delete',
      '--delete-excluded',
      '--no-specials',
      '--no-devices',
      '--filter=merge backup/{backup_host}/filter.composed'.format(**rsync_param),
      '--link-dest={cwd}/backup/{backup_host}/current/{backup_path}'.format(**rsync_param),
      '--rsh=ssh -i {ssh_ident}'.format(**rsync_param),
      '--rsync-path={rsync_path}'.format(**rsync_params),
      '--log-file={cwd}/log/{backup_id}'.format(**rsync_params),
      '{remote_role}@{backup_host}:/{backup_path}'.format(**rsync_params),
      'backup/{backup_host}/work/{backup_path}'.format(**rsync_params) ]
nathants•23m ago
This is cool. Do you always --link-dest to the last directory, and that traverses links all the way back as far as needed?
puffybuf•2h ago
I've been using device mapper+encryption to backup my files to encrypted filesystem on regular files. (cryptsetup on linux, vnconfig+bioctl on openbsd). Is there a reason for me to use borgbackup? Maybe to save space?

I even wrote python scripts to automatically cleanup and unmount if something goes wrong (not enough space etc). On openbsd I can even Double encrypt with blowfish(vnconfig -K) and then a diff alg for bioctl.

anyfoo•2h ago
Does your solution do incremental backups at all? I have backups going back years, because through incremental backups each delta is not very large.

Every once in a while things gets sparsed out, so that for example I have daily backups for the recent past, but only monthly and then even yearly for further back.

gausswho•54m ago
My current approach is restic, but I'd prefer to have asymmetric passwords, essentially the backup machine only having write access (while maintaining deduplication). This way if the backup machine were compromised, and therefore the password it needs to write, the backup repo itself would still be secure since it would use a different password for reading.

Is this what append-only achieved for Borg?

antoniomika•43m ago
This has been replaced with a permissions feature that still provides both delete and overwrite protections. The difference is the underlying store needs to implement it rather than running a server that understands the permission differences. You can read more about this change here: https://github.com/borgbackup/borg/issues/8823#issuecomment-...
bayindirh•41m ago
This comment needs to be pinned, alongside what the developers say [0] since the change is very misunderstood.

> The "no-delete" permission disallows deleting objects as well as overwriting existing objects.

[0]: https://github.com/borgbackup/borg/pull/8798#issuecomment-29...

zargon•3m ago
Isn't this "no-delete" permission just a made-up mode for testing the borg storage layer to simulate lacking permissions for deleting or overwriting? In actual deployment, whatever backing store is used must have the access control primitives to implement such a restriction. I don't know how to do this on a posix filesystem, for example. Gemini gave me a convoluted solution that requires the client to change permissions after creating the files.
jaegerma•28m ago
Thanks for that link. That issue somehow didn't come up when I researched the removal of append-only. The only hint I had was the vague "remove remainders of append-only and quota support" in the change log without any further information.