tinkering.xyz

tinkering.xyz · Personal blog · on HN since 2018

tinkering.xyz is a personal programming blog covering Python, Rust, Nix, optimization, and small-scale scientific computing.

What HN saysHN links it mainly for its post on adding macros to Python by abusing type annotations, which commenters cite as an unintended use of annotations.
15HN people shared it
2linked it in comments
20stories submitted
198story points
4 months agolast shared
2018people per year2026

Most-shared posts

  1. 1
    Bringing macros to Python by abusing type annotations
    3 people · 76 points · first shared 2018 · 17 comments on HN
  2. 2
    I don't care that it's X times faster
    3 people · 7 points · first shared 2026 · discussion on HN
  3. 3
    An Optimization Story
    2 people · 82 points · first shared 2022 · 11 comments on HN
  4. 4
    April Cools 2024: Physics Edition
    2 people · 6 points · first shared 2024 · discussion on HN
  5. 5
    Nix journey part 0: Learning and reference materials
    2 people · 4 points · first shared 2023 · discussion on HN
  6. 6
    Evaluating a Process Manager
    2 people · 3 points · first shared 2024 · 1 comments on HN
  7. 7
  8. 8
    Today we launched Flox 1.0
    1 people · 3 points · first shared 2024 · 1 comments on HN
  9. 9
    Introduction to Procedural Macros
    1 people · 2 points · first shared 2018 · discussion on HN
  10. 10
    I wrote an API client for my water-cooled bed
    1 people · 1 points · first shared 2026 · discussion on HN
  11. 11
  12. 12
  13. 13
  14. 14
    Introduction to proc macros
    1 people · first shared 2019

What HN people wrote when they linked it

DonaldPShimoda · 2019-05-15
Although not really what they were intended for, somebody used annotations to provide a macro system [0]. [0] https://tinkering.xyz/abusing-type-annotations/
bsurmanski · 2019-01-27
For anyone else looking into Rust, I've been experimenting in it for the past month. Heres my thoughts: It advertises itself as a systems level language for the new age, but to me it feels like a functional language in disguise. The borrow checker enforces an unchained functional style (You may have 1 unique mutable reference or may have many immutable references). This sounds bad if you're used to pointer slinging, but once you get used to the peculiarities I find it forces me to write better quality code. The package management is the most refreshing feature. It's a pain to rewrite my personal libraries in each language I use, but I found that most of the things I needed were already available at higher quality than I would have done. (And using them is a single config line). For a 'low level language' they make it pretty hard to do some 'low level' things. Example's I've found include: * writing a doubley linked-list. Consensus is "don't use linked-lists. The stdlib has better tools * Reading a file into a struct. They make it surprisingly difficult to say "hey, read these 10 bytes, its this struct". Consensus is to use more structured file formats like json or protobufs. There's libraries for reading those things. Error handling is similar in style to Go, but it get rid of a lot of the boilerplate. The '?' operator effectively acts as if err return err. The macro system is really nice. I don't write many macros, but it does mean I can use other people's powerful…

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