HNHacker News
TopNewBestAskShowJobs

blt

5,194 karma · joined May 2, 2012

submissionscomments
blt··on GitHub was down
Making logins required to view twitter was the ultimate bed shitting move. The whole point of twitter was to be a broadcast medium. Tweets were viewable without following or logging in. There is a huge vacuum in that space now.
blt··on Go is my hammer, and everything is a nail
Operator overloading can be bad when abused for non-numeric types. But for numeric types, it is indispensable.

It's not hard to remember that `__add__` is using extra resources when I'm working with big matrices in NumPy.

blt··on Go is my hammer, and everything is a nail
Julia looks like a great language, but has the "time to first plot" issue been fixed yet? I don't want a REPL-centric workflow.
blt··on Go is my hammer, and everything is a nail
I really like most aspects of Go, but as someone who writes a lot of numerical code, no operator overloading is a deal breaker. It's so hard to accept something like Add(Scale(s1, vec1), Scale(s2, vec2)) over s1 * vec1 + s2 * vec2. So I stick with Python and C++ for now.

Rust is really appealing as a C++ replacement, but it has too many rules to replace Python for one-off scripts. Still need to try Nim and Swift, I guess...

blt··on Okay, I Like WezTerm
It's not just the language/library: build systems are also a big obstacle for x-platform GUI apps in C.
blt··on Tensors, the geometric tool that solved Einstein's relativity problem
There is no geometric meaning. It's a really bad name.
blt··on Launch HN: Airhart Aeronautics (YC S22) – A modern personal airplane
stall AoA depends on flaps though?
blt··on Launch HN: Airhart Aeronautics (YC S22) – A modern personal airplane
MPG-wise sure. Emissions-wise almost certainly not. Airplanes don't have catalytic converters, exhaust recirculation, etc.
blt··on I prefer rST to Markdown
If the author is here: Before the first code display, where you write:

    > Here's how to make an image in html:
I think you meant "markdown" instead of "html".
blt··on Our audit of Homebrew
I got sick of Homebrew after a while and tried switching to MacPorts, but it feels like an endless uphill battle when so many packages only offer source and Homebrew distributions.
blt··on Bayesian Statistics: The three cultures
I also thought it was silly, but maybe they mean that frequentist methods still have analytical solutions in some settings where Bayesian methods must resort to Monte Carlo methods?
blt··on My Favorite Algorithm: Linear Time Median Finding (2018)
I am not the original commenter, but I (and probably many CS students) have had similar moments of clarity. The key part for me isn't

> there might be an even faster linear algorithm,

but

> it's possible to do selection of an unsorted list in O(n) time. At one point, we didn't know whether that was even possible.

For me, the moment of clarity was understanding that theoretical CS mainly cares about problems, not algorithms. Algorithms are tools to prove upper bounds on the complexity of problems. Lower bounds are equally important and cannot be proved by designing algorithms. We even see theorems of the form "there exists an O(whatever) algorithm for <problem>": the algorithm's existence can sometimes be proven non-constructively.

So if the median problem sat for a long time with a linear lower bound and superlinear upper bound, we might start to wonder if the problem has a superlinear lower bound, and spend our effort working on that instead. The existence of a linear-time algorithm immediately closes that path. The only remaining work is to tighten the constant factor. The community's effort can be focused.

A famous example is the linear programming problem. Klee and Minty proved an exponential worst case for the simplex algorithm, but not for linear programming itself. Later, Khachiyan proved that the ellipsoid algorithm was polynomial-time, but it had huge constant factors and was useless in practice. However, a few years later, Karmarkar gave an efficient polynomial-time algorithm. One can imagine how Khachiyan's work, although inefficient, could motivate a more intense focus on polynomial-time LP algorithms leading to Karmarkar's breakthrough.

blt··on Ask HN: Fast data structures for disjoint intervals?
Totally agree with other comments that a sorted array will be hard to beat. I don't see how binary search could help with the "look for the next availability" query, but even a linear search could be fast on a strong CPU with cache prefetching, out-of-order execution, etc.

A few thousand elements is still small for a computer. I would be curious to see a benchmark comparing sorted arrays of intervals against the fancier structures.

blt··on Shape of Motion: 4D Reconstruction from a Single Video
the first HyperNeRF cat video is quite interesting-looking and surreal!
blt··on MicroPython Smartwatch
no hardware interrupts? that seems like a big limitation for a microcontroller environment.
blt··on Well-known paradox of R-squared is still buggin me
I'm no statistician, but the whole premise seems mismatched. Why are we using a tool from regression to analyze a classification problem?
blt··on The physics of airplane flight
Yes, the wright flyer came fairly soon after internal combustion engines became light enough.
blt··on Figma Slides
I love Keynote, but after spending a lot of time in LaTeX Beamer when almost anything can be changed temporally within a slide using overlays, Keynote has frustrating limits. For example, you can't animate changing the background color of a table cell.

Also, its tools for editing embedded videos are quite less capable than PowerPoint's.

Not sure if PowerPoint can do the table cell thing. But overall, I still feel the perfect slide making software doesn't exist yet.

