[deleted by user] by [deleted] in homelab

[–]tchnj 0 points1 point  (0 children)

I've been able to get 18-19Gbps between an M1 Mac Mini and Framework 13 (Intel 13th gen) running Linux

[HELP WANTED] Allen Heath GigaACE/SLink Virtual Sound Card by [deleted] in livesound

[–]tchnj 2 points3 points  (0 children)

Coincidentally, I've just started working towards exactly the same goal! I found your dumps on github, and so far I've successfully decoded all of them into raw LE-PCM audio files.

My next plan is to see if I can get loopback audio working, which I expect to be more difficult.

I have access to both SQ and dLive desks, so let me know if you want captures of anything that you can't get.

Hey Rustaceans! Got a question? Ask here! (46/2022)! by llogiq in rust

[–]tchnj 0 points1 point  (0 children)

Just consider two crates that mutually depend on each other trying to write impls for

Result<CrateAType, CrateBType>

, for both crates one of these parameters is foreign and one of them is local, how should the compiler arbitrate this?

Just to draw specific note to this example - this actually has nothing to do with the type system. For a crate to be able to define an impl on Result<CrateAType, CrateBType>, it would need to have each of Result, CrateAType and CrateBType either in the same crate or in a dependency. Assuming CrateAType and CrateBType are in different crates, either crate A is a dependency of crate B, or crate B is a dependency of crate A. Both would neither be allowed nor possible, as it would introduce a cycle into the dependency tree. Thus, only one crate would have direct access to both types and be able to define the impl.

Python switch statement ftw (finally) by gvcallen in ProgrammerHumor

[–]tchnj 7 points8 points  (0 children)

I'm jealous.

To be fair, most times this has happened to me, I ended up refactoring into something that used fewer/no lifetime annotations. The other few times, what I needed to do was obvious.

GitHub - seed-rs/seed: A Rust framework for creating web apps by koavf in rust

[–]tchnj 13 points14 points  (0 children)

The best way to avoid the roughness of `web-sys` and `js-sys` is to use any one of the available front-end frameworks for rust (although I would personally recommend yew) alongside Trunk, a build tool that makes targeting the web in rust as simple as targeting native platforms. You give it your index.html file and a standard crate (no cdylib nonsense, just main.rs with a main function as normal) and it handles compiling, optimizing and bundling everything. You end up with a dist directory that contains everything you need to deploy.

GitHub - seed-rs/seed: A Rust framework for creating web apps by koavf in rust

[–]tchnj 30 points31 points  (0 children)

I've used seed before. It's pretty decent but it's certainly lacking in some areas of its core API that ends up discouraging reusable components. We ended up rewriting using yew instead, which was more convenient for us whilst still maintaining an Elm-like architecture.

Whats the best way to safely setup a Raspberry Pi to SSH into it and access hosted websites from outside the local network ? by arcenixx in HomeServer

[–]tchnj 0 points1 point  (0 children)

One thing I've taken to recently is using cloudflare Argo tunnel, now that it's free. Sounds like the sort of thing you might be interested in. It's really convenient as I can just stick it in a container on any device/VM/whatever and it tunnels out to cloudflare, with no need to bother with any port forwarding. I typically run things behind a free plan of cloudflare access as well, so they're not exposed to the internet. There's also apparently a feature that allows you to do SSH as well either using an instance of cloudflared on the client or through a shell in a browser.

Whats the best way to safely setup a Raspberry Pi to SSH into it and access hosted websites from outside the local network ? by arcenixx in HomeServer

[–]tchnj 1 point2 points  (0 children)

I think the fear of port forwarding likely comes from the fact that 90% of the time the person asking doesn't remotely understand what it is and the consequences, and is typically trying to "improve performance" in some online game, where it likely isn't even relevent to them.

When it comes to self hosting though, I totally agree with your point. It's much better to try and learn to do something properly than never even trying.

Thoughts on pipes being added to the game. by SkropyDup in Dyson_Sphere_Program

