skysight-inc/HackerNews huggingface dataset:
Is there anything that can be achieved by using the visitor pattern [0], that cannot be done by using pattern matching? I have only used the visitor pattern in languages that do not have pattern matching as a language feature (e.g. Java before it got a Scala-like `switch` construct [1]).

Edit: one limitation of pattern matching is, that all values need a common supertype (e.g. be variants of the same enum in Rust, if we see each variant as a type and the enum as the common supertype. There is an RFC [2] to make enum variants accessible as types), while the visitor pattern could be implemented for any set of independent types. On the other hand, you then cannot have a typed collection/container that contains values of these types, so you'd need some common trait like `Visitable` so you could accept an `Vec<dyn Visitable>`.

[0]: https://rust-unofficial.github.io/patterns/patterns/visitor....

[1]: https://openjdk.java.net/jeps/8213076

[2]: https://github.com/rust-lang/rfcs/pull/2593
There's a lot of thing special about it, whether it's a computer or not.

For one, it's a whole different architecture.

Second, it's several orders of magnitude more complex.

Third, it changes based on all kind of strange inputs, not just conditions in the program and some IO (e.g. changes in chemicals in the body). Even the substructure where the "program" runs changes properties (like a CPU changing material properties mid-execution).

Fourth, the "program" is self-modifying constantly, as opposed to a static program or different reprogrammings of an FPGI.

Fifth, there's no manual or clear schematics.
As a supposedly guide to writing app, the introduction reads more like an opinion piece.

The author has a very anti-C stance to say the least. For an article about writing UI, it spends a lot of time laying out all the short-coming of using C to build a UI toolkit.

Amusingly, Qt is mentioned as initially not having a FOSS license but "now available in version 6 with much less restricted licenses"... that's quite a weak praise given that it is available as LGPL, GPL or commercial non FOSS licensing. He then goes on criticizing Qt for being bloated. Most people would rather say that is very feature-rich. Qt is also modular. You don't need to include libraries you don't use.

English does not seems to be the author native language; there are many bad choices of word, like saying that C in "restricted"; I think he meant it is "limited".
The first time I came across varlink was the Podman 1.x remote API for client/server communication between clients and a host with the actual Podman installation. However, in Podman 2.x, it was replaced by a RESTful API. Afair, the reason was that the varlink C client was discontinued. Does anyone know if varlink is still actively maintained?
It looks good. I've found good documentation SAAS something that is lacking. I've used ArchBee a bit now and they are pretty good.

Search is your main issue feature-wise. I can't even look at a project without search.
Chessformer: A Grid-Based Puzzle Platformer with Chess Pieces
I don't think this pandemic is a black swan event at all but rather a so-called "white swan".

It did not come as a surprise and it is not rationalisation in hindsight to claim that it was to be expected.

Pandemics do happen, we know that and we experienced several ones in the past century, and it was expected that a serious one would occur with very serious consequences. In fact experts have been repeating that for decades.

Not only that but it seems that this pandemic followed the most likely scenario according to experts, i.e. a new virus jumping from animal to humans. Even the likely animal candidate (bats) was near the top of the list (we already recently got SARS, probably MERS, and perhaps Ebola from them).
For work, I like using zim configured appropriately. It has a "journal" mode which works pretty well.
Here are some facts I gathered last time Varlink was discussed:

Varlink is produced by Red Hat, apparently - or by people who use Red Hat things: both examples (DNF, Podman) are Redhat projects.

It seems to be an effort to apply the Interface Definition Language model to UNIX daemons/services/tools by adding a new “standard IO file descriptor” for structured IO using a typed interface, as opposed to the current STDIN/STDOUT/STDERR which are existing un typed byte streams.

Using a new FD instead of agreeing to layer Varlink protocol over STDIO means that existing programs can adopt Varlink without breaking backwards compat or making negotiation even more complicated.

EDIT: Podman removed Varlink https://podman.io/blogs/2020/01/17/podman-new-api.html
> but the problem is that they have used a third-party library where they cannot legally release

