skysight-inc/HackerNews huggingface dataset:
Indeed. It depends what you're doing. Web development, yes, I can see why you'd want a UNIXy system for that. But a lot of the enterprise is Windows-first and if you want a desktop app, that's what you'd develop on. If you're doing embedded development you may have a choice of exactly one operating system with the manufacturer's toolchain.

Do not underestimate the power of full Visual Studio. It's a bit bloated, and it's even slower with Resharper, but if you're working in C# it will do a lot for you.
I held the same position as you until quite recently. Unfortunately I've changed my mind on this somewhat. I've found it introduces too much friction in practice to be generous with const everywhere. A few reasons for this that I can remember off the top of my head are the following (there are probably more that I'm forgetting):

(1) Constifying variables hampers your ability to move from them (including RVO), which you still frequently want to do even in cases where you don't otherwise mutate the object. Which is obviously bad for performance. Now your solution might be "ok, so don't put const if you plan to move", and sure, you can do that, but then your variables and parameters start becoming an inconsistent mixture of const- and non-const types. Not the end of the world, but it's kind of jarring for a reader (read: increased cognitive load, confusion, etc. during maintenance) when they wonder why X is const and Y is mutable despite the fact that the problem should treat both of them as const. Now, if this was the sole downside, I would say might still be worth it on the balance, but it doesn't help the situation when there are other downsides.

(2) Conceptually, constness of object types in a function signature is an implementation detail callers should be unconcerned with, but language-wise, it's also encodable in the prototype. The practical implication of this is that the prototype ends up going out of sync with your implementation, and you'll want to fix them up so they match. (Not just for aesthetics, but because it also helps with tools, say grep.) The compiler doesn't necessarily complain for object parameters, but if you don't fix them then you end up with inconsistent signatures that are further confusing at best. Not only does this get quite annoying, but fixing it also forces the recompilation of all callers, which is yet another thing that slows down build times unnecessarily.

(3) It's practically impossible to get other developers on board with this even if you ignore all the other issues. Too many people just don't care enough for the advantages to change their habits on this issue. If anything, you'll be forced to remove "excessive" const for consistency with the existing codebase.

Now there are obvious advantages, and I could honestly argue for either side, but the friction starts getting old. It's just not a clear-cut case in practice, as much as in theory I want to agree with you (and have in the past).
AST as a rule should be easily constructed programmatically. Malloy has a syntax though.
All three at some point, but MacOS has been my dev environment of choice since 2004. I'd probably be happier in Linux or even a BSD except I can't help tinkering with them.
You can grab that cert in a number of ways. IT can do whatever since they have to provide all the data needed to connect anyway.

> you can't because it puts strain on the connector

Well that looks like a feature designed to sell more laptops.
What are the hoops? It installs for me in a few minutes with a single command.
I see there is a spending limit for the "intro" or "preview" plans designed for students, Visual Studio users, and resellers (the "hook" part in "hook, line, and sinker").

Not for actual cloud usage, like an actual pay-as-you-go plan where this would be useful.

https://azure.microsoft.com/en-us/support/legal/offer-detail...
>How do you deal with Microsoft's crap on a daily basis?

wuauclt.exe and wuaueng.dll. Add 'Administrators' to permissions, then go back in and delete all permission entries. Basically deny windows access to its update system. Doesn't hurt to run Anti-Beacon as well.

NSudo as Trusted Installer to cripple security center and Update medic service, group policies can shut down most of Defender and Customer Experience Improvement Program as well as the nags about those. Also have a laundry list of scheduled tasks to kill.

Takes me days to get win 10 to run as i want, be secure (from MS) and stable, aka not just suddenly change something and mess up my work.

Its still a shadow of the operating system XP was (not that XP was very good). Just compulsory auto arrange and border-less windows alone really cripples its ability to multi-task or work with complex file sets efficiently. And the amount of bloat both in its install footprint and running services is insane.
This tool is just another way to write those very same SQL queries - I have yet to see any tool that purports to write the SQL for you, output SQL that is better than someone that actually understands relational data and sql can do - it is usually not even close.

This isn't a new language, its a layer on top of a language that already works, and works well.
That quote is a bit misleading even though it's entirely true. Faster than naive-switch-based polymorphic code, yes. Effectively it shows that slow lookup + function calls via a function pointer can be faster than large switch()'s, and that's useful to convince C programmers of...

It's a fun paper that does a good job at presenting a the first few steps worth taking towards implementing well performing dynamic object models and showing that it may be worth considering those methods when writing C that requires different behaviour for different data structures over writing static code in those specific cases, but people have been writing vtable based object models for C "forever" that solves enough of those problems that it's rarely worth going the extra mile to get the dynamic model they present in the paper.

When you actually need it, it's very useful to know these tricks, though, and for those unfamiliar with dynamic object models it's a great introduction.

That said, it does miss one other simple trick that's worth considering. For inheritance it searches parents, and this is a large part of what makes the "bind" expensive and so makes the inline caching worthwhile.

Protocol extension [1] provides a way to do this which can be implemented either as cheap as vtables for calls (costs more memory) or one indirect load more expensive (more space efficient). Basically the fastest approach is to make all vtables big enough to accommodate individual slots for each method name. The "slow" approach groups methods in interfaces and gives you a "vtable of vtables". Couple that with a simple method propagation algorithm that lets you override methods like in this paper but respects sub-classes overriding a method (by seeing if the pointer to the function implementing the method matches that in the parent vtable), and that's it.

You might think this blows up really badly. But in practice in experimenting with in-progress-and-may-never-be-finished Ruby compiler, the memory overhead tends to be surprisingly small - few projects have large enough number of classes and large enough numbers of unique method names for it to be a major issue, but the two approaches can also be combined with fallback to more indirection). Even with a singly-rooted object hierarchy like Ruby it doesn't seem likely to be a big problem, and for a language implementation you can "mix and match" and put the most common method names in a shared vtable and fall back to more expensive lookup methods for less common methods if necessary to save memory.

The main benefit comes with megamorphic call-sites (places where the vtable used for the call will frequently change at any given call-site, and where you thus otherwise end up falling back to the expensive method lookup very often), which is no more expensive than monomorphic call-sites with protocol extension.

[1] Protocol Extension: A Technique for Structuring Large Extensible Software-Systems, 1995, Michael Franz
https://www.semanticscholar.org/paper/Protocol-Extension%3A-...
Often these kinds of things collide with the laws of thermodynamics and end up decreasing the energy the system provides to its endpoint by the same amount that is extracted. Not always, just often.

A classical example would be putting some thing to collect the energy generated by turning a rotating door to power lights in a lobby, it is probable that this will end up causing the people using the rotating door to expend the exact amount of extra energy that is captured by the system (probably because the easiest way to collect the energy is to put some extra resistance on turning the door)

So why do it? Well in the case of the rotating door it is easy to see why, because by having everyone give just a little extra of their personal energy (like two extra spoonfuls of cereal in the morning, and a sip of orange juice) the company manages to externalize the cost of lighting their fancy lobby and nobody even notices that the energy was taken from someone else to do it.

Put a notice about how the lobby is powered by green energy, that's really the icing on the cake.
Was labour cost arbitrage the best use case they came up with for this amazing technology?
Can anyone help with a good algorithm or design for family / relationship tree
want to understand the best design/algorithm to solve for the layers of family or relationship nodes, as whenever i am trying to draw it is going in all directions. if we add relationship nodes also, then it will move horizontally or maybe in 3-dimensions?
Wingcopter lands $16M contract with Spright for medical deliveries in US
Not likely! I'm a happy owner of the 2020 SE and I don't think people will come out in droves to buy the 2022 SE - especially if it looks exactly the same. I personally think it looks great, and I really don't mind not having an all screen device, but Android users even at the low end are used to bigger, better screens and way more fancy features.
Then there's this magic link: https://support.google.com/a/contact/recovery_form (calling it magic because it's not very obvious how to find it; I had to look it up in the HN comments)
Why can't you imagine that? This gatekeeping you're doing is rude and doesn't make sense. 2FA's very purpose is to increase shut outs when enabled.
Ah sorry I should have been clearer on this -- "global cache" === CDN. Hetzner does incur a performance latency (unless you use the brand new US DC of course, and your customer happens to be in the US). IIRC right now you can't mix US cloud servers and German ones in the same Load balancer (also a relatively new hetzner cloud feature) but of course you can do some DNS tricks and get the loads to be fast.

