HNHacker News
TopNewBestAskShowJobs

jkaptur

2,469 karma · joined December 7, 2014

Contact: joseph.kaptur@gmail.com
submissionscomments
jkaptur··on Don't DRY Your Code Prematurely
What about when you are the boss or tech lead?
jkaptur··on Long distance sound localization with the Raspberry Pi
I've been toying around (in my head) with the idea of using a diff algorithm to align things like this.
jkaptur··on Road planners embrace the diverging diamond interchange
My town has one of these and it seems to work great. I don't love it as a cyclist, but the bike path just goes underneath it, so I absolutely never have to go through it.
jkaptur··on Show HN: Excel to Python Compiler
> We want parity of outputs, not parity in how we get there!

To be clear, though, you don't necessarily have parity of outputs.

It seems strange to me to sacrifice correctness for readable output. I would prefer a deterministic strategy that is always correct and sometimes readable. You could do that by generating an intermediate structure A1=... A2=..., then applying heuristics to say "hey, this enormous column of VLOOKUPs is actually a join", and so on. Maybe LLMs could advise on that, but I'm not sure how you'd check their work...

... Anyway you're the person "in the arena", having actually created something, so well done!

jkaptur··on NoTunes is a macOS application that will prevent Apple Music from launching
https://en.wikipedia.org/wiki/Straw_man
jkaptur··on Grothendieck’s use of equality
It's frustrating that there isn't an easy way to see the "canonical" value and format of a cell (in Sheets or Excel).

