skysight-inc/HackerNews huggingface dataset:
"Question: Why only light 2 engines for landing? Any engine failure means loss of vehicle, so you have two single points of failure. Why not light all 3, do the flip, then pick the best two and turn off the other?"

"We were too dumb"
https://twitter.com/elonmusk/status/1357256507847561217
Yeah, I suppose.

/* get size required for malloc */
size_t getsize(const BinaryTree *tree) {
size_t acc = sizeof(*tree);
match(*tree) {
of(Leaf, x) {
return acc;
}
of(Node, lhs, x, rhs) {
return getsize(*lhs) + acc + getsize(*rhs);
}
}
}

BinaryTree* copy(BinaryTree *dest, const BinaryTree *src) {
dest->tag = src->tag;
match(*src) {
of(Leaf, x) {
*dest = Leaf(*x);
}
of(Node, lx, x, rx) {
match(*dest) {
of(Node, ly, y, ry) {
*ly = dest + 1;
*ry = copy(*ly, *lx);
*y = *x;
copy(*ry, *rx);
}
otherwise {}
}
}
}
return dest + 1;
}

Kind of hackish, but I guess it works.
I would like to support your comment and add that I enjoy these articles because I like programming languages and thinking about program execution.

However, I think what delibes is getting at is that this is article exhibits a classic trigger for most developers because it starts with naming some language (i.e. Haskell) and then it is filled with assertions that are always "What If": what if your language doesn't support sum types or recursion or algebraic data types or ... Most devs are looking for practical applications for their language of choice so there is a natural inclination toward a critical comparison of "their" language and "my" language.

But we should follow Twisol here and not read this article as "language X is better than language Y" or, more precisely, "throw out unnecessary features from language X because you can still perform some task Z".

Just take the article for what it is: a great "explanation"[1] of the relation between mathematical foundations and language features or characteristics. This article isn't some heretical tantrum so just sit back and enjoy the learning.

[1] https://documentation.divio.com/
>You have free speech, but zero freedom from consequence.

That's about the most Orwellian meme that is making the rounds and needs to be examined critically. Freedom to do a thing implies protection from consequence, or you're not free.

Also there were articles on HN about how the Capitol riots were organized on Facebook.
I use recursive queries like these at work, for hierarchical accounts/groups/locations/equipment/etc. where each level can have permissions that cascade down or not. Loading the hundreds of rows into memory necessary to calculate what any particular user can see is very costly in terms of network time, particularly for deeply nested stuff. Much easier to do the legwork in SQL and return the relatively tiny result set. There are certainly other tools that could handle these relationships more gracefully, but they also come with the questions of code integration time/backups/redundancy/scaling/etc, which postgres already has good answers for
I'm a huge fan of writing in markdown. I've been doing presentations in markdown for years with a different tool with fewer features (https://pkg.go.dev/golang.org/x/tools/present). I plan to switch to Fusuma next time I'm doing presentations though.
Location: Ukraine

Remote: yes

Willing to relocate: no

Technologies: Java, Go, Rust

Résumé/CV:

Email: gambyte@protonmail.com

I am Java developer with 14 years experience. Have experience with high-load low-latency projects and distributed-systems as well. Looking for interesting challenges.
Commenting, so I can revisit this later. Great excerpt!
Nah, the Circle function takes an instance of Circle and returns a Shape. It’s not a constructor of circles.

The ‘exampleCircle’ is not an instance of Circle, it’s an instance of Shape.

I like the ‘onCircle’ naming though.
> It may not try to reduce dependencies.

This one's pretty straightforward; natural selection has two very common approaches to dependencies:

1. If the presence of something is not a reliable feature of the environment, dependence on that something will be ruthlessly weeded out.

2. If the presence of something is a reliable feature of the environment, dependence on that something will be created and grow to permeate most existing systems.

The first effect has a lot of popular awareness; the second doesn't. They're both important.
The basic facilities are baked into python tools too, you can direct installation of packages to arbitrary folders and then just add them to your PYTHONPATH.

But it's not as quick and clean as "python -m venv venv", so everyone uses that (and pyenv for different versions).
Slytrunk | React Developer | Fulltime | Remote (US only) | slytrunk.com
Slytrunk is a small team of technical experts focused on developing beautiful software applications with a range of incredible clients.

We're looking for a skilled front-end engineer with React experience [0]

We're a very small team with some really awesome clients/projects. All of us are remote, but are highly collaborative. Slytrunk was founded 11 years ago by two engineers and to this day continues to be engineer-focused. Check out the links for more information. Applications go directly to the CEO and founders. Even if you'd like more info before applying, feel free to drop us a line and we can provide you more details.

[0] https://www.notion.so/Software-Developer-FE-focused-9ddc55fd...
Wow! This product is making my day. Great job.

I am still hacking around on it. I would like to sign-up as a team, though I only have need for 3 seats.
I can't see an issue running it on Debian or Ubuntu for that matter
I didn't get online until 95-96 I think, I'm just 2 years older and for example I completely missed the BBS thing because living in a small town phone costs were prohibitive but by the time dial-up became a thing there were the first nightly flat-rates (like from 8PM to 8AM at an affordable price) so we went online almost daily. But online gaming wasn't possible anyway, I remember throwing some LAN-party with my closest friends to multi-play Quake but that's it. But I didn't feel I was too old for Quake at all
23andMe to Merge with Virgin Group and Become a Publicly-Traded Company
Yeah, Google's handling of extension payments was terrible and sad. On the flip side, I made a replacement https://extensionpay.com that should do a lot better job — I made it for my own extensions and it works cross-browser too :)
I didn't and went with the audiobook version.
Agree, I intentionally didn't change the names to mirror the other examples in sibling comments as I meant to focus on the "named parameters" bit.
Tagged unions have always been around as runtime constructs, they just had different names (e.g. "variant"). In C it's understandable why they aren't part of the language: they would be the only data type that requires a "builtin" opaque struct type to hold the tag and payload union (e.g. something like this, but hidden from the programmer):

struct my_tagged_union {
enum my_tag_enum tag;
union {
....
} payload;
};

That would be a pretty big break with "tradition" for the C language ;) (e.g. it would be similar to a "builtin string type")

