skysight-inc/HackerNews huggingface dataset:
I'm currently at somewhat similar place with my latest project good enough for my own usage to use but not really ready for public consumption because it's missing few important pieces. I've scratched my own itch and now I'm not sure whether I should keep scratching or just letting it tick as it is. I'm 80% done with it but I reckon that getting that last 20% would take at least double the time I've spent so far. Once in a while I get enthusiastic again about the project and resolve an issue or two and then think "why bother, it mostly works?" and forget about it. I've already picked all low hanging fruits and and I'm now reluctant to turn it into a job. I guess I could if I really believed that it's the next big thing but I'm pretty sure it's not so I let it just sit there. It's been a great learning experience though, good way to try out new stuff. It's also a great project to take code snippets from because I had to solve some things that I hadn't done before so there's that.
You think what has happened to amazon rain forest isn't offensive?
Do you know about https://www.commandlinefu.com ?
"Google it if you don't believe me."

Or, just calculate it?

Car contact patch is 4 x 160cm2.
https://www.tirerack.com/tires/tiretech/techpage.jsp?techid=...
Car avg. weight is 1800kg.
https://www.bankrate.com/insurance/car/average-car-weight/

Pressure = 28kPa

Human is 100cm2.
https://en.wikipedia.org/wiki/Pedobarography
Average human weight is 75 kg.

Pressure = 8.5kPa.

So it's simply not true what you say.
The Multiplex() function serves a double purpose:

1) If no other goroutine is currently executing the Multiplex() function, then Multiplex() acquires a write lock, executes the getter and caches the result.

2) If some other goroutine is currently executing the Multiplex() function, then Multiplex() waits to acquire the read lock, then reads the cached value.

So in case of a single goroutine executing the Multiplex() function in a loop, it will be nothing more than a wrapper. But when many goroutines are executing the same Multiplex() function concurrently, only one goroutine will actually execute the getter, and all others will just wait for the first one to finish, then take its cached result.

The point is that you don't have to think about who executes the getter and who copies the cached values, how often to execute the getter, how much time will getter take... You just call it like an ordinary function, and every goroutine will get the most recent value it can get.

Hopefully this clears things out. I'm willing to elaborate further if you have any more questions.
Fixed key sets are uncommon.
That's a very good point.

For: I've seen a company very nearly destroyed by not having the skills to deal with a single disk failure in raid.

Against: A Large Hosting Company we used couldn't read my simple instructions and lost a backup.

BTW read the SLAs of your provider and my guess is you'll agree with what a lawyer who worked for us said - shite. Basically, while it was down our provider wouldn't charge us for it. The end. What does yours do? If similar, what motivation have they to fix breaks? And is the provider responsible for loss of connectivity between them and you?

Put another way, who gets hurt more in downtime, the provider or you?

Some reading for me <https://journal.uptimeinstitute.com/cloud-slas-punish-not-co...>

Quick extract:

"SLA compensation doesn’t even scratch the surface of these losses. If a single virtual machine goes down for less than 7 hours, 18 minutes (99% monthly availability), AWS will pay 10% of the monthly cost of that virtual machine. Considering the price of a small instance (a ‘t4g.nano’) in the large US-East-1 region (in Northern Virginia, US) is around $3 per month, total compensation for this outage would be 30 cents.

If a virtual machine goes down for less than 36 hours (95% availability in a month), the compensation is just 30% — just under a dollar. The user only receives a full refund for the month if the resource is down for more than one day, 12 hours and 31 minutes in total."

yep, that sounds about right.

Edit for context:

"In the 2021 Uptime Institute data center survey, the average cost of respondents’ most significant recent downtime incident was $973,000. This average does not include the 2% of respondents who estimate they lost more than $40M for their most recent worst downtime incident."
Well it depends what you are doing. If the thing you are optimizing is the thing blocking everything else routinely, spending a lot of resources on optimization is a no-brainer. If the thing you are optimizing takes long, but that does not matter so much, it is not worth optimizing.

