HN user

aleyan

3,850 karma

I, programmer.

You can also see some of the pastels I drew and animated here: http://fooladder.com

Email me at yankov.alex at the popular electronic mail service from Google.

Posts144
Comments187
View on HN
aleyan.com 3mo ago

Why Aren't We Uv Yet?

aleyan
1pts2
news.ycombinator.com 4mo ago

Lists

aleyan
2pts0
research.google 5mo ago

Hard-braking events as indicators of road segment crash risk

aleyan
370pts563
aleyan.com 6mo ago

Show HN: The ASCII Side of the Moon

aleyan
23pts2
en.wikipedia.org 10mo ago

Gall's Law

aleyan
2pts0
aleyan.com 10mo ago

Show HN: The ASCII Side of the Moon

aleyan
8pts1
aleyan.com 11mo ago

LLM Coding Assistant Census 2025

aleyan
2pts0
github.com 1y ago

Show HN: Dela, a Delegating Task Runner

aleyan
1pts0
aleyan.com 1y ago

Task Runner Census 2025

aleyan
30pts14
news.ycombinator.com 1y ago

Tell HN: Amazon order info is getting sold

aleyan
11pts8
twitter.com 1y ago

System for imaging of concealed weapons for schools

aleyan
1pts0
www.space.com 1y ago

US Space Force reveals first look at secretive X-37B space plane in orbit

aleyan
118pts101
davestewart.co.uk 1y ago

The work is never just "the work" (2022)

aleyan
2pts0
gist.github.com 1y ago

Comparison of configuration file languages (2016)

aleyan
21pts16
blog.mutable.ai 2y ago

Auto Wiki now features diagrams and AI revision with instruction

aleyan
3pts0
trackingai.org 2y ago

Monitoring bias in artificial intelligence chatbots

aleyan
1pts0
radar.com 2y ago

Radar Maps Platform

aleyan
152pts80
forrt.org 3y ago

Replications and Reversals

aleyan
6pts0
ncase.me 3y ago

The Evolution of Trust (2017)

aleyan
76pts3
www.nytimes.com 3y ago

Newly Discovered Asteroid 2023 BU came within 2,200 miles of Earth last night

aleyan
4pts0
medium.com 3y ago

Facebook increased satisfaction and usage by sending fewer notifications

aleyan
272pts175
perl.plover.com 3y ago

How Regexes Work

aleyan
73pts10
pixelparmesan.com 3y ago

AI and the Future of Pixel Art

aleyan
173pts100
brickset.com 3y ago

Lego Mindstorms to Be Discontinued

aleyan
3pts0
bigthink.com 4y ago

Kurt Vonnegut on the “shapes” of stories

aleyan
246pts77
www.iea.org 4y ago

27 out of 31 reactors being built since 2017 are Russian or Chinese designs

aleyan
40pts49
cloud.google.com 4y ago

PostgreSQL interface for Spanner: availability at scale

aleyan
2pts0
causality.cs.ucla.edu 4y ago

A Crash Course in Good and Bad Control

aleyan
2pts0
astralcodexten.substack.com 4y ago

Mantic Monday: Let Me Google That for You

aleyan
63pts8
cloud.google.com 4y ago

Design Patterns in Googles Prediction Market on Google Cloud

aleyan
64pts7

There are many ways of making wigglegrams. The first method is to capture multiple horizontally displaced shots together at once. There were cameras designed for this in the 80s that had 4 lenses, with the widest about eye width apart; the intent was for them to be printed as lenticular 3d images. The second is to have a single shot and then synthetically create additional perspective, such as by using a depth map.

I have done both of these. For the first one[0], I used a Nimslo 3D and for the second one[1] I drew with pastels on paper, and then drew a depth map in Photoshop and used it to displace pixels horizontally for the novel perspectives.

The OP's "accidental" wigglegrams are mostly of the first variety but, the horizontal allignment is not locked in and the shots were taken not at the exact same time. That's why the parallax effect isn't as strong and they don't look as good as the first 3 images that came from Nimso/Nishika.

What is intresting is that both of these two methods are relevant in the age of modern iphone. Iphones capture multiple exposures together in live photos, so moving the iphone laterally when shooting creates a "boomerang" wigglegram. Iphones also capture depth map from the LiDAR sensor when shooting in portrait mode.

