skysight-inc/HackerNews huggingface dataset:
> The main point I wanted to make is what jeff-davis (your sibling) summarized for me with words way better than my own: "If you are building something and excited, then keep going, don't stop because a blog told you 'never'"

This is a weird perspective. Most of us work for money and other people are calling the shots on what's in priority to develop right now. Your statement reads like you're commenting about hobby projects?

> Too often I read blog posts like the one we are commenting when I was starting with software development as a job, they scared the shit out of me!

Not to be reductionist, just trying to understand: your point of view boils down to "I skipped a good tool because I bought a fear-mongering tech blog article", is that correct?

If so, obviously one has to form their own opinions as they gain experience. But I wouldn't feel that strongly about those articles. My takeaways are: (a) critical thinking is important and (b) you can't ban people from posting. ¯\_(ツ)_/¯

> I didn't have any experience on the tools so reading that some much more experienced guy working on some Silicon Valley billion dollar corporation was saying "This is shit: you touch it, you die" didn't bring anything useful to me, just stress...

Not sure what point you're making here. Our job is riddled with stress in general (even if you only take this as an entry point: the brain hates learning and wants us to stay still by default). Confronting that reality means exiting software development for many.

> your personal experience, be it success or failure, is worth a thousand times more than the success or failure narrated on a random guy/girl blog from N years ago

That is absolutely true. But we should recognize filter bubbles regardless. I for example only heard one successful MongoDB story and the team switched to another DB 3 years later.

---

If your general takeaway is: "use whatever you want" then sure, nobody can dispute that since we live in a free world. However:

(a) When comparing tools for certain jobs, there are objectively worse tools compared to others. This reality should not be avoided, or denied, or brushed aside with generic statements.

(b) "Just use whatever you like" is not a sound career advice. Some tools will give you better career opportunities, others will make people frown at you for being the bleeding edge adopter but can give you a competitive advantage, and some will just burn you.

It's not about if you can achieve X with any technology. For the most part, you can do pretty much anything with everything. Still doesn't make it viable or the solution with the least friction and most reward though.

I felt your comments were too generic, too optimistic, and rather uninformative. Hence my responses.
What ever happened to "fail fast"
A Manual for Creating Atheists: A Critical Review (2014)
It’s network effect, not vendor lock-in. If you are doing B2B, chances are good your peers are also in AWS, regardless of the lock-in effects of other Amazon services (which are real, and like any lock-in are always negative).

I am old enough to have collocates at Exodus in 2000 for the exact same reason: everyone I needed to work with collocates with them. (The later went bankrupt and became Savvis, no idea what they are called today or if they still exist)
I see. Then my comment was misguided
While I am not the biggest fan of Wayland and understand the author, this link in the comments gives some reasonable responses/rebuttals:

https://refi64.com/posts/dont-boycott-wayland.html

They seem to point to https://pipewire.org/ for screen recording. I don't know how well that works out in practice and if there are other solutions for automation
Kinda offtopic but do steam, gog games, and wine games work on wayland well? What about things like obs?
AI Socks Matching App in 10 Minutes
I agree that rewriting things needlessly is bad. However I actually think the folks working on this knew exactly what they were doing and actually made a reasonable choice; they’re not rewriting Xorg, they’re making something completely and utterly foreign to what Xorg is. And I think it is justified regardless of whether Wayland ultimately succeeds or fails.
https://codeberg.org/trill/ABx

Since about three years I work on a classical Multiplayer Online Role Playing game.

Why I don't care about the outcome: (1) I think such a project is out of scope of a single person, (2) I simply don't have many skills required to make such a game, (3) I think people moved away from this kind of games, (4) I have a day job and only work on it when I have some idea.

But it's amazing to see how complex systems, built from tiny parts take shape over time.
Firefox has just been updated to fix copy and paste issues on wayland, apparently
The system call interface is usually written in an unsafe language such as asm anyways. Going through the libc is very unlikely to actually introduce vulnerabilities, especially if going through the lowest level function that directly wrap the syscall.

Not using the libc was always a risky proposition on BSDs anyways. They don't have a stable kernel ABI the same way the Linux kernel does. From OpenBSD's perspective, the stable ABI is the libc, and anything using the kernel ABI directly is liable for breakage with each update.
If you had added the right constant or few you could've proven geocentrism in the 1600s and said that "The fact that some futzing constant needs or doesn't need to be added" doesn't prove the model is wrong.
Right now (re-starting almost the fourth time), my goal is to get consistent 1. images 2. co2, ec, ph, temperature, humidity, light intensity/quality readings. Anyone putting in money (besides me) hesitated until now because they couldn't see what was in my head. So I'm remaking the setup with data-collection in mind first. It's almost shameful to confess that it is an 8 bed farm only :/ And this will be the setup for next 2 months. Once you've a 1200 plant bed (which is only 10 metre^2 with four layers), I think you will be able to demonstrate the efficiencies with the available data. ps: You can get a harvest every 19 days, roughly.

