Ticki

ticki.github.io · Personal blog · on HN since 2016

Ticki is a Rust programmer who writes about data structures, compression, hashing, concurrency, and the Redox-related TFS filesystem.

What HN saysHN links it for explanations of LZ4 and SeaHash, which one commenter calls very fast, and for his post on leaving open source.
27HN people shared it
9linked it in comments
24stories submitted
1.3Kstory points
7 months agolast shared
2016people per year2026

Most-shared posts

  1. 1
    Skip Lists Done Right
    5 people · 456 points · first shared 2016 · 82 comments on HN
  2. 2
    Fearless concurrency with hazard pointers
    4 people · 11 points · first shared 2017 · discussion on HN
  3. 3
    How LZ4 works (2016)
    3 people · 178 points · first shared 2017 · 14 comments on HN
  4. 4
    Why I'm leaving Open Source
    3 people · 115 points · first shared 2018 · 72 comments on HN
  5. 5
    SeaHash: Explained
    2 people · 143 points · first shared 2016 · 55 comments on HN
  6. 6
    Making Terminal Applications in Rust with Termion
    2 people · 4 points · first shared 2016 · 1 comments on HN
  7. 7
    A Hoare Logic for Rust
    1 people · 193 points · first shared 2016 · 43 comments on HN
  8. 8
    A Critique of Rust's `std::collections`
    1 people · 85 points · first shared 2016 · 60 comments on HN
  9. 9
  10. 10
    An Atomic Hash Table
    1 people · 14 points · first shared 2017 · 4 comments on HN
  11. 11
    Why Rust's `std::collections` is absolutely fantastic
    1 people · 4 points · first shared 2016 · discussion on HN
  12. 12
    You Are (Probably) Doing Login Systems Wrong
    1 people · 3 points · first shared 2017 · discussion on HN
  13. 13
    Designing a good non-cryptographic hash function
    1 people · 2 points · first shared 2017 · 1 comments on HN
  14. 14
    Collision Resolution with Nested Hash Tables
    1 people · 1 points · first shared 2017 · discussion on HN
  15. 15
    A general construction for rolling hash functions
    1 people · 1 points · first shared 2017 · discussion on HN

What HN people wrote when they linked it

gens · 2021-01-27
It is used, and most every other compression technique was/is used in video games. I was thinking of using LZ4, but it doesn't really work that great on floating point, and images are already compressed (png, jpg, and even BCn, can't be compressed much further). So idk. Good thing about lz4 is that it's very simple[0] and probably faster then memcpy(). http://ticki.github.io/blog/how-lz4-works/
luminati · 2019-07-23
As you pointed out, since this is an adversarial use case, a robust cryptographic hash function is the way to go. [For a non-cryptographic Hash function, SeaHash [1] would be the best choice, which is violently fast!] BLAKE2b would have been the perfect choice given the adversarial nature, as it much secure and faster than MD5. [2] MD5 is so broken, it's really poor choice for any use case - cryptographic (fundamentally broken) or not (fundamentally slow). [1] http://ticki.github.io/blog/seahash-explained/ [2] https://leastauthority.com/blog/BLAKE2-harder-better-faster-stronger-t…
akanet · 2021-01-27
I found this blog post describing some of the mechanics, but I am still interested in reading how this may be implemented branchlessly. http://ticki.github.io/blog/how-lz4-works/
voodootrucker · 2019-07-17
The really frustrating part is that linked lists are actually bad practices in most instances nowadays [0]. And skiplists are better than trees for many in-memory uses [1]. Not that you would usually implement such a thing yourself anyway. So these leetcode style interviews are actively selecting for people who practice 40 year old CS solutions that don't work well on modern hardware, and selecting against folks with real-world experience. [0] https://www.youtube.com/watch?v=YQs6IC-vgmo [1] https://ticki.github.io/blog/skip-lists-done-right/
est31 · 2019-01-29
TFS is very cool. Too sad that ticki has stopped working on it: http://ticki.github.io/blog/why_im_leaving_open_source/ Due to this, I don't know whether it will be ready at all.
jasode · 2017-05-21
I read the TFS github landing page and it didn't explain what the 'T' stood for. I then noticed the author's name is "Ticki"[1]. Therefore, I can only guess that TFS stands for "Ticki's File System". [1]http://ticki.github.io/about/
josteink · 2018-05-07
Replying to a flagged/deleted comment from "nukeop": > From the man who brought you "The Case for Non-Binary Genders" last year. No thanks. Link for the lazy: https://ticki.github.io/blog/the-case-for-non-binary-genders/ While this comment may not be directly "productive", I think the immediate response to it, and in general response to the topic at hand is rather instructive. It shows a general negativity (on both sides) which is obviously detracting from the positive energy and enthusiasm associated with (and often crucial for) sustainable open-source software projects. For all the good various diversity-initiatives has intended to do, I must admit I've yet to see any proof that these actually work and give the promised results. It's their claim and thus their responsibility to prove. Faced with constant reminders (like this) of how they keep causing toxic debates, which again and again causes people to leave (or avoid joining), it's easy to assume that right now these well intended initiatives, executed as they are, represent a net negative. Let's not make FOSS a matter of gender-identities and diversity, but again focus on the product, the commits, the code and the incremental improvements. Towards reaching a common goal, together. We should all focus on the good things which are uniting instead of letting a select few try to force a divisive agenda top-down upon a audience we know will give a mixed reception. Let's not kill something good with something…
ignoramous · 2026-04-19
> Skiplists also win over balanced BSTs when it comes to concurrent access. Balanced Skiplists perform better than Skiplists which may skew otherwise (but balancing itself is expensive). Also, I've have found that maintaining cursors (at different points in a doubly-linked skiplist with million+ entries) instead of always looking for elements from the root/head is an even bigger win. > ConcurrentSkipListMap has been in the standard library since Java 6 for exactly this reason and it holds up well under high contention An amusing observation I lifted from OCaml's implementation (which inturn quotes Donald Knuth) that the MSBs of PRNG values have more "randomness" than LSBs (randomness affects "balance"): https://github.com/ocaml/ocaml/blob/389121d3/runtime/lf_skiplist.c#L86 --- Some neat refs from our codebase: - Skip lists: Done right (2016), https://ticki.github.io/blog/skip-lists-done-right / https://archive.is/kwhnG - An analysis of skip lists, https://eugene-eeo.github.io/blog/skip-lists.html / https://archive.is/ffCDr - Skip lists, http://web.archive.org/web/20070212103148/http://eternallyconfuzzled.c… / https://archive.is/nl3G8

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close