Between increased hardware capability and genai for synthesizing additional perspectives, we could be living in a golden age of wigglegrams. Alas, they are out of style.

[0] https://fooladder.com/post/115435676962/at-the-concert [1] https://fooladder.com/post/61216111704/starry-venice

"I always thought that Homejoy were planning to automate as much as possible, if not everything, related to cleaning services using robotics and stuff, and that humans were only a temporary measure while developing technology." -devgutt 2015 [0]

This quote about robots doing home cleaning has been living in my head rent free, and refusing to cleanup after itself, for over a decade. It seemed so crazy to me in 2015 that anyone would seriously consider home cleaning robots to be on a realistic timeline. Yet here we are in 2026 and robots could plausibly clean our homes beyond vacuuming and mopping.

Humans training robots now completely makes sense to me. I think Sunday Robotics use of people wearing "skill capture gloves" [1] that both capture data and limit range of motion to that of the robotic hands is particularly clever. I wish success to both these and other companies in the space, so that someday soon there will be just a little fewer housework around the house, and we move a bit closer to the Jetsons.

[0] https://news.ycombinator.com/item?id=9986693 [1] https://youtu.be/QeVnwtCANZ8?si=JoSps5MCxs7zPp0f&t=33

Agree with you on outdated and upper bounds. However, if users are complaining about the interface being difficult, there is probably something there.

Yes, it makes sense that `uv lock` commands only work the lock file, but users have real needs to upgrade direct and transitive dependencies. For transitive dependencies `uv lock --upgrade-package` works, even if a bit wordy. For direct dependencies, `uv lock --upgrade-package` also works, but doesn't touch `pyproject.toml`, which is much more developer visible. As `uv.lock` package versions get ahead of `pyproject.toml`, `pyproject.toml` becomes a less dependable guide to the surface area of dependencies. A friendly `uv upgrade` command would be nice.

The biggest uv ux footgun I have seen by far is `uv pip`. I have seen a lot of projects use uv correctly with pyproject.toml/uv.lock for development, but then use `uv pip install -r pyproject.toml`, which bypasses uv.lock, in their deployment Dockerfiles and ci tooling. Yes, coding agents are to blame for recommending bad `uv pip` patterns because they have so much `pip` in their training sets, but uv should provide some affordances to protect the user.

Sorry for the rant, uv is a great tool, that I think[0] should be used more! Thank you for your contributions to the ecosystem.

[0] https://aleyan.com/blog/2026-why-arent-we-uv-yet

Over on reddit and over here as well people seems to be reacting to the title of the video or the first 5 seconds or just the author. On the original x[1] post however, the top replies are about the subject matter, which is about having agents write tests and refactor code.

And speaking of agents writing tests, I have an ask. The tests agents love to write are in a lot of ways like human written tests, perfunctory and smelly. They are there to check coverage or prompt checkbox, but they barely stress the system under test. I often find that the tests are faking and mocking so many inputs, methods, and side effects, that they aren't testing anything at all. Asking the agent to write the tests first so that they the underlying implementation is more testable has yielded no results.

What has worked for people to get agents to write more testable implementations and better tests?

PS. Reacting to Uncle Bob, I found metric driven agentic refactors just push complexity to outside the scope of the metric. I am finding I need to actively guide the agents for the refactors to actually improve things without increasing the entropy of the codebase.

[1] https://x.com/unclebobmartin/status/2046206145597972849

OP/Author here.

1) 2008: pip, 2012: Conda, 2018: Poetry, 2021: PDM, 2023: Rye, 2024: uv. A new package manager every few years rather than every few months would be more apt. But, yes I agree we shouldn't tool churn for newness sake.

2) Have you tried uv? The speed is nice, but is not what makes it shine.

3) uv not being written in python is a defining positive feature for it. It eliminates the bootstrap problem of having to get a system python with the right setup before you can run your python manager, virtualenv manager, and finally package manager. I haven't had to debug anyones virtualenv or python version issues in a year.

Yes, the angle above the horizon is usually what is most useful because it is used to find something small but visible. In the case of my ascii moon, the angle below the horizon, is there to explain why something is not visible. The Moon is large enough that people can easily find it on their own if it is not obstructed by the Earth itself.

