skysight-inc/HackerNews huggingface dataset:
> This code may be typical of OOP in the wild, but as above, it breaks all sorts of core OO rules, so it should not all all be considered traditional.

This argument drives me nuts. A simple OOP environment can be quite easy to grasp and (mis)use. Following all the golden rules and principles that SOLID et al call for, are comparabily hard to internalize. A rookie can only fail and has to collect, choose and study all the wisdom over the years until he becomes a master. To that point he will create OO code that will break untold rules.
Ruling the majority of OO code out there as "bad" is hubris and ignores reality. It is easy to do OOP wrong and hard to get it right. This imbalance is proof enough for me that we don't know what we are doing, just justifing. (Yes this may apply to other paradigms as well)
"On premise" makes my ears hurt
At least when I worked there, Palantir would have been best described as a data visualization and integration company. The TL;DR: of what they do if they take in data from multiple crufty government [1] databases and put them in a format that makes it easier to analyze and and make correlations between things that would have otherwise been strewn about disparate government records. They also build a desktop client to view this data. That's what Palantir Gotham is. I don't really know what Palantir Metropolis is, apparently it's supposed to more about visualizing quantitative data.

[1] I think they also offer these services to private companies now.
We have a rule in place that nothing we ship can regress performance. Period. At the same time, we're opening up more data centers in more countries to help with geo-based performance. Some of the major items to be undertaken this year include moving Jira to have more Single Page App (SPA) transitions to avoid page loads altogether.

Earlier this year, we announced a migration to AWS which allows us to leverage features such as Auto Scaling our infrastructure and other cloud-scale services. These capabilities have allowed us to improve our availability and reliability.

We are also investing heavily in our frontend technologies to improve the performance of our page load times. For example, the new next-gen Jira boards and view issue pages are all using Server Side Rendering technology to return raw, old-school HTML direct to the browser for rendering. This allows the page to be shown to the user immediately, without the need for multiple round trips back to our servers or CDNs for javascript, css and data. We saw massive improvements in page load times by introducing this for these new key experiences and plan to continue making further similar investments for all other parts of Jira.

Our metrics show we had some of our lowest performance around September last year. Since then, with dedicated investment, we managed to move the needle on performance and are continuing to move it. If you aren't feeling it, let's get in touch with support to see what is going on in your instance.
They did that to themselves by sticking originally with C, and forcing the whole read text, compile, link process at runtime, instead of the multiple language support from CUDA.

OpenCL has been improved since then, but now it is too late.
Show HN: Hey Siri, how's my MailChimp doing?
It shouldn't have been too hard to add some features that would do a pretty good job of filtering out spam.

I'm seeing the same problem with blogs. A lot of them use to have decent comments sections but the owners have given up trying to filter out the trolls, spammers, and morons and have disabled comments. There are things that can be done other than just give up.
It feels like this big buildup that runs away from you. So disappointing
YOU don't think that fictional narratives and tropes do not effect real life? Ever heard a good public speaker use rhetoric to effect?
Ask HN: Best Service for Single Page Payment Websites
I'm looking for a service I can use to spin up a small "Pay here" pages for various services and products. I'm picturing an account where I have multiple "Payment Pages" each with their own copy, product/pricing, etc. Is there anything out there like this?
Tesla Advances in China, Buying Land for a Factory
Which of the two groups of people are benefitting from Hacker News showing metrics? Stories show points and total number of comments. Anyone can see anyone’s total karma. And you personally can see your comment karma.

YouTube and and other social media would still get advertising and such without public metrics since you could give private access to them when trying to make deals.

So overall I don’t see how either groups of people mentioned are benefitting much from HN showing metrics.
Looks like there are photos of the house in it's current form on zillow[1]. It's obviously been remodeled, a lot.

[1] https://www.zillow.com/homes/for_sale/Colorado-Springs-CO/13...
I agree, humans are probably the single hardest among multicellular life to entirely wipe out. Not because we're hardier than cockroaches, or hibernate when it's cold.

There's just so many of us, and every last one of us would be hellbent on survival. At this point in our technology and understanding, I bet there could be survivors of extinction level events equaling the K-T extinction that wiped out the dinosaurs.

People already have bomb shelters that can last them months; feeding people does not require sunlight, only dirt, water, lamps and electricity. Nuclear winter can't stop the flow of electricity, survivors of any event can jerry-rig surviving wind turbines, nuclear power, geothermal, or hydro to create life sustaining electricity.

Would the survivors be smart enough to accomplish such feats? Of course, assuming they could read. The internet may collapse but the abundance of printed material, even doomsday vaults containing encyclopedias can provide for entertainment and education in long post-apocalyptic nights.

These things exist: https://www.cbsnews.com/pictures/amazing-doomsday-bunkers-of...

When people fret and worry about the fate of the human race.

