HN user

_bittere

27 karma
Posts17
Comments16
View on HN
www.npmjs.com 4mo ago

Agents kept getting stuck searching for Solar icons; I built a CLI to solve this

_bittere
1pts1
github.com 4mo ago

Show HN: Hat v0.7.0 – Fast, local automatic file compression and conversion

_bittere
4pts0
bittere.substack.com 5mo ago

But How Do LLMs Work? (Part 2: Speak My Language)

_bittere
1pts0
github.com 7mo ago

Show HN: Hat v0.2.0 – An Automatic Image Compressor (support for more formats)

_bittere
1pts0
github.com 7mo ago

Show HN: Hat – An Automatic Image Compressor

_bittere
1pts0
bittere.substack.com 7mo ago

(Accidentally) Training a Dog → Cat Autoencoder

_bittere
1pts0
bittere.substack.com 8mo ago

But How Do LLMs Work? (Part 1: The 3 Musketeers of Communication)

_bittere
1pts0
bittere.substack.com 8mo ago

Generation at the Speed of Thought: Speculative Decoding

_bittere
1pts0
bittere.substack.com 8mo ago

You Can't Play Rock Paper Scissors at Night

_bittere
3pts0
github.com 9mo ago

Show HN: Poddown, a simple, granular podcast episode downloader

_bittere
1pts0
quickpaperscissors.vercel.app 9mo ago

Show HN: QuickPaperScissors – A simple, quick rock-paper-scissors web app

_bittere
2pts0
bittere.substack.com 10mo ago

Turn Any LLM into a Powerful Assistant (All About Tools)

_bittere
1pts0
bittere.notion.site 11mo ago

Thoughts on the Future of LLM Interactivity

_bittere
2pts0
seenapp.vercel.app 1y ago

Show HN: (Updated) Seen, a simple note-taking app

_bittere
1pts3
lisolve.vercel.app 1y ago

Lisolve: Exploiting the Lichess Puzzle System

_bittere
1pts1
poddown.vercel.app 1y ago

Show HN: Poddown, a simple range-based podcast downloader

_bittere
2pts0
seen-v2.vercel.app 1y ago

Show HN: Seen – Virtual list rendering with 1M+ notes

_bittere
50pts30
Bun v1.3.9 5 months ago

It's fascinating to see a project like Bun, already mature enough to run in production, and yet still improving everyday even if it's a 1.1x speedup. To me, that shows how committed the team is to deliver performance.

When you open Lichess to solve a puzzle:

- The server sends all puzzle information, including the solution, to the client

- The client is responsible for validating your moves

- The client is also responsible for telling the server whether you have solved the puzzle or not.

However, the client does the 3rd step by just sending a request with some formdata, which has a key called "win". Basically, the client does not send your sequence of moves to the server to have the server verify them but directly sends whether you solved the puzzle or not.

Many, including me, have discovered this bug independently and tried to report it to Lichess. I've tried contacting Lichess 2-3 years back when I originally discovered this, but Lichess has always responded with "puzzles aren't competitive; exploiting them doesn't matter." (https://github.com/lichess-org/lila/issues/16393#issuecommen...)

Admittedly, they are correct: puzzle rating doesn't really matter. So, here's a little web app I made to exploit this. You just need to copy and paste your LILA2 cookie from Lichess. Requests are made through a proxy to set the Origin header.

The source code is at: https://github.com/bittere/lisolve

Yeah, sure! So there's a few ways you can think about it.

In a more general case where you can make no assumptions about what you're rendering, you first render whatever is on-screen (so that you can also calculate their heights and position other elements properly). Then you render everything else off-screen, measure the total height and set that as the height for your container (for your virtual list).

Then you could implement some sort of caching for the heights to reduce recalculation for future loads.

If you can make some assumptions, there are a lot of clever ways you could even skip the rendering-then-checking-height method completely. One example I can think of is for is images; the height of an image is already present in the metadata. You just have to multiply it with some scaling factor to make it fit in your UI. That's much faster compared to checking the height after rendering.

What Seen currently does is the first. But the next version is going to do the second: finding a way to set a note's aspect ratio constant across all configurations of screen sizes, so that you no longer have to wait for all that calculation to finish.

No specific reason: it's a great hashing algorithm, and the first that came to mind. I'll look into other hash functions. Thanks for the suggestion!

Yes, I believe the two are related (and related to the scroll event handler). I'll look into that too!

Yup, that is true. And yes, it could really be much faster. This is an early preview though, and I'm working on it!

Also, Seen does have search. The problem with making it work with Ctrl+F would be to render all 1M notes (or at least some "shadow" version of them), which would really slow everything down. But again, maybe there is some other way - speed is one of the major concerns, and I'm working on it!