Consider the Moon as viewed from NYC at time of comment [0], it is hiding below the horizon. If you were to look at my website and then at the sky you might become upset that I am reporting the shape of the moon, but obviously it can't be seen. Hence why the website reports the angle below the horizon roughly half the time it isn't visible.

Adding Azimuth and Elevation when the Moon is above the horizon would be for completionism only and not the real enterprise use-cases served by ANSI compliant renderings of the Moon.

[0] https://aleyan.com/projects/ascii-side-of-the-moon/?lat=40.7...

This is a fantastic discovery! Displaying azimuth in my ascii-side-of-the-moon [0] sounds useful, but then I would need to explain the symbol. I am displaying altitude/elevation below horizon, but there doesn't appear to be standard symbol for it. I checked the tables linked from article and there doesn't seem to be a symbol for it.

Maybe this is the opportunity to invent and suggest a symbol for Altitude?

[0] https://aleyan.com/projects/ascii-side-of-the-moon

Great work! While I was building ascii-side-of-the-moon [0][1] I briefly considered writing my own ascii renderer to capture differences in shade and shape of the Lunar Maria[2] better. Ended up just using chafa [3] with the hope of coming back to ascii rendering after everything is working end to end.

Are you planning to release this as a library or a tool, or should we just take the relevant MIT licensed code from your website [4]?

[0] https://aleyan.com/projects/ascii-side-of-the-moon

[1] https://news.ycombinator.com/item?id=46421045

[2] https://en.wikipedia.org/wiki/Lunar_mare

[3] https://github.com/hpjansson/chafa

[4] https://github.com/alexharri/website/tree/master/src

I have a 24GB M5 macbook pro. In ComfyUI using default z-image workflow, generating a single image just took me 399 seconds, during which the computer froze and my airpods lost audio.

On replicate.com a single image takes 1.5s at a price of 1000 images per $1. Would be interesting to see how quick it is on ComfyUI Cloud.

Overall, running generative models locally on Macs seems very poor time investment.

Mise: Monorepo Tasks 10 months ago

If you want to get a single entry point into your repo's task, also consider my tool: dela[0]. It scans a variety of task file definitions like pyproject.toml, package.json, makefile, etc and makes them available on the cli via the bare name of the task. It has been very convenient for me so far on diverse repos, and the best part is that I didn't have to convince anyone else working on the repos to adjust the repos structure.

Dela doesn't currently support mise as a source of tasks, but I will happily implement it if there is demand. Currently [1] I saw mise use on 94 out of 100,000 most starred github repos.

Thank you for allowing this moment of self promotion.

[0] https://github.com/aleyan/dela

[1] https://aleyan.com/blog/2025-task-runners-census/#most-used-...

Oh man, this is a deep mine to dig. I haven't even thought about svg size optimization. The default blog template I used really wants me to use hero images, and the jpgs are already hefty. I just looked at my network panel, and it seems the font files are loaded once per svg on initial load and then are cached.

What is the motivation for viewbox coordinates being at (0,0)? I have been thinking about setting chart gutters so that the graph is left aligned with the text, but this seems like an orthogonal issue.

I have been using SVGs for charts on my blog for a couple of months[0] now. Using SVGs satisfied me, but in all honesty, I don't think anyone else cares. For completeness the benefits are below:

* The charts are never blurry

* The text in the chart is selectable and searchable

* The file size could be small compared to PNGs

* The charts can use a font set by a stylesheet

* The charts can have a builtin dark mode (not demonstrated on my blog)

Additionally as the OP shown, the text in SVG is indexed by google, but comes up in the image sections [1].

The downside was hours of fiddling with system fonts and webfonts and font settings in matplotlib. Also the sizing of the text in the chart and how it is displayed in your page is tightly coupled and requires some forethought.

[0] https://aleyan.com/blog/2025-llm-assistant-census

[1] https://www.google.com/search?q=%22slabiciunea+lui+Nicu+fore...

I have been excited about bun for about a year, and I thought that 2025 is going to be its breakout year. It is really surprising to me that it is not more popular. I scanned top 100k repos on GitHub, and for new repos in 2025, npm is 35 times more popular and pnpm is 11 time more popular than bun [0][1]. The other up and coming javascript runtime, deno is not so popular either.

