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
Good point, done. Otherwise, it would look like a pretty ham-handed attempt at sock-puppetry :)
comment
No, but I did have a conversation with Nate Smith, also involved with that project. That was before I was able to release this code, though.
comment
Author of the posted article here. For the last year or so, I've been doing a deep dive into operational transformation, trying to figure out why it's so hard, and whether CRDT is a better a…
comment
I think "nicely and strictly" is an overstatement here. You still have to deal with southeast Asian scripts (which require a dictionary to find line break opportunities), and then there'…
comment
An even trickier way to do this is to rotate right by the power of two factor between doing the multiply and the compare.
comment
Yes, just last week. I'm applying for a batch at Recurse Center as a sabbatical this fall, and wanted to put in something to show off a bit.
comment
Duh, you're right on both counts. It should work for any odd divisor, I was just computing the inverse in a dumb way when I tried out other divisors. And I should have stated u32 wrapping arithme…
comment
Here's a trick I came across recently which I found quite neat: you can test for divisibility by 3 using (x * 0xaaaaaaab) < 0x55555556. Same concept works for 5 and 15, but sadly not other fac…
comment
I think I missed that, thanks for the reference.
comment
Very happy to see this become public, and it looks very impressive. I'm blushing a bit. Patrick and I indeed had very stimulating conversations, but all the hard work figuring out how to map rend…
comment
It is for me.
comment
Very cool, looks like clean code. Have you compared performance against https://github.com/google/music-synthesizer-for-android/tree... ? I obsessed quite a bit over the NEO…
comment
If I'm reading right, this is the same problem as http://accidentallyquadratic.tumblr.com/post/153545455987/ru... , only it hasn't been fixed yet in Swift?…
comment
And for programmers who are desperate to use type-level integers, there exists typenum, which is an encoding of integers in Rust's type system. They can also be used to parameterize array length …
comment
I looked at finger trees as a possible basis for the string representation in xi-editor, but ended up going with a simpler b-tree based approach. The better asymptotic bounds for doing manipulations a…
comment
An exception (large complicated Rc-trees) is the rope in xi-editor. If you load a very large file, the operation of letting go of the last reference is potentially a large enough pause to have an effe…
comment
I heard a little about Niel's next project last night, and it does sound exciting. I look forward to trying it out.
comment
People interested in this stuff might also want to take a look at the rope in https://github.com/google/xi-editor . It's not a finger tree, rather it's based on a B-tree…
comment
I use monoid homomorphisms extensively in xi-editor, and have a couple of slides on it at my RustConf talk earlier this month. I hope to be writing up the ideas in more detail soon (both what I'v…
comment
Or use fancy-regex. Not ready for prime-time, but potentially the best of both worlds.
comment
I was also there as one of the presenters, and concur, it was a great experience. The strength of the community is absolutely one of the threads that ran throughout the conference. I've been invo…
comment
Someone claims ( https://groups.google.com/forum/#!topic/sci.crypt/JSSM6Nbfwe... ) that it's just as easy to spoof 64 bit as 32 bit keys. I have no idea whether to b…
comment
Just to point out, this attack goes back at least 22 years. According to [this thread]( https://groups.google.com/forum/#!topic/sci.crypt/JSSM6Nbfwe... ), credit is due t…
comment
Thanks for the detailed comment. I think you're going for something much more complicated than what I had in mind. My idea is simply to have two modes other than accum buffer -> 8 bit alpha ma…
comment
Total agreement, well said.
comment
The specific claim I'm making is that Rust has language (in the form of making it the default in `for` loops) and library (in the form of the `Iterator` trait) support for this pattern. Further, …
comment
I think there is value in applying these ideas to SVG rendering as well. There are of course a bunch of things that are different. For SVG, buffers get large enough you'd probably want to do _som…
comment
I did some measurements of rusttype and found it to be even slower than FreeType. That said, this is all open source and so I have confidence that the improvements will flow all the way, either throug…