Skip to main content

The world of humanoid robots is exploding, and new demos are coming out seemingly every day. I'm keeping a list updated with every current humanoid effort that has at least a public demo video. You'll see dozens of projects at all scales, from one guy in his garage, to growing startups, to multinational conglomerates. Even if you follow the field pretty closely, I guarantee there will be at least one or two in this list you haven't seen yet. And there's even one you can buy right now! Scroll on to see them all, starting with some of the lesser known ones:

Another omnidirectional treadmill has been making the rounds this week. This one from Disney looks very cool, with a creative mechanism for moving the feet around that has a lot of advantages.

Unfortunately, the real issues with omnidirectional treadmills can't be solved by changing what happens at the feet, because the problem is all in your head. Specifically in your inner ear; your vestibular system. And this problem is unavoidable because it is rooted in the way we walk and ultimately in the laws of physics. So what exactly is the problem? And why does the idea keep getting traction regardless?

See A Satellite Tonight is my most successful side project so far, with 5 million users since launch in 2019. It's been entirely a solo project, and I've used it as a proving ground for a bunch of tech that I wanted to learn. It took dozens of APIs and services to put together the experience I wanted: The front page of See A Satellite Tonight

In this post I'll describe how it all works. Frontend tech, satellite-related calculations, backend tech, plus a little about my motivations for building the site.

You may know that all numbers in JavaScript are 64 bit double-precision floating point values. This is sometimes convenient and it works pretty well as a default for novice programmers, who are often confused by integer math, and rightfully so when 1 / 2 = 0. Unfortunately, it makes things slow. Doubles take a lot of memory and floating point math is slower than integer math on CPUs. It's also inconvenient if you want to port existing code to JavaScript, because existing code usually expects to use integer math.

Fortunately, there is a way to make JavaScript do integer math, and it works remarkably well!

Shower curtain tension rods are way better than tripods. They are cheap, strong, available everywhere, and designed to look nice permanently installed in a home. They work perfectly installed vertically floor-to-ceiling and take up only one square inch of floor space. Get a cheap camera mount and you're good to go. They also work for non-permanent installation of other small items like baby monitors or security cameras.

I've left a lot of comments on Hacker News since 2009, when I moved over from Slashdot. HN Search is great for finding old comments, but it can't see comment scores, which are private to the author of the comment. I thought it would be interesting to find my highest-voted comments, so I had to scrape my comments from HN myself. Here's how I did it:

I just moved some posts here from an old Blogger blog that I made many years ago. Now that all my posts are here I wanted to redirect the whole old blog to this new one. Blogger doesn't have a built-in way to do it, but it can be done! Here's how:

"Safari on Windows?", you say. "That's impossible! Safari doesn't run on Windows." And you're right! I mean it used to, but Apple stopped supporting Windows way back in 2012. Which is a bummer for web developers who want to test Safari compatibility.

But...

You may have noticed that when you drag something on your screen, it will often lag behind your mouse or finger, as if attached by a rubber band. This is input latency: a delay in the computer's response to your actions.

This is part 2 of a series on input latency. Check the first post for background information about input latency.

This post contains techniques you can use as a developer to reduce input latency in your applications. But first, a discussion of something that you shouldn't do: