HNHacker News
TopNewBestAskShowJobs

iFreilicht

341 karma · joined January 16, 2021

submissionscomments
iFreilicht··on I'm sorry but I cannot fulfill this request it goes against OpenAI use policy
In a few central european countries, Galaxus is a good alternative. I'm a little afraid to mention it here, because more users means more incentive for sellers to buy fake reviews, and currently one of the best parts about it is that I can trust the reviews. Many of them are well written, too.

But they do quite a few other things I like: If you choose that delivery is not urgent, they will wait for all articles to be available and send them as one package. You can pay a little extra to have the carbon footprint of your order offset. They have their own paid staff that answers questions on products in addition to the community. They pay their own writers to review products and write guides for selecting the correct product in a category, and they seem very genuine, it doesn't read like marketing BS.

So generally, I feel quite good about shopping there. And it seems their style fosters a community of buyers that care about buying the correct product for their needs, and wanting to inform others about their experience.

iFreilicht··on Ask HN: Got a /22, cool things to do with it?
I think it's 1022, as the first and last one in the block are the gateway and broadcast address, right?
iFreilicht··on Fly through your shell history
It's actually quite neat, doesn't have to do anything with the current AI hype: https://github.com/cantino/mcfly/blob/master/src/network.rs Just a few nodes, hardcoded weights. I wonder how it was trained.
iFreilicht··on Fly through your shell history
It is a custom pretrained NN with very few nodes, the full source code is here: https://github.com/cantino/mcfly/blob/master/src/network.rs
iFreilicht··on C++ Should Be C++
That actually seems unrealistic to me. Of course, people will always become better at doing the things they do, and we can always try harder, but many of these issues take time to consider and find during code reviews, and a few just slip by. That's why tools like Coverity exist, but you have to spend time and money to set those up, meaning it's only done when absolutely necessary (or one dedicated person is really pushing for it). Choosing a different language is basically free in the beginning, and it will impact which sort of bugs will be caught by default and which won't. C++ is also massively hurt in this regard by not having a package manager. JS is a very risky language by default, but a few tools just with their default settings will already help massively. I guess Nix could be considered the missing package manager for C and C++, but it's still niche and definitely not a "default" like pip, npm or cargo.
iFreilicht··on HTML First
Why?
iFreilicht··on HTML First
Interesting example. Why would you say VSCode is a mess? I feel like it's not in line with the current UX Zeitgeist I assume you're referring to (touch-first, wasteful whitespace, manipulative patterns, reduced functionality) at all. It provides multiple layers of access to functionality that allow the user to choose their trade-off between discoverability and speed. The UI is compact with very little padding and shows a lot of information at once. No affordances to touch input are made either.

Another powerful tool that is built on modern UX principles would be Fusion 360. In my experience, it makes me as a user much more powerful and actually provides more functionality in a more productive manner than its competitors and predecessor. Would be interested in you explaining how that UI is a mess as well.

iFreilicht··on Uiua: A minimal stack-based, array-based language
Every function has to pop all its inputs from and push its output to the stack. the duplicate (or .) function pops one input and pushes it twice.

That is a little surprising, but making stack operations special in that they don't need to pop their arguments might be a worse option.

iFreilicht··on The most copied StackOverflow snippet of all time is flawed (2019)
I've seen "wild guessing" quite a bit when people don't actually understand the problem they're solving. Mostly students, but it happens in professional contexts as well.

I'm not sure why, maybe people are missing knowledge that would allow them to understand, so they just try random things in the hope that it works? It surprises me every time it happens.

iFreilicht··on macOS Sonoma is available today
So this is possible, but there are a lot of caveats. First, the installer itself explicitly says:

```

# Please don't change this. We don't support it, because the

# default shell profile that comes with Nix doesn't support it.

readonly NIX_ROOT="/nix"

```

I haven't seen any configurations where the entire /nix is relocated, but nix _does_ support relocating the store with the environment variable `NIX_STORE_DIR`.[1]

However, this means that you can no longer use the the binary cache and *everything* you install has to be compiled from scratch, including glibc. The reason is that nix usually patches paths like `/bin/myprogram` to `/nix/store/1238f...-myprogram-1.2.3/bin/myprogram` in everything that depends on `myprogram` during build time to isolate the build outputs from the system. If you change your store, all those paths will now be invalid, including the hash part.

So using a nix store that isn't `/nix/store` is possible, but I don't think anyone is actually doing it except in a few select scenarios.

You can also compile nix itself with a different root. That will work as expected, but you still have the issue that you need to compile everything you install yourself.

[1]: https://nixos.org/manual/nix/stable/command-ref/env-common.h... (you can also relocate most other directories. The `prefix` in the paths is `/nix`)