When you are creating VFX scenes for a still image you don't really care a lot about the render times as long as it is done the next day or so. If you are doing it for animation, you care a lot about render times, because anything times a thousand will be quite a duration.

The work of a programmer is always a factor in a multiplication. If the small change you make is used by thousand people a day, using it 100 times a day each second you shave off will save a collective time of ~28 hours. And this is only time. You could also think about electricity, about frustration, etc.

A programmers work is always multiplied into the world. It is a huge responsibility - and I think we all should act more like it.
Obligatory quote: "All models are wrong, but some are useful".

I realized about myself that I became better at decision-making the easier I could switch to the "appropriate model" for a give situation. Not even physics can get a unified model, and the primitives in social sciences (humans, memories, desires, education) are all as fuzzy as can be.

The article does mention that "rational-actor" might actually be the best we can come up with, but that's if we always have to always work with the same model.

We could have a newtonian/relativistic style pair of models for people, based on urgency or marginal utility threshold (different rules apply to your last dollar), but that threshold has to be subjective, and we seem to have lost all hope in anything subjective.
Yes I'm aware :)
No, I'll just do the workout without those shoes. Which will be less effective because less stimulus is being presented, but still worth doing.
Hey what's up with your comment being almost verbatim this one https://news.ycombinator.com/reply?id=32184233&goto=item%3Fi...
>The moral this time might be, try to not have functions that work on one object, and are O(N_objects) complexity. They absolutely might be fine when called on one object. But sooner or later, someone will need to do that operation on N objects at once, and whoops suddenly you are in quadratic complexity land.

I usually put it this way to my colleagues: on a long enough timescale, every function will be called from a `for` loop.
Yes, in the future, while this job goes away now. The problem is likely the interval between "now" and "then", when suddenly this mine closed and you have thousands of miners out of work and unprepared to do anything else. The kids will probably learn to do a new job in a new industry, while their pops will stay at home drinking or go out to kick some butt (or both) - neither outcome very pleasant for the society.
But this is fundamentally different. It is the same percentage of income for everyone and is based on the individual. It isn't based of some caste or group membership, which is a key component of woke policies. Ironically the same fault as people with prejudices towards groups extrapolating to individuals..
I wrote a beginner's guide on this topic a while ago https://medium.com/nybles/efficient-operations-on-disjoint-s...
Americans often get to make the uncomfortable decision as to eat a shit sandwich or a double shit sandwich.
The lack of shared tv is older than just Netflix. Before satellite tv or digital tv when there were only a few channels, popular tv shows would get viewing figures that would be totally insane by todays standards (eg 10s of millions of people in the U.K.) so there would in theory be much more of a shared culture from it.
Agreed, union-find is great.

My favourite usage of it in practice is for solving first-order (syntactic) unification problems. Destructive unification by means of rewriting unbound variables to be links to other elements is a very pretty solution - especially when you consider the earlier solutions such as that of Robinson's unification which, when applied, often involves somewhat error-prone compositions of substitutions (and is much slower).

The fact that the forest of disjoint sets can be encoded in the program values you're manipulating is great (as opposed to, say, the array-based encoding often taught first): makes it very natural to union two elements, chase up the tree to the set representative, and only requires minor adjustment(s) to the representation of program values.

Destructive unification by means of union-find for solving equality constraints (by rewriting unbound variables into links and, thus, implicitly rewriting terms - without explicit substitution) makes for very easy little unification algorithms that require minimal extension to the datatypes you intend to use and removing evidence of the union-find artefacts can be achieved in the most natural way: replace each link with its representative by using find(l) (a process known as "zonking" in the context of type inference algorithms).

Basic demonstration of what I'm talking about (the incremental refinement of the inferred types is just basic union-find usage):
https://streamable.com/1jyzg8
This sounds super useful thanks! I think I'll have something this can be used for, with individual claims of whether two elements are in the same set, then easily getting the largest set of equal items.
The technologies changes nowadays faster than a book get published.
> Which laptops can you get in large enough numbers, at a low enough price, within three to four weeks?

