skysight-inc/HackerNews huggingface dataset:
You need to reverse the directions there.
>everything in strunk and White is wrong

That's quite a broad brush, friend.

Here's an example I'd ask you to opine upon:

"If you have received a letter inviting you to speak at the dedication of a new cat hospital, and you hate cats, your reply, declining the invitation, does not necessarily have to cover the full range of your emotions. You must make it clear that you will not attend, but you do not have to let fly at the cats. The writer of the letter asked a civil question; attack cats, then, only if you can do so with good humor, good taste, and in such a way that your answer will be courteous as well as responsive. Since you are out of sympathy with cats, you may quite properly give this as a reason for not appearing at the dedicatory ceremonies of a cat hospital. But bear in mind that your opinion of cats was not sought, only your services as a speaker. Try to keep things straight.”

What fault, dear reader, might you find in the above advice? I'd be quite interested in your assessment, given your apparent expertise.
Let's say you write an Iterable class so that you can use foreach on your data structure. It's quite possible iteration won't be completely inlined and the overhead of calling hasNext & next can become non-significant.

An even worse case that made massive speedups is just inlining everything. I believe modern IDEs can automatically inline all invocations of a function. You'd be surprised how much performance you can get with that.

As for writing efficient Java, it comes down to using primitive and value types.

Although, my experience is mostly with Java 8. I have no idea how streams or other new syntax works. After optimizing a really massive Java code base I've never used it since.
The pem does not have -----BEGIN PRIVATE KEY-----.
The dictum is usually phrased as, "make illegal states unrepresentable". Perhaps this is just playing with semantics, but, to me, that difference in wording is incredibly important.