I'm not worried. People will adapt and figure it out like they always have. The only thing people need to worry about is their own survival in harsh times.
HopsFS is a derivative work (a fork) of HDFS - it is still 100% wire-compatible with HDFS. It has distributed metadata (not metadata stored on the heap of a single JVM). It also supports putting small files on NVMe storage - https://www.logicalclocks.com/millions-and-millions-of-files...
It's also open-source. So, it works in places HDFS works. HopsFS is, to the best of our knowledge, the only distributed filesystem with distributed metadata (apart from Google Collosus - the hidden jewel in their crown).

Lustre, BeeGFS are HPC filesystems, i believe. No data locality. Amazon EFS - feels like a MapR clone, but they expose some tunings - higher latency for higher throughput and larger clusters. We don't make that trade-off. I don't know enough about Qumulo and Objective FS to comment on them.
I'm not aware of such "linking". It's very common to write classes of which instances are immutable or thread-safe.
To quote Erlich Bachmann speaking to Jin Yang, “This is Palo Alto... we don’t have the freedoms you have in China.”
If you only think in Python then packaging really might be a painpoint. But honestly if we look at other languages it's not so bad actually, very specifically calling out Golang here because it claimed exactly this topic as an initial design goal and to this day has basically failed at delivering it.

There are even languages like C++ where the community as a (w)hole has given up on that topic and instead opts for completely building every tool by building the underlying libraries up first manually.

Considering all this, who can actually beat Python at this point? Java maybe? Is Ruby still competing? How is NodeJS doing?

Currently with what I see around me (mostly Go and C++) I don't feel too bad about setuptools+pip+virtualenv anymore.
The self-driving technology is not here to stay.

It's not here at all.
In your top-level comment you argued it's a bad model and didn't really give an explanation for why. You just make assertions that things are pathological/overly-complex/error-prone in OOP and that other alternatives are better, that it's impossible to reason about memory layout, etc. But I could just as easily assert the opposite is true: that proper OOP does simplify problems down to manageable parts, that encapsulation is what you're supposed to do in proper OOP, that abstracting away memory layout is a good thing, etc... I'm not sure if you find these compelling or not, but if not, then I guess you could see why others feel similarly about your arguments.
In what version of a free market would it be illegal to poach a competitor’s customers?
This solution completely bypasses the open standards based approach championed by the FiDO (Fast Identity Online) Alliance. There are no technical documents on their website about the SDK or the protocol.

While this technology seems intuitive and easy to use, I wonder if users will be locked into one vendor for all their identity. At the same time, when you have Frank Abagnale ("Catch me if you can" fame, head of FBI cybercrime) as an advisor, it changes the calculus. https://www.reddit.com/r/security/comments/7g1700/there_will...
..and then be forced add the new card to every service you have set to auto-pay like Amazon, Steam, Audible, Verizon, etc.
Give it a try. https://www.atlassian.com/software/jira/try

Miss those robots on the spin up screen that you might remember from that past?

It's getting a lot faster. We're going to keep going.
Did you like the bit about the soundproofing and the two shower heads in the bathroom. Or the bit about the extra large beds.

Certainly, these things are for work and efficiency, nothing more.
"Move fast and break people" isn't an acceptable way forward.
If you write about topics the mainstream media have reported on, it's easy to end up looking like an apologist. The media tend to focus on negative stories because negativity drives attention. Unless you deliberately put your stories through a similar filter (why I'm not suggesting you should do), they'll be more positive than the audience has come to expect.