Just looking at a cell, it's not trivial to see if it's the number 1 or the string 1 (you can enter text by using a leading apostrophe, but that's not the only way to get text in a cell!). Numbers and strings have different alignments by default, but that can be overridden. The numeric value of the string 1 is 0 if you're using the SUM formula, but it's 1 if you use +. In other words, =A1+A2 does not necessarily equal =SUM(A1:A2)

Then you can format numbers however you like. For example, dates are stored in spreadsheets as days since an epoch (not the Unix epoch). So you can have the number 2 in a spreadsheet cell, then format it as a date, but just the day of the month, and it can appear as 1.

There's rounding, which bit you. 0.95 can appear as 1 if you display fewer decimal places.

Finally, there's the fact that the calculation is done like IEEE 754. Programmers are used to floating point numbers and the fact that properties like associativity don't apply, but that's not obvious to everyone.

jkaptur··on The Flaw of Averages (2020)
I like to say "it's not the variance that gets you, it's the correlation." In my experience, "fat tail" risks are really about incorrect modeling of correlation.
jkaptur··on Fast linked lists
I was talking about this case in particular, where we know the list is basically isomorphic to the call stack.
jkaptur··on Fast linked lists
Another cool aspect of this and (if I understand correctly), where Rust really helps you is that you can explore multiple branches in parallel, since the linked list is immutable.
jkaptur··on GPUs Go Brrr
Maybe a silly question (I don't know anything about this) - how do you program / reprogram it?
jkaptur··on Can Your Programming Language Do This? (2006)
> In fact, if you have two CPUs handy, maybe you could write some code to have each CPU do half of the elements, and suddenly map is twice as fast.

I remember this came up a lot in late-aughts functional programming discussions. But is there any language where this actually works? Where map is just parallel because of course it is?

jkaptur··on How to Use JSON Path
Another issue is that the term "document" is also used to refer to XML or HTML.
jkaptur··on Three ways of handling user input (2022)
Yes. There's nothing particularly magical about any UI framework. They all have to deal with the fundamental fact that UIs are enormously stateful, the state is a function of approximately everything the user has ever done, various inputs arrive asynchronously and unpredictably, responsiveness SLOs are in the 10ms range, and the hardware is generally diverse and off-site.
jkaptur··on Hardest problem in computer science: centering things
A designer once advised me to align an icon with the "typographical center of gravity" - as in, of the "ink". This would make the location of an icon next to text depend on the text itself, not just the font. Obviously, we compromised in practice :)
jkaptur··on 2023 ACM Turing Prize awarded to Avi Wigderson
> The unreasonable effectiveness of randomness led him to think about the nature of randomness itself. He, like other researchers at the time, questioned how necessary it was for efficient problem-solving and under what conditions it could be eliminated altogether. “Initially, it was not clear if this was only our own stupidity, that we cannot remove randomness,” he said. “But the larger question was whether randomness can always be eliminated efficiently or not.” He realized that the need for randomness was intimately tied to the computational difficulty of the problem.

Does anyone have a sketch of how this works? My understanding of complexity classes is that they consider worst case performance. Even if you have a great pseudorandom number generator and a great randomized algorithm, how do you prove that no instance of RNG + seed + problem instance takes exponential time?

jkaptur··on How fuzz testing was invented (2008)
I believe it was invented by Margaret Hamilton and a research assistant during the Apollo project:

"Often in the evening or at weekends I would bring my young daughter, Lauren, into work with me. One day, she was with me when I was doing a simulation of a mission to the moon. She liked to imitate me – playing astronaut. She started hitting keys and all of a sudden, the simulation started. Then she pressed other keys and the simulation crashed. She had selected a program which was supposed to be run prior to launch – when she was already 'on the way' to the moon. The computer had so little space, it had wiped the navigation data taking her to the moon. I thought: my God – this could inadvertently happen in a real mission. I suggested a program change to prevent a prelaunch program being selected during flight. But the higher-ups at MIT and Nasa said the astronauts were too well trained to make such a mistake. Midcourse on the very next mission – Apollo 8 – one of the astronauts on board accidentally did exactly what Lauren had done. The Lauren bug! It created much havoc and required the mission to be reconfigured. After that, they let me put the program change in, all right."

https://www.theguardian.com/technology/2019/jul/13/margaret-...

jkaptur··on Group buys up large tracts of land in Romania to create 'European Yellowstone'
The article says it's the term used by the largest donor to the project.
jkaptur··on The spreadsheet is a simulation machine
This view of spreadsheets is 100% accurate, beautiful, and inspiring. Spreadsheets have brought the power of computation to everyone.

... but I love to contrast this view with the behavior that Joel Spolsky observed: "... We visited dozens of Excel customers, and did not see anyone using Excel to actually perform what you would call 'calculations.' Almost all of them were using Excel because it was a convenient way to create a table. [snip] Suddenly we understood why Lotus Improv, which was this fancy futuristic spreadsheet that was going to make Excel obsolete, had failed completely: because it was great at calculations, but terrible at creating tables, and everyone was using Excel for tables, not calculations." https://www.joelonsoftware.com/2012/01/06/how-trello-is-diff...

jkaptur··on My favourite animation trick: exponential smoothing (2023)
I think the map example is better. Without the animation, you have to figure out visually how far the map moved.
jkaptur··on The hunt for the missing data type
I've often wondered about a missing application: "Excel for graphs".

Just like Excel for tabular data, it would support RAM-sized data (enough to require a computer, but not so much that you need a data center), implement lots of algorithms and visualizations "well enough", and require no programming skill to operate.

As the article says, a lot of our real-world problems are graph problems - why are programmers the only ones who should have the tools to solve them?

jkaptur··on The hunt for the missing data type
I agree with this take - graphs are in an interesting superposition where implementing a large set of algorithms correctly and in their full generality is hard (as the article points out), but getting started with an implementation that solves a particular problem well enough for a particular case is easy and fun.
jkaptur··on Show HN: We built the fastest spreadsheet
> Right click A0 and click "insert row above"

Instead, right click A1 and click "insert row above".

Google Sheets (and, I'm 99.99% sure, Excel) adjust the range inside the SUM to be three rows high.

I've put quite some time into this sort of thing too :)

jkaptur··on Show HN: We built the fastest spreadsheet
Quick bug report: I set A0 and A1 to 1, then set A2 =SUM(A0:A1)+A0+A1. As expected, A2 evaluated to 4. Then I right-clicked on the 1 row header and inserted 1 row above.

Expected: A3 should become =SUM(A0:A2)+A0+A2 and evaluate to 4

Actual: A3 becomes =SUM(A0:A1)+A0+A2 and remains 4 until it is edited, at which point it evaluates to 3.

jkaptur··on FCC rules AI-generated voices in robocalls illegal
It seems like this approach is really popular. Have no spammers/data brokers caught on and started stripping the +identifier?
jkaptur··on Jones Act Contributions to Offshore Wind Difficulties
To be fair, their "About" page says as much: "The Cato Institute is a public policy research organization — or think tank — that creates a presence for and promotes libertarian ideas in policy debates. Our mission is to originate, disseminate, and advance solutions based on the principles of individual liberty, limited government, free markets, and peace."
jkaptur··on Duolingo Cuts 10% of Contractors as It Uses More AI to Create App Content
What an amazing choice of new word - it's "Generation Alpha's first foray into internet culture" https://wikipedia.org/wiki/Skibidi_Toilet
jkaptur··on 23andMe tells victims it's their fault that their data was breached
Users reuse passwords. We've had decades of trying to educate people to do something else (use a password manager! come up with a unique password and keep it in a little book! anything!) but it simply hasn't worked.

That's an engineering fact. It would be good if it weren't true, just as it would be good if virtual memory were indistinguishable from RAM, but it just ain't so.

To be a responsible engineer, you've got to design and build for the real world, and that means not relying solely on username and password for extremely sensitive data.

jkaptur··on DiffDebugging
> I originally posted this page on 2004-06-01... Diff debugging isn't a term that's caught on much in the industry, but I haven't seen a another term generally used to describe it.

I can't speak to 2004, but these days "bisect" is the standard term in my circles (even when we're not actually using git and its bisect command).

It would be interesting to know whether git was the first to associate that word with this activity... especially given it's atrocious naming of everything else :P

jkaptur··on Coinbase targets financially vulnerable young adults
What is going to be different about the next five years vs. the past five years? The point is that inflation happened and the price of Bitcoin in USD went down. Why is that pattern going to change?
jkaptur··on An easy-sounding problem yields numbers too big for our universe
I read "He developed a procedure for constructing systems in which the fastest way to determine whether one state is reachable from another is to map out a sequence of transitions between them." as saying that there is a proof that there is not a way to compute whether the start and end States are connected without constructing the actual path.

I think this is the relevant paper (pdf): https://cpsc.yale.edu/sites/default/files/files/tr63.pdf

← PreviousPage 4 of 17Next →