https://github.com/id-Software/DOOM

The DOOM source code was released without sound support due to this:

> The bad news: this code only compiles and runs on linux. We couldn't release the dos code because of a copyrighted sound library we used (wow, was that a mistake -- I write my own sound code now), and I honestly don't even know what happened to the port that microsoft did to windows.

This isn't always a true dichotomy. Any code is better than none, you don't have to release all of it to make a difference (especially if the closed-source library is provided as a shared object). The code could be provided in a non-functionning state, it would already be a lot more helpful than binary patching while relying on disassemblers. A closed-source library can be worked around (stripping functionality), replaced, re-implemented, linked against a blob, reverse-engineered, etc.
Then you override entrypoint. docker run --entrypoint=foo

Docker compose has the key word as well.
Entrepreneur Raised $100M to Foster Meaningful Discussions in Health Care
Ransomware: User encrypts its own files
You pay extra for reporting, you pay extra for fraud checks ( even something as basic as a blacklist, costs a percentage.) Things like that.

Saying I don't want to sell to someone with this email address, shouldn't cost me anything it's a simple check and helps both parties, less fraud is good for them and me. Unless of course they like fraud because extra fees for them?
"Worse, you'll quite possibly end up firing them when you eventually start reigning them in and they don't like being told how to build things."

Had this exact thing happen at my company. It's tough when you have to start doing this, but even tougher if you don't. There are times I certainly think we'd have the same output with half the people if we'd kept the bar higher.
>As for police state tactics, I don’t think they’d be considered if people were just smart and took precautions. They’re on the table because too many people insist on refusing to do simple things.

What an absurdly twisted bit of authoritarian reasoning. The very point of a free society is that you should be able to refuse certain things without being forced into them for the act of refusing.
They're filesystem labels. /dev/disk/by-label gets populated by udev [0]. The labels can be set with "e2label", "btrfs filesystem label", or other tools depending on the filesystem type.

[0] https://github.com/systemd/systemd/blob/master/rules.d/60-pe...
Your statement about providers as dependencies is inaccurate in a number of respects:

- Pulumi has the ability to use the CRUD logic from Terraform providers to reify resources, but that is one of a number of different approaches it can use.

The Kubernetes new Azure Resource Manager providers are instead built via the API specs and additional annotations, and involve no aspects of Terraform.

- (Less importantly, but still:) Terraform does not have the notion of “custom” providers as a technical construct - first- and third-party providers implement the same protocol and have the same capabilities. There are just “providers”.

Disclaimer: I have contributed to Pulumi and now use it day to day at a large company. I also was a core maintainer of Terraform at HashiCorp for several years.
> the year currently being 2021 but the 'week-year' still being 2020

Strava seems to have a similar problem. When I pull up leaderboard data for a segment I've just done, "this month" and "this year" and "all time" show my result but "this week" doesn't. Checking now for three segments, each "this week" only includes the part of the week that was in December.

BTW, for any other Strava users here, be aware that it's also pretty stupid about years in which you go from one age group to another (in my case from 45-54 to 55-64). AFAICT only your annual CR gets considered for leaderboards, and if that's before your birthday then it'll act as though you've never even done that segment in your new age group.
Chrome extensions are an interesting study in trust. Even with their push for manifest v3, you can still run arbitrary JS on any url. Which, of course, allows arbitrary spying and manipulation.

If they hobble that, though, a large portion of extensions become useless. I don't personally see any real middle ground. It's either a credible risk, or too complicated for practical use. The way manifest v3 hobbles practically required things like heuristics is a good example.
Anonymous struct/tuple/array is a convenience feature that can only be used for values.

Consider the above code without it:

std.debug.print("hello world!\n", struct{}{});

Now add a value:

std.debug.print("{}!\n", struct{string: []const u8}{ .string = "hello world"});

Quite unwieldy. Zig used to have variadic functions and it was difficult to work with, complicated metaprogramming, and made how things work less obvious during reading. It was also pretty much only ever used for the "print" function.
How to read a query plan from Postgres EXPLAIN
The keyword is "interchange".