Can they install a Linux distribution on the existing ChromeBooks?
Yes, that’s where things like basic pay become important.
What Tucker Max taught me about hard work
My understanding is that economists use the term inflation for the rise in prices - strictly the fall in value or purchasing power of a currency.

The increase in money is termed 'expansion of the money supply'. There are a number of measures of money supply, going from narrow, cash only, to broad to include cash like instruments.

There is a strong relationship between money supply and inflation, different schools of economic thought understand it differently, but in general when you increase the money supply, its purchasing power falls.

Ballooning asset valuations have largely/entirely been caused by QE and ultra low interest rates, other prices are going to be affected by this too. Supply side shocks of course play their part, but current inflation is probably primarily driven by this loose monetary policy.
Money quote: “the book trade is a floating world for people of intelligence unsuited for anything else.”

I think this is also applicable to a lot of us who like to read a lot.
This feels even more dubious because if I figured out the correct company, they're fishing in the freelancer threads quite a lot. They know what they're offering to HN readers.
Thanks!

That page has a graph.

Blue (.) seems to be preferred by most (not all) commonwealth nations.

There seems to be a lot more green (,) areas, but the 3 largest countries by population — China, India, and USA — are blue.

Somewhat surprised to see Mexico using dot instead of comma.
IMO the article's conclusion is backwards. There's nothing wrong with symlinks when files are opened with openat(), since in principal the program (or controlling program) should always be in control of the filesystem layout. It's open() that causes problems, and complex interactions with symlinks in attacker-controlled directories are just one of them.

The POSIX file API was designed before the concept of capability passing (arguably, before the concept of computer security in general). A modern replacement would look more like Fuchsia, where child processes are provided file access scoped to their parent process's authority. This same scoping can also be used within a process, for example to implement a server that can "self-chroot".

> So, more functions following the pattern of openat() had to be created
> [...]
> Some are still missing, like getxattrat() and setxattrat().

The functions to get/set xattrs on a file descriptor (rather than a path) are fgetxattr() and fsetxattr(). They're not usable for the specific case of a file descriptor opened with O_PATH, but that restriction is both documented and reasonable -- O_PATH doesn't allow operations that inspect the state of the file itself, such as reading/writing.

A better example might have been listxattr() vs flistxattr(), because the former works on a file without read permissions, but the latter fails on a descriptor opened with O_PATH.

listxattr("xattr-chmod000.txt", NULL, 0) = 14
listxattr("xattr-chmod000.txt", "user.testattr\0", 14) = 14
getxattr("xattr-chmod000.txt", "user.testattr", NULL, 0) = -1 EACCES (Permission denied)

vs

openat(AT_FDCWD, "xattr-chmod000.txt", O_RDONLY|O_PATH) = 3
flistxattr(3, NULL, 0) = -1 EBADF (Bad file descriptor)
> I've also passed the threshold of exercise feeling like a chore. It's now something I enjoy and even look forward to. This took over a year to achieve but it does happen, I promise.

This was the most surprising part for me : I used to be the stereotypical anti sport nerd when I was young, and when I started training, even a bit, it was a proper chore and something that required motivation.

But after running regularly for a couple of years, now going for a run is something that I do for relaxation, and honestly look forward to especially after a stressful day.

I could not say when it happened, the change is pretty gradual, but it's definitely there : not only does it get easier after a while but it becomes something you deeply enjoy
I believe CRT underlines and fortifies issues facing minorities. It cements them as minorities not having a stake in culture.
> In motorbike in contrast, you touch a wet patch or a gravel bit and it slides right away

Not a motobiker, but I find this part strange - I see people who commute daily on scooters, sports bikes and choppers too and they don't mind mild rain and wet roads much. They do drive slightly slower through city (and on highways too), but not more than 10kmh less.

If its anything similar to bicycle then you just take care on bends/intersections but thats just about it.
Well, your comment would be so much better without the last sentence calling Blair a war criminal.