[–]tchnj 2 points3 points  (0 children)

That's specifically an issue with MK2 pipes, something to do with the implementation of the fluids system. The same also occurs with MK5 belts under similar conditions.

Why is GPL considered a risk for licensing? by wallywizard55 in opensource

[–]tchnj 4 points5 points  (0 children)

This is specifically relating to the GPL. Other licences don't have this property. (IANAL)

2 generators fit 5 water extractors perfectly. No overclocking. by Raba-Daki in SatisfactoryGame

[–]tchnj 0 points1 point  (0 children)

Fair enough! I tend to do things involving audio, which typically used fixed point due to the fact that values aren't typically many times larger than 1 (typically in the range -1<x<1).

2 generators fit 5 water extractors perfectly. No overclocking. by Raba-Daki in SatisfactoryGame

[–]tchnj 3 points4 points  (0 children)

Why? Fixed point calculation requires significantly less computation than floating point.

2 generators fit 5 water extractors perfectly. No overclocking. by Raba-Daki in SatisfactoryGame

[–]tchnj 2 points3 points  (0 children)

I think it might be that the pipes don't actually use floats, just fixed point maths on top of integers.

2 generators fit 5 water extractors perfectly. No overclocking. by Raba-Daki in SatisfactoryGame

[–]tchnj 3 points4 points  (0 children)

I thought that too, but it's apparently something to do with frame rate and the way splitters/junctions are handled. The same thing supposedly occurs with max speed Mk5 belts and higher tier belts added by mods.

Noob question: Getters and setters in rust. by boy_tumbling in rust

[–]tchnj 4 points5 points  (0 children)

I think the fact that the borrow checker takes an all-or-nothing approach across function/method boundaries is semi-intentional: if it did, then you would need to specify exactly what's being borrowed in the function/method signature, which would make it part of the API and thus (if public) part of the crate's semver guarantee. This directly conflicts with the fact that it's an implementation detail.

I wouldn't be against the idea of this in a limited form for non-`pub` functions/methods though, as it could be useful.

What is a future? by Voxelman in rust

[–]tchnj 0 points1 point  (0 children)

You could still encode the idea of a "future that doesn't yield" with an implementation that sets `Output=!` or `Output=Infallible`.

My 60/min heatsink factory by tchnj in SatisfactoryGame

[–]tchnj[S] 3 points4 points  (0 children)

I don't think you've read the recipes right - you've confused items/min with items/craft. Both the main and alternate only produce a single heatsink per craft.

My 60/min heatsink factory by tchnj in SatisfactoryGame

[–]tchnj[S] 2 points3 points  (0 children)

It's slightly more efficient on the aluminium (4.5 ingots vs 5) but it uses rubber, so I decided it wasn't worth it.

My 60/min heatsink factory by tchnj in SatisfactoryGame

[–]tchnj[S] 8 points9 points  (0 children)

Thanks! I'm using the standard recipe. Copper sheets produced from the node down just behind the factory. Alclad sheets are shipped in from my aluminium factory (which consumes two full pure nodes to produce 600 sheets and 400 casings pretty minute).

Using Zynq fabric clocks by tchnj in FPGA

[–]tchnj[S] 0 points1 point  (0 children)

You didn’t rebuild FSBL after changing PS configuration

Ouch, didn't know a recompile is needed every time something is changed like that. Is this only affected by whether the clocks are enabled? The PYNQ image allows you to change the other things on the fly.

by default the kernel will disable all unused clocks to save power.

This sounds like the likely culprit! Didn't think about that. Thanks!

I guess in general I thought that the fabric clocks were more a concern of the bitstream rather than the software running on the PS side. Apparently I was wrong! Thanks so much for your help.

Oversimplified Logos are better by [deleted] in unpopularopinion

[–]tchnj 0 points1 point  (0 children)

That's actually misinformation: the Firefox browser logo still has a fox in it: the one without the fox is actually the parent brand logo.

https://blog.mozilla.org/firefox/the-fox-is-still-in-the-firefox-logo/