iFreilicht··on macOS Sonoma is available today
Yeah, that's a long-running and pretty much unfixable issue as macOS updates overwrite /etc/zshrc. AFAIK, the determinate systems installer does somewhat resolve this as you can just run it again and it will fix the issue.

The default installer is not idempotent yet (and my work on trying to resolve that has stalled, unfortunately, see https://github.com/NixOS/nix/pull/7603), so trying to run it again to fix this issue will result in errors.

iFreilicht··on The casino in your pocket
Not the person you replied to and don't have kids yet, but with the current state of TV, I'd much rather let my child watch their entertainment on an old laptop (or tablet or whatever) that I control rather than a TV.

They can more easily watch with headphones, they can even watch in private if they're introverted, and I'd feel a lot better knowing they won't switch channels without my knowledge or watch adverts for stupid plastic trash.

iFreilicht··on AI is fundamentally ‘a surveillance technology’
Germany does. The situation is less clear cut than what it seems like from the sister comment, but in general, a police officer is legally prohibited from even using a gun unless the situation does not allow for any other means. This can also mean shooting a person to prevent their escape, but even that is only legal in certain circumstances.

Using LETHAL force has even stronger guards on it. Germany itself has no legal grounds for this AT ALL, as far as I know. Some states have a clause in their Police Laws that specifically mention a "Finaler Rettungsschuß" (final saving shot), which is a shot that would kill with "almost certain probability", and it is only allowed if there is no other way for the officer to save themselves or others from significant harm (see quote from law below). The exact legal situation differs between states, but even Bavaria, which has been widely critiqued for its liberal police law, only allows for the final saving shot:

"2) Schußwaffen dürfen gegen Personen nur gebraucht werden, um angriffs- oder fluchtunfähig zu machen. Ein Schuß, der mit an Sicherheit grenzender Wahrscheinlichkeit tödlich wirken wird, ist nur zulässig, wenn er das einzige Mittel zur Abwehr einer gegenwärtigen Gefahr für Leib oder Leben einer Person ist."

See https://www.gesetze-bayern.de/Content/Document/BayPAG-83

EDIT: The amount of deaths by police in Germany reflect this. In 2019, 62 shots have been fired by police officers on people. 15 were lethal, 30 people were injured. https://www.cilip.de/2021/02/02/polizeiliche-todesschuesse-2...

iFreilicht··on macOS Containers v0.0.1
That specific example doesn't seem to be an issue anymore. The Nix Installer creates /nix/store on macOS 13.5 just fine without disabling SIP. You do need admin rights of course.
iFreilicht··on Netflix prepares to send its final red envelope
I wonder if the total amount of energy required to stream the same movie from a datacenter across the country might even lead to more CO2-emissions in total. The internet isn't carbon neutral yet.

It's probably an impossible question to answer.

iFreilicht··on Text editing on mobile: the invisible problem
Works well for me. You just type with one hand without ever lifting your thumb. You do need to set the correct language, and if you mix languages, your phone's OS has to be able to deal with that, but at least on iOS that is the case and the prediction is very good. If the first choice isn't correct, usually the first or second displayed alternative is what I wanted.

There are two caveats, though. Firstly, I type differently when using swipe. As it favors words from the dictionary, my texts sound less spoken and more written. And secondly, having backspace delete the whole word is a critical feature to avoiding annoyance. If none of the predictions are correct, I just tap backspace and then type the word like I usually would. This, combined with the rarity of those hiccups makes swipe typing quicker than regular typing to me.

It also helps with relaxing my wrists as I can also hold the phone with one hand and swipe with the middle finger of my other in a gesture like holding a pen, but without the pen.

Maybe there's actually a third aspect; screen and hand size. I haven't owned any big phones, my iphone 13 mini is the biggest phone I ever owned, but I do have large hands, so swipe typing with a single thumb is not very difficult. Your experience might be different depending on your anatomy and device.

iFreilicht··on It's okay to make something nobody wants
Oh that's interesting! I've been experiencing a similar thing recently. If I'm satisfied with life, there's not much drive to code, it feels like it's just going to disturb my peace. But when I'm feeling like stuff just isn't good enough and something must be done, "doing something" means writing code, either until I'm satisfied or until I'm tired. Sometimes the codebases in my day job don't satisfy, so I contribute to open source instead, as that feels more impactful and permanent.

I wonder how many projects came into existence just because someone was unhappy with the way things were and the only thing they could do that felt impactful was programming.

iFreilicht··on Proof-of-Work Defense for Onion Services
Except now the botnets need a lot more computation and thus electrical power to generate the same amount of traffic as before, making DDoS attacks more expensive for the attacker, and less expensive for the service.

I think there is a second cost aspect to this as well; right now, hacking low-powered IoT devices and making them part of your botnet is (relatively) easy and valuable, but as their computing power is quite limited, a PoW defense should make them less viable for DDoS attacks, decreasing the amount of free attack power.

iFreilicht··on Why SQLite does not use Git (2018)
Oh that's a good way to put it! I do this as well, especially on commutes or on walks, but sometimes on the couch as well; I have an idea and think about it actively, but to continue my thought process, I have to look at some code, so I open it on the phone.

It always felt weird to get my laptop and look on the "big" screen in those situations, and maybe it's because I just want to think, not to code.

iFreilicht··on Benefit Layers: How to avoid sales fluff in devtools
Thank you so much for this! This structure is so simple, but super effective in helping me lay out my own thoughts. I'll try this during my next internal presentation. While not a sales pitch, I am trying to get people hooked on a tool I use a lot and really like, but it's so complex that I really struggled to structure my thoughts about why you'd actually want to use it.
iFreilicht··on Benefit Layers: How to avoid sales fluff in devtools
But drinks barely have any features you can market. If they do, they're front and center (less sugar or calories, more vitamins or minerals, sparkling or non sparkling)

Same for cigarettes and other similar products.

Some people may prefer the flavor of one product over the other, but at the end, it's purely about lifestyle and the feeling of a brand, and that is shaped by marketing.

iFreilicht··on Passkeys will come at a cost
The discoverability argument is somewhat weak because your browser already stores and probably prefills the username.

About not revealing whether an account exists: A site could always reveal a set number of potentially fake handles. So say a user has two handles registered, and the set number is ten. If the account exists, the two real handles will be in the list, alongside eight fake ones. If the account doesn't exist, all ten handles will be fake, but it's impossible to tell which case you're observing unless you have the key matching one of those handles.

iFreilicht··on Anki-fy your life
I don't personally use this method, but it seems to me like this would help with all the cases where you search for something on stackoverflow, use the solution, and 3+ months later you encounter the exact same issue. You remember that you already had this issue, and you remember that you searched on SO and found a solution, but you don't remember what it was. If you wrote a flash-card and learned it, you'd have that knowledge available immediately. Or, let's say you're learning a new language/framework that you want to use professionally, but don't use frequently yet. So you start a project in that language/framework, learn some of the things that make it different, and every time something surprised you or you had to search for a solution, you write a flashcard. Then you can learn these aspects separately from having to work on a project, and once you do have a use for it, you have the knowledge available.

I think this could be less likely if you're very specialized, but if you're a consultant or freelancer and have to work with lots of different technologies, locking down the differences and unique aspects for each could save a lot of time.

iFreilicht··on Discord, or the Death of Lore
Quick note: On your website, there's this metric:

> Our largest community has seen over 180,0000 Google impressions

Is that 180,000 or 1,800,000?

Apart from that, it looks really good! As I understand it, you actually cache all those conversations, right? So basically, it's like mailing-list archives, but for discord and slack; even if the servers go down or get closed or threads are deleted or move somewhere else, the content on your site stays up?

iFreilicht··on TabFS – a browser extension that mounts the browser tabs as a filesystem
Would suckless surf fit that bill?

https://surf.suckless.org/

iFreilicht··on Briar: Peer-to-Peer Encrypted Messaging
No, only Android and any Android-derivative that can run .apk files. For more convenient installation, it's available on Google Play and F-Droid.
iFreilicht··on Two weeks of dealing with Google as a developer
Progressive Web Apps are exactly what you're asking for, no?
iFreilicht··on Integers in C quiz
I actually dislike this solution, because it relies on tests, while this could easily be a compile-time error.

Not sure I like that D promotes implicitly and then complains about the result of the addition not being assignable to a `char`.

But in theory, every integer could just have the maximum range of values encoded in its type, and for every arithmetic operation the compiler could check if the maximum range of the integer type is exceeded.

You could set the range explicitly:

    fn mult_col(color:u8<0..31>, factor:u8<0..8>): u8<0..248> { color*factor }
Or make the function generic over any range of inputs where the possible range of outputs provably fits the output type, which would be the default.

There are crates that add ranged integers as types, but I haven’t found them satisfactory to work with.

iFreilicht··on Tell HN: I let my 6-year-old daughter design my website
Oh nice! Love that you color the characters in the editor appropriately as well, that makes working with it a lot easier. Would it be possible to have space be #00000000 by default?
iFreilicht··on Entire website in a single HTML file
Just a heads up, I get the “you need javascript” warning when using Firefox for iPad. I never had that with any website before, and I can switch between the two color schemes, which requires JS (i think).

I’m also more in favor for compiling the MD to HTML once and then serving pure HTML via the CDN. You could still keep it to the two steps you outlined in your blog post by running the build step and deployment using github actions.

← PreviousPage 2 of 6Next →