An unauthorized state (which I'm interpreting here to mean an error state) may not be on the happy path, but that doesn't necessarily mean it's invalid. For example, "the user is trying to open a file, but they don't have permission to read it" is a valid state. The resulting error condition is also valid, even if it's not somewhere they want to find themself.

An illegal state is, in the context of this phrase, meant to be one that's nonsensical. Perhaps "invalid" would be a better word. Think negative array indexes in languages that only let you index from the front of the array, or objects that are only halfway initialized. Situations where, having entered such a state, the behavior of the program is now undefined. We should strive to make it physically impossible get the program into a state where its behavior is undefined.
Great article. Btw, you’re the guy who invented TOML, right?
Haven't seen, but thanks. Lived and worked while following some of the ideas mentioned.

E.g. at the whole bottom of the page in some comment is a link to:

"Why should I have written ZeroMQ in C, not C++ (part II)"

https://250bpm.com/blog:8/

where the author writes "Let's compare how a C++ programmer would implement a list of objects..." and then "The real reason why any C++ programmer won't design the list in the C way is that the design breaks the encapsulation principle" etc.

I have indeed more than once used intrusive data structures in non-trivial C++ code, and the result was easy to read, and very efficient. There I really didn't care about some "thou shalt not" "breaking the encapsulation principle" because whoever thinks at that level of "verbot" 100% of times is just wrong.

The "encapsulation principle" is an OK principle for some levels of abstraction, but nobody says that one has to hold to it religiously (exactly my point before). I would of course always make an API which would hide what's behind it. But where I implement something ("the guts" of something), I of course have my freedom to use intrusive elements, if that solves the problem better. I have even created some "extremely intrusive" stuff (with a variable number of intrusive links in the structures). It worked perfectly. Insisting on doing anything as "ritual" all the time is just so, so wrong.
It had the impact of generating articles citing extensive and well-articulated experience, and revealing dead ends we don't now need to explore.
Jokes on China, though. The people with useful knowledge left Cadence, Synopsys, etc. decades ago.

Just take a look at the horrible state of the Design Automation Conference over the past 10 years.
I wonder if programs on the shell should start emitting JSON objects now?

Often times, the text output, separated by a white space, seems too limiting. Where maybe parsing structured JSON objects might be easier to manipulate.
https://wekan.github.io/
Ha, that's funny, I abandonned lilypond precisely to create combined stave/tab scores more easily. I found that flipping back and forth between the lilypond "source" and the rendered result was too slow. I read music notation much better than lilypond's "musical LaTex" notation and I found it hard to remember the nuances each time I came back to it. (Adding lyrics to an existing piece was the last straw).

I switched to Musecore. Although I generally eschew GUI apps I much prefer it to LP: I can see my editing changes directly without the "compile, run" steps. My efforts are less DRY, to continue the programming metaphor (eg copy/paste the chorus) but that's acceptable. I don't plan on writing any massive symphonies. As @rekado elsewhere on this page, I don't have to act-as-programmer when I'm making music.

Musecore has had lots of criticism of its design but that area has apparently improved a lot recently. It might be "Word for music" but it's a mostly-complete-but-simple version (so... Word 6? AbiWord?). Works for me.
Permissions (and ownership info) can be useful even if you have complete access to a filesystem.

By the way, assume you have root permission. How would you replace a single file in a random tar-file, without changing any of the permissions/userids/groupids inside the tar-file? You can't untar it because the users inside the tar file don't correspond with the ones on your system. So, you'll have to use special tools, which is (only) one demonstration of the inadequacy of the permissions mechanism of our filesystems.
Good point. Knowing what other people don't know is important, too.
The 'Humongous Fungus'
We took Show HN out of the title because (1) it doesn't look to be your own work? (sorry if I got that wrong), and (2) it's a blog post, not something people can exactly try out or play with.

https://news.ycombinator.com/showhn.html
But you’re not really gaining anything! Those purported tax benefits mostly aren’t. It’s more like “tax trade offs”.

When an asset depreciates, yes you can write off the loss. However that lowers the cost basis, so you then pay taxes on it again when you sell.

In the end you are getting to offset some current income taxes with future capital gains taxes. There is some benefit due to the differing tax rates, but that is offset by various costs along the way. It’s hardly a clear win. (And AFAIK REITs have the exact same tax situation, so it is comparable. Holding the REIT doesn’t let you pass through the tax benefit, but they are realized by the REIT and reflected in share price.)
What do you want to do now? Answer that and you will get your next title.
I would think that you would use a lack of a string to encode a NULL value, e.g.:

{ "name":"null", "age":"44" }

vs

{ "age":"44" }

In the first example, your get function would return "null" for "name" and in the second example it would return the value of default, which would be implementation specific.
I'm not sure which country you live in, but in the US workers are constantly railroaded by their employers simply because they aren't addressing the political power that their employers hold over the worker's lives. Most Americans don't even have the political vocabulary to discuss the cause of their own oppression.

Pretending that employment isn't itself a political issue is just naive.
> Basically i don't see the local effect translating into global.

Global effects are the sum of local effects. I don't see how you can simultaneously believe that a mask lowers the local transmission rate without effecting the global transmission rate.
> "People like you"

So, generalizing your moral outrage with a passive aggressive personal attack? You win.
Hang onto the impostor syndrome. Eventually, you come to accept that it seems like everyone around you knows things you don't, and then it keeps you pushing yourself.
Over the years, top AI/ML research has become more and more centralized thanks to companies like OpenAI, DeepMind, etc. This has its pros and cons, but I think it would be great for the field to have more independent researchers with the flexibility to explore new ideas without being tied to any one institution. Independent research used to be much more common (with pretty great results), and I think especially with the internet and remote work, there’s no reason it can’t make a comeback. To that end, I’ve been working on a platform to connect independent AI researchers to independent backers who can provide ongoing funding on a monthly basis (similar to a Substack or Patreon model). This is definitely a platform I’ll be interested in using myself, but I’m curious to see if others would be as well or to hear any feedback.
> you tacitly approve

This view seems quite reductionist. It's smells like guilt by association. It excludes the middle ground where you do not approve but ignore that due to other priorities (such as money or excitement about technology you get to work on). Approval is not a binary choice. It also is subject to tradeoffs.

So all you can derive from someone working at facebook is that their preference against indirect contribution (by several hops) to genocide is weaker than the combination of some other preferences. This may also be due to how they're discounting that responsibility distance.
openssl x509 -noout -text < cert.pem
On the M1 Air, apps like GarageBand can use Moog’s iPad iOS app as an audio unit
yes, he is¹

[1] https://github.com/toml-lang/toml/blob/master/README.md#L8
Many fear nuclear war, but I'm now more fearful of future bioweapon viruses that can incapacitate targeted populations leaving the attacking nation relatively unharmed. The new "strategic warfare". Feels like Pandora's box is open.
Why is this downvoted? I've only been to London once, but I can certainly speak to identical behavior from panhandlers at many intersections in central NC, USA. They'll hold signs pleading all sorts of sad stories, typically asking for finances for food. Sometimes faking limps or missing appendices (one time I could clearly notice the guys leg tucked up inside his jeans...)

If you offer to buy them a big meal at the restaurant down the street, they'll cuss you out and harass you. Then promptly heckle the car behind you for cash.

They want cold cash for drugs, nothing more or less. Many of these folks run it like a job, panhandling for 4-8 hours a day, then hopping in their car and returning to their shared living situation to shoot/snort/smoke up. It's a racket than can easily generate more income than an honest hourly job around here.

It's really quite sad, because amongst them are some folks who seriously need help, and would be nothing less than extremely thankful for any food or clothing provided to them. Sadly, the druggie gremlins are in the majority, so I don't give anything to anyone. Lock the doors and look straight ahead. I keep my hand near my firearm too, because I've had them vigorously pull my car doors before.
Probably because India’s median age is below 30: https://ourworldindata.org/age-structure
I liked "Austria" better. Oh, there is a comma, never mind.
Looks meh.
Insightful!

I feel the same, I sold my car 8 years ago and never bought a new one since, I'm planning to get a new one (hopefully kids, old parents, I'm gonna need it sooner or later) but I am struggling too.

