1. 4

    Only tangentially related: I always thought it would be nice if filesystems would use free space for deleted files much like snapshots and reclaim space by removing the oldest files when needed. This would give users a safety net by making good use of free disk space. Is any operating system providing something like this?

    1. 3

      Pleased to hear someone else is eager for this! I’ve often thought it an oversight that filesystems treat “delete” as such a destructive operation when really it doesn’t need to be. As you mention, we do get part of the way there with snapshots, particularly on ZFS.

      I realise that there are speed issues related to fragmentation and complexity in terms of finding a free block on a disk with less real free space. Both of these are less of a concern on SSD though.

      Having an “IsDeleted” field on rows in a SQL table is not an uncommon pattern, would be great to have this equivalent for a filesystem.

      Not discovered any existing filesystems or operating system that does this, but would love to see it!

      1. 3

        That’s more or less what FAT did. Deleting a file was accomplished by just zeroing the first character of the filename, the file was only overwritten when you needed the space. The undelete tool for DOS would just ask you to fill in the first letter of the filename for the restore. Log-structured filesystems typically get this kind of almost for free: a delete operation is just an entry in the log saying that the next GC phase is allowed to reclaim the blocks. You could imagine adding a generational GC that would not actually reclaim blocks until they’d been marked as garbage for multiple cycles.

        On an inode-based filesystem you could probably do something similar by just adding a hard link to deleted files into a hidden trash directory in a circular buffer and adding files from this back to the free list when space is constrained.

        Amoeba’s filesystem (I think) never really did deletion, it was predicated on the idea that files grew more slowly than available storage (which wasn’t really true then but probably is now) and so it was an append-only log. I think they did something different for ephemeral things. Another system (or possibly Amoeba and I’m getting them mixed up) had no explicit delete at all and just GC’d files that haven’t been accessed recently. Apparently users just ended up running cron jobs that touched every file in their home directory every night.

        1. 1

          I know Sprite had a log-structured file system (maybe even the first?) and leaned heavily on client-side caching of normally-remote files with IIRC fairly aggressive deletion of local cached copies.

        2. 1

          Files-11 on VMS did automatic file versioning: when you wrote to a file, a new version was created and versions older than the limit were removed. You had to explicitly specify a version when deleting, IIRC (there were facilities for purging all old version as well).

        1. 1

          I really like the Anidees aluminium case with the glass top. Looks amazing with an LED matrix hat on the pi!

          http://anidees.com/product/aluminium-pi4-case/

          If you’re in the UK, I got mine from the PiHut: https://thepihut.com/products/anidees-raspberry-pi-4-case

          1. 3

            The “offender” was jkh, of FreeBSD fame.

            He always came across as quite friendly and personable while working on the FreeBSD project.

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

            FreeBSD Project co-founder, Director of UNIX Technology at Apple (part of the reason MacOS X looks as it does today). Now at NVidia. Quite a career!

            1. 1

              I’ve not used it in anger yet, but I quite like the idea of search history that uses your current working directory for additional context: https://github.com/cantino/mcfly

              1. 1

                I do enjoy this sort of nostalgia. You might also want to check out this 386 rebuild, even includes some soldering orientated repairs/replacements, and gets quite detailed about the history of the hardware components: https://youtu.be/Yw8moAQ1wTA

                1. 2

                  Are you using boar, @ac? How does it compare against git-annex? I like the idea of it, but doesn’t look like the project has been worked on much recently.

                  The git-annex pages do mention boar, but only briefly: https://git-annex.branchable.com/not/

                  “git-annex is also not boar, although it shares many of its goals and characteristics. Boar implements its own version control system, rather than simply embracing and extending git. And while boar supports distributed clones of a repository, it does not support keeping different files in different clones of the same repository, which git-annex does, and is an important feature for large-scale archiving.”

                  1. 2

                    I was deciding between boar and git annex, I feel like boar is much simpler, but git annex has more features, I have a feeling if you know git, git annex might be better, but if you don’t know git, boar is simple and powerful.

                  1. 2

                    Interested in doing this myself. At my previous job, I did iOS development, among other things. So macOS was pretty much a requirement. Now I’m unemployed and don’t have that machine any more, and I haven’t been in a hurry to find a replacement. I want something serviceable, preferably ARM-based, and with good battery life.

                    Those new Windows 10 ARM machines (e.g. HP Envy x2) are quite tempting, but they’re prolly glue sandwiches like everything else. Recommendations are most welcome!

                    (Also there’s a link to my website in this post; that was unexpected. 🙂)

                    1. 14

                      If you have the time and inclination to try various options, may I suggest one the BSDs? A lot of folks run OpenBSD as their daily driver, including a number of us here on lobste.rs (@mulander, @qbit, @stsp, @jcs, to name a few). You might also try FreeBSD or TrueOS (the more end-user focused version).

                      I’ll be honest, as far as OpenBSD goes, you’ll find there are few thing you won’t be able to run. GPU stuff is pretty much out of the question. And you’ll stumble across the odd app that hasn’t been ported yet. For general productivity, you’ll find pretty much every desktop environment, LibreOffice, etc. As a development platform you’ll find lots of choices and options. And let’s not forget stellar doc.

                      If you like gaming, the past year or so has been very good to OpenBSD. Check out this list at GOG.

                      I’m not as up on the ARM options as I’d like for laptops. The one I can think of off the top of my head is the PineBook. It’s still a work-in-progress as far as OpenBSD goes. The company that make it do have a Linux-based OS for it.

                      If you’re looking for hacking-on-the-system options, OpenBSD and a PineBook might be just right. ;-)

                      Good luck finding something that meets your interests and needs!

                      1. 3

                        I ran FreeBSD on my home and work desktops (and most of my servers) for almost 10 years. I use a Mac these days, but I still have a soft spot for FreeBSD on the desktop.

                        @wezm - For Dropbox on FreeBSD, I found just installing the CLI (pkg install dropbox-api-command) and then calling “dropbox-api sync” in cron ever 10 minutes was good enough.

                        1. 3

                          I use FreeBSD on my server and like it for that, and was eyeing TrueOS for my cheapo desktop, but it seems to lack ARM support so that didn’t work. Definitely a bigger fan of *BSD than the Linuxes. I really wish I could use Haiku, but it’s also lacking ARM support and is more of a fantasy/pipe dream. 🙂

                          Checking out the PineBook, thanks!

                        2. 1

                          Chromebook Pixel 2?

                        1. 1

                          If you’re after some more DOS nostalgia, you might like: http://www.doshaven.eu/

                          I love the fact that people are still making games for DOS. I’ve been playing a bit of this: http://www.doshaven.eu/game/ptakovina/ (from 2017!)

                          1. 1

                            No. of games: 121

                            Isn’t that a bit too small for DOS games released since 2001? It can’t even compare to number Commodore 64 games released in that time, not even mentioning the Atari XL/XE scene (they release about 50 full-featured games per year!)… I thought the DOS homebrew gamedev has many unique and solid titles, while you posted just some generic Tetris clone in ANSI-backed textmode.

                            That’s a bit sad for me, I was sure the DOS is still used for “retro” gamedev until now with the same power as Amiga or 8-bit micros.

                          1. 1

                            I use vim as my PAGER in order to get a consistent highlighting and colour scheme.

                            Easiest way to do this is via https://github.com/rkitover/vimpager - but you can also use the “less.sh” wrapper that’s included with vim.

                            export PAGER=vimpager or export PAGER=/usr/local/share/vim/macros/less.sh

                            (Path will obviously vary based on your OS, etc.)

                            On MacOS, “brew install vimpager” will be quickest.

                            1. 2

                              Usenix published a System Administrators’ Code of Ethics a few years back, which aligns with a few of your points: https://www.usenix.org/lisa/system-administrators-code-ethics

                              1. 10

                                This is scary and immoral as shit.

                                I’ve used and heard only good things about F-Secure’s Freedome. The advantages include a simple-ish UI, corporate branding from a security company and that it stems from Finland, which isn’t exactly Switzerland but has a history of trying to remain neutral.

                                Some other VPNs, especially cheap ones, feel creepy sometimes, so it’s of paramount importance you can trust your VPN provider!

                                1. 6

                                  I find “That One Privacy Site” to be a good starting point when evaluating the trustworthiness of VPN or email providers:

                                  https://thatoneprivacysite.net/vpn-section/

                                  1. 1

                                    PIA was great in terms of reliability and speed, but I felt like I didn’t know who they were or why I should trust them. I’m now using ProtonMail’s VPN service, which seems noticeably slower, but I feel like they’re more trustworthy. (Maybe I’ve just been pwned by their advertising.)

                                  1. 3

                                    Nice Sagan reference there: “…picture of a small, pale blue dot.”

                                    Ref: https://en.wikipedia.org/wiki/Pale_Blue_Dot

                                    1. 1

                                      Can someone please explain the mechanism behind how this single atom is appearing as emitting pale blue light?

                                      1. 1

                                        The original photographer pointed to this comment as a good explanation: https://www.reddit.com/r/interestingasfuck/comments/7x4o27/picture_of_a_single_atom_wins_science_photo/du5pn7t/

                                    1. 2

                                      The most frustrating aspect of this photograph competition is that the only images published on the official site are low resolution. Downscales like this just don’t give appropriate credit to the photographer: https://www.epsrc.ac.uk/epsrc/cache/file/504AC1E7-3623-4C88-AB2D3FF808A296C1.png

                                      Has anyone located the originals online?

                                      1. 2

                                        The largest version of the linked photo I could find on Tineye is at The Guardian’s page here (direct link here - 1920x1440).

                                        The other contest winners are on that page, likely in similar dimensions.

                                        1. 1

                                          I’ve not been able to find higher res versions of that photo, but I did find this one: http://content.assets.pressassociation.io/2018/02/11175054/f7f7c86b-dc52-4355-a622-9e3cb9a876fc.jpg

                                        2. 1

                                          It’s possible they only post low res to give the photographer a chance to sell higher quality versions. I would easily pay for a high quality poster.

                                        1. 3

                                          Since NetBSD gets less credit, I’ll add that the things that make it portable also made it get a lot of use in embedded and CompSci. Basically, spots where customization happens at the kernel code level in a lot of places. The folks crazy enough to try to rewrite a UNIX in a new language also always started with NetBSD since it’s easiest to rewrite. None are easy, mind you, but they didn’t think they’d have a chance with FreeBSD or OpenBSD for different reasons.

                                          1. 1

                                            How portable is NetBSD, compared to the other BSDs?

                                            1. 3

                                              I have no idea haha. I’ve just read up on a lot of work by people building on various OS’s. In UNIX land, those building on NetBSD seemed to have an easier time. Here’s three things many said:

                                              1. It wasn’t huge like FreeBSD or Linux.

                                              2. Its focus on portability made it easier to change.

                                              3. Its community was welcoming or helpful to those trying to rewrite it for various reasons.

                                              I’m not sure how true these are in general or currently since I don’t code BSD/Linux kernels or userlands. I just kept seeing a lot of people doing BSD mods say those things about NetBSD specifically. Probably better for developers of various BSD’s to chime in at this point since we have at least three represented in Lobsters community.

                                              1. 4

                                                The NetBSD rump kernel concept is one real-world demonstration that the abstraction layers are at least fairly good. It’s not clear you couldn’t do something similar with another OS, but NetBSD seems to have managed it with quite little actual porting needed (drivers run completely unmodified).

                                              2. 2

                                                They used to joke that it even runs on your toaster. Obviously, most toasters don’t have an embedded OS, but, I think the joke implies something about how portable they desire it to be.

                                                1. 5
                                                  1. 2

                                                    Ha! I hadn’t seen this, but I’m certainly not surprised!

                                                  2. 3

                                                    Obviously, most toasters don’t have an embedded OS

                                                    Yet.

                                                    The obvious use case for such a device is cryptocurrency mining.

                                                    1. 5

                                                      The obvious use case for such a device is cryptocurrency mining.

                                                      Yep, This should generate enough heat to burn a few toast :+)

                                              1. 3

                                                Pretty slick.

                                                I wrote a very simple tool to generate a provincial holiday calendar for the next 15-20 years from the government’s description of holidays (“Second Monday in October”). We might eventually need to switch to something like this since time zones are definitely one of the things I didn’t need to consider on the first quick implementation.

                                                It was a fun project, and I found out that calculating Easter is actually surprisingly complex.

                                                1. 5

                                                  My goodness, you weren’t kidding about Easter. From Wikipedia:

                                                  Easter and the holidays that are related to it are moveable feasts which do not fall on a fixed date in the Gregorian or Julian calendars which follow only the cycle of the sun; rather, its date is determined on a lunisolar calendar similar to the Hebrew calendar. The First Council of Nicaea (325) established two rules, independence of the Jewish calendar and worldwide uniformity, which were the only rules for Easter explicitly laid down by the council. No details for the computation were specified; these were worked out in practice, a process that took centuries and generated a number of controversies. It has come to be the first Sunday after the ecclesiastical full moon that occurs on or soonest after 21 March, but calculations vary.

                                                  1. 3

                                                    I did this years ago when I was tasked to enter holidays into our homegrown activity tracker.

                                                    Calculating Easter has been a problem for literally thousands of years: the Latin term computus refers to it.

                                                    Luckily this means it’s a “solved problem”, for me the Perl module Date::Calc was the solution with its Easter_Sunday function. From the documentation is uses the Gauss algorithm from 1800.

                                                    Ugly hacky code derived from that work here.

                                                    Edit Swedish public holidays are pretty simple compared to other countries.

                                                    1. There are holidays on fixed dates (Christmas, May day, National day)
                                                    2. There are holidays that depend on Easter
                                                    3. There are holidays that fall on certain date ranges (Midsummer’s day, All Saint’s day)

                                                    There are no compensatory bank holidays if a date-based holiday falls on a weekend.

                                                    1. 1

                                                      The whole “public holidays” problem is an interesting one. I’d love for there to be a public dataset of holidays which could be imported or queried via API. Unfortunately, it seems like quite a difficult problem!

                                                      https://opendata.stackexchange.com/questions/1926/list-of-public-holidays-by-countries

                                                      The closest I’ve come to is using the Google Calendar listings, although I wouldn’t want to use it for anything other than personal use (see stackexchange thread above).

                                                      https://github.com/novafloss/workalendar also looks interesting, albeit incomplete.

                                                      1. 2

                                                        A database like that would be akin to the TZ database, but even harder to maintain.

                                                        Edit I now see that’s essentially what the SO discussion says…

                                                        In the end I believe having an open calendar standard so various people (like, for example, government agencies) can simply craft their own and distribute as they see fit.

                                                  1. 1

                                                    If you’ve run out of BOFH stories to read, and want to take it to the next level…!