Actually hosting files is super easy (Caddy is awesome, NGINX is awesome), but it's even better when you don't have to set up the server at all, for example just turn on "HTTP access" on a object storage bucket for example. So this is another place Hetzner kind of falls short though they do have hosting options[0], so basically the ideal solution here would be to deploy a simple Hetzner app (caddy/nginx or the hosted options hetzner has), set up a cheap CDN (Bunny, Cloudflare, etc) in front of it, and save money that way. If the bill is still too high just take the penalty or bias towards one geo (germany/US).

I was less talking about the difficulty of getting a server up and more about the CDN bit of the issue to make loads blazing fast!

[0]: https://www.hetzner.com/webhosting
what you want is latency reduction. Usually what sites like Vercel and others give you is way faster loading time by putting stu
Or, don't use out-parameters unless you really have to.

If a function returns a value, have it return that value, instead of using an out-parameter. Passing in-parameters by const reference rather than by value is a nice win because the semantics of the function remain clear. Input parameters still look like input parameters, you're just preventing unnecessary copies where it's easy to do so. Returning a value as an out-parameter rather than just returning it is a performance hack that prevents a copy, but at the expense of muddying the semantics of the function.

As the prophet says: we should forget about small efficiencies, say about 97% of the time. Write code that clearly expresses what it does. Return your return values. If you run a profiler over your code and you notice that some returns are causing a performance problem - sure, at that point, add an overload that takes an out-parameter and use it at the frequenty-executed hot spot.
Go produces large binaries (15Mb+) by default (it optimises for startup time not storage space). There are options to reduce this, but they involve tradeoffs so here be dragons.

Go code tends to be verbose (if you come from a more succinct language). Again, this is a result of design choices made by the Go language designers: optimising for simplicity and explicitness (lack of magic).

I've been coding in Go for years, and find it incredibly readable compared to other languages. I now find less-verbose code harder to read.
Microsoft broke their own right-click menu integrations in Explorer by doing this. "Open with Code" and "Open with Visual Studio" have both been relegated to the "Show more options" submenu.

It absolutely boggles the mind that any of this was shipped. This is Beta level software.
for fun: I accidentally compiled a C program with g++ and it worked!

continue?
Probably would run just fine on a <= 4 euro/month virtual machine too.
Of course it doesn't quite scale to zero like APIGW,lambda,etc. but on the other hand you can be fairly confident to not pay more if your pet project suddenly lands on the front page of HN.
What?!

It's just there isn't a good path. So might as well remain on current thing that works.

In my case the $15 Windows.
Github pages requires the repo to be public - which might not work for everyone.
CF pages is pretty cool, thanks!
Same here. I gave up on Windows years ago, switched to Linux and have been happy with it ever since.

Sure, there are some sharp corners here and there, but at least the operating system doesn't get out of it's way to stop you from fixing things. And since you have these sharp corners with any operating system, to the end user it doesn't really matter as long as they have any kind of informal support system (you know, the person in their extended family that 'knows' computers)