And of course tagged unions as "generic user-defined types" are much less convenient/useful than being directly integrated into the language syntax and type system.
I love this analogy. I had a conversation with someone (a non-tech person) recently.

Them: What are you doing?

Me: Making a website

Them: Why?

Me: Just am.
Running pip as root is a great way to self-compromise. Would you ever run npm as root...?
Gradle is a nightmare.
Surely financial success is considered manly, at least in China.
> called nazis "very fine people"

Did he really? https://finepeople.org/
> Obviously, not. Not even apples versus oranges.

Formally, `A + B` is isomorphic to `forall T. (A -> T, B -> T) -> T`, where the inner `(A -> T, B -> T)` is the type of a visitor.

a + b
-- CPS transform
= forall t. ((a + b) -> t) -> t
-- distribute -> over +
= forall t. (a -> t, b -> t) -> t
-- if you want to drop even the product, distribute -> over *
-- but this loses you the ability to name a separable Visitor
= forall t. (a -> t) -> (b -> t) -> t

type Visitor a b t = (a -> t, b -> t)
type Sum a b = forall t. Visitor a b t -> t

iso :: Sum a b -> (a + b)
iso s = s (Left, Right)

osi :: (a + b) -> Sum a b
osi (Left a) = \(onA, onB) -> onA a
osi (Right b) = \(onA, onB) -> onB b
Heh, kind of glad I started when I did. 14.4 and up modems really were quite usable back then, for what the web was. I still remember waiting for big files like MUD source code. Also, I remember installed Slackware with a dozen or so floppy disks :)
> I've seen many service layers and front ends change over the years, all while sitting on the same RDBMS

This.

And the youngsters never believe me, when I tell them that the application that they are writing is not the only one and will not be the last one to access the database.
Hey that's awesome! If you ever think about charging or adding paid features, check out my extension payment service https://extensionpay.com It's nice because it's cross-browser and you don't need to run your own server :)
Oh! Really? What about sleeplessness? Where I live I can hear them at 2AM in the morning, when I'm doing my night walks or rides. I mean in winter, like now, not only in the middle of summer. Apart from the fact that they are incorporating technical noises like all sorts of beeps into their songs.

That's going on since at least a decade here.

With no traffic at all, besides myself. That's the reason I'm venturing out ;-)
likewise!
my problem with quiterss is that it takes ages to save data after close. idn why but if you loose power in between next time either you have to update all the feeds or the state which were you in last time.

waiting this to be fixed.
Probably not much of a minority, as gradle's design seems much more friendly to footguns than maven.
The USB-IF standardized names (low speed, full speed, high speed, super speed) aren't that bad, the biggest problem is that they are not used nearly enough or consistently. Instead people use those those non-standard and ambiguous USB X.Y Gen Z labels, which is something USB-IF iirc explicitly recommends not to do.
Why? That objection is surreal -- you're taking the position that there's nothing wrong with a 101% threshold, and there's nothing wrong with a 70% threshold, but an 88% threshold goes too far? Too far in what direction? "Numbers you can mention aloud in polite company"?
Climate Warning Lurking in the Earth’s Ancient Rock Record
Whoa! Have loved Evan's playing for ever but have not heard him speak before, let alone have him speak about his own creative approach.
It is indeed inspiring beyond improvisational music!
Veratad Achieves ISO 27001 Certification
It should really just have been 3.0 for 5gbit/s, 3.1 for 10gbit/s and 3.2 for 20gbit/s - nothing hard to understand, same deal as usb 1 and 2 beforehand
> authoritarians and people low on agreeableness

