skysight-inc/HackerNews huggingface dataset:
If you have a lot of different symbols, it makes sense that ligatures would help to distinguish them more easily. So, ligatures for Haskell symbols also probably help, since there are so many infix operators in Haskell. There are also a bunch of old papers that showcase Haskell code and use the ligature representation of its operators.

However, most programming languages really just have a few symbols: arithmetic operators (+, -, /, *), comparison operators (<, >, <=, >=), and logical operators (&&, ||, !). C also has bitwise operators (~, &, |). It's already easy enough to distinguish these without ligatures, so the benefit is negligible here, IMO. I prefer to go without ligatures, because I have no trouble remembering or distinguishing them, and, like someone else mentioned, I find ligatures in a monospace font kind of weird (how they morph into a two column character when you write them, and turn back to a one column character when you delete half of it).
Sure, but this is also what defer is for.

There isn’t implicitly called destructors because the languages mantra is “no hidden control flow”. RAII et semantics is almost entirely hidden control flow that you just have to “know”.

Lots of people hate when they need to “just know” things to fully parse the code they’re reading.

You’re free to dislike those decisions, of course. Personally, I like the target of no hidden flow.
For all the hatred of mocks, it seemed strange that the article spent so little time actually talking about them.
Putting the scam in Scamford
I think part of it is also the nature of the research. As an engineer, the use of statistics in papers I’ve written to compare outcomes of the proposed method vs competitors is rudimentary, but that is for a number of reasons:

1. Normally the proposed method exhibits a number of trade offs with other methods. For example, the proposed method might be slower but accommodates a new class of problem existing methods can’t handle.

2. You can’t easily sample problems for comparison from a real world population. Such a data set doesn’t exist. Therefore, even if I was doing very formal hypothesis testing for a given problem, I could still cheat by adjusting the problem specification until my method is better.

3. Collecting data to a statistically significant level can be incredibly time consuming, and that’s just for a specific problem set up.

4. Theoretical analysis is offered to qualitatively, if not quantitatively compare methods. The experimental data serves more as a sanity check for the theory and demonstration that the proposed method is practical to implement and gives sane results.

I’m sure in the harder sciences, this is somewhat similar. It also helps that you have a lot of control over experimental design so that the statistics you need to do can be simple by construction. In biology, you have a million compounding factors and little theory to fall back on, so the statistics will be more complicated.
Now also called the Tepper School of Business!
The is obviously completely subjective.

I find ligatures more interesting for the slightly more "exotic" syntaxes like arrows → instead of ->, ⇒ instead of =>, etc. Most of them are incredibly similar to their non-ligature counterparts, and even ones like != don't seem to cause much trouble.

I don't seem to have any trouble switching between ligatures in the IDE and no ligatures on github. I haven't really had to think of them.
I wonder how long before our IT folks switch us to using Teams for video. Mid-2020 we switched to Zoom (from Webex, before Cisco decided to make it a copy of Zoom) for video, along with Slack (from HipChat). The combo of Slack+Zoom worked fairly well. And I got very reliant on the Slack plugin for Outlook to keep me on schedule. Now we're on Teams, which I still find frustrating on a daily basis, but still using Zoom for video. And Microsoft's own calendar integration for Teams is not at all as good as the plugin for Slack was, so I'm back to hit-or-miss for my scheduling.

Not the most onerous of problems, for sure, but I'm not liking how much our IT department is clamping down on everything. Between cost cutting on software and the myriad malware packages they install to monitor our MacBooks, I'm not their biggest fan.
Show HN: Netdata got new impressive dashboard
This was my bugbear for a long time too, and then I found fzf-git.sh (actually its PowerShell equivalent, PSFzf).

fzf (absolutely incredible tool with many uses) gives you fuzzy searching of anything you care to name, and fzf-git combines this with shell key bindings to let you pop up a fuzzy-searchable list of branches/commits/tags/whatever while typing your fixup command, then paste the object you select into your in-progress command line.

