jahfer

✨ Principal developer @ Shopify

πŸ“… Joined in 2012

πŸ”Ό 338 Karma

✍️ 20 posts

πŸŒ€
15 latest posts

Load

πŸ‘€jahferπŸ•‘6moπŸ”Ό9πŸ—¨οΈ0
πŸ‘€jahferπŸ•‘9moπŸ”Ό695πŸ—¨οΈ297

(Replying to PARENT post)

I haven’t explored this space in a while, but I have a couple of examples that could be helpful. A Clojure library of mine [0] has a decent README with some background reading on how to use operational transform.

I also reimplemented it in a surprisingly tiny amount of OCaml [1] which was a fun way to learn that language :)

[0]: https://github.com/jahfer/othello [1]: https://github.com/jahfer/othello-ocaml

πŸ‘€jahferπŸ•‘2yπŸ”Ό0πŸ—¨οΈ0
πŸ‘€jahferπŸ•‘2yπŸ”Ό2πŸ—¨οΈ2
πŸ‘€jahferπŸ•‘2yπŸ”Ό211πŸ—¨οΈ194
πŸ‘€jahferπŸ•‘2yπŸ”Ό3πŸ—¨οΈ0
πŸ‘€jahferπŸ•‘2yπŸ”Ό2πŸ—¨οΈ0
πŸ‘€jahferπŸ•‘3yπŸ”Ό2πŸ—¨οΈ0

(Replying to PARENT post)

Welcome! Feel free to ping me on Slack if you’ve got questions and don’t know who to ask (:
πŸ‘€jahferπŸ•‘4yπŸ”Ό0πŸ—¨οΈ0
πŸ‘€jahferπŸ•‘4yπŸ”Ό2πŸ—¨οΈ0
πŸ‘€jahferπŸ•‘5yπŸ”Ό7πŸ—¨οΈ0

(Replying to PARENT post)

The police in Canada are due plenty of scrutiny for how altruistic their departments might be [1]

> The Ontario government ended police access to a COVID-19 database on July 22 after a court challenge by civil rights groups.

> Information released during that legal process revealed Thunder Bay police had searched the database more than 150 times per day, on average, between April 17 and July 22, according to the CCLA. That amounts to 14,800 searches, or a rate ten times the average number of searches by other police forces across the province.

> Thunder Bay had fewer than 100 reported COVID-19 cases during the time the data was available to police.

[1] https://www.cbc.ca/news/canada/thunder-bay/thunder-bay-polic...

πŸ‘€jahferπŸ•‘5yπŸ”Ό0πŸ—¨οΈ0
πŸ‘€jahferπŸ•‘5yπŸ”Ό1πŸ—¨οΈ0

(Replying to PARENT post)

A number of years back, I wrote an OT implementation in Clojure/ClojureScript as a hobby project [1] and learned a lot along the way. I even extracting out the core client/server implementations to their own package [2].

It's an incredibly fun topic, and one that's also really challenging. It also gave me first-hand experience with fuzz-testing where I could simulate all kinds of concurrent-edit conflicts and ensure both clients came out with the same end-result. While the end client/server implementations are working, it was a lot more effort than I anticipated building a full-fledged editor on top. I was too stubborn at the time to attempt to integrate with existing RTEs though, so the most notable part of the project was the core lib, not the end product.

For those interested in implementing it for themselves, I can't recommend this piece [3] by @djspiewak enough.

[1] https://github.com/jahfer/ot [2] https://github.com/jahfer/othello [3] http://www.codecommit.com/blog/java/understanding-and-applyi...

πŸ‘€jahferπŸ•‘6yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

http://ddg.gg is a working alternate domain (:
πŸ‘€jahferπŸ•‘7yπŸ”Ό0πŸ—¨οΈ0