I usually use the Renault Zoe as an example, the EV model costs 40% more (~26,000 euros VS ~37,000 euros) for no - obvious - added benefit, it's the same exact car.

I've been researching and thanks to state bonuses I could buy a Renault Twingo EV for ~17,000 euros, it's a very good deal but it's a smaller car, not that it's a problem now, I still mainly drive inside the city, but it makes me think of the economy of the operation: I need it for a future larger family, I should settle down on a smaller car.

I'm probably getting it anyway and I am also excited about it, but really it shouldn't be about excitement, it should be about being a better deal overall.
Some thoughts:

> What's amazing is that Indian classical music has no key. There is no absolute sense of middle C or whatever. It is relative to the tuning of the drone

European music actually was largely relative too until keyboard instruments (organs and later pianos) became common and popular which forced standardizaton. In North Indian classical, you can see the popularity of the harmonium in recent years driving a similar effect.

Singers in popular western music often transpose scales freely. Many live performers tune half down or full down vs. their studio recordings and many singers transpose their songs down as they age.

> I find the construction of these musical scales (correct me if I am wrong but there is no analog in western classical music of what a raga is) very interesting. Going up in the scale is different than going down and there are some key phrases that identify a raga.

Yes-ish. If you look at the scales in different "modes" of western music, you'll find they do correspond to foundational ragas in Indian classical music (eg. Ionian = Shankarabaranam, Aeolian = Nata Bhairavi, Mixolydian = Harikamboji etc) . The core raga in Carnatic classical
(maya-mayava-gowla) has the same notes as the double harmonic scale (think Misirlou from Pulp Fiction). The ragas with different notes going up and down or having fewer than 7 notes are considered derived or synthetic ragas and some artists still create new ragas.

However, as you correctly recognise ragas are not themselves scales. It's more correct to think of ragas as frameworks to present and improvise on scales. There is a concept of "pakad" for example as it's called in Hindustani classical which is a characteristic sequence of notes for a raga etc. This is easiest to spot and understand this if you listen to recordings by top artists in Raga Jog - it comes in the avarohana (descending notes).

> Then its all about interpretation.

"Freedom within a framework" is how I'd best describe it. A typical Hindustani "Khayal" (literally meaning "thought") concert begins with a heavily improvised "Aalap"/"Jod"/"Jhala" section that presents the main raga followed by the main composition ("bandish") in which also the artist improvises to a certain extent. After this main presentation, the artist typically presents other compositions in other ragas (with some improvisation) often ending with a "bhajan" (simple devotional song).