No more counting commits in log output to know how many ^ to put after HEAD, or copying out segments of commit SHAs!
Researchers Chart Alarming Decline in ChatGPT Response Quality
Whenever we codify something in law - and licenses are a kind of a law use - we're trying to achieve something we mean. So, in many cases in life there are words of the law - or license - and the unspoken intent.

I guess you mean that the intent could be different in different cases or differently understood in the same case. Here, with 3D printers, some intended to encourage to make better printers, and some intended to allow the same quality for less, or at least to allow presenting a variety of price-quality offerings to choose from.

Sellers already had our money in case we paid those sellers the same money for inferior product. The product of similar quality - even if seller managed to make it cheaper - seems fair game, and with time we'd assume the price to come down.

So, we probably have a disagreement on what the intent was or is for the OSHW. For some intents the examples you give are expected.
> Consider a corrupted codepoint at the end of a user generated string: will it recognize the closing quote as such, or will it assume it is part of a corrupted codepoint and try to skip over it?

Maybe I'm misunderstanding you, but because of how UTF-8 is a superset of ASCII, I don't believe you can misrecognize ASCII characters if that's what you mean.
sounds like you might be referring to this paper published by the st louis fed https://s3.amazonaws.com/real.stlouisfed.org/wp/2012/2012-03... - i'll be honest and admit i haven't read through it but i do see it mentioned on here a lot so it's been sitting in my bookmarks untouched for a while, just thought i'd link it for anyone curious
Hey - 3 of your last 4 comments have been unsubstantive and/or flamebait and/or broke the HN guidelines. Can you please not do this? We're trying for something else here.

I understand it can be annoying to see posts you disagree with and dislike. Many people jump from that to a general image of the community as hostile to their viewpoint* - but the truth is that there's a stream of things for everyone to dislike here. That follows from the community being so large and diverse. (There's a longer explanation about this at https://news.ycombinator.com/item?id=23308098 if anyone cares.)

Fortunately most of your posts with this account have been fine, though I ran across some other recent ones that broke the site guidelines and were not ok:

https://news.ycombinator.com/item?id=36364904

https://news.ycombinator.com/item?id=36364823

https://news.ycombinator.com/item?id=36283716

If you wouldn't mind reviewing https://news.ycombinator.com/newsguidelines.html and taking the intended spirit of the site more to heart, we'd be grateful.

* I've been trying to persuade users about this for years, though I'm not sure it's worked much: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
You made it past "The US federal government should"?
on the other hand, people go to MIT to interact with brilliant classmates and faculty. MIT's value proposition is that the smartest people are there, and funding will find those people (and vice versa) on the merits of their intellectual abilities.

On the other hand,

> One doesn't go to Harvard just to take courses; one goes to Harvard to bump shoulders with the scions of dictators / diplomats / "captains of industry" etc

is correct about Harvard. Harvard is much more about elitism-qua-elitism. Sure it's academically selective (if you're not from a political dynasty), but that's just because the intellectual elite is only one of many kinds of elite they carry about.

I think this is a true insight about Harvard, and the other ivies that give a "Gentleman's C" to plutocrats' children, but I think it deserves to be destroyed. I'd prefer Lincoln Lab to the Skull and Bones.
Consumers often also don't want to be dependent on local data. I would propose a feature to link (& sync) user accounts across multiple servers, that way no one needs to depend on a single server. Power users can set up their own server and use that as a local copy of all their data.
...so how VC funding help solve that problem ?
I mean, unlike Florida, that's actually smart of them to do.
Yes. The state of the art technology has not percolated everywhere. Google's tech stays locked up in Google.

Parallelism in many languages that are mainstream is difficult to get right and error prone. I don't think most developers should be working with low level threads or synchronization primitives for business purposes.

I am working on a notation and runtime and I'm thinking of automatic parallelisation.

There is also Go and Erlang but this is an area I am interested in enough to have an attempt myself.