Is that the big five personality traits? Seems as if in your experience they mean something for workplace performance and team efficiency?

> openness and agreeableness

Tends to create better teams?

How come you've heard about the big five? (You didn't study psychology?)
SolarWinds patches vulnerabilities that could allow full system control
> We pay our wait staff fair and reasonable rates (legally mandated btw).

Most people I know in Melbourne who worked in restaurants said they got less than minimum wage with cash in hand. Almost all these people were on a working holiday visa or students.
China must be stopped? What the fuck does that mean dude?
And I still use IRC and other old protocols and tools. I personally don't see anything wrong or special about it.
Lets do things in some proper order:

Dismantle google to smaller companies and separate all the parts (from android, search engine to google earth) away from advertising part. Prevent them from sharing data. Dismantle facebook. Separate it from advertising part.

THEN we can praise Privacy Sandbox. The alternative is to NOT use chrome. Switch to Firefox.

Praising "privacy sandbox" where browser doesnt allow you to logout from your google account doesnt solve anything. I do care if there is 300 inefficient tracking companies in exchange for one that is extremely efficient and can push other 3rd party sites to use it. What do you think will happen?

First, other advertisers will be killed, google would offer its identifier to the sites and suddenly you wont be able to surf anywhere without google account and chrome. Nope, thank you very much for such "privacy sandbox".
It will only use whatever version is currently activated if that's compatible with the python version requirement specified in pyproject.toml. If it isn't, then it will look for an installed python that is, and create the virtualenv using that instead.

I'm not sure I completely love that behavior; it would be nice if it would default toward trying to use the minimum supported version, even if the currently active one is compatible. But I guess that wouldn't do anything that tox couldn't do better.

You can also explicitly tell it what version to use for a project with a command like `poetry env 3.8`.
Because I'm confident the brain is physical, and just like chemicals (alcohol, opoids) and viruses or bacteria (toxoplasmosis) can already brain behavior, so can a person alter than brain through similar methods. It only comes down to knowing how the brain forms new thoughts and making it incapable of exhibiting murderous thoughts.

And I say historical evidence does not lend you credence, but actually the opposite. Nazi Germany believed in capitalism and the doctrine of free will. The is considered the worst of the worst, and that is your society and historical fact you choose to ignore a m ought the rest of atrocities the western philosophy of that has inflicted through war. Or are you trying to tell me every war the US has been involved with was necessary to protect lives and promote less horrendous death and suffering?

If I can't convince you that murder is wrong, I will do my best to force you out of civilized society. I will not tolerate it in my sphere of influence just as you would not either. I simply take it not just in the external sense but the internal sense as well. If you think about murdering someone, I would ask why and if you are at fault for said thoughts and couldn't not provide an answer that justified your position, I would "cancel" you and your contributions to our society. We don't need murderers or violent offenders, whether its internal or external.

As for your inability to conceive of an idea of a real possibility, that's a lack of imagination on your part. I can clearly consider it a possibility but even more so an eventuality. Your world view is limited, not mine.
Process Your By-Products: A Guide to Building in Public
Apple believes simplicity, but where did it lead them?
iPhone 4,5,6,7,8 was good.
But now we have have iPhone 12 Pro Max Pink
Hi, it's me, you from the future.

But actually, I had student loans and lost a chunk of money during the last BTC spike (literally bought at the very top). It set me back on paying them off which was a big bummer, but in reality, it was a moment that let me truly focus and probably put me ahead in the end. Any time a wild finance story would hit, I'd think about that BTC and remember that investing in your debt is a guaranteed return. And in my case, it was like 7%, so a good return. Now they're paid off and I get to invest like 1% of my money in fun things without worrying if I lose it.
Show HN: TurnShift, I turned an Algolia internal scheduling tool into a SaaS
Establish a reference point for peak dumb. Prove it can't become dumber.
Spaced repetition. http://www.jackkinsella.ie/articles/janki-method
Does this encourage people to make slides which are just walls of text? The examples are pages of text rather than visual slides.
Being a Web Developer: Coders, Hackers, Designers Can Relate
It’s always amazing to think in the complete chaos of war there were still rules to follow.

Things like after sinking a ship letting the enemy know where they should come pick up their survivors. Not using hollow point rounds. Banning gas. Etc.

The problem is that in most wars there always seems to be a force of good and a force of evil who is not willing to follow the rules. The Germans, Japanese, Italians, Russians of that time were led by truly evil regimes.

Or maybe this is just our collective 20th century bias. How did Europe see Napoleon for example? How did countries see the actions of other nations during the previous decades?