I wonder why that is? Is it because it is a runtime, and getting compatibility there is harder than just for a straight package manager?

Can someone who tried bun and didn't adopt it personally or at work chime in and say why?

[0] https://aleyan.com/blog/2025-task-runners-census/#javascript...

[1] https://news.ycombinator.com/item?id=44559375

Anscombe's Quartet 11 months ago

That's an amazing addition! Once I read about Simpson's paradox[0], couldn't help but seeing it or suspecting it everywhere. Luckily, it is not a true paradox, and it can resolved if underlying data is available and not just summary statistics.

I recommend putting together the Quintet in one image, so that the original 4 charts, plus the new one are all visible and interpretable together. It will be learning aid for decades to come.

[0] https://en.wikipedia.org/wiki/Simpson's_paradox

Setting aside the reason that hydrating django templates in rust from django is useful in ways that hydrating jinja templates in rust from django isn't useful. Petcat's comment could be useful and the author may not be aware of existing prior art. As engineers, there is sometimes a huge urge to build without looking around first. I am guilty of this myself. When I started on dela [0], I didn't know about 2 alternatives to it; I only learned about them through comments.

[0] https://github.com/aleyan/dela

What an amazing set of data!

The "Generative AI services popularity" [1] chart is surprising. ChatGPT is being #1 makes sense, but Character.AI being #2 is surprising, being ahead of Anthropic, Perplexity, and xAI. I suspect this data is strongly affected by the services DNS caching strategies.

The other interesting chart is "Workers AI model popularity" [2]. `llama-3-8b-instruct` has been leading at 30% to 40% since April. That makes it hands the most popular weights available small "large language model". I would have expected Meta's `m2m100-1.2b` to be more used, as well as Alphabet's `Gemma 3 270M` starting to appear. People are likely using the most powerful model that fits on a CF worker.

As shameless plug, for more popularity analysis, check out my "LLM Assistant Census" [3].

[1] https://radar.cloudflare.com/ai-insights#generative-ai-servi...

[2] https://radar.cloudflare.com/ai-insights?dateRange=24w#worke...

[3] https://aleyan.com/blog/2025-llm-assistant-census/

My sister read me the first chapter of this edition of The Hobbit and refused to read me any more. So I had to read the rest myself to find out what happens. It became the first "grown up" book I ever finished.

When I read LoTR a few years later, these illustrations formed the images of what hobbits, dwarfs, and Gollum looked like in my minds' eye. Decades later, having seen the Peter Jackson films several times, Bilbo still looks wrong to me as I expect Leonov; Gollum looks wrong too for that matter.

The OP postulates two paths for the future: "1: LLM Labs go direct" and "2: LLMs become commodities, wrappers win". I just happened to have published a blogpost on llm code assistants used by GitHub repos[0][1]. Claude Code has just overtaken Cursor as the most popular. Gemini CLI and OpenAI Codex also has a steeper growth curve than Cursor. So on just this question, it looks like the drugs are beating the dealers.

[0] https://aleyan.com/blog/2025-llm-assistant-census/ [1] https://news.ycombinator.com/item?id=44863713

Author here, I agree! So many of our tech decision are driving by vibes rather than numbers. Popularity numbers, like in my post, can at least validate our biases.

Also, I am collecting GitHub data monthly, and intend to do more analysis on it. Taking suggestions on questions people are interested in.

The cited paper shows the results of LLM opinions plotted on a political compass. The other dimension to this is time as these models are getting updated and having their system prompts updated.

My friend has been tracking them since September 2023 here: https://trackingai.org/ . GPT4 seems pretty stable over time, but Llama-2 for example got more conservative in November 2023, and stayed there with only a brief reversion in February 2024.

Math Team 3 years ago

Went to the same school, was on the same math team, but was a year ahead of the author. Quit math team in my junior year because I wasn't at a competitive level, but it was a great time while I was on it. As a SWE, I rarely get to exercise the tenacity and problem solving skills I learned on the math team, but when I do they are "transformative" to the rest of the team.

Nights were for other worthless extracurriculars to pad out our applications. ... The worst part was knowing that it was all going to be extruded into a few lines in an application form, that a committee would review for about ninety seconds