Computer vision is a big chunk here, and me being no expert, I'm trying to have the hardware setup right so I'd have to do little on the software side of data processing.

If you're doing on your own, and don't want to spend a lot, I'd just say that almost everything can be done with off the shelf boards and sensors.
It could also play almost all PS1 games and it was the year 2000.

It is no longer the year 2000
Ironically this is a toolkit issue, rather than a display server issue.
Xorg was kind-of forked from a working solution (XFree) whereas wayland started from scratch.
On Linux, libc developers are in the exact same group as regular developers.

libc is not intended to be the official entry point in any way or form, and kernel vulnerabilities and workarounds are not meant to be handled by a libc implementation.

That other OSs make libc their official interface is primarily because it's the simplest thing to do when kernel, libc and the rest of userspace is co-developed, as it allows for breaking kernel changes and other fun things that are not allowed under Linux ABI guarantees anyways.

It is not because it is the most secure choice, or that dealing with syscalls is hard (syscalls are easy and safe to work with). It's just that stable ABIs are a lot of work to develop, and this structure is just the simplest for smaller OS communities to develop.
That's true, but wlroots (sway's compositor) has tried to fill some of that gap: https://github.com/swaywm/wlroots/wiki/Projects-which-use-wl...

It has its own libraries for things like screensharing (xdg-desktop-portal-wlr) that should work across these window-manager-esque desktops.
There are other considerations at play. We need to rewild nature and minimise human footprint if we want to keep the world livable.
Ahh, 2004 is when Xorg forked off of XFree86, but XFree86 had already been going on since 1991, and already that was an implementation of X which already existed since 1984, and you can trace back even further than that if you want. It’s been a long ride home.
Save the obvious distance, I kind of see a bit of similarity with the Python 2 to 3 transition; it breaks downstream programs and processes that shouldn't break.

Another similarity I see is that Xorg is like the Linux Kernel of GUI applications. Ideally, you just shouldn't break "userspace".

I agree that some stuff is definitely broken in Xorg, like High DPI setups. But I also believe that's no reason to break a myriad other setups that are working well, right now.

This constant "1 step forward, 2 steps back" (from the point of view of the final consumers, who really only care about the result, and not the means) is so common in the ecosystem of GNU/Linux based O.S. It's also why I see the mantra of the Linux kernel so utterly fascinating and inspiring. It takes real work to build something and keep it working for decades with a minimum of breakage; starting from scratch looks then like child's play in comparison.

I guess the problem is the same as always: money. In a parallel universe where Xorg is at the base of Windows, Microsoft would just throw millions at it to improve the architecture and fix issues, while at the same time trying to limit breaking changes as much as possible... but that requires willingness to do it, and deep pockets.
Translation from just English language creates a lot of ambiguity. The idea is to use two or more input languages to reduce ambiguity.

Currently, volunteers manually translate from English to all other languages. It's possible to use AI to help, but quality of translation is too low. Dumb Translation Memory database is much more helpful than AI translator.

In the new system, one volunteer will translate messages from English to his native language, while all others will be able to use this translation as the additional constraint, to improve quality of translation to their native language. More input languages -> more constraints -> better quality of translation.

My best idea, so far, is to use a multilingual tokenizer (SpaCy looks good) and a linear transformer, because linear transformers are able to accept large inputs, with thousands of tokens. IMHO, I can input multiple translations of messages (they are short), and define loss as expected Ukrainian translation.

However, I'm completely new to this field. I completed just one AI project so far: recognition of animals at video. I have no idea how to start.

For example, I have no idea how to hint transformer that input messages are the same, just in 4 different languages. Should I interleave messages, like "Cannot Не можу open відкрити file файл : : ", or put them aside, via separator: "\0Cannot open file: \0Не можу відкрити файл: \0", or create few independent inputs? Or use a memory and improve quality of output message incrementally?

Any hints where to start?
I must say I'm amused that my own personal opinion on software is this down worthy
I second this. We use Hetzner Cloud for all our staging servers and have never had an outage, and I had a client on a bare metal Hetzner server for about 12 years before the hard drive eventually gave up.
> I haven't followed the development at all but, Xorg is 16 years old and Wayland is 12. It seems counterintuitive that feature parity could not be attained in this time unless it's for philosophical reasons.