(disclosure: I work for Stripe but this is my own recollection of how this all works and could be wrong in the details)

There are multiple parties at play in a card network transaction:

0. The card holder

1. The card brand (TreeCard)

2. The issuing bank (unknown right now, but this is usually a bank like HSBC, Citi, Wells Fargo, etc)

3. The card network itself (MasterCard)

4. The merchant

5. The merchant's acquirer (Square, for example)

6. The merchant's acquiring bank (whoever Square uses as their baking provider)

Each entity other than the card holder and the merchant charge fees. The card holder _sometimes_ is charged a fee, but in this case TreeCard does not. The merchant is always charged a fee (which they can pass onto the customer in certain countries/circumstances).

The per-transaction fee the merchant pays is split between the card network and the issuing bank. The issuing bank then generally will share a portion of this revenue with the card brand.

Merchants are also charged by their acquiring bank, either on a per-transaction basis or a flat monthly fee.
In the EU, there are lower charges for the merchant when a debit card is used. Sometimes, this results in a small charge for using a credit card.

(Note that TreeCard is an English company, where they have inherited this cost difference.)
The bulk of the fee the merchant pays is actually interchange. It goes to the issuing institution (your bank, challenger bank or fintech). The rest goes to the processor (Stripe, Adyen, etc.. and the scheme such as Visa or Mastercard).
Here is a worry that's been in the back of my mind concerning my password manager: I get amnesia and forget my password for the password manager. Has anyone else thought about this issue? Does anyone do something against this scenario?

-Storing a physical backup might be okay but doesn't work in threat models that include physical access.

-Storing in a safe has similar issues to the above but also the security is lowered to the complexity of the safe combination. And there would be the hassle of cracking the safe if your forget the combination.

-Maybe storing in a secure box in a bank with ID verification. Can law enforcement get access to this?

-Sharing the password with a trusted person. Seems a good compromise at the start but then you're trusting that they're storing it securely.

-Maybe using a secret sharing algorithm with multiple people?
Thank you for clarifying the OP's intention. It indeed makes sense to advise the domain registrants to be careful about cleaning up stale DNS entries.

Yes, if a domain points to IP addresses of servers we do not control, many bad things can happen. Here is a really interesting security disclosure related to stale DNS entries that comes to my mind: https://thehackernews.com/2019/04/subdomain-microsoft-azure.... .
You can buy a FLIR Boson at 640x512 for that price. The cost of thermal cameras is roughly linear with the number of pixels. I realise that's not cheap, but you can get double the resolution (e.g. 4x pixels) for the same money.
I do too. It only takes one dedicated person or group, it doesn't matter if the program is wildly popular or not.
If T(StackOverflow comment) < T(GPL use) < T(your use), you'll still get in trouble.
Top Tech Turkeys 2020: The worst products and services of the (worst) year
Why not create a new journal that would be free for all? If the subscription journals provide no value I don't see the problem.
I would expect the build being official at least raises the chances of the maintainer being catched if he slips some nefarious code into the ROM?

> but maybe there can be a way for the users to upvote arbitrary links?

Maybe if the foundation would be a bit different :) But this is a completely static site. One ruby script per data source creates a central .yml file, another custom ruby script creates the HTML based on that data and some .erb files, netlify is then serving those HTML files (pulls them directly from a gitlab repo). And after the holidays my time will be too limited to change that, especially for a noncommercial project. But if there is serious interest to create a fork with more features and data I would open source this.

Edit: As someone on Reddit was asking for a repo and this comment planted the idea to open source it anyway, here is the repo: https://gitlab.com/onli/sustaphones
I'm sorry, the wording of my comment might be confusing.

> go all in on 18F, where it provides a whole career progression from basic training on up through SES.

should read

"go all in on 18F so that it can provide a whole career progression from basic training on up through SES."

