skysight-inc/HackerNews huggingface dataset:
GC and memory settings are not the only cause. There are several other factors:

* JVM overhead - all these advanced optimizing compilers and GCs have non-zero footprint. They need RAM to run their code and they need RAM to perform their tasks.

* Compiled code cache - JVM keeps both the original bytecode and generated machine code in RAM.

* OOP overhead - each object has 2 or 3 words of overhead for the object header vs zero in languages like C or Rust. Even when you don't need dynamic dispatch or object locking, you pay for it.

* Inability to compose bigger structures other than by allocating separate objects and using pointers to reference them - these pointers need space and are not cheap on 64-bit architectures. This is going to probably partially improve with Valhalla, but at this point it is mostly guessing and it has been in development for years.

* No support for packed arrays.

* The smallest unit of loadable code is a class. If you needed a single function, the JVM loads a whole class containing it, and its required dependencies. This is not only bad for memory usage but also for startup time. Unless you pay a lot of attention, it is easy to load 80% of code in order to just display a help message (this is based on a real issue I worked on - I'm not making this up). Compare that to code in languages like C - the OS loads code that gets executed.

And back to GC - I agree the default settings are often to blame, but there is a reason JVM defaults to using RAM so aggressively. GC becomes very inefficient when it doesn't have enough "room". And low pause GCs achieve their low pause goals by trading throughput. Switch from parallel STW GC to G1 and your maximum sustainable allocation rate goes down by a few times.
When I hear "Java uses too much ram," lazy reclamation of the heap and other GC overhead are not the first things that come to my mind, personally.

Java doesn't have a "struct". If you want to represent an array of 64-bit signed integers, Java has you covered with its primitive arrays. But if you want to represent an array of anything more interesting than that, (say, a tuple of a double and a long), you have to serialize and deserialize those objects to and from parallel primitive arrays or byte buffers. Because if you do the language-natural thing and use an Object array, you're paying a huge price in memory: 4 or 8 bytes per pointer in that array, plus a 16 byte Object header on each Object. And, of course, those Objects are all individual allocations, not necessarily contiguous. That's a lot of overhead!

Of course, Java programmers concerned with memory usage don't put up with this. Lots of solutions have been devised. OpenHFT's Chronicle Values[0] is one example I came across recently. But this feels like fighting with the language compared to how easy it is to be efficient with memory in C. If you told a beginner C programmer to make an array of compound objects, it's not unlikely that their array will take up exactly as much space in memory as it intuitively seems like it should. (8 byte double + 8 byte long) * 100 values = 1600 bytes in C, no fuss. If you asked the average Java programmer for that they'd give you something that would take up 3 times as much memory. And because Java makes that behavior natural, it "uses too much ram". It doesn't matter as much that it's possible to convince it not too.

0. https://github.com/OpenHFT/Chronicle-Values
Did you link the wrong tweet? The one you linked (https://twitter.com/davidbateman/status/1307212066017521667?...) seems to be some douchy DMs where he tried to get a girl to hook up with some random guy in Vegas. But that doesn't seem to have anything to do with the financial state of his company or lying about products?
As per statistics Fish is good for healthy heart
https://groupnameforgrapejuice.blogspot.com/

And of my favourite posts:
https://groupnameforgrapejuice.blogspot.com/2015/08/meeresch...
The Obscuritory -- https://obscuritory.com/ -- if you have any interest in the culture surrounding computer games or retrocomputing or even just obscure, weird things in general I can not recommend this enough

OS/2 Museum -- https://www.os2museum.com/

Fun With Virtualization -- https://virtuallyfun.com/

The Old New Thing -- https://devblogs.microsoft.com/oldnewthing

The Byte Cellar -- https://bytecellar.com/

McMansion Hell -- https://mcmansionhell.com/
From https://github.com/ghc-proposals/ghc-proposals/blob/master/p...

.g is a field selector.

f.g is field selection of a record.

f . g is function composition.

f. g is function composition.
For videogame's industry and technology: https://www.gamasutra.com/
It’s not about total capacity they can provide, it’s how quickly and efficiently they can provide a unit of energy capacity, and how much carbon those materials themselves produce during manufacturing. Nuclear is, across the board, more efficient. Solar simply isn’t efficient enough, strictly speaking in terms of output per unit of input, to generate the energy we will need to reverse climate change and reduce current emissions enough.
> They were not forbidden from testing them. They were forbidden from requiring one be done as a precondition to come back to the home.

How much difference does this make? Nursing homes are (or have been shown) not suitable for holding patients that should be in quarantine, and not letting them deny sick people has cost many others their lives.
> people can be productive in lots of different environments

I think this is why sharing stories is important so wandering people can find ideas for them achieving better results.
https://twitter.com/nikolatrevor/status/1307927801966866438?...
You realize this is exactly how short sellers in the market are supposed to operate, right? It will give everyone confidence the market is operating correctly.
Show HN: Wordpress plugin that helps people with disabilities navigate
Wow, thanks for "JOOQ or JDBI"!

I'm the perfect case of what you sad re. old devs -- I've been using various JVM languages for ~15 years, but still didn't think of replacing JDBC :) Will check those out!
How the CPython compiler works
>> he was very confident about technology

> That might help if he actually knew anything about technology though...

Or maybe that would make him less confident! :)
That is not an especially big production problem. Of course you don't want it to happen. But it rarely happens. And it happens even less if you use -XStrictData or manually make your record fields strict since that's by far the most common cause: lazy records used as accumulators.

I would say in my 5 years of production Haskell, I've seen that sort of thing deployed in production _maybe_ once, and I've run into it during development once or twice.

One time it was in integration testing, and a simple heap profile made it clear it was in a library dependency. And a quick look at the library source was enough to diagnose it. It was like an hour or two tops from "we have a space leak somewhere" to "here's a PR to a third-party library fixing the leak."
> Usually applications use Port mapped I/O.

This is not true. On a Linux system run "cat /proc/ioports" to see the Port mapped I/O space. There are no network card or storage controller registers in Port mapped I/O space on my machine so network and disk I/O does not involve Port mapped I/O. Modern devices tend to use Memory Mapped I/O registers (see "cat /proc/iomem").

Is the author confusing MMIO vs PIO with mmap vs syscalls? They are two different things. Using mmap can be more efficient than using syscalls because the application has direct access to the page cache, no syscall overhead, and no memory copies.
Damn, that was their only paying customer [1].

[1] https://www.businessinsider.com/nikola-earnings-only-revenue...
https://sorry.about.computer/

As a Software Engineer I check this one occasionally and read through the backlog
Right, I think I misunderstood your question.

Rereading now, it seems you're asking how interpreting a . b as record access only if b is a record field in scope would break existing code.

The new record system is implemented on top of a HasField typeclass under the hood. Thanks to the way Haskell's typeclasses work, this means that the instances that define what fields a record has will be in scope when you import the module containing that record—directly or indirectly—even if you don't import the record itself.

This means that even if we do not have a record with a field b in scope, we might still have the instance for some other record in scope—leading to ambiguity in previously unambiguous code. Moreover, even if a . b is unambiguous right now, a record with a field called b might be added somewhere deep in the codebase and cause unexpected ambiguities in the future.

I suppose you could say that a . b is composition whenever a function b is in scope, even if there is also a record with a field called b. That rule would not break existing code, but it also seems inconsistent and confusing—a.b and a . b are sometimes the same and sometimes different, depending entirely on whether b is in scope.

Making the meaning of . purely lexical rather than depending on what's in scope seems a lot more consistent and easier to follow. It's already the case with Haskell anyway, since . can mean function composition or a qualified name depending on the spaces around it. This isn't an ideal situation, but I don't think we can aim for "ideal" in a living language that's 30 years old.
Ask HN: Rare Indian Comic Collection
Dear HN Friends,

I have over 1000 unique high-res PDFs (purchased) of Indian Comics in English consisting of Super Heroes, India's Freedom Struggle, Mythology, Folk Tales etc. I spent over $2000 in the past 3-4 yrs collecting them for my kids.

Any suggestions on how can I sell these comics and what should I charge for each or the entire set? I am not looking to make a profit. I am going through a tough time and I just want something to ease things a bit for a few weeks.

Cheers.
Throw away your TV and always use an ad blocker online. You will still be exposed to some ads, but nothing compared to what you are avoiding.

In my case it works so well I am often unaware of new "trends" in products adverti
https://spaceflighthistory.blogspot.com/ - No Shortage of Dreams: the story of spaceflight told through missions & programs that didn't happen
The Negatives of Life
good advertising, everyone needs a bank that dgaf.

not because you want to do anything illegal, but because you don't want a bank afraid all your benign transactions are illegal and causes inconveniences to you
Would you mind to recommend a particular one to buy?
I created a bot which tweets about RTX 3000 stock availability changes
It doesn't buy anything and just wants to help you getting notified whenever stock availability changes on certain shops. It's also open source.
> much harder to clean off when you do

That's only true for the type of electric stove that is still (bizarrely) popular in the US, with exposed spiral heaters. At least in the EU electric stoves are all glass. And many of them are induction heaters, which means your plastic chopping board wouldn't even notice being on the heater.
well, even without caning you could jail people almost everywhere without causing a bankruptcy.

The problem seems to be that C-Suites are just not held responsible.

I don't know if they always should, as the argument is complex, but it seems the current state of affairs is just not good.
I wish Backblaze supported Linux. On Mac/Windows it's impossible to beat Backblaze IMO. It saved my ass against disk failure twice already.
Hinduism has been a part of Indian culture since times of recorded history. I am not sure who told you that Hindus invaded India. A so called Aryan invasion theory was promoted by British historians in India and has been disproved time and again.
right but most professors have graduate students working under them essentially doing work for them. they simply direct the research
yea, its more of a quirk of where you were born rather than nationality though both are almost often the same. I have an Indian friend who was born in Iran because his dad was working there when he was born. He lived in Iran less than a year but got his green card in less than 3 months.
Depends on the brand. Some of them are pretty neutral, like a cheap knockoff of fish and chips. Others are much more fishy tasting, which I would not describe as a good thing.
Maybe this experiment of mine is the kind of thing you’d be looking for

https://github.com/lloeki/pak
Using the STL is a non-issue for me as it is almost never used in the video games industry, mostly for performance reasons.

In my opinion the STL is still a big, bloated, unreadable piece of code with a few badly implemented good ideas (containers)

You should read this article: https://zeux.io/2019/01/17/is-c-fast/
I hope so but last time I looked it seemed like the preliminary implementations didn't improve build times much in practice.
The New Microsoft Threat Protection APIs
I feel that asking candidates negative questions gives you a better idea of a programmers aptitude than asking positive questions. Asking a candidate to give an example of a problem they couldn't solve, what they attempted when trying to solve it, and why they couldn't solve it, gives you an idea of their problem solving process and a real sense their upper limit of ability. Any candidate can gas themselves up and cherrypick some impressive achievements, or provide a laundry list of tools they have "experience" with.

Rejecting candidates based on their response to those types of questions is completely counter-productive. You'll just end up with a bunch of employees who are either liars, or very good at delegating blame. You want employees who take ownership of their work and assigned tasks.

As for programming tasks/questions in interviews. I think that it's important to test applicants' practical knowledge of sorting and other enumerable operations as it's a common task that's often done wrong, often with significant performance impacts. However, requiring a candidate to re-implement a common sorting algorithm for an array of numbers does nothing but stroke the interviewer's ego. The last time I actually had to write a sorting algorithm from scratch was in a 200-level computer science paper.

An actually sane interview question/task would be to ask the candidate to sort an array by an unconventional comparison, using a language's standard sorting functionality.

For example: sorting an array of coordinates by their absolute distance from (0, 0), or sorting an array of RGB colours by intensity. They're problems that a programmer would realistically encounter in a real-life application, and test that the candidate actually understands how to manipulate non-trivial enumerable/comparable data.

Asking candidates to implement quicksort selects for applicants who have a case of Not-Invented-Here Syndrome. You don't want to hire programmers who implement their own sorting algorithms from scratch, there's a >90% chances they'll implement it worse than the language's standard implementation, while wasting a bunch of time that could be spent solving actual business problems, and creating technical debt to boot.
As I understand, Oil companies only reviewed other scientists theories, they didn´t do research themselves.

At the end of the day it will come down to you lowering your living standards by using less energy. Much less energy. And a really large reduction in living standard where everything you consume will cost at least double of what you pay today. Even if you blame the fossile fuel industry, you will have to pay. Oil is the cheapest energy there is. You have the choice today to stop all your emission of co2, so why don´t you? Because it´s uncomfortable. Your comfort is the cause of climate change. I´m fortunate enough to realize that climate change caused by co2 is a thermodynamic impossibility because it implies that earth heats itself by energy creation. Life is much easier without believing in doomsday cults.
I was with you until the last sentence.
I've always undrestood that MITM attacks can both be:

- active (injecting/tampering with content), which is what DNSSEC protects against.

- passive (eavesdropping), which is what DNS over TLS protects against.

Am I missing something?
The advent of touchscreen technology and its subsequent ubiquitous adoption replacing physical controls of all kinds across devices of all kinds is easily the single most ruinous thing to happen to UI in the modern history of design.
Overly powerful proc-macros aren't in common use; most common proc-macros are either ones that automatically Derive a trait, or ones that serves as attributes on methods or functions and perform some transformation of the source code (without introducing a DSL)
What the, can you provide a source for that cause wow
Plenty of good ones already, I'll just leave my favorite.

https://eli.thegreenplace.net/
It would be cool if this accepted a word as suggestion and created domains starting from that word.
Chainlink partners with XinFin[XDC] Network to deploy decentralized oracles
Nikola founder Trevor Milton will step down as executive chairman
Agreed! I omitted this in my original comment, but that's exactly what I did many years ago :-)

For some years I would watch both, but then I just got bored of F1 and only kept watched 2 wheels. Now I don't have so much spare time and when I do I prefer to invest it I other things, but once in a while is always funny to watch a 2 wheels race (motogp, superbike or anything really)
Who pissed this guy off so bad? I'm not a user of Tarsnap and don't know this person, but it seems like a comment here seems to have carried a lot of weight both with him and the community (considering the fact that his rebuttal has reached #1 on this site.)

I clearly don't know what's going on but is this sort of stuff normal on here?
the project is older than that organisation
I think our point of view is very different. Coming from a country where almost no-one cycles as a mode of transport, I view it entirely individualistically. I understand that the imperative 'should', has a far wider (even political) connotation in the context of the Netherlands.

To be clear, I wouldn’t suggest forcing people to wear helmets, by law. My thinking is simple: it is safer to wear a helmet when cycling. Therefore one _should_ wear a helmet when cycling. It’s about as easy to wear a bike helmet as it it to wear a surgical mask.

On the subject of helmets, I don’t think deaths per year is the right statistic. I’d be more interested in head injuries per year. Not all serious head injuries cause death, and not all deaths are caused by head injuries.

I do understand your point. That in a safe cycling space like The Netherlands, the risk is low enough that The safety provided by a helmet is very rarely used.

There’s a good chance that I will be living in the Netherlands in a year or so. I wonder if I’ll wear a helmet or not? (probably not). I’ve cycled a lot in my life, both on and off-road. As a child I never wore a helmet, cycling around the neighbourhood; but as an adult I always have.
Have you tried switching to a unity build?
Or removing templates?
This is a big part of life: "wealthy-enough"

I feel like we do academics wrong. We should encourage a large gap between undergrad and graduate school for two reasons. First, develop empathy for the realities of shipping software (or whatever the field is). Second, build some wealth to not chase wrong grants.

I take Arnold Schwarzenegger as an inspiration on this front. He did hard work and had some good fortune due to great timing (real-estate in California) to build up wealth before becoming an actor, and this manifested in the freedom to go all in on Acting.

The thing that I take as inspiring is that instead of chasing the money via that path or just chilling out, he went hard on a passion.
Thank you for the link. Enjoyed this in particular: https://granolashotgun.com/2020/07/23/not-for-camera-view/
【Quick App】APP content blocked by menu? Teach you one way to solve it
Unix style regular expressions is what most programmers mean by regular expressions ("regular expressions" have been non-regular long before perl, fyi. Even old style unix "basic" regular expressions are irregular and i think they go back to the 80s), and is much more common than the concept in language theory that they are named after. I think its pretty obvious from context the author is talking about the common concept and not the obscure concept.
I maintain a 4 year old rails code base. I'm not going to be porting it to Crystal - but if I had an easy way to get ~5x speedup of the most performance critical parts of my code, I would jump at the opportunity. I'm glad someone is working on this
I was waiting for the "HTML 5 super computer" Trevor touted...too bad.
GC doesn't need to pause to have a negative effect on application latency.

While not-pausing is generally a huge improvement (after several decades of GC development), now what about thrashing of CPU caches?
Explain to Me Like I Am Five:Time Complexity
> academia is a lousy place to do novel research

This observation seems a bit at odds with the abundance of core technologies that originated in academia. The ENIAC (and a good chunk of the history of early computers), the internet, the world wide web (counting CERN as an academic institution here), most of the core ideas in programming language design (most programming languages we use aren't academic, but most of their ideas can be traced back to academia), most of the history of AI (including neural nets), probably most published work on algorithms and data structures, ...

And that's just talking about CS. This doesn't necessarily disprove the author's point: most of the things I've listed are quite old, academia may have worsened in the meantime. But I think they glossed over the main advantage of academia over entrepreneurship: shielding the researcher from market effects. Although investors can do the same thing, as a system academia is more reliable, and for some technologies which take very long to develop or are too hard to monetize (such as algorithms) I don't think entrepreneurship offers an alternative.

EDIT (small addition): I think the author is also a bit quick to generalize from "I had a lousy experience in academia" to "academia is a lousy place to do nover research".
FinCEN Files: Tory donor Lubov Chernukhin linked to $8m Putin ally funding
> spent his time on backups instead of solving millennium problems

The fundamental issue with this comment is that it assumes that solving millennium problems is obviously a high impact thing to do. It ignores the complexity and unpredictability of the world.

The TarSnap developer's story is a great example of this -- how "working on backups" led to impactful work that he probably didn't predict when he started it.

I often see people fall into the trap of moralizing about what "good" work is. Ironically, that prevents them from ultimately having the most impact that they could have.
Flights to OZ are so expensive because the government is limiting how many passengers can arrive per day.

The government is very serious about discouraging international travel (and returning) if you’re poor.

https://www.executivetraveller.com/news/australia-to-limit-i...

https://www.pm.gov.au/media/national-cabinet-7aug2020

Would make more sense to just have an arrival tax, but why do that when you can gift the airlines their own oligopoly instead.
Well sed.

And yet, a moat is so much less than specialization. A moat is a blog! A moat is a following! A moat can be pure reputation, apparently.
> has a terrible (non existing) threading model. Yes you can run multiple instance of node or whatever, but sharing objects between them requires message passing

Don’t Node.js worker threads solve exactly this?
Ctci?
Seems to be in line with the history of PR and advertising presented in https://en.wikipedia.org/wiki/The_Century_of_the_Self
Doesn't matter. Users aren't the ones the ones deciding to use them or not.