HNHacker News
TopNewBestAskShowJobs

gibibit

179 karma · joined April 10, 2024

Solving problems and making awesome things
submissionscomments
gibibit··on Show HN: Rust Vector and Quaternion Lib
You're right that an application project (a `binary crate` in Rust parlance) for embedded firmware versus a PC application is very different. But library crates are often usable in both an embedded or system-level context or in a full-fledged desktop GUI application.

Consider these common libraries you might use in either a `std` project (PC application, web microservice) or `no_std` project (embedded microcontroller firmware, bootloader, Linux kernel module, blockchain smart contract):

- data encoding (https://crates.io/crates/base64 for instance),

- hashing (SHA2 https://github.com/RustCrypto/hashes/tree/master/sha2),

- data structures (https://github.com/Lokathor/tinyvec)

- time/date manipulation (https://docs.rs/chrono/latest/chrono/)

gibibit··on Show HN: Rust Vector and Quaternion Lib
> For Compatibility with no_std tgts, e.g. embedded, Use the no_std feature.

Note, this is not the recommended way to use Rust feature flags. They are additive and so the correct way to make a `no_std` compatible crate is to have a `std` feature flag that conditionally enables use of the `std` library.

Referring to Effective Rust:

> Note that there's a trap for the unwary here: don't have a no_std feature that disables functionality requiring std (or a no_alloc feature similarly). As explained in Item 26, features need to be additive, and there's no way to combine two users of the crate where one configures no_std and one doesn't—the former will trigger the removal of code that the latter relies on. - https://www.lurklurk.org/effective-rust/no-std.html

gibibit··on GoStringUngarbler: Deobfuscating Strings in Garbled Binaries
Might have the opposite effect. Like a Streissand effect... hacker sees that the app is mysteriously hiding a secret? Makes you want to hack it just for the challenge, even if you had no intention before.
gibibit··on Revolt: Open-Source Alternative to Discord
Doesn't anyone else miss the old days of forums like PHPBB and VBulletin for collaboration?

They had everything I needed, and nothing I didn't. Easily searched by Google. Actual pagination instead of stupid endless scrolling.

All the new forums are going to Discord (synchronous) or Discourse (asynchronous) which I find to be much less useful.

gibibit··on Revolt: Open-Source Alternative to Discord
Discord servers are not servers.
gibibit··on DIY "infinity contrast" TV – with 100% recycled parts [video]
Ignoring the fact that the projector doesn't get to true black (noted by smusamashah), and supposing there's no diffusion that spreads the light of a pixel out to surrounding areas of the display panel, it would be possible to say that the display has infinite contrast, I suppose that is true.

Contrast is important, but alone it is useless. You could have a display with only two levels: black and white, and if the black is perfectly black, then it's infinite contrast (any level of white, no matter how dim, is infinitely brighter than total black), but 1-bit color would be useless in reality for home theater.

To make infinite contrast useful, it's necessary to have HDR as well to take advantage of having very dark and very bright areas both able to be represented with detail. Plus having sufficiently bright maximum brightness so that the brightest highlights can really shine.

gibibit··on DIY "infinity contrast" TV – with 100% recycled parts [video]
Good point, I hadn't even thought of this.
gibibit··on DIY "infinity contrast" TV – with 100% recycled parts [video]
A bit clickbait calling it "infinity contrast" even if it's higher contrast than an LCD, is it still a finite contrast. Probably not higher contrast than modern OLED TVs, but a clever hack with stuff at hand. Just not up to the hype of infinite.
gibibit··on Clean Code vs. A Philosophy Of Software Design
It seems that each software design/development system, ideology, and practice has a good reason it was created, and has certain inherent benefits. Each may solve (or at least help with) some common problem.

For instance, abstraction is good and short methods are good to some extent (who wants to read a 2000-line function?), but as John points out in the article, these can be taken too far, where they create new and perhaps worse problems.

It seems there's a pendulum that swings back and forth. We go from big up front design, to Extreme Programming, to a pervasive object-oriented design culture, back to other paradigms.

gibibit··on Things people get wrong about Electron
In the article, the claim is made: if many popular software products like Slack, VSCode, and Docker Desktop all use Electron, then it must be good.

In response, I would say: while Electron makes it easy for the software developer to build and distribute software, especially on multiple platform, as an end user it is NEVER the best experience.

That's why there are people spending significant effort to develop better solutions than Electron. For instance, the Tauri project ( https://tauri.app/ ) is a lightweight alternative to Electron.

The article defends the minimum application bundle size of 100MB-300MB is as no issue, because streaming 4K video takes much more bandwidth than such a software download. But the bigger issue than disk space or download bandwidth is the RAM usage and overall low performance of Electron projects. Even with a 16 GB or 32 GB RAM system, when you're running many apps and doing serious multitasking, the gigabytes quickly get used up and then things slow down.

For example, if you have used VSCode, try using the Zed editor (https://zed.dev/). You will be blown away by its incredible speed. Launches in the blink of an eye, and it responds to every input with zero latency. We have forgotten that software can actually be fast.

Jonathan Blow, "Will Software Stop Getting Slower?" https://www.youtube.com/watch?v=4ka549NNdDk

gibibit··on White House unveils Cyber Trust Mark program for consumer devices
I wonder how much this is going to add to the cost/effort of creating a new IOT product for startups/small businesses?
gibibit··on Every V4 UUID
100% this. I thought the same thing immediately, "wow, this is fast and smooth and responsive!!"

It's ludicrous how our computer hardware is 1000x faster than it was 30 years ago in 1995, but software is so bloated that it is still slower!

Relevant: "Will Software Stop Getting Slower?" Jonathan Blow https://www.youtube.com/watch?v=4ka549NNdDk

gibibit··on Revisiting the DOS Memory Models
Linked in a the style where each word links to _a_ _different_ _page_ that doesn't correspond to the hyperlinked word.

What do you call this pattern? It seems to be popular lately. I haven't been able to find a description of it, but it would be much more helpful to the reader if it was identified.

Instead of

> At the beginning of the year, I wrote a _bunch_ _of_ _articles_ on the various trick

It's better to write

> At the beginning of the year, I wrote a bunch of articles (_1_, _2_, _3_) on the various trick

or something similar.

gibibit··on I Exited the Cloud
Technically he is suggesting renting a dedicated server hosted in a Hetzner remote data center. So in some ways it's halfway between "cloud" and "on-premises" hosting.
gibibit··on Google Cache is fully dead
I hope Google is NOT going to be a significant source of funding for the Internet Archive. Because I want to trust Wayback Machine and the Internet Archive to be unbiased.

Google likes to influence search results, hiding ones it doesn't like, and elevating those that the Company supports. Wayback Machine has been very reliable so far, I hope it stays that way.

gibibit··on Valve New Employee Handbook (2012) [pdf]
It would be interesting to compare the Valve organizational approach to that of W.L. Gore, which has a unique and successful approach described in Malcolm Gladwell's book "The Tipping Point" as it discusses the Rule of 150.

At Gore, it is a flat structure, but with self-organizing teams that take initiative and responsibility ("commitments") as appropriate for current goals.

https://www.gore.com/careers/working-at-gore

gibibit··on BatBadBut: You can't securely execute commands on Windows
Nice to see Rust (and Haskell too) released a fix immediately but Java is "affected, but won't fix". :)
← PreviousPage 2 of 2