Xorg is a fork of Xfree86, which was released in 1991 (https://en.wikipedia.org/wiki/XFree86).
This also happens a lot in some European countries, where governments/municipalities buy/lease cars for.
They specify features list in the way, that only one car model form particular manufacturer matches the requirements. Pure corruption.
I don't get why everyone gets so defensive for Wayland. It's a fact that a lot of things still do break for users if they switch, without existing alternatives or workarounds.

Yes, Xorg is now legacy, outdated, insecure, and does too much. But what wayland did was to replaced one functionality of Xorg, without offering alternatives to other functionalities. Which is good, I guess, it has a clear and focused responsibility.

But now compositors are responsible for other functionalities and they seem to be doing things in their own way. Which is also good, I guess, they explore the design space and then they can gravitate to a standardized way of doing things later.

But it's more than a decade now, many things seem to be stuck in the "exploring design space" phase, so it's understandable if some users are impatient. Yes, it's free software without warranties, it doesn't mean immunity from criticism though.

I also get performance regressions in wine games on xwayland, didn't try wine-wayland yet though. But many games I play will never move from X.
„During March and April 1959, at Wheeler's request, Everett visited Copenhagen, on vacation with his wife and baby daughter, in order to meet with Niels Bohr, the "father of the Copenhagen interpretation of quantum mechanics". The visit was a complete disaster; Everett was unable to communicate the main idea that the universe is describable, in theory, by an objectively existing universal wave function (which does not "collapse"); this was simply heresy to Bohr and the others at Copenhagen. The conceptual gulf between their positions was too wide to allow any meeting of minds; Léon Rosenfeld, one of Bohr's devotees, talking about Everett's visit, described Everett as being "undescribably [sic] stupid and could not understand the simplest things in quantum mechanics". “
Source and original source here: https://en.wikipedia.org/wiki/Many-worlds_interpretation

Everett spent 4 years doing graduate studies, taking his first physics courses then and coming up with his many-worlds dissertation within a single year (137 pages ’typed’ (according to current historical records) by his later wife Nancy Gordon). He pretty much left physics afterwards, for doing weapons research(!) for the Pentagon.

Many-worlds sounds like what an overconfident ‚pragmatic’ college graduate would come up with even to those who don’t do physics.

Is it just my impression or is it mostly US-Americans who are pushing many worlds into physics?
Alas, this is a surprisingly hard question to answer, at least for FPGA design.

Here are a few sites that helped me learn:

* https://www.fpga4fun.com

* http://fpgacpu.ca

* https://www.nandland.com/verilog/tutorials/index.html

* https://1bitsquared.com/pages/chat (Discord)

And a few interesting blogs:

* https://blackmesalabs.wordpress.com/

* https://tomverbeure.github.io

* http://labs.domipheus.com/blog/

None of the introductory FPGA books have impressed me, so I don’t have any recommendations there. Maybe some other HN readers will have some suggestions?
The one place I'd be happy to see GMO utilised is in siloed and controlled indoor farms.
It feels important to note that in the case of Wayland, it is indeed designed by the very seasoned folks that have worked with Xorg. If someone like keithp who have worked with X since before X11 has opinions on the design, it is likely well informed.

I think very few people involved underestimate the work involved to replace X, and that it is going to be many years before it is somehow done.
I mostly agree with the points, except for:

> Evolution has always proceeded as a loosely coupled federation of highly cohesive units

No, it did not. Evolution does what it does, things that are good enough at surviving survive. For instance, multicellular organisms, and in particular large animals, are "megapolises with huge populations and pegged to a 'common currency'". Fragility is a more nuanced topic too, large coupled systems are vulnerable to internal problems, but they can also withstand external forces that would kill the equivalently populous "loosely coupled federation". All in all, evolution is probably not the best thing to draw lessons about organization from, because a) any system of organization you can think of is likely already effectively used in some organisms, somewhere, and b) evolution doesn't care about well-being of individual cells, but we care about the well-being of individual humans. That last constraint means we can't just do thing the way evolution does, which is throwing crap at the wall and seeing what sticks.
I prefer to use the term "tamper-evident" when describing these things - you can totally fiddle with logs, but the property you likely want is that this can be detected.

As you say, Merkle trees are fairly straight-forward, but beyond integrity checking a file they have some other nice properties - as the "operator" of a Merkle tree based log, you can efficiently [O(log N)] convince an observer that:
- you've only grown the log by appending new entries since the last time they looked ("consistency proof")
- a given entry they hold is indeed included in the log ("inclusion proof")

if you change an entry in the log (or claim something is in the log when it's not) it becomes impossible for you to prove both of those properties (unless you're powerful enough to also break what's called the "second pre-image resistance" of the cryptographic hash you're using).

Note that for these two properties, an observer doesn't need to download or inspect the full contents of the log, just a handful of hashes in the Merkle tree which they can then use to recreate the "tree head hash" you mentioned. These "tree heads" are the state they store and are just a few hundred bytes.

