ChanServ changed the topic of #sandstorm to: Welcome to #sandstorm: home of all things Sandstorm and Cap'n Proto. Say hi! | Have a question but no one is here? Try asking in the discussion group: https://groups.google.com/group/sandstorm-dev | Channel logs available at https://libera.irclog.whitequark.org/sandstorm
mnutt has joined #sandstorm
mnutt has quit [Remote host closed the connection]
mnutt has joined #sandstorm
TMM_ has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
TMM_ has joined #sandstorm
mnutt has quit [Remote host closed the connection]
mnutt has joined #sandstorm
mnutt has quit [Remote host closed the connection]
mnutt has joined #sandstorm
mnutt has quit [Remote host closed the connection]
mnutt has joined #sandstorm
mnutt has quit [Remote host closed the connection]
mnutt has joined #sandstorm
mnutt has quit [Client Quit]
mnutt has joined #sandstorm
mnutt has quit [*.net *.split]
kentonv has quit [*.net *.split]
ocdtrekkie has quit [*.net *.split]
kentonv has joined #sandstorm
mnutt has joined #sandstorm
ocdtrekkie has joined #sandstorm
xet7 has joined #sandstorm
mnutt has quit [Remote host closed the connection]
mnutt has joined #sandstorm
mnutt has quit [Ping timeout: 260 seconds]
mnutt has joined #sandstorm
mnutt has quit [Remote host closed the connection]
mnutt has joined #sandstorm
mnutt has quit [Remote host closed the connection]
mnutt has joined #sandstorm
mnutt has quit [Ping timeout: 264 seconds]
mnutt has joined #sandstorm
mnutt has quit [Remote host closed the connection]
mnutt has joined #sandstorm
mnutt has quit [Remote host closed the connection]
mnutt has joined #sandstorm
mnutt has quit [Remote host closed the connection]
mnutt has joined #sandstorm
mnutt has quit [Remote host closed the connection]
mnutt has joined #sandstorm
xet7 has quit [Remote host closed the connection]
TMM_ has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
TMM_ has joined #sandstorm
Guest80 has joined #sandstorm
<jonesv[m]> Oh, there is no IRC client/bouncer on Sandstorm. Are you guys all using Matrix? 😁
<ocdtrekkie> Ian actually had two different IRC bouncers for Sandstorm, though they were never published. He and I both use Matrix currently.
<jonesv[m]> I would be curious to try IRC again (I started using Matrix ~2 years ago), because I realized that running a Matrix homeserver requires a lot of compute power (they suggest 8G RAM and 2-4 CPUs). I was under the impression that IRC was lighter than that, right?
<ocdtrekkie> Drastically. I am not selfhosting Matrix though.
<ocdtrekkie> At the time Ian was using his Sandstorm bouncers, Oasis was still running so many of us weren't even using selfhosted instances. I couldn't ever try the bouncer because you have to be a server admin.
<ocdtrekkie> I am not sure how functional it presently is, Ian let them go a while ago
<jonesv[m]> What's Oasis? Is that this project? https://github.com/NexusZeta/Oasis
<ocdtrekkie> Oasis used to be the SaaS offering of Sandstorm.
<jonesv[m]> oh, right
<ocdtrekkie> https://github.com/zenhack/sandstorm-znc <- circa 2017
<jonesv[m]> > I am not selfhosting Matrix though.
<jonesv[m]> Yeah so that's the thing. One thing that I like with Matrix is those bridges (I'd like to not have to use Slack/Discord), but I need my own homeserver for that, and I refuse to use 8G of RAM just for a glorified IRC bouncer 😅. But then with IRC I don't even need to run my own server (there is no need).
Guest80 has left #sandstorm [#sandstorm]
mnutt has quit [Remote host closed the connection]
<isd> It had problems with occasional disconnects that required restarting the grain to fix (rather than auto-reconnecting), which was annoying because you'd lose history while it was down. where occasional = every couple weeks
<isd> but I used it more or less successfully for a while
<isd> Haven't touched it in a long time though
<isd> and the repo is probably bitrotten; 2017 is before go modules, so the package versioning story was a bit of a mess and the build might be tricky to reproduce
<isd> Also, I'd give fair odds to the proposition that the disconnects were due to bugs in the go-capnp version it was using at the time, which has changed a lot since, but also v3's API is different enough that you couldn't just upgrade and be done with it...
<abliss[m]> > <@jonesv:matrix.org> > I am not selfhosting Matrix though.
<abliss[m]> >
<abliss[m]> fyi, i think those recommendations are for a highly populated server. i ran a matrix instance along with a handful of bridges all on a $45 intel compute stick with a ~2Ghz atom cpu and 2Gb ram. it worked okay, though admittedly not perfectly. i stopped debugging it when i got admitted into the Beeper beta.
<abliss[m]> > Yeah so that's the thing. One thing that I like with Matrix is those bridges (I'd like to not have to use Slack/Discord), but I need my own homeserver for that, and I refuse to use 8G of RAM just for a glorified IRC bouncer 😅. But then with IRC I don't even need to run my own server (there is no need).
<abliss[m]> (and in irc you do need to run your own bouncer if you want discord-level functionality.)
<jonesv[m]> @zenhack:matrix.org: I see, thanks for the insights :)
<jonesv[m]> abliss: but would you say that a bouncer takes as much computation power as a matrix homeserver?
<jonesv[m]> I mean, I'm already quite surprised for Synapse: a personal homeserver with one client (me) should not be much heavier than a client, should it? At the end of the day, it just pulls the same kind of data (except that my client needs to download a bunch of history when it connects, and the homeserver does not even need that)
<abliss[m]> Oh of course a bouncer is cheaper! Just not by quite as much as the numbers you quoted imply.
<abliss[m]> It also depends on how many channels you idle in, how busy they are, and how media-heavy, of course
<jonesv[m]> Right. One good thing of IRC is that it does not support media, isn't it? :D
<abliss[m]> E2ee might matter too
<jonesv[m]> Yes, for direct messages, I guess it may
<abliss[m]> jonesv[m]: let me fire up my DCC client and /send you a jpg meme to respond
<isd> Some of this is also I think just "synapse is inefficient." dendrite might be better, not sure how much. Also not sure how mature that is; haven't checked in a while.
<jonesv[m]> Also one thing that is cool with Matrix is the "Spaces". Say for a community, it's pretty cool to have this way to group multiple channels.
<jonesv[m]> @zenhack:matrix.org: the numbers I mentioned (2-4 CPUs + 8G RAM) are the suggestions for Dendrite xD. I tried Synapse on a VPS with 1G RAM, and that was unusable
<isd> Well then.
<isd> I do remember seeing something the other day about inefficient merge algorithms
<jonesv[m]> Right
<jonesv[m]> Well yeah maybe I gave up too early with my Synapse, but joining a room would freeze the server for minutes (or even crash it/swap? Not sure anymore). I quickly gave up :D
mnutt has joined #sandstorm
<isd> Yeah, I'm just on matrix.org
<jonesv[m]> Yeah same. But I recently realized that actually the cool channels I'm in are on IRC, which makes me think that maybe I should give a shot at an IRC client/bouncer 😆
<isd> Yeah, I think #go-capnp:matrix.org is really the only thing of interest I'm in that's not just an irc bridge
<isd> speaking of gratuitous inefficiencies, I'm also using element-web in a docker container on my laptop for the sake of avoiding electron
<jonesv[m]> 🤣
<jonesv[m]> I'm running element-web in Firefox. I kind of like their Android app, though.
<isd> "can I please use the browser I have open already?"
<jonesv[m]> But yeah I wish Matrix took off as a Slack/Discord replacement, because I'm sick of those ElectronJS apps. Also for open source communities it would make sense to be federated (instead of having to log into Discord, Slack, and whatnot)
<isd> The android app is nice.
mnutt has quit [Ping timeout: 260 seconds]
<jonesv[m]> I'm not using Firefox to be forced into embedded Chromiums by those apps 😅
<isd> though I've recently ragequit android and am putting up with a pinephone so...
<jonesv[m]> Pinephone pro?
<isd> no, not pro
<jonesv[m]> Oh, I have it too (the "PostmarketOS edition" from 2020) :-). Honestly it was super slow and I did not manage to use it as a daily driver
<isd> I have noticed that it is slow, yes
<jonesv[m]> I kind of like sxmo on top of pmOS :)
<jonesv[m]> But then I mostly use my phone for Signal Messenger with my friends/family, and running Signal on pmOS would require... well their desktop ElectronJS app, of course 🤣
<isd> This says more about how done I am with android than about the pinephone being particularly usable
<jonesv[m]> :D I guess it does, yeah
<jonesv[m]> What was the trigger for Android?
<isd> Other than my existing phone being on it's last legs, no one thing -- I just couldn't bring myself to go get another one.
mnutt has joined #sandstorm
<jonesv[m]> Right
<jonesv[m]> I got a Fairphone 3+ a year ago, running with /e/ OS. I must say I'm quite happy with it (it's running without Google)
<jonesv[m]> But again I mostly use Signal, Firefox and Organic Maps/OSMAnd there, so I'm not a heavy user
<isd> tbh I'd probably just not have a phone if I didn't need to interface with the POTS network occasionally. I've mostly shifted over to only using signal on my laptop (in theory, I will set something up on my phone again at some point, but tbh I like being less plugged in)
<ocdtrekkie> zenhack I'd love to hear more about what you're doing with PinePhone setup.
<isd> postmarketOS with phosh. Not a lot more to say as of yet.
<ocdtrekkie> I have one but I'm daily driving iOS because I couldn't figure out how I should reasonably use my PinePhone.
<jonesv[m]> Jacob Weisz: try sxmo if you don't use your PinePhone already. It's fun :)
<isd> And to think, 20 years ago when I got my first cell phone I was excited.
<ocdtrekkie> Android: Never again.
<ocdtrekkie> What's sxmo?
<jonesv[m]> It's a completely different mobile UI: https://sxmo.org/
mnutt has quit [Remote host closed the connection]
<jonesv[m]> If I could daily-drive pmOS, I would probably try with sxmo.
mnutt has joined #sandstorm
<ocdtrekkie> I am about 50% more likely to break out my PinePhone knowing Ian is using it.
<ocdtrekkie> The other 50% is the hesitation to ask Ian even more often how to do stupid Linux things than I already do.
<isd> Hah
<isd> Dumping windows was similar for me; it's not like I finally got all my issues with linux ironed out, I just eventually got angry enough to put up with them.
mnutt has quit [Remote host closed the connection]
mnutt has joined #sandstorm
<jonesv[m]> I went Windows -> macOS -> Linux, and never looked back. I think for me a lot of it has to be with tiling window managers. Together with vim, it means that I don't use the mouse so much, and it feels better :)
<isd> I dual booted with windows for a while for games.
<isd> Eventually it wasn't worth it anymore.
<jonesv[m]> Because you stopped playing, or because Steam made it mostly work on Linux?
<jonesv[m]> (I'm curious about the SteamDeck, for instance)
<isd> Oh this was long before that. We're talking like 2008
<jonesv[m]> oh right
<isd> I'm old
<isd> Apparently
<isd> Yeah, I just gave up PC games
<jonesv[m]> I moved to Linux in 2013 😇
<isd> I was mostly into fighers which tended to be on consoles at the time anyway
<jonesv[m]> (I'm not that young)
<isd> so it wasn't a huge thing to lose
<ocdtrekkie> I'm so used to tuning Windows at work it doesn't bother me much at home.
<ocdtrekkie> But I also run a domain controller at home now, lol
<jonesv[m]> Yeah I guess everything works, when you're used to it. I just don't really tune my Linux 😅. I use a tiling window manager with the default key bindings, vim with the default bindings, and whatever IDE with vim bindings when necessary (e.g. Android-Studio)
<ocdtrekkie> Group Policy is IMHO the most powerful thing ever built for computers by anyone, and if someone makes a convincing Linux equivalent, I'd consider it. :p
<isd> I had the luxury of making the jump when I was still a student and had the time to endlessly fuss with things. I do a lot less tweaking now.
<jonesv[m]> What's Group Policy?
<ocdtrekkie> It's basically how a corporate environment deploys settings to PCs en masse, Windows only though.
<jonesv[m]> right
<ocdtrekkie> Basically anything you can configure on a Windows PC, I can push it to all my PCs, once.
<kentonv> it's how the corporate overlords control their minions, or at least, their minions' computers
<ocdtrekkie> My Firefox settings, I set them once on my domain and every computer I add to my network will have them automatically.
<ocdtrekkie> haha that too kentonv
<ocdtrekkie> Like once a month I have to go in and change it to block whatever new bad telemetry feature Mozilla came up with that release.
<ocdtrekkie> At work, I have it prevent ChromeSetup from running ever
<jonesv[m]> Is Firefox adding new bad telemetry features every month? I need to get up-to-date on that :D
<jonesv[m]> But how many computer do you have, to need that?
<jonesv[m]> kentonv: but how do they control their minion's iOS/Linux computer then? Is there an alternative other than forcing the use of Windows 😆?
<jonesv[m]> s/iOS/macOS
<kentonv> well, I'm not really an IT expert. My understanding is that there are some similar tools for mac (but maybe not as powerful?). And if your employees are using Linux then they are probably engineers who will get angry if you don't let them just do their own thing.
<jonesv[m]> Haha yeah, fair point. Actually Jacob Weisz kind of "abuses" the concept by using it willingly, I suppose, as it's probably not the biggest use-case xD
<ocdtrekkie> People are often way too lax on personal computer security.
<ocdtrekkie> I'm not an admin on my home PC anymore.
<jonesv[m]> Which is what you get by default on Linux, right? I mean, assuming that you don't blindly copy paste random `sudo script.sh` from the internet
<jonesv[m]> Or did you mean it differently? Like on Windows I think I have seen popups asking for permission (it's just that people probably learn to blindly accept everything)
<ocdtrekkie> That's UAC, it's kinda like doing a sudo, but I have fully separate accounts for admin and daily use.
<ocdtrekkie> I want to say default behavior when I install Ubuntu, I can sudo with the same password as my main account.
<ocdtrekkie> Though on Linux they're conceptually separate accounts, unlike UAC on Windows.
<jonesv[m]> Right
jonesv_ has joined #sandstorm
<jonesv_> Trying from IRCCloud 👋
<TimMc> kentonv: My company got acquired by a 20x larger one and I think they're just trying to pretend their new Linux users just don't exist.
<TimMc> There are tools for managing Linux, but they're usually intended for managing *servers*. :-P
<TimMc> That said, I absolutely use Ansible to manage the configuration on my own personal laptop.
<isd> Yeah, usually per-user things are not managed.
<isd> One of these days I will switch to NixOS.
jonesv_ is now known as jones
<kentonv> eh UAC is meaningless on a single-user desktop.
jonesv[m] has left #sandstorm [#sandstorm]
jones is now known as jonesv
<ocdtrekkie> True, which is why I added users. :) If I am not the user who can elevate to admin, UAC becomes useful.
<ocdtrekkie> <isd> "One of these days I will..." <- When you get frustrated enough with running normal Linux? 😂
<isd> Something like that
<jonesv> xD
<jonesv> > One of these days I will switch to NixOS.
<jonesv> I am really curious about Nix. I mean it seems like a cool concept in general, but I am not completely convinced by the "it solves the DLL hell problem". Like... I want to use at least _some_ shared libraries and get security updates for free (typically OpenSSL). And I want to have some distro maintainers who kind of make sure that the packages they provide on the official repo work together. So Nix does not solve that, right?
<ocdtrekkie> I mean, the way Nix fixed the TTRSS upgrade problem in Sandstorm was kinda magical.
<jonesv> So then the next thing that Nix seems to solve, is for those dependencies I have that don't come from my system package manager. But there I can just build and link them statically already
<ocdtrekkie> I'm not running to use it as my machine but I was still impressed by it.
<jonesv> @ocdtrekkie Sandstorm uses Nix?
<ocdtrekkie> No but one package abuses Nix packages.
<jonesv> Right. But it could build its dependency and link it statically, couldn't it?
<isd> Mainly right now I wish I had less ad-hoc ways to do rollback and such; pipewire shipped a regression recently that broke my ability to do videoconferencing at all, so I've installed the old version manually. And I had a kernel update do something wonky with my graphics drivers, so I'm running the LTS kernel much of the time. But that's giving me weird version skew that's making virtualbox not work, which makes vagrant-spk hard to use.
<isd> It's quite rare for there to be this many things broken at once. But when it does happen, it makes nix look really good.
<jonesv> Because you could fix the version of the system packages that broke something with their latest update, right?
<isd> Yeah.
<isd> Just boot an old configuration and done.
<jonesv> But couldn't system package managers do that without doing everything else that Nix does? Like supporting multiple versions of a package? Wasn't it Gentoo that could do that?
<isd> You probably could reduce the scope of what nix does to get "just" that. But there's enough work involved in keeping versions isolated from one another that I'm not sure you get something much simpler
<isd> I mean, you could actually do a full uninstall & reinstall I guess. But, esp. since the graphics driver issue caused my machine to not boot properly, that rules out some nice things like having old system configs as just other boot options...
<jonesv> I guess my point is that maybe I don't want to isolate versions of shared libs. Maybe I just want an easy way to rollback to a previous package version. But I think I've done that in the past for a broken Arch package...
<jonesv> Nix allows you to essentially "pin" shared libs. But it feels like that's the role of static libs. If you want to share the lib, then you should share it 😆. And if the lib breaks backward-compatilibility for each release, maybe it's not a good lib and it should not be used in the first place
<jonesv> I don't know, maybe I'm naive there 😇
<jonesv> I just fear that providing a way to deal with "badly maintained" libraries will just enable them even more. A bit like what docker did: it feels more and more common to just ship a whole rootfs in a container instead of learning to package properly. I was complaining about ElectronJS before (because it ships small apps with a full browser), but I would not be surprised if some day every single app shipped as a full container.
<isd> I think the point that it's sortof doing the job of static linking is valid insofar as it's a bit of a code smell. But getting everything it packages to actually just use static linking seems like a fools errand, especially when you think about things that invoke command line tools as dependencies, or are written in dynamic languages and there's no linker as such anyway
<isd> I agree "docker as static linking" is quite sad.
<kentonv> statically linking (or containerizing) literally every program would waste a huge amount of disk space and memory. It would be nice to have a system where every program saw the right combination of dependencies for it... where well-maintained core libraries are always shared while higher-level libraries can be pinned to various versions per-program
<kentonv> easily possible in theory
<jonesv> @kentonv but isn't this what you get by relying on the system dependencies for those "well-maintained" one, and statically linking the other ones?
<kentonv> jonesv, only if you trust the upstream author or packager to make good decisions about which libraries should be statically linked I guess
<jonesv> Well assuming open source, you can just build the upstream libs the way you want them.
<kentonv> yeah but no one has time for that
<jonesv> I guess that's the main point, right? 😄
<isd> It is worth noting that the nix store is content-addressable, and so de-dups shared build artifacts, albeit at the package level. You could probably solve the disk space problem by doing the same thing at a lower level, such that statically linked binaries benefit from it. But now you're talking about changing stuff with the way the filesystem works.
<kentonv> what if I could be like... "shit I did an upgrade and inkscape broke, please fix inkscape", and then then system sort of figures out which dependencies of inkscape changed recently and tells it to pin to the previous versions of those
<kentonv> isd, yeah, if I had time to make my own OS this is one of the things it would do.... :)
<jonesv> @kentonv Right, but say, now inkscape points to an older version of OpenSSL. When does it update it?
<isd> Yeah, a lot of this comes down to "sure, there are better designs, but they require throwing everything out."
<kentonv> jonesv, when said package next upgrades, we try again. Hopefully openssl doesn't cause breakages often, though. More likely it's gnome-dbus-left-pad or whatever.
<ocdtrekkie> kentonv: Sandstorm is kinda your own OS. On top of another OS.
<ocdtrekkie> fwiw, you can probably solve a lot of storage inefficiency by throwing some sort of deduplicating file system underneath.
<isd> Sandstorm has kindof accepted the same trade-offs; spks are also arguably static linking with too much indirection, but it lets us use normal dev toolchains
<kentonv> sandstorm is incredibly inefficient TBH. :)
<ocdtrekkie> Just not the Windows one. NTFS Deduplication is a crime against humanity and computing. And also evil.
<isd> Also, while we're on the topic: https://github.com/zenhack/ocap-merkledag
<ocdtrekkie> (As a fun fact, the only way to eradicate NTFS Deduplication once you make the mistake of turning it on is to reformat the drive.)
<jonesv> @kentonv yeah actually that would be cool: just temporarily downgrade the package and its dependencies, and try again in the next upgrade. I guess then some packages would be permanently broken, so people would never want to upgrade them, and that would get closer to what Nix does not, but worse? Not sure 😅
<abliss[m]> <kentonv> "sandstorm is incredibly ineffici..." <- fortunately, disk and ram are cheap (especially compared to my time) :)
<jonesv> @isd Sounds cool! (I mostly read the Perkeep intro). Is it meant as some kind of "vertical" backup solution (as in: from the filesystem up to the tools to navigate it)?
<isd> I intend to keep stuff loosely coupled where appropriate. But probably higher level stuff will end up in the same repo.
<isd> The main innovation vs. perkeep is basically leveraging capnp to make stuff capability-safe. So you can hand some one a Ref to some content, and they can explore that subgraph, but it doesn't give them the ability to do get(<some hash>)
<isd> I really should add some comments to protocol.capnp, so I can point people to it to explain the big ideas...
<isd> But yeah, docs are very sparse right now because it's not very far along, and I keep getting sidetracked by other things.
<isd> Though now some of those "other things" include improvements to go-capnp, which should benefit ocap-md when I get back to it.
<ocdtrekkie> Is it only going to be useful for backups or could it make Sandstorm storage more efficient? :P
<isd> I could see it becoming a more general storage technology, but that's sortof a function of how much work gets thrown at it.
<isd> backups are kindof the MVP use case
<jonesv> Really cool!
<ocdtrekkie> Backups are definitely inherently less efficient than Sandstorm.
<isd> Probably making it something robust enough and fast enough for us to want to put between grains and the filesystem would require a lot of work; I would not count on it soon :P
<ocdtrekkie> Good things happen slowly.