back
user profile

raphlinus

13,685karma·1,846submissions·March 7, 2014
about
I do research on fundamental UI technology and 2D graphics, with a focus on Rust and fonts. @raph@mastodon.online
recent activity (1,846 total)
comment
Pretty sure that code gives the wrong answer for a = 0, b = 1 << 63 (assuming the goal is equality represented as 0 or 1).
9y ago·view thread
comment
From Google's official opensource documentation on IARC[0]: We don’t approve every project submitted through this process, but historically we’ve been able to rapidly approve the vast majority of…
9y ago·view thread
comment
That makes it especially impressive that he used React and other recent Web technologies to build the site. (It's been around a while but this is a rewrite and looks like a pretty massive update)…
9y ago·view thread
comment
Confirmed. The title statement is wrong. I think the moral of _that_ story is that not even renowned experts can reliably get bash right.
9y ago·view thread
comment
I wouldn't say category here, to be precise it's the same cofunctor over the initial algebra.
9y ago·view thread
comment
I have no idea what you mean about "intentionally destroying" line info. The info is right there, and there's a perfectly nice interface (Cursor) for getting at it; no real difference b…
9y ago·view thread
comment
I used an array of lines in gzilla[0]. It's not bad, but it _is_ exporting details of the representation up to clients, which gets worse once you add some hierarchy. To me, the nice thing about r…
9y ago·view thread
comment
It would be possible. I'm thinking of adding "pack/unpack" operations to the Leaf data structure, but it's more motivated by getting a varint encoding for line breaks; right n…
9y ago·view thread
comment
The true strength of the rope data structure its performance in worst case conditions. Even after a huge series of edits, it recombines leaves and rebalances the tree so it's almost as efficient …
9y ago·view thread
comment
It's not comprehensive yet, but at least you can navigate the API at https://docs.rs/xi-rope/0.2.0/xi_rope/ …
9y ago·view thread
comment
Hi Jon! Great to see you here. Much of what I wrote is speculative, especially paren matching based on monoids. What actually went into xi editor is much more conservative. I didn't actually inte…
9y ago·view thread
comment
An example of the linear-interpolated lookup table approach using fixed-point math is the sine generation[0] in my music synthesizer. It generates a table of 1024 entries, then lerps between those. Th…
9y ago·view thread
comment
Thank you for sharing the story of your friend. It brought tears to my eyes. Feeling guilt about not being able to do more is a natural consequence of suicide. But it sounds like you were there for hi…
9y ago·view thread
comment
The use of math in economics is much like the use of Newtonian mechanics to understand elementary particle interactions at the horizons of black holes.
9y ago·view thread
comment
I think that's only half-useful, at best. If all your access to atomics happened to be mediated by, say, __atomic_cmpxchg, then modeling that as (say) atomic_compare_exchange_strong would give yo…
9y ago·view thread
comment
These are theoretical concepts. If there's a bound on the slowdown, it's lock-free. If there's no bound, it's obstruction free. These theoretical concepts might or might not be tha…
9y ago·view thread
comment
Absolutely. The Java ecosystem deserves a huge amount of credit for putting lock-free programming on a theoretically sound basis, and it's informative how long it took to get it right. But none o…
9y ago·view thread
comment
I stand corrected, thanks! I had the feeling that the ABA problem affected a lot of the earlier lock-free algorithms, but didn't know the understanding of it went that far back.
9y ago·view thread
comment
Note that the linked paper predates the C++ / C11 memory model, which I would consider essential for anyone implementing lock-free algorithms in C or C++ today. It also long predates an understan…
9y ago·view thread
comment
I like the terminology that Dmitry Vyukov uses[0], where "wait-free" means that any individual thread is guaranteed to make progress, and "lock-free" means that some thread is guar…
9y ago·view thread
comment
Backspace is typically not one grapheme at a time, though it is for emoji. For scripts such as Arabic, it typically deletes ḥarakāt when they are composed on top of a base character. For a bit more di…
9y ago·view thread
comment
It's fixed width with respect to code points, but not with respect to any of the other things mentioned in the linked article. For example, the black heart with emoji variation selector (which ma…
9y ago·view thread
comment
Meet the shadowy overlords who approve emojis[0] [0] http://www.latimes.com/business/technology/la-fi-tn-emoji-q-... …
9y ago·view thread
comment
I've heard of Quill but hadn't seen that document. Looks like interesting reading, thanks!
9y ago·view thread
comment
Yes, let's connect offline. I have thought some about rich text, but haven't implemented anything yet. My general thinking is that attribute spans lend themselves well to the OT model, but t…
9y ago·view thread
comment
I understand where you're coming from. Unfortunately, the academic literature on OT is really difficult. A lot of the papers are flat-out wrong, and even the ones that aren't have tons of co…
9y ago·view thread
comment
Yes, it's here: https://github.com/google/ot-crdt-papers
9y ago·view thread
comment
That's the main substantive difference. I think there are differences in flavor considering that these came from rather different literatures. I have a feeling they'll converge. State-based …
9y ago·view thread
comment
OT is a broad category that includes both commutative and non-commutative operations (in the OT literature, this is usually called the TP2 property). Most practical implementations are non-commutative…
9y ago·view thread