> For example, it would be interesting to incorporate Ghost Font into CAPTCHA systems, as most systems are easily solved by AI today.
It seems to me like it should be easy enough to take Ghost Font, apply normal video compression techniques, and analyze the compressed signal to recover the visual outline of the letters, which you would then analyze with OCR (or an AI I guess ...). In other words, a novel CAPTCHA technique but not necessarily "fundamentally more difficult" than existing CAPTCHA techniques, once the cat-and-mouse game gets going.
An AI would be able to take consecutive frames rather than hamfistedly pressing the screenshot button, then accumulate enough samples to clearly make out the text from a clip shorter than the time it would take for a human to read it.
Yes, it may be useful to replace current CAPTCHA, but this does not provide the positive side-effects of CAPTCHA where user-submitted data is used to train the unknown images or reinforce the labelling of existing image segments.
Indeed, they don't contribute to labeling. The self driving companies figured out long ago that machine learning is way too expensive. Instead, Google is using its large network of willing humans to inform automated driving decisions in real time.
So the next time you're asked to click the pictures with the bicycles or traffic lights? Please do so before it's too late.
Not the first time that a Nature publication's "too good to be true" results turn out to be based on simple programming errors... Nature 532, 210 (2016) was retracted after it was shown that a hand-coded gradient function, used in gradient descent, had a simple sign error (details in arXiv 2003.05808).
The author claims the POST is WRITTEN by them. They did not claim the ILLUSTRATIONS were DRAWN by them. Most of us are not artists. Sometimes its hard to find the right illustrations.
My SO is on the spectrum and likes to align cups and things along the edges of tables. I ask her not to be an edgelord in the most egregious cases, but I've also gotten better at not stressing over "it's on the edge".
> Of course, if you're implementing POSIX vi, there are quite a few features that have aged poorly, like roff/troff macros and line-editing
What do you mean by "roff/troff macros"?
EDIT: Ah, you're probably talking about the "section-wise" movements, defined in POSIX with language like "A line whose first character is a <period> and whose second and third characters match a two-character pair in the 'sections' edit option (see ex)" - that's the first time I've stumbled upon the 'sections' and 'paragraphs' options in the Vim manual ... Very quaint!
Yep, those are the ones! There's also the oddity of the [[ and ]] motions. In the POSIX standard, those are the only two-character motions. I was using a state-machine to implement motion commands, and that single command threw a wrench in the works. Of course, vim took two character commands and ran with it, so in vim [ can be followed by a whole host of characters that all do different things. Since g was not mapped in vi they also did the same thing there.
Given a commit that both refactors (A) and adds a feature (B), you can go into the codebase and remove the new feature by hand (B^-1), commit the feature removal, and immediately revert the feature removal. This leads to three commits: (A B), B^-1, and B. Squash the first two commits to obtain a commit that only refactors, and another commit that only adds the new feature. I've written more about this technique ("the Hammer") here: https://github.com/Mortal/gittalk
In TypeScript it's called "bivariance", which sounds very programming language theory like, but is not a term typically used in academic contexts, since it is unsound almost by default. It's described here: https://www.typescriptlang.org/docs/handbook/type-compatibil...
"allowing this enables many common JavaScript patterns"
Honestly at this point they should make a new strict "no js" mode, as the ecosystem likely has reached a tipping point where you can get by without mixing typed and untyped js at compile time. Wonder if targeting wasm directly would help ensure those boundaries are ensured...
Hey, Thanks for the great feedback! You're raising valid point.
Actually, this package started based on a hackathon project where I was burning the Anthropic API credits for our hackathon project which was RAG (internal documentation) + MCP.
There were question which were getting repeated several times. The 50% + comes from this experience. So, based on this, I was thinking of some of the use cases like this:
Multi-User Support/FAQ Systems:
- How do I reset my password?
- Reset password steps?
- Forgot my password help
- Password reset procedure
RAG based:
- How to configure VM?
- How to deploy?
- How to create a network?
You're absolutely right that apps with unique queries won't see these benefits - this won't help in
- Personalized Content
- Real-Time Data
- User-Specific Queries
- Creative Generation
and other scenarios
I think I should clarify this in the docs. Thanks for the great feedback. This is my first opensource package and first conversation in hackernews. Great to interact and learn from all of you
It seems to me like it should be easy enough to take Ghost Font, apply normal video compression techniques, and analyze the compressed signal to recover the visual outline of the letters, which you would then analyze with OCR (or an AI I guess ...). In other words, a novel CAPTCHA technique but not necessarily "fundamentally more difficult" than existing CAPTCHA techniques, once the cat-and-mouse game gets going.