Back to the point though, it did seem like Britain saw themselves on the side of the light and fought within the rules as much as possible. To fight an evil without becoming evil yourself is quite a challenge for humanity in general.
PYTHONPATH is also global! so all projects will still be referring to the same set of libs. how does that change anything at all?
Thing is, if the primary source of truth is in the database, often it's beneficial to do the computation as close to the data as possible, as the bottleneck is likely to be I/O, not computation.

"just load the data into memory" requires the database to provide to the client all the data that might be needed for that algorithm, which is more load on the DB server than scanning the (much smaller) subset of the data that actually gets traversed during the algorithm directly on the database itself and providing just the results, as that requires less I/O. That's the reason why it's often more efficient (even if we care only about the server-side load) to do filtering, aggregation and summarization for tabular data in the DB instead of loading all the data into a client and calculating it there, and the same applies for graph data.
ONe project I was involved with (and still recall, 20+ years later) probably falls in the "as boring as it can be" bracket. We were working on a system that would transfer data between a bank and the tax office. This system would send files from the bank to the tax office, when someone paid "taxes due" and fetch files from the tax office to the bank when the tax office saw that taxes had been over-paid.

All it did was "shuffle files back and forth" (with some data conversion between different IBM formats thrown in, for good measure).

But, I still recall the project 20+ years later, with some amount of pride. Partially because it was delivered on-spec, on time (well, it was delivered on Dec 23th and the deadline was Dec 31st, but as there'd be no one at the customer between xmas and new year...) and just a fraction under budget, with an exceedingly happy customer...
Love the idea in theory, just wish it would export to Google Slides
Nothing is prevented, there's email and video conferencing, completely free for 99% of population with basic phone plans.

If you can't afford that you probably can't afford international travel either.

It's incredible how those bureaucrats think borders should remain open without visitors paying the cost of testing and 14 day quarantine.
Weave.jl – Scientific Reports Using Julia
If `match` compiles down to a switch case on the type discriminator then it can easily beat current implentations of C++'s std::visit on std::variant.

I assume pattern matching must be exhaustive. Can there be a default case?
> At least that’s how the official Pytorch Imagenet dataloader is reading images for training.

Well, something to keep in mind if you want to optimize it later.

> still, they are random reads. I’m not sure how much faster those get with size.

The second image I linked should demonstrate that pretty well.

> And I’m pretty sure doing writes in parallel with those random reads makes things worse

It looks like both models handle a mixed workload acceptably. Writing 128KB chunks is somewhat slower than reading, and mixing them gives you a speed somewhere in between. http://images.anandtech.com/doci/16087/sm-s-905p-1500.png
Pretty sure that means he loves his Chinese men feminized and wants to keep it that way.
Discussions of right wing social media sites on HN are disturbingly sanitary. Before I posted this comment, the word "racism" appears one time among nearly 400 comments. "White supremacy" appeared only a handful of times. “Woman” or “women” appears nowhere in a discussion of a deeply misogynistic platform, movement, audience.

Just as dark patterns, predatory business models, and enablement of antisocial behavior harm other product domains, Parler incubated a disease that spread to, and diminished the value of, other social media.

If you cannot bring yourself to label bad things with forthright labels, you will not be able to keep them from damaging the value of what you create in technology.
The BBC article's intro implies that the Chinese government wants to draft more men into the military. But the actual issue has got nothing to do with the military or militarism at all.

At the heart of the issue is the perception that young men lack physical exercise. This government suggestion is receiving a lot of criticism inside China. Chinese netizens don't have anything against encouraging kids to exercise, but they are incensed that it's sold as a way to make boys more manly. https://radiichina.com/masculine-feminization-teenagers/
Systemf: Prepared statement support for the system command
The families I know who live best are permaculturalists. Visiting them for dinner is always a treat. It's hard work though, and like others they have supplemental income. I imagine this old man knows well the trick: an independent life is impossible unless you have enough healthy young people around to do the labour.
So, with this you can stream from your iDevice using AirPlay to a Raspberry connected to, say, a TV? Is this correct?
Well I was assuming the actual library would be bundled too: not just the headers!
That’s not a good criterion as ponzi schemes make a lot of people money investing in it. I think it’s important to evaluate financial trends based on first principles to understand if we’re just seeing a small window at the beginning of a scheme.
Optimizing and efficiency/time management can be a form of mental masturbation/distraction, in itself.

...but I don't think that means it lacks value. I think it just means we haven't solved the problem yet, because it is as complex as our psyche is.

I have found techniques that optimize my performance despite reading and testing techniques far more techniques that provided low-value.

Maybe what's needed is a meta-analysis of the field, better descriptions/sub-divisions of the (similar) problems, and thereby more tailored approaches to efficiency management.
Started with 300 and was insanely jealous of people when 1200 became affordable enough for them. I think I eventually got 1200, but then many people had moved to 2400.