Multithreading can be difficult and I recommend this blog post:

https://bholley.net/blog/2015/must-be-this-tall-to-write-mul...

(Check my comments on HN and my profile for more details)
AFAICS this is actually potential UB on most implementations: not only does fgetc() return -1 as an int in the failure case, it returns the byte as unsigned char in the success case. So on an implementation that defines plain char to have the same size and representation as signed char (as x86 does), reading a byte beyond SCHAR_MAX causes UB through signed overflow on the first line of the loop.

(This is a close relative of the well-known footgun that the is*() functions from <ctype.h> accept an unsigned char value as an int, and it’s completely valid—though rare in practice—for them to blow up when passed, say, "\xFF"[0] instead of ((const unsigned char *)"\xFF")[0] on an implementation with CHAR_BIT==8 and SCHAR_MIN<0.)
I don't suppose this can work with neovim in the terminal?
I don’t know how prevalent it is as a network architecture, but it seems like a bastion host / jump box would be a juicy target for this exploit, since it’d let the attacker jump upstream.
> This will be DOA. CRM is a essentially a solved problem.

I was about to ask if it's possible to make money on CRM today, given the near infinite number of choices at all levels. But maybe it only works if you specialize, as you alluded to in your comment.
"Designed specifically for programming as the name suggests,"

At first, I thought they were referring to the first word in the name, given how humorous some of the code I've read in my life is
> In this case, the "a few bad apples are not representative of a group" meaning have grown above the "One bad apple spoils the barrel" meaning

Most of the time when I hear the "only a few bad apples, the rest of us are fine" meaning it's coming right from the mouths of badly spoiled apples twisting the meaning of those words and popularizing that usage to suit their agendas.

Generally, I think that there's nothing wrong with pushing back against words and phrases used incorrectly. We get to decide how words are used, and a large part of that decision making process involves social pressure and education. I think it's particularly useful to defend the meaning of words and phrases when they're being deceptively misused and promoted.
Comments aren't outdated. Obvious code doesn't need to be commented, and code should be written to be obvious where possible.

But where it's not possible to write obvious code, it should have comments explaining _why_ the code is doing what it's doing. Usually this will include references to external sources like issue trackers and software-design documents, or at least to other parts of the code.