More to the point: Had there been a secind metric measuring how many appointments were booked in advance, this way of playing the metric would have easily been caught.
Read this related Twitter thread recently: https://twitter.com/crim_thought/status/1549554660184231936

It's about comparing global economies in terms of actual, physical production output instead of GDP numbers that include nonsense like the big "service" companies. Results are unsurprising.
Interestingly, Windows actually did exactly what's proposed at the end when MS added them in Vista. To minimize the security issues with symlinks, you had to elevate to admin to create them.

It was only during the life of Windows 10 that they even added the option to not have to elevate to create them. It was done specifically because symlinks are often shared across systems since they end up in places like git repos and npm packages: https://blogs.windows.com/windowsdeveloper/2016/12/02/symlin...
Directed acyclic word graphs (DAWGs)!

They’re like tries, but with identical subtrees glued together. They’re capable of encoding real-world dictionaries of millions of words into ~1 byte per word, when stored cleverly (see [0]). They let you do things like efficiently finding a list of words in a dictionary whose Levenshtein’s distance to a given word is less than x. Their cousins, GADDAGs, are _the_ data structure of choice in Scrabble-playing engines.

[0]: http://www.jandaciuk.pl/fsa.html
European quantum computing leader IQM raises €128m led by World Fund
I mean it is ultimately a stochastic thing we are fighting against. There is no guarantuee to not getting your bicycle stolen, but we can change the odds of that happening into our favour by how we do it.

> It was protected with a good lock which was cut through and surrounded by dozens of nicer ones in a secluded bike garage, some of which had incredibly basic and weak combination locks.

This is an odd one. Maybe the bike had specific parts the thieves were after? Shitty bikes are often targeted by drunkards who just try to get home (they steal it for transportation, not for money). But they would get stopped by a good lock (provided it is actually locked).
Related: the "McNamara Fallacy" [1] discussed on HN with 200+ comments [2]

[1] http://mcnamarafallacy.com/

[2] https://news.ycombinator.com/item?id=30166488
No. The xerox machine had a digital analysis phase with a feedback loop between the image being recorded and the output being printed.

A western blot is a direct measurement.

It's like asking whether the xerox example might explain why the splatter pattern is identical in sections of two putatively different Jackson Pollock paintings.
Dylib Injection in Golang apps on Apple Silicon chips
Obviously you've never lived through having the weight balance of the baggage on your aircraft being deemed improper. 30 minutes to move to the other side of the airport, whereupon the weight balance is deemed OK, 30 minutes to return. Yes, Chicago.
Not unless your game is less than a few gigs in total size. The average size of a 3d simulation game is much larger than the 8/16gb of memory on typical gaming rigs. KSP loaded literally everything, every texture, at startup. The only time the drive was touched after that was for saves.
Because we're scanning for predators?
I have already a solution where I can put zero amount of work for optimizing it, it's called a button. Why would I bother with something as needy as this "smart" thing?
Does yosys support this? I truly hate Vivado with a passion.
I've always called it request piggy backing (atop memoization). Our db abstraction at my last gig absolutely required it for scaling purposes. Great tool for the tool belt.
A moment's consideration would show that's too simplistic. Money available has been growing for years without any notable inflation. It's not like we all rush out to spend every bit of income we have, a fair amount gets saved which effectively neutralises it.
That sounds pretty nice to me. There's a bit of a tragedy of the commons situation here IMO. We should privatize all the roads and let the free market dictate what people like, and I think a lot of people would fall back to bicycles and walking more if they actually had to pay private tolls wherever they drove.
Kind of your fault - you're buying your underwear on a work device and you don't use an adblocker.
> Ironically, due to caches, sorting and then using algorithms that rely on order tend to be superior than most hashing implementations