You're correct, as far as I'm aware 18F, or any other government org that isn't the US military, does not offer actual training.
This was a fantastic essay on psychological measurement of personality types.

The take-home for me was:

The Big Five are, in a sense, protected from
falsification. They make no predictions; there is no
underlying causal model. As I understand it, no study could
be devised to prove that the Big Five aren’t real,
because they make no formal pretense to reality. They are
innocent mathematical constructs that fall out of
particular survey instruments administered to particular
populations.

It is a data point in the idea that

1. only things that could conceivably be measured are real (unmeasurable/unobservable things are magic / not real)

2. but not all measurable (=real) things are important / valuable
This argument is already covered, let me re-iterate clearer:

(a) this just sends a fuzzy signal they can easily ignore

(b) for the signal to not be fuzzy needs the coordination of millions (good luck)

(c) those millions will also hurt themselves in the process, assuming they otherwise like the platform and prefer using it over others, their complaints about it aside (e.g. I needs people to go like: "Yeah, sure, lemme change the OS and hardware I love because the App Store is not managed well or there's this or that other flow, great idea, that will show them!") [1]

(d) ...and even then the signal will still be fuzzy enough ("Hmm, many people left the platform. Was it because we don't have enough color options for our laptops or because we mistreated some app developers?").

[1] Obviously people who have major qualms with Apple (as opposed to minor) would easily leave/have already left. But those are not the majority of people using and liking Apple products that gives the company top satisfaction ratings every year for example. Those would be those that dislike Apple or its current product line, not those that merely want to punish it for this or that issue (e.g. App Store policies).
Seriously, I would understand not wanting to introduce new 3 letter extensions, but .txt is pretty ubiquitous. I'd feel weirder about seeing .text
Ummm, you don't anyone to fill business fillings for you in the US. So no, you don't need anyone else to lie, no need to add conspiracy to the charges.

Also, finding an attorney that is willing to lie, is very easy. How do you think all this stuff is already happening illegally now? ;)
Zig sources go into a single big compilation unit. C sources can be split into multiple CUs and Zig has a neat caching system that integrates with clang to only rebuild a CU when necessary (you don't have to do anything to set it up).

An incremental compilation feature is coming to the self-hosted compiler: https://kristoff.it/blog/zig-new-relationship-llvm/
So how about pay them ransom money and let us use scihub in peace
In Clojure the "Rich Comment Blocks" are a very common way to use the REPL: https://betweentwoparens.com/rich-comment-blocks
It exists, it's GtkBuilder[1]. There's also a tool to create those XML files, Glade[2] (needs to be updated for Gtk4 but...)

1. https://developer.gnome.org/gtk4/stable/GtkBuilder.html

2. https://glade.gnome.org/
This had to be said by sometime who wasn't a career criminal. Lol!
> (which on Windows is mysteriously linked so that when you delete one, you delete the other - no idea how they do that!)

Probably just some special code in Windows Explorer watching for the combo of .htm(l) file plus simlarly-named folder – via the command line I can delete just the HTML file or the folder separately without problems.
Is tini still considered best practice? I remember reading that it was included and now you can just docker run --init (init: true in compose)
Almost certainly, yes. It's an inherent risk with any backup system that deduplicates at at a block level, encrypted or not -- if the same block appears in many files, then it's stored only once (which is good in terms of space efficiency), but if that block is corrupted, then all the files sharing that block will be affected. Incidentally, this is not just an issue with backup systems; almost any compressed data format will also have similar risks. It's a tradeoff of the safety in redundancy for space efficiency.
> otherwise everyone could be successful after reading a few discussions like this, or reading millionaire's books about how they became successful.

None of those things are actually copying, arent they? They are just reading.

Do I believe that everybody who actually creates a small SAAS emulating some of the ideas presenting here will be a smashing success? Of course not! Do I believe many will succeed? Of course!

This is like saying, how do I get to the NBA? Well, train hard everyday, eat well, get into a competitive basketball program since HS. None of those things are sufficient, but for sure are a great blueprint.
Sorry, but throwing an exception in a function call is equivalent to:

res, exc = fun();
if (exc) goto exception_handler;

That's underlying model of how exceptions behave, and how they're implemented "manually" in languages with no exception handling (C, Go). You absolutely can draw that by examining syntax of a subroutine, and it's no more implicit than "defer".
Looks nicer, but I'm not sure I would get that :)
‘A Slap in the Face’: The Pandemic Disrupts Young Oil Careers
I think it's a proven mistake to use visual representations in place of textual representations for creating software. The information density is low, it's difficult to work with, browse, and search, and (a real killer) merging in version control systems is a nightmare.
Jobstruct.dev: No free-form postings. Search developer jobs by structured fields
Today I'm launching jobstruct.dev!

Typical job boards (e.g. LinkedIn, Indeed) are great for their abundance of positions but they make it hard for developers to find jobs that are a good fit for them. To filter the endless sea of positions, they usually have a single search input field. In consequence, a ton of results come out and the developer has to sift through a ton of job descriptions to find good matches.

The core idea of jobstruct.dev is to remove all free-form descriptions from the job board. All job postings are made up of the following structured fields:

- Locations

- Programming languages

- Other technologies

- Tags (e.g. Crypto, Mobile)

- Seniority level

- Salary (optional)

- Work type (contract, full-time, part-time)

That way, developers can query jobs in a structured manner. For example:

> What are the remote jobs for a Rust developer in crypto?

> What are the jobs in Montreal for a junior frontend web developer with Vue.js?

From the filtered results, the developer can visit the position's landing page to get more details, or apply directly via email if a landing page is not available.

Another problem with typical job boards is that they contain a lot of dated job postings that are no longer relevant when you see them. To avoid this, job postings on jobstruct.dev are always visible for 31 days. After that, they will never show up in the search results.

Finally, the pricing is simple: $1.99 USD per job posting (visible for 31 days). That said, in order to bootstrap this project, you can simply send me an email this month (Jan. 2021) with the details for the position, and I'll create the job posting for free.

I hope it helps developers find jobs they enjoy! :)

