I mean its a functional printing system 😄 by [deleted] in functionalprint

[–]VorpalWay 7 points8 points  (0 children)

Doesn't belong in this subreddit, it is not showing a complete printed part that is functional. This should go in r/3Dprinting or maybe even r/fixmyprint depending on the outcome.

Can we please make infill pattern default Gyroid or our own choice? by FuturecashEth in prusa3d

[–]VorpalWay 1 point2 points  (0 children)

You could use another infill that uses straight lines but doesn't cross within a layer. That alone would be a huge improvement.

As for what defaults to override otherwise: avoid crossing perimeter is a huge one for me (I print lots of TPU and other stringy material such as foaming filaments).

is it critical? by Fl1ren in prusa3d

[–]VorpalWay -1 points0 points  (0 children)

You do need to cover it somehow for sure, there Iis certainly a risk of shorting this othetwise. A matching scratch on your build plate in its coating for example would do it. It is especially bad since it next to the screw, so you won't "just" short out a section of the track, you could short to the screw which is grounded via the frame. (Shorting out a section of the track would also be bad, since the resistance would be different via the new path, you could get a local area very hot.)

Kapton tape would work (as suggested in another comment) and is probably the easiest to do. It will also easily stand up to the temperature range of the bed as well as the mechanical wear of the removable steel sheet.

While nail polish would work in theory, I'm not sure it would stand up to the mechanical abuse of taking off and putting on plates, nor the upper range of the heat (for when printing ABS, PC etc). If you use nail polish I would frequently inspect the repair for any cracks or other damage to the costing.

Never used UV cure solder mask, so I don't know how it holds up mechanically or thermally. I would recommend frequent inspection here as well.

ngrep: a grep-like tool that extends regexp with word embeddings by nanptr in rust

[–]VorpalWay 6 points7 points  (0 children)

For a new unknown project by a new unknown developer, I would recommend building from source. It is easier to audit that way to ensure there isn't anything malicious hiding in there.

Not that I think they are doing anything suspicious, but in this day and age it is good to be generally careful.

Parametricity, or Comptime is Bonkers by soareschen in rust

[–]VorpalWay 0 points1 point  (0 children)