A Carnatic classical concert often starts with smaller compositions and has the main piece in the middle which also has "Aalapanai" and composition sections. Usually the "aalap" is shorter and more improvisation happens within compositions vs. Hindustani.

The closest analogies to this style of performance in Western music is Blues and Jazz.
Anyone loaded the pem to test if it matches?
Show HN: EasyWSL – Create custom WSL distros and manage them easily
yapp i also jumped the gun. thought that the PEM file might contain the whole shebang but nada
I agree, this is a great tactic.

I'd been writing my project for over a year and hoping to get help, buy-in, and collaboration. Then I realized that I hadn't updated my Readme since starting out, and it was out of date, and, frankly sucked. It was not convincing, and it was the first thing that devs saw when assessing my project!

Kudos to the author.
http://www.quakejs.com
I just got this when I tried to hit the page:

{"message": "Adapter not found"}
$ keytool -printcert -file AppleSecureBootCA-G2.der
Owner: C=US, O=Apple Inc., CN=Apple Secure Boot Root CA - G2
Issuer: C=US, O=Apple Inc., CN=Apple Secure Boot Root CA - G2
Serial number: 521563f9fdf7d0c6
Valid from: Fri Dec 19 20:13:10 GMT 2014 until: Thu Dec 14 20:13:10 GMT 2034
Certificate fingerprints:
MD5: 8D:C7:F2:A5:BF:FF:FE:19:EE:FA:49:02:91:1C:34:DE
SHA1: 02:60:CA:4D:08:6E:7C:CB:C2:7B:32:24:6B:22:21:6B:55:B3:D4:C2
SHA256: 64:28:66:5D:0B:97:C1:EC:B8:76:D2:D5:A9:32:57:D4:67:FF:C1:88:DF:66:30:5D:FD:21:F4:88:E7:9C:94:EC
Signature algorithm name: SHA384withRSA
Subject Public Key Algorithm: 4096-bit RSA key
Version: 3

Extensions:

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
CA:true
PathLen:2147483647
]

#2: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
Key_CertSign
Crl_Sign
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 68 E9 59 50 45 F1 5D 07 F9 3F C4 26 FC 1C 27 62 h.YPE.]..?.&..'b
0010: 7D 9E 13 94 ....
]
]
One of my past colleague smoked pot everyday and one night was franticly searching for his "dose" and he was getting extremely frustrated because he couldn't find it.

He told me that it got to a point where he got mad and literally blacked out! He found himself in a black void which he described as very disturbing and hellish because all he could feel was dread and the sound of screams.

He never touched any substances after that and was shook up when he told me that story.
Please read the site guidelines and follow them: https://news.ycombinator.com/newsguidelines.html. Note this: "Eschew flamebait. Don't introduce flamewar topics unless you have something genuinely new to say. Avoid unrelated controversies and generic tangents."

We detached this subthread from https://news.ycombinator.com/item?id=25222895.
If trust of one's own race is lower also, this seems unlikely to be a consequence of ethnic diversity per se. Rather, I would speculate that, due to the tendency of people to group with their own race, more diverse neighborhoods simply tend to be more transient neighborhoods - places where people are "just passing through" and not really there by choice. There is no point attempting to build community bonds in an area with high churn, and that you yourself plan to move out of at the soonest opportunity.
For HTML, set

auto_view text/html

in your startup file, and Mutt will consult your mailcap file to see what viewer you prefer. It will use that (lynx, w3m, etc) to display the HTML email in the pager as a default.

For calendar invitations: I've never tried to integrate that, but if they are attachments with a mime type, you can put instructions for processing them in the mailcap as well.
> The procedures used in NYC aren't drastically different from Singapores'