- Felix (felix@jobstruct.dev)

P.S. You can also send me an email if you have suggestions, if you find bugs, or if you would like me to add values for any of the structured fields mentioned above.
Indeed. It appears Cytokine Storms [1] are a big threat with Covid-19.

[1] https://en.m.wikipedia.org/wiki/Cytokine_storm
The situation is worse than presented.

The person posting the code to SO as an answer may not own the copyright to the code they're sharing, despite the SO TOS requiring them to. So even a link to SO isn't a total solution if lawyers are getting involved.

All in all in CAN be a shitshow, in practice it mostly works out.

This also is largely ignoring what fair use means in different jurisdictions, let alone what licenses work where. Many tech companies operate globally from day one, so all sorts of issues can come up. In reality, ignore almost all of them and solve them if you ever actually start making money.
> Sometimes, this results in a small charge for using a credit card.

That's not the way it's been for years - it became illegal in the UK to do this a while ago.
If that was the default, wouldn’t it be immediately exploited?
> I don't really understand your point

It was first about the paid version of ES File Explorer being top-notch (unlike the ad-funded version), which could have mislead some people.

Perhaps I shouldn't have put it in the same message as the other point.
There is Glade. But some GNOME people seem to recommend against using Glade?

https://blogs.gnome.org/christopherdavis/2020/11/19/glade-no...

I have used GTK several times, but Qt always felt far more pleasant. Plus Qt applications work well on Windows and macOS, whereas GTK renders extremely slowly on macOS and looks and feels very non-native on Windows and macOS.
That might be quite a blocker for closed-source commercial apps that are distributed to the user. On the other hand in-house apps and web apps usually don't suffer this problem from what I've seen. Most of the time open source libraries are strongly preferred and even if not, the closed sourced licenses for dependencies can easily be obtained by the intended user oftentimes. (At least frontend dependencies need to be MIT or BSD licensed anyway)