This is the tail wagging the dog; work really hard for 4 years in HS so that the next 4 years will be spent at a comparatively more prestigious college. I don't think we should expect high school students to be able to optimize this correctly themselves, and from my experience guidance counselors weren't particularly helpful. College admissions feel like a local maxima that have a lot of unintended side effects but would be difficult to change.

Personally, I didn't do the extracurriculars that would look good for college, but rather the ones I enjoyed; I didn't study very hard either. Didn't get into Stanford or an Ivy, but I look upon my experience in high school/college fondly rather than bitterly. Life seems to have turned out ok too.

  Location: New York, NY, USA
  Remote: Yes
  Willing to relocate: No
  Technologies: python, javascript, typescript, java, ruby, django, flask, celery, react, postgres, spanner, kubernetes, AWS, GCP
  Résumé/CV: https://www.dropbox.com/scl/fi/dcyfj8y5w15qk2jijwenb/Alexander-Yankov-Resume-2023-07-03.pdf?rlkey=hzado5uym118mfi0orf01slux&dl=0
  Email: contact info in resume
Full-stack/backend engineer with extensive experience in tech companies and finance. Looking to join an early to mid sized startup that is doing something innovative and useful.

If you get a cleaner you like, your best bet is to get their contact info and book directly with them. It will be cheaper than going through the platform, you will get exactly the cleaner you want and you will get a better service.

This disintermediation was a worry, but I don't think this happened frequently enough the justify the fear. It was hard to discern how much this was happening from the data; anecdotally it was rare.

Regarding Homejoy, this article [0] that didn't get much traction at the time but lays out the best theory about their failure.

I was working at its competitor Handy then and it was clear that the dealsite method of customer acquisition was non sustainable. At the time Groupon was super popular. It worked like this: a service provider eg Homejoy would sell a coupon through Groupon for $50 for a "regular" $100 service, $25 would go to Groupon and $25 to Homejoy, Homejoy would also pay $45 to $60 to the cleaner. This made sense for some business like a spa that after getting the customer in the door might upsell a $100 massage (and get 100% of that). It did not work with Homejoy because customers who got a deep discount on a cleaning did not retain and did not get upsold to. Since Homejoy had to pay the cleaner, they would loose $20+ on each such "acquired" customer. LTV was negative.

On top of this, Homejoy needed to raise funds and for that you need to show customer growth. If you spent $1000 to acquire 50 customers one month and none of them retained, you need to spend $1200 to acquire 60 customers the next month, or you won't have growth to show investors. Homejoy needed to spend more and more each month or it wouldn't get its next funding round; which it didn't. I don't know but I believe that Homejoy collapsed at its largest size with the peak number of monthly customers.

Other cited reasons for Homejoy's failure like worker classification lawsuits and worker retention are unlikely to have been the real reasons behind its collapse. Handy would have had the same issues and yet they are still going 7 years later as part of Angie's List with little noise.

[0] https://www.forbes.com/sites/ellenhuet/2015/07/23/what-reall...

Congratulations to the VCMI team. This has been a long time in the making and I hope will help keep HoMM3 community vital for decades to come.

Currently, and for quite some time now, Horn of the Abyss mod has been the premier way to play single player and the most popular way to play multiplayer HoMM3. Really excited to see how the mod (HotA) and the engine remake (VCMI) projects will interact. Will they find a way to work together or will they split the community?

This "ban" is removal of the book from required curriculum for 8th graders rather than from the library system, which is what traditionally referred to as a "book ban". Not that I agree with this particular decision, but school boards must be able to make decisions for what is appropriate in their district. It should be just as easy to add a book to the curriculum as to remove it without summoning undue unwelcome outside attention that something sinister is going on.

I looked briefly through rather lengthy minutes [1] of the meeting. Objections seem to come down to usage of words like "bitch" and phrases like "god damn" that students would get in trouble for using in the hallways according to existing school rules. The participants seemed quite queazy about saying the objectionable words themselves and instead either referred by their abbreviations or spelling them out by letter.

One part of the discussion that was also interesting was they considered censoring the book with whiteout for the offending words and one naked drawing but decided against it. They thought they need to get permission from the author because of copyright laws. I believe these kind of redactions are considered fair use for education under copyright laws.

[1] https://core-docs.s3.amazonaws.com/documents/asset/uploaded_...