HN user

cmyr

1,086 karma
Posts21
Comments205
View on HN
www.markslutsky.com 1y ago

Viktor, the World Builder

cmyr
1pts0
nso.nato.int 3y ago

NATO Standardization Office

cmyr
1pts0
www.cmyr.net 5y ago

Type-Checked Keypaths in Rust

cmyr
1pts0
www.cjr.org 8y ago

Ashley Feinberg trolls for all the right reasons

cmyr
1pts0
www.cl.cam.ac.uk 8y ago

Practical lock-freedom (2004) [pdf]

cmyr
2pts0
a-guide-to-the-purescript-numeric-hierarchy.readthedocs.io 8y ago

A guide to the PureScript numeric hierarchy

cmyr
1pts0
raw.githubusercontent.com 8y ago

Tmux 2.6 release notes

cmyr
6pts0
benicetobears.com 8y ago

Twitter (is a white supremacist website)

cmyr
4pts0
rust-tutorials.com 8y ago

Advanced Rust: lifetimes [pdf]

cmyr
3pts0
github.com 9y ago

IRC notifications over ssh for macOS

cmyr
1pts0
github.com 9y ago

Flappy bash – Flappy Bird in 1234 bytes of Bash

cmyr
4pts1
jamey.thesharps.us 9y ago

Translating C's “switch” and “goto” to Rust

cmyr
1pts0
nxhx.org 10y ago

Is Anything Worth Maximizing?

cmyr
1pts0
newyorker.com 10y ago

The Voyeur's Motel

cmyr
1pts1
en.wikipedia.org 10y ago

StarTram maglev space launch system

cmyr
1pts0
info.publicintelligence.net 11y ago

Radicalization: A Guide for the Perplexed (2009) [pdf]

cmyr
2pts0
www.workmanlayout.com 11y ago

The Workman keyboard layout (2010)

cmyr
29pts54
quickradar.com 11y ago

QuickRadar – a desktop app for submitting Apple bug reports

cmyr
1pts0
norbertlindenberg.com 11y ago

Developing Keyboards for iOS

cmyr
15pts0
www.politico.com 11y ago

Frank Serpico: The police are still out of control

cmyr
3pts0
www.youtube.com 12y ago

The #1 song in Zambia right now is called "Google"

cmyr
1pts0

A technical note: OpenType Layout does have a way of representing the appropriate _cursor positions_ to use for components of a ligature[1], which is a good proxy for where the individual glyph boundaries are in the trivial case (fi and fl, say) but these tables are not reliably included in all fonts, and they are not actually used by much client software (last I checked they were used by CoreText but not by HarfBuzz or DirectWrite.)

[1] https://learn.microsoft.com/en-us/typography/opentype/spec/g...

This is definitely true, but there is a useful distinction between the usual evolutionary competition between species in an ecosystem and the very sharp situation of an ecologically novel species being introduced into that ecosystem and out-competing the incumbents, and 'invasive species' is the best term we currently have for this second case.

I don't think there's some huge point beyond exploring an interesting question, and raising it in a forum where it's possible some people with more specific domain knowledge might offer some insight.

I remember reading in one of John McPhee's geology books (collected as [1], and one of the best things I've ever read) about a particular way that diamonds can form; it had a name (like a diamond jet or a diamond burst or something) but the basic idea is mesmerizing: super-heated water containing dissolved carbon would find some fissure in the surrounding rock and explosively expand into it, and in the process it would cool rapidly and diamonds would crystallize out of the solution. I'm stuck with the visual of a seam of diamonds popping into existence in an instant, which is not what we normally think of as a geological timescale.

[1] https://en.wikipedia.org/wiki/Annals_of_the_Former_World

In reality, how many people are regularly using github search without having a github account? Can this change really be expected to bring in a meaningful number of users?

Trying to think this through, my own best guess for what is going on is that there is some amount of traffic coming from bots/scripts and github would like to have all queries associated with an account so that they can block accounts? I'm not sure if this makes sense, but I think it's a reasonable possibility.

Hinting might be a red herring here: these font formats are unsafe almost by design, since they consistently rely on a pattern of reading a value out of a chunk of memory and then treating that value as a pointer offset where additional values are read.

The proposed WASM shaping implementation would be a replacement for traditional OpenType layout[1] which is already turing complete[2]), and in this sense using WASM is significantly safer than the alternative. Your comment suggests that "execution of arbitrary WASM code" is something that we should be scared of, but the entire point of WASM is that it allows for safe/isolated compilation of arbitrary code.

[1] https://simoncozens.github.io/fonts-and-layout/features.html

[2] https://litherum.blogspot.com/2019/03/addition-font.html

