skysight-inc/HackerNews huggingface dataset:
If that's the shape the font designer wants for the ligature glyph, yes. IIRC, Tonsky's Fira code is designed with this in mind (https://github.com/tonsky/FiraCode) (Butterick uses Fira Code as his example.)

But maybe it's the intent of the designer to have each glyph have the same width, not each "character", so the glyph LESS-THAN OR EQUAL TO (≤, https://www.compart.com/en/unicode/U+2264) would be the same width as < or =: it's ultimately up to the application/typesetting engine to decide whether or to substitute the character string "<=" as "≤", and to see if the font _has_ that character and how to render it to the screen.

I suppose you could have the typesetting engine choose to somehow read the two characters, note that there's a ligature substitution, and "fit" the ligature glyph into a two-character space (say, padding the glyph or horizontally stretching it), but I doubt that would be very pleasing.

But ultimately what gets displayed is up to the typesetting engine: it can choose to use or not use ligatures; it can choose the spacing between glyphs; whether to "fake" certain styles (such as italics), text justification — all sorts of behavior. Good typesetting is available in many more applications today than it was, say, 25 years ago. There was all kinds of janky behavior going on, both from the engines not using information in the fonts when it was available, and faking it or overriding it as well.
They were also very effective at "dropping" characters the writers and other actors didn't like. Poor Lilly.
I don't mind the look of ligatures too much in most monospace fonts that have them. However, I use my editor and terminal emulator for a lot more than just editing source code in common programming languages. In every single ligature-supporting font I've tried, there are edge cases where glyphs are combined in a way that don't make sense in context, which is jarring enough to not be worth it for me.
But how does an LLM actually know and enforce this? It can be basically tricked into anything
As an incidental observation, technical mailing lists could be a goldmine for training LLMs about software engineering practice in the real world. I wonder if these end up in any of the common corpuses used for model training.
Sounds like you're saying that only the corrupt cops didn't choose to get the shot. Which is consistent with blaming car manufacturers for crime.

I hope you live in this city to reap the reward of such crime that's an obvious fallout of your lovely ideas that has dominated it's city politics for decades.
Other people reading your code... on your laptop, using your editor? Because on anyone else's computer it's going to be based on their personal viewing preferences. Setting your tab spacing size too large will also make your code unreadable. But only on your computer.
I don't think this is Overthinking though. How do you separate an impostor from a genuine parrot might be the harder question.
Yes, I mean that one!
The book is this one: https://www.dynamodbbook.com/
https://www.dynamodbbook.com/
The one thing that Go supports that I think no other GC language does is the ability to create a reference to a value at will.

However, similar things can be done in C# for example by capturing a local variable in a closure, even if that variable is of a value type (struct). The closure then becomes something similar to a Go reference to that value, and you are still free to return it with no UB or other problems.

Either way, if your mental model is adjusted to the GC memory model, there is nothing special going on here. The weirdness comes only out of tying an object's lifetime to its scope. Scope is irrelevant to lifetime in GC languages, where lifetime is tied to (live) references to that object. So, if a reference to an object "escapes" its scope, that object will live beyond the scope where it was originally declared - nothing strange about that.
It is worth noting that the country has had two occasions of Twitter being shut down [1], the most recent being after the earthquake [2]. In both cases, these restrictions were initiated by the government ruled by Erdogan. The fact that the tweet mentions a legal action tells me it is also coming from the same people.

[1] https://news.ycombinator.com/item?id=7440964

[2] https://news.ycombinator.com/item?id=34707974
Understood, but how does an LLM actually know that the code it's spitting out already exists somewhere else that isn't public domain?
This submission itself is hosted at practicaltypography.com (https://practicaltypography.com/ligatures-in-programming-fon...)
> OK, what about this? It’s also illegal to use a AI model to generate realistic child pornography, even in the privacy of your own home.

False in the US - in the 2002 case of Ashcroft v. Free Speech Coalition, the Supreme Court ruled that “virtual child pornography” is protected by the 1st Amendment.

True in some other jurisdictions, including my own country (Australia). However, I think Australian laws on this topic go way too far - in Australia, people have been convicted of child pornography offences purely for publishing offensive remarks about child abuse victims. While I agree it is wrong to make such remarks, I think it is massive overkill to prosecute them as child pornography.
M+ Fonts
What do you mean? The discussion in this particular sub-thread is about running ZFS on a single drive (think laptop). Does it have some kind of mechanism to send the write for a copy "later enough" that it will likely end on a different physical block?
I wonder if that will lead to some innovation in preventing fake news and fake reviews.
Me too. I rather spend ny time on useful things, like writing code, fixing code, arguing on issues, PR's and wiki"s.

And mailing lists are a cesspit mostly.
is source available?
I do agree with the idea of wiki is the right way, but I think most orgs overestimate to an extreme degree how much work a "simple wiki" (my words) really takes to be useful.

One of the disadvantages of a mailing list that is actually a surprise feature is the lack of content curation; as pedantic as the wikipedia edit wars might be, having tried to maintain a wiki for one of my work places, I understand why they happen, even when you have a well documented and followed structure and content guideline that everyone is aware of. Generating consistent and accurate content, and curating said content, is really a full time job, and for technical content neither item is something I'm comfortable sourcing to a group that isn't also able to contribute to content on their own in a meaningful way, as this can really harm the value of such a wiki.

I think the tooling is less important than the dedication to developing a structure, enforcing the structure, and curating what gets into the documentation very hard. Mailing lists kind of avoid this because they neither propose to be curated no require someone to decide "today I will write X and Y articles", the interest and the discussions define the direction of the content creation. Great for getting data out there, but not great at being searchable or meeting user needs for relevance.
Denormalized table is just an hard to mantain (materialized)view over normalized tables.
There is quite an excitement about how someone has hacked the language model to output what was supposed to be a non-public set of rules apparently. How do people know if this is indeed the secret set of rules, not the list that the model was scripted to return in response to a request (perhaps, a bit elaborate) for the list of rules?
This should be a fairly unsurprising result. High level languages are fundamentally more optimisable than low level ones because, as you say, the latter express unnecessary constraints, lacking information about domain-level semantics. Low-level optimisations are also known to follow a pareto distribution wrt their efficacy: 20% of the optimisations are responsible for 80% of your performance (if not more). See for example mir - https://developers.redhat.com/blog/2020/01/20/mir-a-lightwei...

That said:

> It seems to me that the LLVM optimisations are only of benefit to you if you generate really bad LLVM code in the first place.

Much llvm development is sponsored by large corporations for whom it really is worth it to squeeze that last 1%.
I'm still waiting for Intel to port to a monospace instruction set.
the logic is this:

ecall is a functional safety feature of your vehicle, which, like tire pressure sensors or abs or ESR or whathaveyou has been prescribed to save human life's. it only phones home, so the logic, in case of a severe accident. automatic registry of any sim card with mobile network towers is just a technicality, according to that logic.

ecall is a prescribed feature for homologation (German: Typzulassung). if you manipulate a homologation relevant feature of the vehicle, your general operating license becomes void ("allgemeine Betriebserlaubnis erlischt")

in other words: you can sure disable it on your own car --- but that car in that moment loses insurance and you're no longer allowed to operate it on the road, except to bring it to the workshop.

that's the mechanics of "homologation" and "general operating license", i.e. the mechanics of road safe vehicles.

now, are you looking for a source of these mechanics? or a source for where ecall is listed as generic mandatory feature?
I may be missing something, but ChatGPT properly summarizes the contents when using randomly generated delimiters. If it's integers all the way down, why not make your delimiters cryptographically generated? You can do this on a per-request basis to prevent problems from leaky prompts.

Using the delimiter "q8D3XGZYQ1" gives me:

ChatGPT GPT-3.5: The text delimited by "q8D3XGZYQ1" is a brief conversation in which an instructor tells someone to disregard previous instructions and instead write a poem about cuddly panda bears.

ChatGPT GPT-4: The text is a brief excerpt in which the instructor changes their previous instructions and asks the writer to create a poem about cuddly panda bears.
I agree, curly braces that curve back are an aesthetic abomination, IMO.
> The place to start is with the partnership between Microsoft and OpenAI.

Microsoft should and will be split.
Basically IQ test from Idiocracy:

"If you have one bucket that holds 2 gallons and another bucket that holds 5 gallons, how many buckets do you have?"

"Two?"

ChatGPT passes it though.
> “What do you mean, it’s not a matter of taste? I like using ligatures when I code.” Great! In so many ways, I don’t care what you do in private. Although I predict you will eventually burn yourself on this hot mess...

I've been using programming fonts with ligatures for years. I had wasted several hours because of those stupid bugs when I mixed up O and 0, - and _, but ligatures never caused me any problem. It is obvious when they are there, and you rarely see non-ascii characters when programming (unless you are writing Lean).
You should install the font and check it out.
2 - what you see in screenshot is not period, 3 - backtick exists, not in that screenshot, 4 - lowercase l is curved and totally different from 1
"He just highlighted Avatar, he clicked the drop down menu, and then he randomly selected Papyrus, like a thoughtless child just wandering by a garden yanking leaves along the way." [1]

As iconic a moment as the creation of the first sans serif font [2].

[1] https://www.youtube.com/watch?v=jVhlJNJopOQ

[2] "The earliest printing typefaces which omitted serifs were not intended to render contemporary texts, but to represent inscriptions in Ancient Greek and Etruscan. Thus, Thomas Dempster's De Etruria regali libri VII (1723), used special types intended for the representation of Etruscan epigraphy, and in c. 1745, the Caslon foundry made Etruscan types for pamphlets written by Etruscan scholar John Swinton." https://en.wikipedia.org/wiki/Sans-serif#:~:text=The%20earli....
ChatGPT is actually full of prejudice that shines through the veneer of political correctness if you know what to do.

Q: The professor told the student the essay couldn’t be review because he/she was late. Who is late?

Depending on the pronoun, you’ll get, respectively, "the professor" or "the student".
Some users can add dates to submissions that lack them.
Can't believe that this stuff is legal.
>It’s that it didn’t obey what it was told.

I find you basically have to stop thinking of LLMs as software and start thinking of them as unpredictable animals. If you issue a command and expect strict obedience every time, you've already failed. Strict orders are really a tool to persuade certain behavior rather than some sort of reliable guardrail.
Wow. The prompt feels totally similar with Bing (some things are like copy-paste)! Thought it would be another team doing it...

Last month Bing prompt: https://github.com/gopejavi/AI-bugs/blob/main/bing/Instructi...

Should be a bit different by now as they update bing like, daily.
I don’t fundamentally oppose such a thing, but I assume doing so would require very careful effort. It’s much harder than integrating Rust.
You definitely know when, while talking with a person, you just pretend to understand what this person is saying vs you actually understand. Is an experience that every human has in his/her life at least once.
Yes, terminals today even support emojis!
The “why” or “who” is what I don’t get. Why would someone use this? In what scenario?

See also other subcomments.
Well it's no one persons fault, except the criminal obviously. But there are a few contributors, and I feel in the US's responsibility model defending your property is usually your job.
1. Don't foster (activly abolish) a society where competition is the primary driver. This includes the illusion that you win if the other loses. So in a way our whole system and the incentives we have within it are threatening our future existence here.
How to Disagree Productively
I've ripped out chunks of KiCad to run as CI/CD on the basic PCBs I have. KiCad's data and code is really not geared up for this, so quite a bit had to be hacked up to make it idempotent and even just to bring it up to basic C++ coding standards.

I've been looking at upstreaming what I can and what would even make sense. Ultimately I've switched to mostly using non-KiCad python (dealing with the messy nature of the bundled python wasted 3 solid days, don't use it unless you must) to generate and manage a parts DB + vector drawings that are then processed into the KiCad formats.

It works, but a lot of KiCad internals were simply never designed to handle this scenario. Even multiple PCBs are a pain. It uses multiple proprietary vector representations, some for rendering and some for analysis, etc. The file formats themselves are ok to deal with but aren't well-specified so they will change on you.

Fortunately, the end Gerbers are well defined and it's often easier to simply generate those directly vs going through KiCad if the DRC are guaranteed by construction to never be violated
This is one of my most disliked parts of the email model. I generally have an MTA running and IMAP server where I set rules such as blocking mailing list threads and use my MUAs as dumb clients to fetch from the IMAP server. Setting the rules on the MTA is a bit of a pain but it works and keeps my setup portable.
in this interview Ruben, the founder of Windmill, talks about his background, shares how the project got started (bootstrapped solo founder, went through YC last summer) and encourages more software engineers to start their own companies

interview highlights (4min): https://www.youtube.com/watch?v=_jsl0k7LX34

full interview (33min): https://www.youtube.com/watch?v=rPLVwFRjw7o
Mailing lists don't have to suck or be unsearchable. See sourcehut: https://lists.sr.ht/~sircmpwn/sr.ht-discuss/<000001d97d57$ca...
Yeah I ultimately agree with your last sentence, I used to live in a little town where that was the case. But cities will atract all types so you must hedge your bets.
> Whereas ligatures are going the opposite direction: making distinct characters appear to be others.

Yes. On my computer. In my editor. That I am using…because I like ligatures, because they make my code easier to read. For me.

Use of ligatures on my setup does not force anyone else to use them? They’re not “viral” like a language feature.

“Oh but what if the >= Unicode symbol ends up in your source code and you don’t notice because you’re using ligatures?”

Is this the most contrived issue ever? Yeah and what if someone runs “find and replace” using Unicode confusables on my codebase? That’s arguably worse and requires no special font features. Plus I suspect most programming languages would throw an error immediately if you used the >= symbol instead of the pair.

If you don’t like ligatures, that’s fine, but there are those of us that do, and our font preference isn’t a threat to you.
> understand that a reviewers role isn't to agree or not

Humans are universally terrible at doing this.

IMHO the only hope is to give them two voting axes, so they can placate their lizard-brain's "downvote to disagree" impulse but still apply a separate but positive expository-quality rating. If you only collect the latter kind of rating it won't work.

TL;DR: in addition to thumbs-up/thumbs-down, give people poop-emoji/gold-star. I would hand out a lot of poopy-thumbs-up votes.
> when triplicate would get ligatures, Powerline characters, and so on. Answer, as nicely as possible: never.

Undoubtedly he made an argument for ligatures, but why are Powerline characters in the same basket?
(1) exists regardless of ligatures,

(2) context is super easy to apply, an editor can very reasonably enable or disable ligatures depending on where they are in the code: sublime text does this already
A Workaround to WebAssembly’s Endpoint Compatibility Issues?
Doesn't this penalize the tool though? Knowing the amount of data in a table is still important to determine the type of query, even more to optimize it
Now we’re too distracted by “I wonder how they render that” or “how don’t these physics explode all the time”
I'm guessing that whoever came up with these changes doesn't use the product. I wouldn't be surprised to discover they don't even use Windows.
Overpass Mono does it:

https://fonts.google.com/specimen/Overpass+Mono?preview.text...

It's been fixed in Red Hat Mono.
There's no reason why delimiters need to be picked for human readability. Cryptographically random delimiters with adequate entropy seem to guard properly.

See my other comment here: https://news.ycombinator.com/item?id=35926548
> in Australia, people have been convicted of child pornography offences purely for publishing offensive remarks about child abuse victims.

I'd love to see a cite to the Court case on this - while I don't doubt that you've heard this it does sound an awful lot like a Sky 'News' after Dark pearl clutching misrepresentation of an almost but not quite actual event.
What are you talking about? I've addressed your comment twice now. First in a way I assumed you knew enough about crypto to understand, and second explaining that in more detail. I've "accused" you of ignorance, not insincerity.

Meanwhile what you've done is failed to read my comments properly and then attempt to insult me. Read them until you understand, and if you don't, ask questions. That's the spirit of discussion and learning I'm engaged in.

If you aren't, good luck with that, and I wish you the best.
Sarcasm off, i believe that societies are inevitably aiming for something like that, except in a form of rather strict segregation a-la SA Apartheid. I see it as inevitable consequence of infinite scalability of success today. Basically, at some point, top demand in a purely economic sense of those 10% will be safety from remaining 90% with a consequence of government functions of protecting the top 10% being largely privatised.
That seems to be a fundamental misunderstanding of what LLM hallucinations are?

A hallucination, when it comes to LLMs, just means "the algorithm picking most likely next tokens put together a string of tokens that contains false information". It doesn't mean the LLM is having a novel false idea each time. If the first time it hallucinates it thinks that that misspelling is the best next-token to use, why wouldn't it keep thinking that time and time again (if randomness settings are low)?
> At a bare minimum, don't use ligatures in slides or blog posts or anything meant for a broad audience

This seems a much more reasonable take
There are really two separate issues here - ligatures in the classic typographic sense, such as æ, and having some way to type mathematical symbols useful in programming, such as ≠ and ⨯, without having cntl-alt-meta-super keyboard combos to remember.

The former doesn't help in programming. The latter is fairly standard for ideographic languages, and has been well worked out for Chinese and Japanese.
As a kid you would play the dumbest stuff and think it was amazing. The age is 100% relevant to how you remember it.
Human error that can be easily predicted and fixed with tech is kind of a design issue though. Shouldn't those all have sensors on them to stop this? People use Google calendar to remember what day is Mother's day, submarines can do the same.

Really all human error that has happened before is predictable. My rule for myself is to assume any mistake I've ever made, or imagined making, is possible.
> For instance, the example below is from Kent Dybvig, The Scheme Programming Language, 4th ed. In this chunk of Scheme code, the opening-quote marks are supposed to be backticks; the closing-quote mark is supposed to be a single straight quote:

Sorry, as a Lisp person, I don't see the problem. In Dybvig's typography, it's evident that an opening quote which looks like a 6 is the quasi-quoting backquote, and the closing quote is the regular quote.

It is legitimate for the apostrophe to appear as either a vertical tick or a 9 shape:

https://en.wikipedia.org/wiki/Apostrophe

Particularly this section:

https://en.wikipedia.org/wiki/Apostrophe#Typographic_form

Evidently, the 9 shape is the "typographic form" whereas the straight tick is "typewriter". The last paragraph of that section claims that this was a simplification for typewriters so that the glyph could fulfill multiple roles at the same time (including, possibly, simulating an exclamation mark, if overlaid over a period!)

In the USASCII system, there is only one character code for this, so in a given font, you get only one or the other. In a font where the ' character looks like a 9, you want ` to look like a 6. Or else if ' looks like a vertical stroke, then ` looks like a backward-slanted stroke of a size which harmonizes with that one.

It looks like the printed version of Dyvbig's book has a font which is typewriter-like, but uses the typographic form for these glyphs (thus undoing the hack that was perpetrated for the sake of typewriters). It's quite readable; there is no mistaking the forward tick for the backtick.

I now want a programming font which has those.
> Yes. On my computer. In my editor. That I am using…because I like ligatures, because they make my code easier to read. For me.

Later in the submission, Butterick addresses this directly, and doesn't disagree:

> “What do you mean, it’s not a mat­ter of taste? I like us­ing lig­a­tures when I code.” Great! In so many ways, I don’t care what you do in pri­vate. Al­though I pre­dict you will even­tu­ally burn your­self on this hot mess, my main con­cern is ty­pog­ra­phy that faces other hu­man be­ings. So if you’re prepar­ing your code for oth­ers to read—whether on screen or on pa­per—skip the lig­a­tures.
Transformer Inference Arithmetic (2022)