Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    A

    Anish Athalye

    anishathalye.com · Personal blog · on HN since 2014

    Anish Athalye writes about playful, research-flavored hacks, including hardware projects, security analysis and distributed systems testing.

    Visit blogRSSHN submissions
    SecurityHardware & ElectronicsProgramming
    What HN says

    HN commenters cite it for the PhotoDNA inversion work and the MacBook touchscreen hack, and point to it as related reading on constraint-based diagram design.

    Stats for nerds
    43HN people shared it
    52linked in comments
    4.2Kstory points
    Jul 2026last shared
    2015people per year2026

    Top posts on HN

    1. 1
      Turning a MacBook into a Touchscreen with $1 of Hardware (2018)
      5 people · 2.5K points · first shared 2018 · 215 comments on HN
    2. 2
      Dropbox as a Git Server
      1 person · 284 points · first shared 2016 · 76 comments on HN
    3. 3
      Experiments in Constraint-Based Graphic Design
      7 people · 273 points · first shared 2019 · 42 comments on HN
    4. 4
      μWWVB: A Tiny WWVB Station
      3 people · 255 points · first shared 2016 · 49 comments on HN
    5. 5
      Lumen: Auto brightness based on screen contents
      1 person · 182 points · first shared 2016 · 62 comments on HN
    6. 6
      Show HN: Git-remote-dropbox – use Dropbox as a true Git server
      1 person · 174 points · first shared 2015 · 60 comments on HN
    7. 7
      Inverting PhotoDNA
      2 people · 131 points · first shared 2021 · 25 comments on HN
    8. 8
      A Guide to Synthesizing Adversarial Examples
      1 person · 123 points · first shared 2017 · 22 comments on HN
    9. 9
      Inverting PhotoDNA (2021)
      7 people · 79 points · first shared 2024 · 22 comments on HN
    10. 10
      An Asynchronous Shell Prompt
      2 people · 67 points · first shared 2015 · 21 comments on HN

    What HN people wrote when they linked it

    • HizonnerDec 2025

      > They're not very good at all (it just uses a GAN over a recovered bitmask),

      I think you're making my point here.

      The first one's examples take hashes of known headshots, and recover really badly distorted headshots, which even occasionally vaguely resemble the original ones... but not enough that you'd know they were supposed to be the same person. Presumably if they had a better network, they'd get things that looked more human, but there's no sign they'd look more like the originals.

      And to do even that, the GAN had to be trained over a database of... headshots. They can construct even more distorted headshots that collide with corporate logos. If they'd used a GAN trained on corporate logos, they would presumably get a distorted corporate logo when they tried to "reverse" any hash. A lot of the information there is coming from the model, not the hash.

      The second one seems to be almost entirely about collisions. And the collisions they find are in fact among images that don't much resemble one another.

      In the end, a PhotoDNA hash is 144 bytes, made from apparently a 26 by 26 pixel grayscale version of the original image (so 676 bytes). The information just isn't there. You might be able to recover the poses, but that's no more the original image than some stick figures would be, probably less.

      Here's [the best "direct inversion" I can find](https://anishathalye.com/inverting-photodna/). That's still using machine learning, and therefore injects some information…

    • bewuethrMay 2021

      I, too, saw this approach on HN first – here: https://news.ycombinator.com/item?id=11071754

      I combined the bare repo approach with a per-machine custom branch approach described in https://www.anishathalye.com/2014/08/03/managing-your-dotfiles/

      The idea is that you have the shared configuration in one repo, and at the end of each config file, you include a local version. The local versions live in a separate repository and use a separate branch for each machine.

      For example, at the end of .bashrc, you'd have

      if [[ -r $HOME/.bashrc_local ]]; then
      . "$HOME/.bashrc_local"
      fi

      and so on, for each config file. My general dotfiles repo is public here, if you want to take a look how I did it for the tools I use: https://github.com/bewuethr/dotfiles

      This still isn't ideal. For example, I use Git submodules for Vim plugins in the shared repo – but maybe I don't need all of that on my Raspberry pi. I feel like at some point, a config file based solution could be better; or using a tool such as https://yadm.io/, which is using bare repos under the hood.

    • csb6May 2021

      Here [1] is a cool project that uses Z3 to make graphics specified by constraints.

      I remember reading an article about someone using Z3 to optimize the placement of cutout drawings on a piece of paper (kind of like a spritesheet) and optimizing for the smallest possible area in order to reduce the use of paper/materials. However, I can't seem to find the article anywhere.

      One more use of z3 is as one of the available solvers for a tool called gnatprove [2], which is used to prove/verify the correctness of programs written in the SPARK subset of the Ada programming language. SPARK is used to program safety-critical aeronautical/military projects.

      [1] https://www.anishathalye.com/2019/12/12/constraint-based-graphic-design/

      [2] https://docs.adacore.com/spark2014-docs/html/ug/en/gnatprove.html

    • anishathalyeApr 2020

      https://www.anishathalye.com/

      I write mostly about playful hacks that I have worked on. Many posts tend to have a researchy flavor.

      Some of my favorites:

      * Turning a MacBook into a touchscreen with $1 of hardware: https://www.anishathalye.com/2018/04/03/macbook-touchscreen/

      * Doing graphic design with an SMT solver: https://www.anishathalye.com/2019/12/12/constraint-based-graphic-design/

      * Building a watch stand that automatically sets the time on my watch: https://www.anishathalye.com/2016/12/26/micro-wwvb/

      (Love this idea for an Ask HN, by the way. Like other commenters, I wish HN had a way of filtering for blog posts written by HN users.)

    • mikhailfrancoJun 2020

      There are a few things that need to come together for a complete diagram publishing system:

      * Converting hand-drawn sketches to tidy diagrams [1]

      * Converting tidy diagrams to look hand-drawn [2]

      * A textual DSL for diagrams (e.g. Penrose)

      * Support of declarative constraints for the diagram [3]

      * Animation of the diagram [4][5]

      [1] Paper https://www.fiftythree.com/think

      [2] rough.js https://github.com/pshihn/rough

      [3] Basalt https://www.anishathalye.com/2019/12/12/constraint-based-graphic-design/

      [4] Distill https://distill.pub/2017/momentum/ source https://github.com/distillpub/post--momentum

      [65] g9.js https://omrelli.ug/g9/

    • benrbrayJun 2020

      See also Anish Athalye 2019, "Experiments in Constraint-based Graphic Design" [1], which takes a similar approach to diagram creation. I'd also recommend looking at Keenan Crane's other research [2], in particular his book on Discrete Differential Geometry, which inspired some of the diagrams you see on the Penrose site.

      [1]: https://www.anishathalye.com/2019/12/12/constraint-based-graphic-design/#case-studies
      [2]: http://www.cs.cmu.edu/~kmcrane/

    Related

    Sevargsevarg.net22 people

    Analyzing iOS 16 Lockdown Mode: Browser Features and Performance

    Sevarg
    Personal · last shared 2026
    Daring Fireballdaringfireball.net1.8k people

    Facebook is an attack on the open web

    Daring Fireball
    Personal · last shared 2026
    Soatoksoatok.blog131 people

    The insecurity of telecom stacks in the wake of Salt Typhoon

    Soatok
    Personal · last shared 2026
    Samy Kamkarsamy.pl187 people

    NAT Slipstreaming

    Samy Kamkar
    Personal · last shared 2025
    Ignore the Codeignorethecode.net112 people

    Oberon (2009)

    Ignore the Code
    Personal · last shared 2026
    GNOME Blogsblogs.gnome.org490 people

    AirPods fast connect security vulnerability

    GNOME Blogs
    Company · last shared 2026
    Light Blue Touchpaperlightbluetouchpaper.org164 people

    Making sense of the alleged Supermicro motherboard attack

    Light Blue Touchpaper
    Publication · last shared 2025
    Project Zerogoogleprojectzero.blogspot.com550 people

    Reading privileged memory with a side-channel

    Project Zero
    Company · last shared 2025