I offer tech support for my extended family and was able to slowly migrate most of them to Linux over the years. I'm much less inclined to angrily yell at people nowadays. I've also grown back much of my hair.
It's a great machine for other things, too. And there are so many hoops you don't have to jump through. I remember wasting a whole day on trying to get some Dell's WiFi working under Linux. And then there are tools like Pixelmator, which simply have no equivalent on Linux. Not to mention that the company uses Office 365 for everything, and that just doesn't run well in a browser.

OTOH, setting up brew is pretty simple, and installing Docker is even simpler.
This link is buried in the readme: https://looker-open-source.github.io/malloy/documentation/la...
Things I learned as VP Growth at a hypergrowth Fintech in London (2020)
The (exact) optimal EV-minimizing strategies (assuming each target word is equally likely) always solve in 5 of fewer guesses in normal mode, and always solve in 6 guesses in hard mode. If you wish to guarantee 5 guesses in hard mode, there's a different (optimal) strategy with slightly higher EV. See: http://sonorouschocolate.com/notes/index.php?title=The_best_...

I don't think a maximum-number-of-guesses optimizer leads to an equilibrium (if you mean Nash equilibrium), assuming you're playing the game where the score of the game for the setter is the number of guesses. In particular, if the solver's strategy is deterministic, the setter will always pick one of the words that needs 5 guesses. There's no reason to think the nash equilibrium can be easily found.
He has something else more interesting going on here:
https://victorribeiro.com/
They really aren't.

The popular narrative is that the commoners own the responsibility for imperialism "because it helped them" and this assertion tends to be taken without question.

The reality is far more complicated. What is true is that imperialism is driven by and for the very rich and powerful ruling class. And what is also true is that the common people have been forced to bear the brunt of these wars and interventions and expansion. The common people of imperialist countries have also been victims of imperialism.
Cuelang?
Ok HN I am proud of you. I read the article and had a sinking feeling that the top comment would be:

"Well actually... you should really be using string_view instead of..."

Perhaps that is true but that would be intentionally missing the point of his arguments.
Apologies wasn't clear -- what I meant was the difficulty of setting up NGINX AND setting up a CDN to serve your content as fast as possible from multiple places is harder than it should be. They're both relatively simple tasks in this day and age but they're not connected/brain-dead-easy for a vendor like Hetzner.

Honestly, they're not even connected/brain-dead-easy for a vendor like AWS particularly -- you still have to click around a lot or write a bit of terraform/aws-cdk/etc when all you really want to do is throw a folder or zip file over the wall and point it at a domain.

There are tools like Ness[0] out there which look like a breath of fresh air but there needs to be more tools like that where the supported backends include a cloud like Hetzner/Leaseweb/OVH.
I don't know Huginn much in detail, but if you do know any OOP language since before, just the basics around Objects, then Ruby will be fairly simple to pick up as well. Like most OOP languages, it has just minor differences in syntax in comparison to other OOP languages.
Unrelated question – being a .NET developer, would you be interested to try out ASPSecurityKit specifically it's activity data authorization [1] feature? Pl share your email if yes. Mine is varun at ASPSecurityKit

looking for some beta users, to get feedback as we're thinking a cross-platform component on similar lines.

1: https://aspsecuritykit.net/guides/aspnet-policy-authorizatio...
At my big tech company we hire interns and fresh graduates. Isn’t that training/apprenticeship?
> I disagree with not taking a multipronged approach to tackling life restoring
processes.

Thanks for making it clear.

> if we shut off all fossil fuel burning tomorrow, sure maybe we would be able to
make up for destructive practices of agriculture.

That's not right. Burning fossil fuels is the cause of climate change. To stop
burning fossil fuels is not to "make up" for agriculture emissions, it's to
remove the cause of climate change.

Agriculture is not causing climate change, burning fossil fuels causes climate
change. The emissions from agriculture are only of concern because of the
climate change that is already underway caused by the emissions from burning
fossil fuels. Without the emissions from burning fossil fuels there would be no
climate change and there would be nothing to "make up" for because emissions
from agriculture alone are not capable of causing climate change (again, because
the environment can deal with them).