Also, really hairy bits of code (like multi-page functions etc) often need comments just to explain what the heck it does (but in that case, it should also include an explanation of _why_ it's so hairy, and the ramifications to making changes to it).

_The Mythical Man-Month_ is still worth a read, although many of its insights that were super hot takes 50 years ago have been pretty much adopted into the mainstream.
Using setups like this is a great way to get into neovim. Over time you'll start tweaking it and then realize you can just read the source code and implement your own version. That's what my journey over the past ~8 months has been, at least.

Here's to hoping we get a nice way to play with containers in neovim. I'm sorely missing devcontainers from vscode.
In this blog post, we explore the art of seeking help as a software engineer, emphasizing the significance of providing context and prerequisites to ensure clear and actionable responses. By structuring inquiries with relevant details like issue descriptions, code snippets, and error logs, engineers can obtain quicker and more accurate solutions. Whether seeking assistance internally within a company or externally in developer communities and open-source projects, these skills foster a positive, supportive, and successful community. Mastering this art empowers engineers to make meaningful progress in their projects while contributing to a thriving knowledge-sharing community.
I think you have pointed out the two extremely useful capabilities.

1. Bulky edits. These are conceptually simple but time consuming to make. Example: "Add an int property for itemCount and generate a nested builder class."

Gpt4 can do these generally pretty well and take care of other concerns like updating the hashcode/equals without you needing to specify it.

2. Iterative refactoring. When generating utility or modular code, you can very quickly do dramatic refactoring. By asking the model to make the changes you would make yourself at a conceptual level. The only limit is the context window for the model. I have found that in java or python, the GPT4 is very capable.
The problem with communicating is a substantial fraction of the US population does not have their mental receivers tuned to reality.
Here's more about Baker:

https://www.buzzfeednews.com/article/ellievhall/theo-baker-s...
I'm sorry for you and your father, but research fraud didn't cause his Alzheimers. It sucks that there is no treatment or cure but that is the case with a lot of diseases.

I think something like fines equivalent to the amounts of the grants for the institution, and professional censure and a ban from working in grant-funded research for the researcher, would be more effective and appropriate than prison.
Octoprint Plugin for E-Commerce
Hey guys, we have been working on building an e-commerce plugin for octoprint. Basically, this plugin lets you manage your printer and orders from multiple platforms such as Shopify, E-bay, Amazon etc from a single console. Feel free to let me know if you have questions, and also join the waitlist on the website.
I know that 3D Touch has been removed from newer iPhones, but I wonder if the hardware is actually gone. It’s a fun little tool to show off
There's two problems I have with this answer.

First: we do not know that the lethality would have been without lockdowns. We didn't (often) see hospitals turning people away. The lockdowns succeeded in preventing that.

But more importantly, it's not fair to judge people based on the decisions they made in the past with the information they had then, using the information we have now.

Let's presume there was no difference in lethality. We did not know that at the time. But it was reasonable to believe it would be helpful and save lives.

Who is sitting there going "yeah but what if it doesn't save any more lives? Let's risk it because I've got a party planned next weekend".
India’s sex workers turn to WhatsApp, Instagram to find clients safely
People do what they must to live. Like many other professions, some people are paid to do things they probably would rather not.
Well, no. I guess if you don’t know then you don’t know.

As an anecdotal personal example. I love my wife and kids dearly. I trust them, and feel no anxiety being around them. Yet it’s draining. Now they’re gone for a few days, and I feel very good being finally alone for a few days.

Likewise I enjoy getting together with friends and family. I’ve also learned to be sociable. But it’s draining. After a day of having to interact with people I really, really, really cherish being alone for a few hours with my own thoughts, and preferably silence.

We’re different like that, people in general, I mean.
No. This level of scrutiny and diligence is rare, and was selectively applied based on the targets profile. The "field" did nothing about this over 20 years. A computer science freshman did this as a hobby, not as a participant in neuroscience.

Perhaps "nothing" is too harsh. Various people in the field raised concerns on several occasions. But the journals did nothing. The "field" still honoured him. And _Stanford_ did nothing (except enable him and pay him well) until public embarrassment revealed the ugliness.
It's different and very old story.

Protothreads are classic now:
https://dunkels.com/adam/pt/index.html

Contiki OS is also a piece of embedded development classic:
https://en.wikipedia.org/wiki/Contiki

In general, it's more about syntax than semantics.
Semantics is generally difficult and rarely changes.
People generally don't like to think deeply about things. I get it. It's uncomfortable and emotionally draining. It really requires attention and focus. So most people don't practice it and don't get good at it and simply don't like it. And they sometimes their approach might even be right. Since, you know... A lot of the things you think about or talk about don't _really_ matter.

So you might as well talk about more trivial but lighter things.

I know that I really love to deep dive into things and pick things apart. But my girlfriend hates it when I get like that, so I learned to understand her point as well.
Turn tables
That's never gonna rank well on google unless you add 6-700 words about why it works along with pictures and links to other high value blogs talking about your key points.

Welcome to hell.
Just switch the font variant to NL - no need for editor support.
The idea is that affirmative action gave a non-merit advantage to minority students, while legacy admissions gave a non-merit advantage to white kids. (Left out of course, are the white kids from non-elite backgrounds.) People want it to be "fair" by removing more non-merit policies since one has fallen. But I think this thread brings up a good point, as to what it is that places like Harvard are actually selling.
> Adoption will come when businesses are required to have IPv6 to make money, or conversely will lose money when they lack IPv6.

Well IPv4 is currently going for US$ 40/IP:

* https://auctions.ipv4.global/prior-sales

* https://ipv4marketgroup.com/ipv4-pricing/

It actually peaked at over $50 for a while:

* https://circleid.com/posts/20230207-the-ipv4-price-inversion

If you want to spin up (or expand) as an ISP or a cloud provider there's CapEx associated with getting IPv4 addresses (or if you're a 'regular' business that wants to multi-home with multiple ISPs). I don't see how that can continue indefinitely give the finite 2^32 addresses available.
> Makes me wonder how long this trend of just packing more cores into the chip can continue, and where it will go after that