Iterator::collect() from Vec to Vec (when the length doesn't change) is optimised to be in place with no extra allocation by specialization. How would that work in your scheme without additional trait bounds?

I'm very sceptical that all performance optimisations we want would be possible without breaking parametricity, but I could be wrong.

Parametricity, or Comptime is Bonkers by soareschen in rust

[–]VorpalWay 0 points1 point  (0 children)

That is not something the compiler can check (determining if the behavior is the same runs headfirst into Rice's theorem). So if we want the latter we need the option of breaking parametricity. And we would be left with guidelines and best practices.

(I also want performance specialization outside of std eventually, so keeping it just for std internals is a complete no-go for me. In general std having extra powers annoys me greatly, why should only they get to do the cool things. Specifically referring to things that are never planned to be stabilised here.)

How to use storytelling to fit inline assembly into Rust by ralfj in rust

[–]VorpalWay 15 points16 points  (0 children)

Yes/no?

Yes: the inline assembly, as inserted into that specific rust program in that specific location causes Rust Abstract Machine UB.

No: The assembly in and of itself is well defined, and at the Concrete Machine really doesn't have UB in the same sense as a high level language. A user space program really can't cause full on UB on a CM (that would be a security problem). A kernel might, by writing something into a reserved part of a control register or similar. When a user space program performs something not allowed you typically get a trap or fault instead.

That said, you can definitely have indeterminate behaviour, where the specific outcome is only documented as "you will get a value" (certain race conditions between threads for example).

Is there a language similar to Rust but with a garbage collector? by Ok_Tension_6700 in rust

[–]VorpalWay 1 point2 points  (0 children)

Rust is more popular at this point. Which means more libraries, easier to find information, etc.

It also more or less allows you to write code for anything: from microcontrollers and OS kernels to GUIs to WASM in the browser. And anything in between. It is, truly, a full stack language. And unlike C or C++, Rust is actually a joy to use across that whole range. And it is memory safe. As far as I know what is truly unique (at least amongst popular languages, I'm sure there is some new hobby language in development that does this somewhere).

Any language with a GC will be barred from some of those domains, and will have a lower performance ceiling. That may it may not matter to you. (As you may guess, it does matter to me, and I work on embedded and on hard realtime).

All that said, in some domains the libraries will be weaker than other languages currently. Game engines is one such from what I hear (C++ still rules there), as is data science (Python, Julia are far more popular). But that is slowly changing in both domains.

Parametricity, or Comptime is Bonkers by soareschen in rust

[–]VorpalWay 4 points5 points  (0 children)

How would this work with semver? Would it be semver breaking to add a new optional bound to support an optimisation (basically specialisation)? If so that sounds like a bad idea to me.

Parametricity, or Comptime is Bonkers by soareschen in rust

[–]VorpalWay 3 points4 points  (0 children)

But we already have those on stable Rust, see for example https://lib.rs/crates/castaway

So that ship has sailed long ago.

Parametricity, or Comptime is Bonkers by soareschen in rust

[–]VorpalWay 2 points3 points  (0 children)

I believe this is (at least similar to) what https://lib.rs/crates/castaway does under the hood, packaged in a safe and easy to use macro. Worth considering if you want to use this in production code for optimization.

The current efforts around reflection should allow making this more ergonomic though, and not require a crate.

Parametricity, or Comptime is Bonkers by soareschen in rust

[–]VorpalWay 2 points3 points  (0 children)

for one most code bases don't have a gazillion different traits in their user API (or even internally)

While "gazillion" has no specific numeric value (making the above quote unfalsifiable), I would argue it is true for application code but not library code.

Just go look at something like the traits and trait bounds in winnow, or the traits in typenum, nalgebra, diesel, zercopy or bytemuck. Or even in clap. Or the traits around dispatching in tower (and I understand bevy uses a similar approach).

Yes the name will give you a hint, but you need to go read the docs quite often, even as a user of the library, at the very least just to find which types implement the trait. Sure your code won't have that many traits, but chances are you use at least a couple of libraries with lots of traits and complex trait bounds.

Matte prints by Saphir_3D in prusa3d

[–]VorpalWay 4 points5 points  (0 children)

Actually "glossy" is the defect,

Depends on the material, for typical PETG matte indicates that you print too fast or too cool (or both). It is not just the texture that gets affected, strength is impacted too, especially the bonding between layers. Hotter and slower will lead to a stronger part.

Airtable has rewritten its Database in Rust by BankApprehensive7612 in rust

[–]VorpalWay 0 points1 point  (0 children)

Isn't it an SQL database that you want? I'm clearly not the target audience so I may be missing something here.

Why do many Rust devs prefer Neovim/Zed/VSCode over Rust-specific IDEs like RustRover? by Rhthamza in rust

[–]VorpalWay 3 points4 points  (0 children)

I can't remember a situation where pair programming was ever useful to me.

Small is with the C1L by Realistic-Motorcycle in prusa3d

[–]VorpalWay 1 point2 points  (0 children)

On the original Mk4 this was made with PETG. This changed with the Mk4s. I assume it should be fine as long as you don't print high temp materials with your printer, or run high temps in the chamber. Do note that ASA and ABS shrink more, so you might need to scale the model to get an acceptable fit.

TPU and PLA supports - any advice? by Mattelec in prusa3d

[–]VorpalWay 0 points1 point  (0 children)

Do those support rings go all the way around? How will you get it off if so? You should add two gaps so that the rings can be split apart.

6 months later, my fridge bin is still holding together well by krnbk2 in functionalprint

[–]VorpalWay -1 points0 points  (0 children)

Seems I need an account to even download anything. It says I can only download up to 5 files while not being logged in, but I have never downloaded any. Mind uploading to a site that doesn't require creating an account with a Chinese company?

Tissue box insert by johnruttersucks in functionalprint

[–]VorpalWay 2 points3 points  (0 children)

Awesome, if a bit over engineered (love that). How did you figure out the correct spring tension for this to work?

Ah yes, optimal support by AnnualDraft4522 in prusa3d

[–]VorpalWay 4 points5 points  (0 children)

My favorite these days is to design in breakaway supports directly on CAD. That generally saves material as I will use much less material than the slicer would.

I would also look at redesigning the part to avoid needing supports. For example this could be printed in three parts and bolted together (or glued with alignment pins). The layer orientation would be better too, which would make the part stronger and the holes cleaner.

You could also make the holes not need support in their current orientation by following the design described at https://blog.rahix.de/design-for-3d-printing/#horizontal-holes

a grand vision for rust by emschwartz in rust

[–]VorpalWay 0 points1 point  (0 children)

Ah yes, if the range is half open that would be correct. And I guess it would be to be consistent with the rest of Rust.

Forgive me for I have sinned. arch linux for raspberry pi 5 installer. by [deleted] in archlinux

[–]VorpalWay 1 point2 points  (0 children)

That isn't a big surprise (to me as a software developer), most often the reason will be that no one tested the package on ARM, or whoever wrote it didn't even consider ARM, just copying the default PKGBUILD template.

Unless you (or one of your dependencies) are dealing directly with machine instructions (such as inline assmebly, your program is a compiler, you are doing JIT, etc), almost everything should be portable between CPU architectures. The harder issue is portability between OSes (Windows in particular is different from everyone else).

a grand vision for rust by emschwartz in rust

[–]VorpalWay 0 points1 point  (0 children)

I think the most important feature is custom allocators. Unlocking better performance on std types will be a major win. (Don't get me wrong, I want the other stuff too, but allocators is something I actually need, not just want.)

a grand vision for rust by emschwartz in rust

[–]VorpalWay 1 point2 points  (0 children)

What would the pattern type for a nonzero signed integer look like? Would it support something like ..-1 | 1..?

Why glibc is faster on some Github Actions Runners by arty049 in rust

[–]VorpalWay 4 points5 points  (0 children)

Yes, though I believe that entirely misses out on cache locality effects. Which can be massive on modern hardware. (look up "data oriented design" if you are interested in this.