• 0 Posts
  • 62 Comments
Joined 11 months ago
cake
Cake day: August 4th, 2023

help-circle

  • "The Open Book is my long-standing attempt to design a comprehensible and accessible e-book reader that you can build yourself (or at least have manufactured affordably). The current edition is something I’m calling the “Abridged” or “Developer Preview” edition. It’s designed to be incredibly simple: there are 7 through-hole and 14 surface mount components, nearly all in a chunky 1206 package that’s easy to hand solder. The tradeoff is that it has no LiPo charging circuit; instead it uses AAA batteries, making it a bit more chunky than previous versions of the book.

    The goal with this version is to get hardware in hands so we can start hacking on firmware."

    https://www.oddlyspecificobjects.com/projects/openbook/

    So:

    • This is a hobby / project of love
    • The current focus is on hardware

    I’m sure that the eventual plan is to support ePub.

    I’m not sure it will ever get there, because it’s not a well resourced project, but I personally don’t like criticizing one person’s efforts, which they are making freely available.



  • Find the mutual aid networks in your community and join / support them.

    Just generally be in community with those around you.

    Join or form local weekly protests for a permanent ceasefire.

    Join a union and encourage others to. Help ensure that your union has enough resources to provide support for more vulnerable members when they need to strike.

    Run for local office.


  • More than a decade ago a user came into #ubuntu-server on Freenode (now libera.chat ) and said that they had accidentally run “rm -rf /* something*” in a root shell.

    Note the errant space that made that a fatal mistake. I don’t remember how far it actually got in deleting files, but all of /bin/ /sbin/ and /usr/ were gone.

    He had 1 active ssh connection, and couldn’t start another one.

    It was a server that was “in production”, was thousands of miles away from him, and which had no possibility for IPMI / remote hands.

    Everyone (but me) in the channel said that he was just SoL and should just give up.

    I stayed up most of the night helping him. I like challenges and I like helping people.

    This was in the sysv-init (maybe upstart) days, and so a decent number of shell scripts were running, and using basic *nix commands.

    We recovered the bash binary by running something along the lines of

    bash_binary_contents="$( </proc/self/exe)"
    printf "%s" > /tmp/bash
    

    (If you can access “lsof” then “sudo lsof | grep deleted” will show you any files that are open, but also “deleted”. You may be surprised at how many there are!)

    But bash needed too many shared libraries to make that practical.

    Somehow we were able to recover curl and chmod, after which I had him download busybox-static. From there we downloaded an Ubuntu LiveCD iso, loop mounted it, loop mounted the squashfs image inside the iso, and copied all of /bin/ , /sbin/ , /etc , and so on from there onto his root FS.

    Then we re-installed missing packages, fixed up /etc/ (a lot of important daemons, including the one that was production critical, kept their configuration files open, and so we were able to use lsof to find the magic symlinks to them in /proc/$pid/fd/ and just cp them back into /etc/.

    We were able to restart openssh-server, log in again, and I don’t remember if we were brave enough to test rebooting.

    But we fucking did it!

    I am certainly getting a lot of details wrong from memory. It’s all somewhere at irclogs.ubuntu.com though. My nick was / is Jordan_U.

    I tried to find it once, and failed.


  • It’s at least gotten a bit better.

    There was a time when Photoshop and other programs used a copy-protection scheme that overwrote parts of grub, causing the user not to be able to boot Linux or Windows.

    They knew about it, and just DGAF. I don’t remember their exact FAQ response, but it was something along the lines of “Photoshop is incompatible with GRUB. Don’t dual boot if you use Photoshop.”

    Grub still has code for BIOS based installs that uses reed-solomon error correction at boot time to allow grub to continue to function even if parts of its core.img were clobbered by shitty copy protection schemes for Windows software.




  • Jordan_U@lemmy.mlto196@lemmy.blahaj.zonerule
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    4 months ago

    I quite happily run HAOS on my raspberry pi 3 to control the lights, my Roomba, and various other devices in my home.

    Interacting with it via the home-assistant Android app, or the web interface, I’m never waiting for anything, and interacting via mosh is quite pleasant.

    Part of what makes Linux nice is that you can use just what you need.

    If what you need includes something like a web browser, then yes; 4 GiB of RAM is going to be a bad time, and 1 GiB is going to be unusable.


  • I tried to solve these cross-distro compatibility problems in a generic way with this “standard”, more years ago than I’d like to think about:

    https://www.supergrubdisk.org/wiki/Loopback.cfg

    If someone wants to come up with a bootloader agnostic solution rather than one tied to grub, like an extension to Bootloader spec , https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/ , I’d be happy to evangelize it and add support to grub for using it.

    I’m not aware of any other bootloader that supports reading a config file that exists within an iso though, and secure boot support may add additional complications.

    Bottom line:

    I feel like we could relatively easily get to a point where every Live iso that actually supports loop booting can just be added, as a file, to your USB drive (from Windows, or your android phone even) and be detected at boot in a nice little menu, no editing of config files needed.

    I don’t have the time or spoons to get the Linux community there alone, but if people are interested in helping I’m more than happy to pick this up again.

    (Note: Please don’t blindly suggest “Just chain load the iso!” Things aren’t that easy, unfortunately).




  • Or you can recruit heavily in areas where folks are disadvantaged and have few options, dangling education in front of them in exchange for being willing to kill or die for you.

    This is absolutely what we do in the U.S. and it’s abhorrent.

    I guess what I want is for nobody to be so desperate for their basic needs that they feel compelled to kill and die in war.

    And if we had a country that cared for all of its citizens and didn’t start wars of aggression, maybe more people would want to enlist as they have real values to protect and have a reasonable expectation that they won’t be committing atrocities?

    Honestly not a criticism of you or your comment. Lot’s of people are advocating for the same thing; You just said it plainly.

    …Anyway, this is all terrible and we absolutely can do better, starting with building community locally, mutual aid, protesting, and listening to marginalized and oppressed people’s.






  • Bash scripts are rarely the best choice for large, complicated, programs or for software that requires complex data structures. (Git is very much in both categories)

    In bash there are so many ways to accidentally shoot yourself in the foot that it’s absurd. That can lead to bizarre seeming behavior, which may break your script, or even lead to a security vulnerability.

    There are things that make it a bit more manageable, like “[[]]” instead of “[]”, but a frustrating number of such things are bash specific and this is written for the subset that is POSIX shell, meaning you don’t even get those token niceties.

    Where you generally “want” to use POSIX sh is for relatively simple scripts where the same file needs to run on Linux with bash, Linux with only BusyBox sh, OSX with zfs (and an outdated version of bash which will never be updated because Apple refuses to ship any GPLv3 software in MacOS).

    This is not that, and so one would expect that:

    1. The developer of this git implementation has poor / foolish judgement.

    2. Shit will be buggy

    3. Shit will be insecure

    4. Shit will be a PITA to try to troubleshoot or fix

    5. And shit will be slow, because bash is slow and this isn’t a job that you can just hand off all of the heavy lifting to grep / sed / awk*, because the data structures don’t lend themselves to that.

    * You could write the entire program in awk, and maybe even end up with something almost as fast as a python implementation done in ⅒ the time, but that would be terrible in other ways.