This doesn't match my experience at all. C++ trees are not cache-friendly; they're pointer-chasing (and there's no arena implementation in the STL). Second, any sort of ordering structure (be it through a tree or through sorting + binary search) is notoriously prone to branch mispredictions. They look great in a microbenchmark if you search for the same element all the time and the trees are small, but in a practical application, it can be incredibly painful. Pretty much by design, every choice is 50–50 and unpredictable.

std::unordered_map from most STLs isn't a fantastic hash table, but in my experience it absolutely destroys std::map (and is also comfortably ahead of something like std::lower_bound on a sorted array). All of this is assuming large-ish N, of course; for small N (e.g. below 30, usually), the best by far is a simple unsorted array and just going through it linearly.
A quick note about zipper sides: customs are quite varied on this in different countries. From shipping cost I assume you live far away from canada, maybe it's just that your country has it the other way around?

You can't really fault ltt for that.
China, the country with the massive investments in renewables, the biggest EV market, and a concrete plan on reducing carbon emissions?

They're farther ahead than the worst polluter per capita, the US, which still doesn't have a plan and us highly unlikely to have one soon.
I'm not in the US, but I work for a US based company.

My contract specifically says I work 40h/week, have X days off/year (outside of statutory holidays) as PTO, etc.

This means that 5 days a week, I am at my keyboard, available on Slack, etc for 8 hours per day.

Hours are logged in a time tracking application (including time spent when there was nothing to do), and overages get added automatically to holiday time.
> You’re out of your element here, stick to compilers for once.

This is an incredibly stupid way to engage people. He has a degree in aerospace engineering from Caltech and IIRC worked for Boeing on the 757 before getting into compilers.

You’re argument is “you are an expert in one thing and thus can’t know other things.” Take a moment to reflect on why that ends up just making you look really dumb.
Everything should be an easy problem to solve yet it somehow stays a problem. For me it's quite binary: the problem is solved yes/no. And if the easy problem is still not solved, it's still not solved, period.
Personally I treat HN submissions as a kind of bookmark management platform and sometimes get surprised something got upvoted.
Why not use a text editor that renders indents as whatever you want them to be?
Because first class baggage is labelled and treated differently so it never gets bumped. The lower/higher numbers are also uses to force the penalty payments, something first class travellers don't want to deal with at check-in.
More generally, I believe this is a monad structure.
The Amazon homepage is dogshit, people used Amazon because it was a service that they really wanted. Amazon's success is in spite of its web design.
o Fractal Tree Index's are rather nifty as used in Tokudb engine.
Basic gist is that you get the speed of Btree but your update are less painful.

https://en.wikipedia.org/wiki/Fractal_tree_index
http://www-db.deis.unibo.it/courses/TBD/Lezioni/mysqluc-2010...

o k-d tree for space partitioning, handy real world applications in mapping and gaming.

o Bloom Filters as you mention are great, always a handy one to know.
Sure it's possible, we need to await for the Task if it already exists on the dictionary, for example we could imagine writing something like this inside an actor to make it threadSafe.

private var tasksDictionary: Dictionary<String, Task<Data, Error>>

func getData(at urlString: String) async throws -> Data {
if let currentTask = tasksDictionary[urlString] {
return await currentTask.value
}
let currentTask = Task {
return try await URLSession.shared.data(from: URL(string:urlString)!)
}
tasksDictionary[urlString] = currentTask
let result = await currentTask.value
tasksDictionary[urlString] = nil
return result
}
You think its not desperately needed?
Yeah that's pretty similar. I keep a list of pointers to blocks and they're all the same size, that way you can easily address elements via a linear index. I tried doing the doubling size thing like std::vector, but the addressing became more complex and I didn't find a need for it, but I might consider it in the future. But yeah, it seems like it's almost the same kind of structure. Thanks for the pointer!
Some thoughts:

* Menetrend? like in mean as in average? Unfortunately also has a slight connotation with a butchered version of MemeTrend...

* Is it just me who somehow isn't accustomed to seeing *.xyz domains used for serious stuff?

* Insights, reports and automations sound great, but how is this different from other solutions?

* Most importantly, which platforms are supported? TikTok? LinkedIn? Or only standard Twitter, FB, Insta? What do you mean by social media?!