blt··on Do not confuse a random variable with its distribution
In the bullet point definition,

> the function which maps sample space outcomes to numbers,

the "numbers" referred to in the codomain are not probabilities. Similarly, in the Wikipedia definition,

> a measurable function from a sample space... to a measurable space,

the "measurable space" codomain has nothing to do with probability of events. Random variables are related to probability distributions/measures, but they are not the same kind of mathematical object.

As a concrete example, consider gambling on a fair coin flip. We can bet 1 unit of money on Heads and define a random variable for the amount of money we win/lose. First we set up the probability space. The sample space is the 2-element set of coin sides, Ω = {H, T} (Heads and Tails). The event set (aka sigma-algebra) F is the power set of Ω: F = {{}, {H}, {T}, {H, T}}. The probability measure assigns probability 0 to the event {}, probability 0.5 to each of the events {H}, {T}, and probability 1 to the event {H, T}.

Now, we can define the random variable of our winnings by the function X mapping Ω to the real numbers by Χ(ω) = 1 if ω = H, -1 if ω = T.

So, within the setting of the probability space (Ω, F, P), the random variable is defined by the function X, which does not map anything to a probability. It maps coin sides to real numbers, including negative ones!

We have not yet constructed any object that gives the probabilities of the possible values of X. The only thing that "maps an outcome to a probability" in our setup so far is the measure P, but that is defined independently of our numeric random variable. If we want to talk about the probabilities that X takes the values -1 and 1, we are talking about the pushforward measure of P by X. This is another mathematical object, distinct from the random variable X itself.

This is one of the points of the article. Suppose we define another random variable Y for the winnings of the person we are gambling against: Y(ω) = -1 if ω = H, 1 if ω = T. Now X and Y are two different random variables, but they have the same distributions! The pushforward measures of P by X and Y both put probability 0.5 on the measurable sets {-1} and {1}.

blt··on Do not confuse a random variable with its distribution
The standard definition is the one given in the two bullet points at the top of the article we are discussing. Or, in more detail, at https://en.wikipedia.org/wiki/Random_variable#Definition.
blt··on Do not confuse a random variable with its distribution
> The random variable X is a function mapping the outcome to its probability

This is simply wrong. Random variables are not defined this way.

blt··on Exponentially Better Rotations (2022)
If you are referring to slerp, the matrix version is trivial using the log and exp maps.

    slerp(A, B, t) = exp(t log(B A^T)) A
Something more complex like splines, I am not familiar with the algorithms used for quaternions. I would bet they use Lie algebraic operations, but do they actually use anything specific to quaternions?

Not disagreeing that quaternions have some computational advantages over matrices, but most of the points people repeat as "advantages of quaternions" are really "advantages of proper Lie group/algebra operations over Euler angles" that are independent of matrix vs. quaternion representation.

blt··on Exponentially Better Rotations (2022)
When you say "all quaternions" did you mean "pure imaginary quaternions"?
blt··on The GJK Algorithm: A weird and beautiful way to do a simple thing
Interesting question. Seems like interior-point methods might terminate quickly when the overlap is significant. You could probably add some clever early stopping conditions too.
blt··on The Mythical Non-Roboticist: Wouldn't it be great if everyone could do robotics?
No, I want to set an alarm at 6:30 am because I know I need to be at work early at 8am tomorrow. The alarm time is not derived from the current time in any way. "8 hours from now" is helping me verify that I didn't mess up the day or am/pm.

If I used timers I would have to carefully subtract the desired wake up time from the current time. It's not the same at all.

blt··on Ship Something Every Day
This is only reasonable if internal docs, design notes, research notes, etc. count as shipping.
blt··on The Mythical Non-Roboticist: Wouldn't it be great if everyone could do robotics?
The problem can't be solved with the information in the global variables. You need to know the arm lengths and the positions of the head and shoulders. The info is all hidden in `draw()` but I don't want to reverse-engineer it.
blt··on The Mythical Non-Roboticist: Wouldn't it be great if everyone could do robotics?
Recently switched from Android to iPhone and was dismayed that Apple doesn't have the "Alarm set to 8 hours from now" confirmation. Such a simple and effective UX. Overall I was frustrated with Android but it gets a few things right.
blt··on In highly connected networks, there's always a loop
In case the author is reading, some places that could be clarified:

> Scatter a bunch of points in a plane. Connect some of them with lines. That’s all a graph is.

This may mislead the uninitiated reader to think that the definition of a graph includes vertex locations in R^2.

> Over the years, mathematicians worked to reduce the number of edges Hamiltonian graphs had to have.

The article is about showing that certain graph properties guarantee the existence of a Hamiltonian cycle. But the logical structure of this sentence implies the converse: showing that the existence of a Hamiltonian cycle guarantees other properties. But all it guarantees is |E| >= |V|.

blt··on GNU Justified Public License
I've never seen code with a long comment unbroken. 120 columns maybe, but never like 1000.

What if the comment were indented? In most editors, the wrapped part would start at column 0 and break the appearance of indentation.

← PreviousPage 4 of 34Next →