I… don’t really follow this take? I agree that Lee Valley occupies a position at the top of the market, but I don’t think it’s about luxury, at all. My father was a cabinet maker, my mother a school teacher. They built their own home in the countryside, grew much of their own food, and could not have been less interested in “luxury” in any familiar sense of the word; but the shop and house is full of stuff from Lee Valley, because it is consistently high quality, and they don’t like buying stuff that gets thrown away.

I think your comment maybe conflates quality with luxury?

- The black market is always cheaper.

anecdata: I'm in canada, which has legalized marijuana recently. The black market is cheaper, but all but the most die-hard stoners I know like to buy government weed, because the product is consistent and you know what you're getting.

- Even in a legal market how many people are always buying their own?

Maybe I'm misunderstanding, but in a legal market even if I don't buy something directly at least I have vastly increased faith that i know what something is.

- If everything is legal then it's even easier for people to spike drinks and the like.

Who knows, but I strongly doubt that there is a large pool of potential rapists at large who are currently stymied primarily due to the difficulty in acquiring GHB.

- Purdue Pharma marketing issue writ large. - Patients pressuring their doctors to prescribe, or alternatively feeling pressured by their doctors to use a particular drug.

There are definitely a bunch of social and policy questions that would need to be addressed when considering legalization, sure.

- If it's legal it's easier to purposefully or accidentally overdose (e.g. alcohol today). Especially if it's also cheaper.

Almost certainly not, as the majority of overdoses are the consequence of people not knowing what they're taking, or not knowing how to take it.

'illegal drugs' is a pretty broad brush, and treating opiods and psychedelics equivalently is silly. Surely treatment, education and research would all be far easier alongside decriminalization?

This post refers to full-time employees. You don't really need to fire TVCs; they're generally on shorter term contracts, which you can choose not to renew.

I hope I cover this somewhat in the 'motivations' section. Keypaths are used heavily in SwiftUI, and my interest in them came from working on trying to find ergonomic patterns for GUI libraries in Rust.

As a body increases in size, the surface area increases as a square but volume increases as a cube. The more volume, the more heat, and after a certain point your available surface area is no longer adequate to vent that heat.

Another example of a similar principle applies to insects: they don’t have lungs, and absorb oxygen directly through their skin. In earlier eras of earth’s history, there was much more oxygen in the air, and so insects could be much larger, because the same amount of surface area could absorb enough oxygen to fuel a larger number of cells.

Something I haven't seen mentioned yet is one of the most annoying things about regional indicator symbols, which is that interpreting them correctly requires arbitrary backtracking, and handling this correctly is very annoying for things like text fields.

Basically: A single, unpaired RIS counts as a single grapheme. Similarly, a pair of RIS count as a single grapheme. Now imagine if your cursor position is after an RTS, and you arrow backwards (assuming LTR text, imagine your cursor is to the right of an RIS, and you press the left arrow.) Your textbox should now move the cursor to the left by one grapheme. How do you figure out where this is, in code units? You basically have to scan backwards until you find the first non-RIS codepoint, and then you have to match them up into pairs to figure out if your left-arrow movement should correspond to a movement of one or two codepoints.

This is a longstanding source of bugs, and if you're bored you can play around with pasting a huge sequence of flags into a textfield and then trying to navigate around it with the arrow keys/mouse. There are some broken implementations out there.

edit: while I'm thinking about this I will point out that an alternative design, which would have solved this problem (and which was first pointed out to me by @raphlinus) would have been to have two separate sets of RI symbols, one for 'first position' and one for 'second position'; then you could always determine the appropriate cursor position without needing context. Isn't hindsight a wonderful thing?

I agree completely. Anytime I’m looking at a parser library I just shake my head and close that browser tab. I’m invariably going to want a hand-rolled recursive descent parser two weeks later, so let’s just get on it.

Ignoring the other blatant problems with this interpretation (e.g. that social class was highly correlated with fitness) I suspect that the nobility were intermixing their genes quit successfully via coercion & violence.

I am not a geneticist or a historian or even more than barely literate

I’m not dismissive of embedded, it’s just a totally different problem set and is not the focus of this article. This article is about the pain points of integrating with the current major desktop platforms, period.

I agree we’re in a funny local minima. I agree there’s room for experimentation. But also… for a general purpose GUI toolkit, text editing is not optional. Modal windows (alerts, file open/save, as well as just drop-down/selection lists) are really not optional.

I’m also not arguing that everyone needs to do all these things from scratch. Very few people should be trying to reimplement IME. But you do need to support IME, or you are only making a toy.

There are some big challenges, here. One is IME, which requires storing intermediate state and information on the editing session, and communicating that with the platform; another is accessibility, which requires keeping a tree of elements that the user can currently navigate to, and which may include elements which are not currently on screen.

So yes, maybe okay for games, but I’m unconvinced about imgui for GUI applications of the sort described in this post.

This article is very much focused on infrastructural stuff, and doesn’t talk at all about layout, widgets, design, theming, etc; these are all totally challenging areas that are out of scope for this post. Maybe one day…