It really depends on the cache and memory architecture. You need to be able to feed data to the CPU efficiently.
I stopped buying those cheap boards, because of quality/counterfeit issues. It's worth paying more (to me) to avoid those problems.

Even when they work, there are often longevity issues, which make them unsuitable for projects that I am giving to others or that I expect to be using for years to come.

But if I'm doing some experimental project where I want a lot of boards, or where there's a high risk that I'll fry them, the cheapies make sense.
But there's plenty of transpilers: ClojureScript, Nim, etc.
I just prefer Berkeley Mono.

https://berkeleygraphics.com/typefaces/berkeley-mono/
you can get them at $3-4 bucks
I don't know every Slavic language, but know a few. There are rules of transformation of sounds which can make -ph to become -f, or -p, while -v is very-very unlikely. And the fact that in some languages "v" can be pronounced as "f" before unvoiced is not really applicable here - it doesn't make "f" to become "v". I think it's just a randomly generated Slavic-looking name. The author is Chinese btw
Elden Ring is certainly one of the best I played the past decade. The production design is fantastic.
Yeah, the Mac is definitely for lighter home server tasks. I tried in the past to run more complex stuff, and it wasn't worth the hassle of figuring out macOS's differences vs Linux. Had PowerEdges in the basement once for a startup, but nowadays the Mac is enough.
"Again, significantly outperforms LP."

No, this is mathematically impossible. You cannot out-optimize a mathematical global optimization solver. Whether that is LP, MILP, or NLP. Exactly because they provide a certificate of optimality.

It is like stating that you found a non-negative number that is smaller than 0. It’s not progressive. It’s flat out wrong.

"But there are lots of situations that LP can't optimize while RL can"

I will be satisfied if you just show us 1.

Stay in your lane, and state that you built a fast heuristic that works (finds good solutions but not optimal) in the problems you tried. Nobody can dispute this. But don't make claims you cannot support.
That is indeed the current practice, but it is the opposite of the original intent of patent concept. The idea was to grant a temporary monopoly in exchange to revealing the technique — it was supposed to advance technology faster.

The standard was (and AFAIK, still is) that the technique or technology must be revealed in sufficient detail that it can be reproduced "by a skilled practitioner in the field without undue experimentation".

Of course, that was at a time when technological progress was much slower, and less transnational.
Is there a reason async/await is being implemented specifically, rather than some more generally-useful primitive (like delimited continuations, algebraic effect handling, functor/applicative/monad, etc.[0])?

When it comes to e.g. memory management, Zig tries to be unopinionated and allow different implementations to be implemented as desired; so it seems odd to bake-in something like async/await (even if the execution strategy of those computations is up to the user).

I've seen this happen in many high-level languages (JS, Python, PHP, etc.), which I mostly attribute to (a) ignorance of those generalisations, and (b) a band-wagon effect. The unfortunate result in those languages is a bloated mess of try/catch, async/await, for/yield, apply/return, etc. and all of their O(n!) possible interactions; which could have instead been implemented as libraries on top of a single primitive (e.g. shift/reset, or whatever)

[0]: AFAIK these are all equivalently expressive, and given one it's easy enough to write the others as libraries.

PS: I recall asking this question when PHP added generators; I can't seem to find a bug report or mailing list post though...
How hard was acquiring the domain twenty.com?