Christian S. Perone

blog.christianperone.com · Personal blog · on HN since 2015

Christian S. Perone writes technical posts on machine learning, PyTorch, LLVM, geometry, and data pipelines.

What HN saysHN commenters cite his article on Google's S2 geometry library, cells, and the Hilbert curve as a useful explainer when S2 documentation is scarce.
27HN people shared it
11linked it in comments
59stories submitted
1.4Kstory points
4 months agolast shared
2015people per year2026

Most-shared posts

  1. 1
  2. 2
  3. 3
    Large language model data pipelines and Common Crawl
    3 people · 142 points · first shared 2023 · 12 comments on HN
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
    PyTorch – Internal Architecture Tour
    1 people · 193 points · first shared 2018 · 22 comments on HN
  12. 12
  13. 13
  14. 14
  15. 15
    Real-time Drone object tracking using Python and OpenCV
    1 people · 110 points · first shared 2015 · 24 comments on HN

What HN people wrote when they linked it

alasdair_ · 2019-03-28
>You could probably do this with other systems, but the goal is to allow everyday people to be able to pack a short string in a tweet and have everybody else know exactly where they mean. 89c25855b9b That's the S2 string for a section of Times Square, NY. Usefully "89c25855b" is a well-defined, less precise location comprising a larger area. You can go up or down in levels of precision easily and everything can be stored as a single 64-bit integer with lots of extremely useful properties, (e.g. the use of the Hillbert Curve with all of it's benefits, like localization in address space and real space - see http://blog.christianperone.com/2015/08/googles-s2-geometry-on-the-sph… If your system adds more benefits than this, I'd love to hear more about it!
gfrangakis · 2018-01-07
Library also available in Java[0] and to an extent in Golang[1], though the latter is incomplete. S2 is fantastic for geofencing. Arbitrary regions can be covered by a set of S2 cells of varying level. A point (lat/lon) can be converted to a S2 cell of the smallest level (around a cm^2 of area on the sphere). Checking to see if one S2 cell is contained in another amounts to searching an integer range, since all children of a given S2 cell have IDs that fall within a fixed ranged. See also [2] [0] https://github.com/google/s2-geometry-library-java [1] https://github.com/golang/geo [2] http://blog.christianperone.com/2015/08/googles-s2-geometry-on-the-sph…
perone · 2024-07-24
I wrote an article about it and S2 some time ago as well for those interested: https://blog.christianperone.com/2015/08/googles-s2-geometry-on-the-sp…
vogtb · 2018-08-30
I was playing around with s2 a year or two ago, and it was surprisingly difficult to find information on it, so FWIW here are some links I was able to find at the time if you're looking for some historical reading on s2: Google Presentation on S2: https://docs.google.com/presentation/d/1Hl4KapfAENAOf4gv-pSngKwvS_jwNV… Christian Perone's blog post on it: http://blog.christianperone.com/2015/08/googles-s2-geometry-on-the-sph… Google Code Archive: https://code.google.com/archive/p/s2-geometry-library/ Java Implementation: https://github.com/rschreijer/s2-geometry-library-java
dweekly · 2017-06-13
Here is a writeup on Google's S2 library for considering addressing the surface of the Earth as 1D, using Hilbert Curves. http://blog.christianperone.com/2015/08/googles-s2-geometry-on-the-sph… And 2015 HN thread: https://news.ycombinator.com/item?id=10066616
haney · 2017-06-07
Are you familiar with the S2 library for mapping lat/lon into a 1d space? (http://blog.christianperone.com/2015/08/googles-s2-geometry-on-the-sph… any idea what the tradeoffs would be between this and S2?
cletus · 2017-01-30
I'm surprised there's no mention of a rather successful and efficient way of doing this in the real world: Google's S2 geometry library [1]. Basically the earth can be covered in almost aquare tiles down to about 1cm^2 with 64 bit integers. [1] http://blog.christianperone.com/2015/08/googles-s2-geometry-on-the-sph…
Houshalter · 2016-08-10
Infact someone has run word2vec on the Voynich manuscript: http://blog.christianperone.com/2016/01/voynich-manuscript-word-vector… (web archive while it's down: http://web.archive.org/web/20160205003817/http://blog.christianperone.… Such methods could someday completely decode the thing, but for now they just show the relationships between words and different clusters of words, not their meaning. Of course we have no idea how the Voynich manuscript is encrypted (which would make the assumptions of word2vec wrong), or if it even has any meaning at all. And it's an incredibly small dataset compared to modern text corpuses, so there is probably significant uncertainty and overfitting. And other problems like inconsistent spellings, many errors in transcriptions, etc. But in principle this is a good strategy. >how would a person do if they were locked in a room with lots of books written in a language unknown to them? If you spent all day reading them, for years, and you somehow didn't get bored and kept at it, eventually you would start to see the patterns. You would learn how "slithy toves" are related to "brillig", even if you have no idea how that would translate to English. Study it long enough, and you may even be able to produce text in that language, indistinguishable from the real text. You may be able to predict the next word in a sentence,…
TensorFlow: https://www.tensorflow.org/ TensorFlow Serving: https://github.com/tensorflow/serving ReCeption (actually they call in Inception v3. Not sure where I got the ReCeption name - though I'm sure I read it somewhere?): https://www.tensorflow.org/versions/r0.7/tutorials/image_recognition/i… Using a SVN on neural network extracted features: http://blog.christianperone.com/2015/08/convolutional-neural-networks-… If you want a quick and dirty version here's some Python to create a web service that calls a Caffe based Image recognizer: https://gist.github.com/nlothian/c3519adb81b3452c1938
espeed · 2016-12-17
Thanks for the info. I'm looking at this from the perspective of designing a backend datastore and query engine for a knowledge system. The idea is to encode a spatial data structure (similar to Google's S2 Geometry Library [0]) that enables content-based addressing of non-spatial data types for data fusion. One idea is to make a lattice of unicode characters that builds up to combination of words a la Formal Concept Analysis [1] -- on one level, the characters compose into words that represent properties (key/value pairs), and then the KV pairs compose into higher-level objects. Each property and higher-level object is encoded with an integer derived from its constituent objects/properties, and each object is encoded in such a way that its constituent objects/properties can be determined algorithmically from the integer without having to traverse the structure [2] -- ANS encoding [3] embedded into a space with a VI metric (https://en.wikipedia.org/wiki/Variation_of_information) [4] might make this work. Have you played with this type of design? [0] http://blog.christianperone.com/2015/08/googles-s2-geometry-on-the-sph… [1] https://www.youtube.com/watch?v=Xuxm929tIRY [2] http://www09.sigmod.org/sigmod/record/issues/0506/p47-article-tropashk… [3] https://en.wikipedia.org/wiki/Asymmetric_Numeral_Systems [4]…

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