You could somewhat avoid that by writing about lesser-known topics. Some suggestions: image-retouching apps like B612/Faceu (although I recall some outrage about their skin-whitening effect making it to Twitter) and Chinese-only games (I know there are some big ones, but I haven't even been interested enough so far to find out whether "吃鸡" means to lose or to win).
It's not a matter of dumbing down. One is classic university-level treatment, the other tries to get you up-and-running as quickly as possible.
Even better, git supports correction of misspelled commands, but you have to turn it on:

git config --global help.autocorrect 1

Although I also alias gti—>git...
It'd be nice to be able to change the average salary. This is HN, which means many of us are in tech jobs and the tech sector. Using 60k/year doesn't really do it justice.

I like it though. If nothing else, it's sad fun.
Those same laws that mean you can't change the software on a car also mean that you can't change the tuning to make the car pollute more.
I am not aware of any sensor system that involves meaningful cryptographic claims about sensor readings. I'd love to learn more about anything along those lines.

Especially the associated threat modelling and engineering principles!
What makes it worse is that everyone with children will have to go for the high-ceiling box with open floorplan because everything else comes with intolerable schools.
The Oppressive Policy of Colonial-European Powers on Africa’s Economy
In this context I believe he is referring to dependency injection.
Radio Shack sells - sold - a small variety of components at a massive markup. Compared to things like McMaster-Carr and ladyada/sparkfruit, I don’t think it’s been in any way relevant to the modern “maker” movement.
In some applications, at least, vacuuming is not sufficient to deal with row churn.

I use PostgreSQL in an embedded device. There is a high insertion rate, and eventually when the disk starts to get full I need to get rid of old rows.

Using plain DELETE and VACUUM does not work. The deletes aren't fast enough to keep up with the inserts, and vacuuming reduces performance to the point that I have to drop data that is waiting to be inserted. This is on a high performance SSD and I've tuned postgresql.conf. (Bigger/better hardware is not possible in my application).

Instead, I think partitions with DROP PARTITION are the only way to handle high volume row churn. Dropping a partition is practically instant and incurs no vacuum penalty.
This is slightly tangential to paper airplane folding, but I strongly recommend Duncan Birmingham's YouTube channel ("The Pop-up Channel"): https://www.youtube.com/channel/UCx2M2bGHtXBszG6tuR_NIbQ

Pop-up books are works of art, but they rely on a vocabulary of a few dozen mechanisms, each of which operates in relation to an opening fold between two pieces of paper or card. Birmingham is a great, systematic expositor of the analytical prerequisites for the wildly creative stuff you might come across in a bookshop these days (there's a boom in spectacular pop-up books, see http://www.bestpopupbooks.com/)

I should add: pop-up books are still assembled by hand (in the Far East), not by robot; so if they seem inexpensive, there's a bit of a story there which might not flatter the book trade. A microcosm of globalization.
M6 Toll built with pulped fiction (2003)
That old Carlin routine - "let species go extinct cause thats what they do / environmentalists aren't interested in saving the environment ..." seems to be presenting these attitudes as words to the wise. I get the feeling most of the audience took it that way. Is that right?
I'd be wary of companies hiring "OO" devs.
Anecdata alert!

The new Opus encoder is incredible. We used the beta of 1.3 in a bandwidth constrained environment recently and found that in our testing (and for our very specific set of audio, YMMV, past performance not indicative of future blah blah blah), nobody could reliably distinguish between an AAC at 128kbps and an Opus file at 64kbps. If we tried really hard, we thought we could identify some extra aliasing in the top end, but this was not practically relevant and never picked up by our user testing. The audio in question was a mixture of speech and quiet music; of course the different encoders were easily identified when using regular high-density pop music!

The files were fully supported by every Android device we had available for testing.

Very impressive work, thank you Xiph!
Very cool. Can you share the shortcut by url?
This is awesome!

I can't really use it though, since I often schedule "heads-down" sessions for myself (ironically because of meeting overload). I hope a future version allows me to add a text filter rule of some kind to exclude them.
Wouldn't call "The Little Golden Calf" overlooked (not by Russian speakers, at least); and yes, after reading it, I wondered how it ever passed censorship back in the days.

The movie[1] is also great. Shot in black and white, it adds to the solemnity amid the humor.

[1]https://ru.wikipedia.org/wiki/%D0%97%D0%BE%D0%BB%D0%BE%D1%82...
The back-end has been getting totally rebuilt as part of this. The move to AWS has opened up a lot of options also.
For example, we can take advantage of:

* elastic scaling,
* large in-memory caches like memcached,
* data locality,
* alternative data stores better suited to our data structures such as dynamoDB,
* different instance sizes,
* dedicated asynch batch processing nodes,
* specific instance sizes suited to specific workloads, etc etc

We are also optimizing how and where we store data. We are already storing data in different AWS regions (closer to our customers), however, we are going to also start getting smarter about ensuring the data is actually in the optimal region for the majority of users on a site.

There is also room for improvement in tuning how we query data for issues with many fields, or instances with very with complex permissions enabled. This will require optimizing the SQL we use to retrieve data, to provide all we need to render a Jira issue as fast as possible and exploring other storage technologies for fast data retrieval.
I have never used a podcast top X chart before. I usually think, hmmm, I wonder if there's a podcast about <some subject> and search the internet for that.

I guess I care more about a subject than popularity.
The problem with LSP is that it is an incredibly hard property to prove (behavioural subtyping in general is undecidable). So in theory yes, it sounds great in practice with a sufficiently complex system good luck ensuring that you adhere to it.
Exactly...90% or more of Security SEM platform sales could be saved if the new kids had a good command of syslog, awk and grep.
It's not hard.

https://www.capgemini.com/wp-content/uploads/2017/09/worldwe...

Everyone with over $5 million USD of investable wealth counts as rich. The report shows that there are at least 1.65 million of such individuals across the planet, with roughly 157,200 of them having a net worth in excess of $30 million.

What about the 15 million in the $1-5 million band? I think you could argue that many of them reside in really high COL areas, so most of their assets could be in the form of primary residence real estate. I'm not going to argue if that makes them 'rich' either way.

Looking at it this way completely avoids ridiculous metrics like "global 1% by income" that completely ignore the effects of relative wealth and cost of living areas.
Also, why don't they include other propaganda bad actors like Correct The Record?

https://en.wikipedia.org/wiki/Correct_the_Record
Reading aloud is something I've returned to in later years as speaking practice, vocal warmup, and testing my own writing. It was, of course, a chore in school.
We greatly appreciate these comments :) I'll pass these nice words on to the teams involved. Regarding the hardware -- I'll submit that suggestion as I believe it's definitely a good topic to cover. Thanks again!
You need to be able to recover architectural register state (e.g. if there is a branch misprediction, or an instruction throws an exception). Many implementations store speculative results in a reorder buffer, and write to an architectural register file on commit. The architectural register file always reflects the committed state of the processor. In such an implementation, your renaming table (the "lookup table mapping ISA registers to physical registers") might point to either a ROB entry, if the most recent write to an architectural register was an instruction that is still in flight, or the architectural register file.

Another way to do it is to use a physical register file to store data, as Tuna-Fish explains above. In that case, your front-end table always points into the PRF, but it may be a speculative value (written by an instruction that's still in the ROB and not yet committed) or a committed value. But that doesn't let you recover the architectural state on an exception. So you keep a second table (in the Pentium 4, it's called the RRAT), and whenever an instruction commits, you update that table to indicate that the most recent committed version of a particular architectural register can be found in a particular physical register.

There is at least a third way to do it, which doesn't use an RRAT. MIPS R10k rolls back the ROB to recover the last committed architectural state.
ClojureCL and ClojureCUDA have been doing it for 4 years now.

https://clojurecl.uncomplicate.org

https://clojurecuda.uncomplicate.org
Not _only_ about trust. One of the things DoH gets you for free is that it means that your ISP doesn't get to touch DNS requests, which was not true previously. You can get Internet service from whatever bunch of money-grabbing assholes are available where you live, and get DNS from somebody else without that being tampered with since it's encrypted on the wire. You do still have to trust the DoH provider (outside of DNSSEC).

In the UK for example, the current government proposals for yet more Internet censorship assume that they can "just" order ISPs to censor DNS. This, their white paper says, is relatively cheap and so ISPs might even be willing to do it at no extra cost, which is convenient for a supposedly "small government / low tax" party that keeps thinking of expensive ways to enact their socially regressive agenda...

But DoH and indeed all the other D-PRIVE proposals kill that, to censor users with D-PRIVE you're going to have to operate a bunch of IP layer stuff, maybe even try to do deep packet inspection, which TLS 1.3 already made problematic and eSNI skewers thoroughly.

So there's a good chance this sort of thing for _ordinary_ users (the white paper already acknowledges that yes, people can install Tor and it can't do anything about that) makes government censorship so difficult and thus expensive as to be economically unpalatable. "Won't somebody think of the children" tastes much better when it doesn't come with a 5% tax increase to pay for it...
Well you are going to need to deal with your dependencies eventually. Unless you are just end2end testing, and not doing any unit tests. In that case good luck finding your bugs when they appear. Or perhaps you write 'if (mode == "test")' everywhere :)
This is the "you're holding it wrong" defense of OOP.

Of SOLID, S, O, I and D are rehashing structured programming design principles. LSP is peculiar to it, and not an unreasonable way of thinking of objects, but I don't see people struggling to figure out how to come up with workable class hierarchies.

The point of objects was that they were intuitive and easy, and where it tends to fall apart is in the details. It's often small tasks like writing an equality operator correctly that are absurdly complicated[1]. And while we can construct reasonable class hierarchies, the interaction becomes a bear and the bugs are subtle and confusing.

What I see in OOP programming is that people avoid various idioms or patch around them because they don't trust their tools.

I think the problem with most OOP languages is that some high-level concepts like inheritance were constrained by very low-level implementations, and they often tried to glom several ideas together.

There's no "object algebra" even 40 years in. In C-like languages, objects are using a "struct and vtable in the heap" model. In dynamic languages, they're using the "type instance and a hashtable in the heap" model. Then they typically declare that a value is really a variable, unless it's an atom, and often other weird asymmetries like "the bottom type actually does have a value which is 'null'" and, of course, whatever weirdness they pick up such as floating point.

Those constructs are then overused; this problem is especially apparent in Java where "everything is an object" means that your class becomes your tuple type, and if you want to combine two tuple types you're going to do that via inheritance. In most of them, you don't have a proper discriminated union, so all the stuff you'd do with sum and product types you now have to shoehorn into classes whether it makes sense or not.

It all sort of works, but the reason OOP languages keep adopting non-OOP features is that it doesn't work very well.

[1]: http://jtechies.blogspot.com/2012/07/item-8-obey-general-con...