Participating in an underground rave in Singapore would result in lashes.
It is difficult to compare software development with civil engineering as they operate on different levels.
Software development is better compared to building houses. No one expects single story house to support 4 extra levels or for internal walls to be resistant to hammer blows.
Imagine what civil engineering would produce if you were building a bridge from a to b and then 3/4 way through you were required to add two extra exits c and d that were miles apart from a and b and another 4 lanes and extra level for train traffic...all in the same time frame and for no extra cost.
Civil engineers would not be able to do it and no-one would even expect them to but this is regular occurrence for software developers and most of them actually manage to deliver.
Sure there are bugs but bridges need constant maintenance too, some quite substantial and that is expected.
For some reason, lots of non-software engineers expect software to be perfect when their own products are not, not even close.
Is there a Hacker News for the Gemini network yet?
> If someone wants to drive an inefficient car, let them

I don't believe I've stopped them. (If only it were that easy!)

No, it's a fair response to the the laiz a fair comment "in order to consume more than is morally acceptable (a second home, especially when others have none, but regardless), I need to drive an environmentally unfriendly car".
Personal attacks and flamebait are not allowed here. Please read https://news.ycombinator.com/newsguidelines.html and stick to the rules.

We detached this comment from https://news.ycombinator.com/item?id=25222895.
Even if it's through inaction, they're still liable.
I rarely use the debugger in highly async systems (e.g. node) because it's just a mess, but in C/C++/Go/Java where there actually are good debuggers and you tend to have chunks (e.g. entire functions) of synchronous code, I find it very, very helpful to step line-by-line through most nontrivial code at least once for any major code path. A long time ago, I had a sort-of mentor who, whenever he looked at new code, asked the author "have you single-stepped through it yet?" so I did it to humor him, but the number of times I caught errors was eye-opening, so to this day I still like to do it.
There was a former MI6 boss mumbling about something like that this summer.

https://www.telegraph.co.uk/news/2020/06/03/exclusive-corona...
Can you elaborate a bit on what that code did? You said it a backup system talking to a MySQL? But there was a different front end and a different back end system that were both dependents on it?
And various other wasps have heavy metals concentrated near the apex of their mandibles.

There's also resilin, an elastic-like compound(?) that concentrates energy at certain parts of insect joins, used during jumping, or other fast movements.
No, but you can always encode this augmented information in types to make it explicit, and possibly help the compiler make optimizations. Using a weaker type when you can use a stronger type is just as bad as removing type information.
CryptoPunks: Collectible Characters on the Ethereum Blockchain (2017)
Ah, makes sense, thanks! I was just confused by thinking I understood, and '16 beats' almost but not confirming that.

For others, you can hear it here from around 1m40s:
https://www.youtube.com/watch?v=H9Rm9ayMhb4

(I don't know if it's a great example or anything - just the first I found. But there's definitely a 'boing' sounding beat in the background with that third part gap.)
Changed from https://api.nationalgeographic.com/distribution/public/anima.... Thanks!
An Introduction to Quaternions
PHP is the poster child for the peoples syntax.
If curious see also

two threads from 2010: https://news.ycombinator.com/item?id=1632488

https://news.ycombinator.com/item?id=1407383
For sufficiently small libraries, I've done a number of READMEs with usage examples that include test assertions. The examples then serve as the test suite. For example:

https://www.npmjs.com/package/spdx-expression-parse

I've released free scripts for Node.js that do the job of parsing the Markdown, extracting fenced code blocks, and filtering by infostring. That leaves just lines of code, which you can pipe straight to the Node interpreter:

https://www.npmjs.com/package/defence-cli
Crazy-complicated sexes are extremely common in the plant world, probably an adaptation to sessile life and difficult seed propagation.

I.e., I would guess that plants that have easy seed propagation have less complicated sexes, but I don't know.
Sorry, but no. There's no practical reason to own two homes.
I think different people can use those feelings differently. In my case, the thing you describe does work. It is stressful, but it gets me to be productive and have high standards (to the extent that I do, at least).
Climax, CO.
Discussed at the time: https://news.ycombinator.com/item?id=18780065
Both bombadillo and amfora are great! I love bombadillo's cross-protocol nature (lots of small-internet sites mix WWW, Gemini, and Gopher links) and how it aligns links (indices in the margins), but I also love Amfora's syntax highlighting. I preview my own Gemini capsule in both before publishing.