There are generally a few types of log client:
- one type is putting things into the log
- one type are wanting to use what's stored in the log to make a decision of some kind ("should I trust this site", "should I install this binary", "am I seeing the true history of events", etc.) and they won't trust that data unless they are convinced it is in the log
- another can verify the accuracy/validity/goodness of things in the log (e.g. in CT it's the domain owner who is in the unique position of saying "yes, I asked for this cert to be created", for binaries it might be "I'm the authorised creator of these binaries and, yup, that was me" or "I'm a respectable malware scanning company, and this binary doesn't match any known signatures", "I'm an auditor and these transactions are complete and correct", etc. - you can probably think of many more examples!)

In this light, you can think of a tamper-evident log as being a sort of "reliable transport" to connect these different types of clients together, and importantly, where they all can prove to each other (using those light weight tree heads + consistency/inclusion proofs) that they're seeing the same set of data in the log - or, if they can't prove it - they have the cryptographic evidence of operator of the log operator having done something unexpected.

If you have a spare few mins, have a look at the Claimant Model docs here: https://github.com/google/trillian/tree/master/docs/claimant...
which talks in a bit more detail about this "transport" idea and the concept of discoverability which it brings.

Hope that's helpful/interesting!

[Disclaimer: I work on CT, Trillian, and a bunch of other related projects.]
> But MAD is still what keeps the world relatively peaceful.

There seems a kind of anthropic principle here - it seems successful, but we wouldn't be here talking about it if it had gone terribly wrong, which has come very close to happening more than a few times, apparently.

The risk of that is >0, but the cost is...infinite. That doesn't seem obviously worth the gamble, to say the least.
I love wayland in old laptops, specially the ones with an week iGPU, as it's a lot faster than Xorg, only being a problem with a few specific programs like OBS Studio.

But.. in desktop I use a Nvidia card, and for business shenanigans the drivers are not compatible with wayland, and Xorg it's ok but there are some features I miss, like fractional scaling in Gnome 3.

Right now I can see wayland as great alternative for casual users, that mostly use a web browser and require a fast solution that it's good enough, but I don't see it as a full replacement yet, and god knows if will ever be.

The problem it's that despite being old Xorg it's great too, and the benefits for wayland are there, but maybe not enough for a full migration from all developers.
Maybe it's me being blind, but I do not see a download/signup anywhere. How would one try bearicorn?
I don't see how it's disingenuous, that's literally what it is. It was even predicted well in advance of measurement. If you see the flash and hear the boom, how can you credibly say that was not witnessing the event?
For the ones downvoting me, please say why?
It is trivial to write a desktop-agnostic screengrabber program in X11, but impossible to do that in any Wayland-like display server since by definition you need to integrate it with your display server (e.g. Gnome's, KDE's, etc.). Also for example Gnome's Wayland display server integrates a shitton of garbage into the display server process itself (e.g. a Javascript interpreter), and a crash in any of that code brings down the entire display server with all your windows.
I have an ultrasonic humidifier and I swear by it. The water here is quite soft so I don't have much trouble with the dust Alec complains about.
How much do you make from your ads?
I think this is also the road featured in Top Gear a while back.

I know nothing about Myanman politics so I won't wax poetic about anything
Solar windows could meet 'nearly all' of America's electricity demand
You can do the pre-rendering on the previous line if you can spare two buffers. You just render into a buffer, then during the blanking interval latch it into a shift register. That gives you a lot more time to render.
For e2e testing I have seen various patterns, and the article mentions data-test-id for instance. In my own tests, I have opted for something similar, that has given a bit more flexibility.

Singular elements: data-test-save-button, data-test-name-input

Elements that are a part of a list: data-test-user={user.id}, data-test-listing={listing.id}

This allows us to name our elements with data test attributes, but also provide values to them where applicable.

I have also created a testSelector function that takes id and value, and spits out either [data-test-${id}="${value}"] or [data-test-${id}].

We have also experimented with letting shared components popuplate their own data-test-* attribute automatically based on other props. Like in our modal component, which sets data-test-modal={title}. data-test-delete-user-modal vs. data-test-modal="Delete user". But in the latter case, the dev does not need to provide the data-test-* attribute manually, since the component takes care of it.
Why was calling this “the Chinese virus” met with so much criticism, but saying “the $country variant” is fine?
Isn't nitro mostly AWS marketing? They profit from it as they burn fewer CPU cycles on virtualization for shared hardware. But on dedicated hardware you own everything anyway, so why bother if AWS virtualization runs there?

The big difference is support for AWS ecosystem (also partly realized via nitro). You won't get that but for that price difference it's probably still ok.
Firefox has treesyle tabs which has zero good alternatives on chrome. Tridacyl, vim like bindings for your browser + ability to bind javascript or native shell is more powerful than chrome alternatives. Chromium is losing google sync and chrome and chromium are Effectively destroying adblocking sooner or later courtesy of manifest v3.

Ublock origin and treestyle tabs alone make a compelling case and are visually and functionally distinctive.