You say that "diet maintenance" is a "clear, easy goal that individuals can take
on". It's much more than that. It's a fine excuse for people to not do anything
substantial to help stop climate change. They eat a bean burger once a week and
then go home happy that they did their bit for the environment, because their
favorite influencer told them so. And they do nothing to challenge the fuel
industry that keeps doing business as usual. Because their influencers don't
tell them to.

In order to stop climate change (we can't reverse it, but we can stop it
developing further) people must understand its causes. Farming is not the cause.
Burning fossil fuels is the cause. That's what we need to address.

But I think there's a misunderstanding. I made a comment about the
misinformation spread by the fossil fuel industry, and you seem to have taken it
as a comment in a debate about individual vs collective action, to which I never
intended to contribute. I agree that personal action is necessary to stop
climate change. My point is that eating a vegan diet is not the right action
because farming is not the cause of climate change. Burning fossil fuels is the
cause of climate change and the goal of any personal action must be to stop
burning fossil fuels.

> my disagreement is that the fossil fuel industry somehow coopted the animal
rights movement.

Maybe "co-opted" is a strong word, but the industry can't be very unhappy with
the current state of affairs, where everybody's having a food fight on social
media about what to eat and lets the industry off the hook.

"Go vegan" is the popular message on social media because it's the easy answer.
But, the answer to what? The hard question is how we reconfigure our
civilisation to stop burning fossil fuels and causing climate change as a
result. Going vegan doesn't begin to address that question. What you eat is
irrelevant to how we generate power.
> I am dead serious.

Thanks for adding this, as I thought you made a joke.

Ads, spyware, NSA backdoors, who still trusts them?

Also alternatives are just too readily available these days.
It's biased towards what we find interesting. I don't even write Lisp, but implementation tricks for dynamic languages interests me, and less common languages interests me, and it's the same for a lot of the more active users here.
It behaves randomly on ios safari, tried portrait and album mode. Tapping to shoot works, but when you drag, vertically, horizontally, otherwise, it either does nothing, or lowers the strength to zero, or turns the cannon either exactly to the left or to the sky.
> Poor as hell.

understated. people can't afford electricity or clothes and their main staple is banana. few go to school. a bicycle is considered a major asset. their options in life are either making enough money to survive, or stealing in order to survive.
you can cycle to your old yoga studio i guess? What's stopping you from going outside, they asked you to work from home, not stay at home all the time
Oh, that's nothing.

Windows Update can forcefully power-on a sleeping laptop, and then do 100% CPU load for a decent chunk of an hour whether you like it or not...

... while your laptop is in your laptop bag.

This destroyed one laptop for me already. It very nearly caught fire on a crowded train with no way to even throw it off for safety.

I keep saying: Microsoft will keep ramming this crap down people's throats until a laptop catches fire on a plane and a safety agency or two gets involved.

PS: Speaking of VMs and Windows Update -- the most hilarious thing ever is when 40,000 virtual desktop VMs forcefully run Windows Update all at the same time on a shared storage array. And then reboot to the golden image, resetting them to the previous state, from which they dutifully try to patch themselves. Again, and again, and again...
Unfortunately, data in Aus really costs this much (more actually), from my experience colocating in a few data centres (I was typically paying $0.3/GB). It’s certainly possible it cost them less, but very doubtful on it being close to free.

EDIT: Apparently it was hosted out of US West, so I agree that the actual data cost would probably be a lot less.
> say unusual browser, small country, rare language, use a vpn etc

> Basically it's these massive bayesian filters that output how suspicious some activity is.

It almost feels like the digital equivalent of racism, xenophobia, homophobia, and other prejudices; people are suspicious of anything that stands out as being somehow "different." Now computers are suspicious and prejudiced because your digital appearance looks out of norm.

> This approach is understandable from a business perspective, but imo deeply troubling for an open society.

Agreed.