Hacker Newsnew | past | comments | ask | show | jobs | submit | tcfhgj's commentslogin

What apps?

I use a FP3 too, but I am a little surprised


I don't know for fair phone but I was not able to install tailscale for my old Samsung Galaxy S2 tablet. Fortunately I was able to install an XDA rom

Banking. It's always banking.

What matters is how long devices are used, not how often the owner changes.

That's right, and buying new and taking very good care of your stuff + using to the point of being unusable probably beats serial-buying second hand devices you mistreat.

There has to be second hand users tough, otherwise the second hand devices that, for a reason or another, are not used to the end by their original buyer never get used again.


A friend of mine had a broken finger print reader (a few cents online), he couldn't find any repair shop who wanted to repair it (probably because the display would have to removed).

I don't know about Android phones but how often does FaceID/TouchID break? I'd bet it's extremely rare.

I personally don't think it's worth it to buy a Fair phone for the extremely low chance that a component breaks and you can't get it repaired.


> I personally don't think it's worth it to buy a Fair phone for the extremely low chance that a component breaks and you can't get it repaired.

I might be misreading you, but this comes across a little like "that one use case doesn't prove you need a fairphone so don't buy a fairphone".

I don't think most people are evaluating tech like that. Only a zealot is going to consider a fairphone as the only option, they probably are looking at a bunch of criteria and options.

There's no correct answer to "what phone should I buy?" in a way that could be proven / argued for. I think people here are just saying fairphones have great repairability.


Maybe people should install AdNauseam to make up for the lost clicks?

https://adnauseam.io/


AdNauseam's fake clicks are so detectable that it's hard to imagine any ad networks are fooled by it.

https://news.ycombinator.com/item?id=46188039


is it detected though?

zevv obviously cares about cookies and privacy

Reminds me of C++ (templates) or Latex vs Rust or Typst error messages - good errors are possible

theoretically the C++ compiler needs to consider things like exceptions which don't exist in C, so I'd even tend to the opposite

did you mean to write the opposite of what you wrote?

Accidentally posted in the middle of an edit; corrected now, thanks.

You posted the edit over 7 hours ago and it still doesn't make sense. You should check what the U in UBI stands for.

sure about that?

the struct in which it is stored, could be generic as well


I'm addressing the intent of the original question.

No one would ask this question in the case where the struct is generic over a type parameter bounded by the trait, since such a design can only store a homogeneous collection of values of a single concrete type implementing the trait; the question doesn't even make sense in that situation.

The question only arises for a struct that must store a heterogeneous collection of values with different concrete types implementing the trait, in which case a trait object (dyn Trait) is required.


> Are people making user facing apps in rust with GUIs?

yes


I made this with egui and typo: https://github.com/PJaros/menu_pdf

Works under Linux and Windows.


got any to share? Should I assume native gui in these these rust performance debates?


What do you think are good use cases for multi threading in these editors?

"don't block the ui thread" is a pretty classic aphorism in any language.

Hmm. "Fearless concurrency" and the flagship examples are... background threads for search and not freezing the UI?

That is GUI programming 101 from the Win32 era. Every Tcl/Tk app, every GTK app, every Qt app has been doing this for 25+ years.

If Rust's concurrency story were genuinely revolutionary, you would expect examples like:

- Lock-free data structures that are actually hard to get right

- Complex parallel algorithms with non-trivial synchronization

- Work-stealing schedulers with provable correctness

Instead we have "we run grep in a background thread"?


When a basic question is asked, a basic answer is given. I didn’t say that I think that’s the coolest or most interesting answer. It’s just the most obvious, straightforward one. It’s not even about Rust!

(And also, I don’t think things like work stealing queues are relevant to editors, but maybe that’s my own ignorance.)


You cannot have it both ways though. Either these are meaningful examples of Rust's benefits, or they are not worth mentioning.

In a thread about Rust's concurrency advantages, these editors were cited as examples. "Don't block the UI thread" as justification only works if Rust actually provides something novel here. If it is just basic threading that every language has done for decades, it should not have been brought up as evidence in the first place.

Plus if things like work-stealing queues and complex synchronization are not relevant to editors, then editors are a poor example for demonstrating Rust's concurrency story in the first place anyway.


Here is the question that was asked:

> What do you think are good use cases for multi threading in these editors?

That question is not even about Rust. I answered the question, not some other related question.


The editors (and the desktop environment) are examples for apps with a GUI in Rust, to show people indeed create apps with GUIS in Rust, nothing else.

search, linting


Well, what about small CLI tools, like ripgrep and the like? Does multithreading not matter when we open a large number of files and process them? What about compilers?

Sure. But the more obviously parallel the problem is (visiting N files) the less compelling complex synchronization tools are.

To over explain, if you just need to make N forks of the same logic then it’s very easy to do this correctly in C. The cases where I’m going to carefully maintain shared mutable state with locking are cases where the parallelism is less efficient (Ahmdal’s law).

Java style apps that just haphazardly start threads are what rust makes safer. But that’s a category of program design I find brittle and painful.

The example you gave of a compiler is canonically implemented as multiple process making .o files from .c files, not threads.


> The example you gave of a compiler is canonically implemented as multiple process making .o files from .c files, not threads.

This is a huge limitation of C's compilation model, and basically every other language since then does it differently, so not sure if that's a good example. You do want some "interconnection" between translation units, or at least less fine-grained units.


And yet despite that theoretical limit C compiles faster than any other language. Even C++ is very fast if you are not using header-only style.

What’s better? Rust? Haskell? Swift?

It’s very hard to do multithreading at a more granular level without hitting amdahl’s law and synchronization traps.


It reminds me of the joke that "I can do math very fast", probed with a multiplication and immediately answering some total bollocks answer. - "That's not even close" - "Yeah, but it was fast"

Sure, it's not a trivial problem, but why wouldn't we want better compilation results/developer ergonomics at the price of more compiler complexity and some minimal performance penalty?

And it's not like the performance doesn't have its own set of negatives, like header-only libraries are a hack directly manifested from this compilation model.


your topic is shifting from multi-threading benefits in language compilation, to ergonomics of C headers.

No it doesn't, try it against a language with modules support, even the oldie Turbo Pascal for MS-DOS.

Turbo pascal compiles faster because of better parallelization?

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: