<eyJhb>
joepie91: I read it as, in Nix, but I am not guessing in Nix :p
<joepie91>
eyJhb: oh, nah, JS
<eyJhb>
Aren't there any JS implementations?
<joepie91>
yes, there's the official "JS client SDK"
<joepie91>
it's frankly junk :P
<joepie91>
it has a long, long list of design problems
<eyJhb>
Sad, any particular reason?
<joepie91>
it's not modular at all, everything is globbed together into one big library where most of the internals aren't exposed; likewise, the library is designed very monolithically, so if you want to do something that the library wasn't built for, you basically have to fork the entire thing
<joepie91>
the internals are a mess, the docs are bad, it follows a very... Java-esque design of classes and events
<joepie91>
the API design is inconsistent
<joepie91>
it is just, generally, not nice to work with
<joepie91>
(as is generally the case for things that call them "SDK", it's not unique to Matrix)
<joepie91>
call themselves*
<joepie91>
it's also highly stateful which means it doesn't integrate nicely with things like Redux or other external data management systems/patterns
<joepie91>
basically, it has the classic problem of "trying to be everything for everyone and doing 90% of it half-assed as a result"
<joepie91>
I'm trying to fix all of those things in my implementation :P
<joepie91>
I have a `stream-events` module for example, which is just a lazy stream that feeds you events from the homeserver, linearly
<joepie91>
you give it a session object (contains homeserver + access token) and out comes a stream that will only make requests to the server when polled, deals with aborts, etc.
<joepie91>
that you can compose together with other streams to filter, transform events, and so on
<joepie91>
spec compliance failures get papered over in a maintainable way, you can use all of the individual pieces if you don't want the stream API, etc.
<joepie91>
</ramble>
<eyJhb>
Syntax error joepie91 , there was no start ramble tag. Warnings please! \s
<eyJhb>
Sounds nice
<eyJhb>
:D
<joepie91>
:P
<joepie91>
eyJhb: hold on, I will grab an example in a sec
<joepie91>
this logs every roomTimelineEvent as it comes in
<joepie91>
(starting from that `since` point in time)
<joepie91>
the `eventMapper` is a function that transforms protocol events into more usable and consistent event objects; you can use the off-the-shelf module for that, or a custom event mapper function
<joepie91>
there will ultimately be a high-level `client` module which wraps it all together into a more "traditional" client library format
<MichaelRaskin>
joepie91: I think you missed saying that, you know, this SDK is just a framework and not a library
<joepie91>
but all of it is designed to also be usable individually, eg. for weird non-chat projects that only need a small part of the off-the-shelf logic and a bunch of custom logic
<joepie91>
MichaelRaskin: nah, it's still a library
<joepie91>
just an outgrown one
<joepie91>
the react SDK is more a framework :P
<MichaelRaskin>
I think I read the matrix-recorder code and it already shows that Matrix SDK is already a framework
<joepie91>
(but is also functionally useless, if you are not developing on Riot/Element)
<joepie91>
isn't matrix-recorder Python?
<MichaelRaskin>
Nope, Node
waleee-cl has joined #nixos-chat
__monty__ has joined #nixos-chat
<eyJhb>
Any good DE, that supports touchscreens?
<eyJhb>
With a virtual keyboard etc.
<jtojnar>
GNOME gets lot of hate for having touch-screen-centric UI
<jtojnar>
not sure how well it works there in practice
<jtojnar>
it's virtual keyboard is more for typing, though (e.g. no modifier keys)
<ar>
i wonder how plasma touch is doing these days
<eyJhb>
Are there actually any guides on getting RPi to run Linux?
<__monty__>
What do you mean? I'm pretty sure it doesn't run windows nor macOS.
<eyJhb>
NixOS
<eyJhb>
__monty__: you should know what I mean!
<eyJhb>
:(
<__monty__>
Being able to say what you mean is a pretty good skill to have though ; p
<eyJhb>
Shys, my hands knew NixOS where Linux, and typed that! :p
<eyJhb>
Uhh, I have put heatsinks on some of my Pi's
<eyJhb>
Pis? Idk, pis just means piss in DK
<__monty__>
#nixos-aarch64 probably knows more.
<__monty__>
I know some people do.
<__monty__>
*run NixOS on an RPi.
<__monty__>
clever's reverse engineering the firmware even, I think.
<bqv>
there's a nice wiki article, or three
<bqv>
eyJhb: crawl the wiki
<bqv>
but note that if it's an rpi2 or less, you're in uncharted territory and it will be extremely painful
<bqv>
i've only been up 2 or 3 hours and i feel like i'm already out of spoons, this is gonna be a good day huh
<__monty__>
Is that an english idiom I'm not familiar with or not an english idiom at all? 🤔
ravndal has joined #nixos-chat
<bqv>
the latter
<__monty__>
Is it an idiom in a different language?
<bqv>
it's a mental health idiom
<bqv>
spoon theory
<__monty__>
Ah, TIL.
<bqv>
basically a cheap accessible form of energy accounting
<infinisil>
I personally like rusty spoons
<bqv>
heh
<eyJhb>
bqv: Why not forks and rule the world?
<__monty__>
You don't rule the work by fracturing the community, eyJhb.
<abathur>
so, like a GPT-3 AI that converts quick-start codeblocks into Nix?
<gchristensen>
sgtm
ravndal has joined #nixos-chat
<gchristensen>
upping the stakes a bit, if anyone can make a nix expression for those installation instructions, I'll buy you a nRF52840 development kit and dongle :)
<MichaelRaskin>
I think you missed the «working» part?
<__monty__>
What are the difficult parts, udev?
<MichaelRaskin>
maybe packaging plug-ins from VS Code Marketplace
<MichaelRaskin>
And cargo plugins…
<gchristensen>
gettnig the crossSystem setup, packaging all the cargo extensions, etc.
<eyJhb>
Can't even get my RPi worknig 100%, not touching that
<eyJhb>
I suck at that gchristensen :p But let me check it out
<gchristensen>
ericson suggested something like crossSystem = {config = "armv7m-none-eabi"; platform.gcc.mode = "thumb"; }; but I never managed to get a working shell
<eyJhb>
What is it for gchristensen ?
<gchristensen>
I want to follow the book
<eyJhb>
NOW This might be stupid
<eyJhb>
But why not just throw it into Docker and call it?
<gchristensen>
I actually can't run docker, but I could do it in a vm
<eyJhb>
Why not docker?
<eyJhb>
Curious
<gchristensen>
it uses old cgroups and I need newer cgroups
<eyJhb>
Ahh
<eyJhb>
I would say, throw it into a VM or something then
<tilpner>
Does podman use old cgroups? (And is this a property of the orchestrator or runtime (crun, runc, I confuse them))
<eyJhb>
Because, it does not seem worth the work
<gchristensen>
tilpner: podman works okay :)
<eyJhb>
I was about to mention that tilpner :D
<gchristensen>
yeah but also I don't really want to do that. if someone could get it working on nixos normally, I'd really prefer that of course
<eyJhb>
Yeah, but in-between? :p
<MichaelRaskin>
gchristensen: FHS env
<gchristensen>
;_;
<eyJhb>
Does NixOps work well for RPi? If anyone knows?
<eyJhb>
HELL NAY - copying path '/nix/store/9rw19635qfgv9ggm955dw7r45k7wgqvr-texlive-20190410-source.tar.xz' from 'https://cache.nixos.org'...
<eyJhb>
I just enabled gnome3 as desktop
<__monty__>
Probably for docs?
<eyJhb>
Maybe yes :(
<eyJhb>
I should also really go out and repair my car... Which I could have done, while this was rebuilding
<eyJhb>
Tried taking the stance, I will not go to the mechanic as such, but try to repair everything myself. Not sure how this will go..
bkv has joined #nixos-chat
bqv has quit [Ping timeout: 272 seconds]
bkv is now known as bqv
<eyJhb>
gchristensen: how woud you go about erase your darlings on a RPi? I don't think ZFS would run that nicely, but I might be wrong
cole-h has joined #nixos-chat
<philipp[m]1>
Are you using the microsd?
<eyJhb>
Yup
<philipp[m]1>
Afaik most rpis can also boot from better storage via usb, maybe using that is worth a shot if you really want to use it for sth long term.
<eyJhb>
Just going to be a info display :p So that would be OP
<gchristensen>
eyJhb: I do run ZFS on my pi's, though the ARC can cause problems and you need to tune it to use almost no memory
<philipp[m]1>
Then maybe erase your darlings is also OP? :p
<eyJhb>
philipp[m]1: that is about state, and knowing what you need etc.
<MichaelRaskin>
Just mount readonly everything.
<eyJhb>
Readonly might work
<philipp[m]1>
Would also be my suggestion, but also: Nearly all rpi failures I had were because bad microsd cards. Even a decent thumbdrive is a considerable upgrade in storage quality.
drakonis has joined #nixos-chat
<eyJhb>
Great, I have no space left on the device
<hexa->
collect some garbage then
<eyJhb>
This is the first build hexa-
<hexa->
rip
<eyJhb>
:p
<joepie91>
my 3D printer is running overtime today
<eyJhb>
tar: ghostscript-9.50/libpng/example.c: Cannot write: No space left on device, maybe optimize will help?
<hexa->
that or installing less :p
<eyJhb>
I have only enabled gnome3, granted it is the world I am including with it :p
<eyJhb>
But soon, pizza
<eyJhb>
What are you printing joepie91 ?
<hexa->
yeah, that explains alot :D
<joepie91>
eyJhb: a keyboard tenting stand earlier today, now another funnel parts tray with my new filament
<joepie91>
printed the right-most one yesterday, the left-most one today
<joepie91>
6 hours printing time each :P
<MichaelRaskin>
Maybe should have opted for thicker layers
<__monty__>
That's pretty tilted. Your arms don't get tired lifting that high?
<MichaelRaskin>
I guess there are some arm rests involved
<MichaelRaskin>
Hm, at that distance and tilt, one could compose a tent keyboard out of two cheap numpad-less keyboards…
<__monty__>
I do like how "let me clean up my desk" seems to have meant "shove everything back" : )
<__monty__>
The construction does seem excessively solid. Wouldn't the flat piece and two triangular pieces suffice?
<__monty__>
Though it's not like waiting for a print takes a lot of effort.
<joepie91>
__monty__: I'm pretty tall, so it's actually at the correct height for my arms now
<joepie91>
__monty__: and nah, I did actually clean up most of it, just not all of it :D
<joepie91>
also most of the printing time is actually in the overlapping layers for the slope, ie. unavoidable no matter the shape
waleee-cl has joined #nixos-chat
<joepie91>
MichaelRaskin: also the arm rests are actually a work in progress. I regularly switch between a stool and a desk chair, and the desk chair has insufficient armrest padding, but I'm missing some components to fix that
<joepie91>
should be able to get them by next week, if I don't forget
abathur has quit [Ping timeout: 265 seconds]
abathur has joined #nixos-chat
<__monty__>
Nah, joepie91, I meant ikea-style. Print three flat parts then assemble. You'd require far fewer layers and it'd be a lot easier to adjust the angle.
<joepie91>
oh, in that sense
<joepie91>
I appreciate the precision and solidness in the current design
<joepie91>
meh
<joepie91>
less stuff that can break, no wobbling
<joepie91>
it basically feels 'native' now, as if the stand is an integral part of the keyboard, and that was the goal :D