Satisfying work for the day. One of the items in the Vello pipeline where profiling revealed performance could be improved was computing the bounding boxes of paths. I was using atomic min/max for each path segment to compute bbox union, and that was expensive (1.3ms for paris-30k on M1 Max).
I figured out a way to do it with monoids instead of atomics, and it's now 400µs. The trick is "segmented reduction" which works amazingly well.
I might blog this, but not sure yet; other things to do.
@raph You mean, if you're doing prefix sum with addition, you have to add the base for the workgroup to all the 256 or however many items are in the workgroup, but in this case the min/max from the previous workgroup only propagates up to the first path end, and ultimately you only care about the values at path ends?
@raph Neat, I never read the whole paper but I might have read that part.
@raph Hmm, but by itself monoid scan (APL scan, right? prefix sum) will give you maxes or mins from before the previous path end. I guess you need a weird max (or min) that takes the path-end bit into account, so that max(End(3), NotEnd(2)) is NotEnd(2), and then any standard prefix sum algorithm gives you the right answer?
@SexyCyborg Haha, this is awesome!
@raph This is doing the reduction with min/max in a minimal-depth tree instead of starting from one end?
Doesn't sound too hairy, even though you called the project Vello.
the problem with "let's just ask the user for permission" is that apps will treat it like a war of attrition
maybe in a better world, notifications would only happen when the app/browser page was open. so if you write a spammy app, you'd end up with almost no screen space for other things
meanwhile well behaved apps, users should be allowed to promote notifications to global ones, be it permanently, or just for a set time, and an app shouldn't be able to tell if that's happening or not
@michael_nielsen Btw, I consider any type of axiomatic characterization in mathematics as a form of discovery fiction.
For example, Shannon entropy was characterized by Faddeev as the only continuous function from probability distributions to real numbers that satisfies a very natural chain rule.
I first learned about this from a nice paper by Leinster:
http://arxiv.org/abs/1903.06961
@krita wow, it's almost like Stallman was right all along, when he warned decades ago, that proprietary software can and will spy on its users.
And everyone were saying "that's crazy talk, why would anyone want to spy on MY stuff???".
I keep saying journalists should leave Twitter and use Mastodon, which is better for them in every way. At TechDirt I've posted a somewhat lengthy why-and-how: https://www.techdirt.com/2023/01/04/journalists-and-others-should-leave-twitter-heres-how-they-can-get-started/
“Not your keys, not your coins” now has legal precedent. The judge in Celsius’ bankruptcy hearing ruled that the deposits in yield-bearing Earn accounts belong to Celsius, not the individual holders of those accounts.
Won’t this cause a run on exchanges?
https://www.axios.com/2023/01/04/celsius-bankruptcy-earn-accounts
@afilina Yeah, is a good point. Think we'll make it in 20 years.
I remember how excited I was in the nineties, thinking that a shaggy, open, unpredictable, democratic internet had triumphed over AOL and the other closed commercial networks. Then came surveillence-driven social media.
Could a phoenix be rising from the ashes of Twitter?
@neauoire i made a PL called rever, and the way division was implemented was by calculating both the dividend (I think that's the name; basically the whole number portion) and the remainder. it was a procedure called divmod, which took the 3 inputs (total, zero, divisor) and returned 3 outputs (remainder, dividend, divisor), the running it backwards would give you multiply-add. that's the only way I could see to implement multiplication and division reversibly.
Two thoughts on the Forbes location tracking story.
1 - Tiktok issuing a statement that they knew wasn't true is quite concerning.
2 - That journalists, reporting on a company, have trouble blocking their location from that company is shocking. This isn't blaming the reporters, but rather the people who've designed the location tracking infrastructures, cross-application linkage, and ability to control all that.
https://www.forbes.com/sites/emilybaker-white/2022/12/22/tiktok-tracks-forbes-journalists-bytedance/
@derickflorian There is a stty setting on Linux, onlcr, where the kernel inserts a CR (\r) before each newline (\n, LF) before giving it to the terminal. Programs using cursor addressing usually turn this off.
Teletypes sometimes needed a delay, or maybe a few NUL characters, following the CR character to give the carriage time to return to the left margin before they could process more characters (such as the line feed to advance the paper). There are settings in stty for this as well (crN, ffN, nlN, ofill, ofdel).
Probably at this point we should just repurpose \v for something else.
@derickflorian yeah, is the same thing \n does if your terminal is not configured to convert it to \r\n. \v is basically unused nowadays but in its day would move the printer down to the next printable line on the forms you were printing on
I read a lot. Sometimes I learn things. I like making things. I think reading and doing are complementary.