198 karma · joined February 19, 2018
Website: https://withcomment.com/kamil
Here is the list of technological problems:
1. When is a page ready to be indexed? Many websites are dynamic.
2. How to find the relevant content? (To avoid indexing noise)
3. How to keep an acceptable performance? Computing embeddings on each page is enough to transform a laptop into a small helicopter with its fans. (I used 384 as the embedding dimension. Below, too imprecise; above, too compute-heavy).
4. How to chunk a page? It is not enough to split the content into sentences. You must add context to them.
5. How to rank the results of a search? PageRank is not applicable here.
type A = { kind: "kindA", a: "dataA" }
type B = { kind: "kindB", b: "dataB" }
type Sum = A | B
const match = <
const V extends { kind: string },
const C extends { [ kind in V[ "kind" ] ]: ( value: V & { kind: kind } ) => unknown }
>( value: V, cases: C ) => cases[ value.kind as V[ "kind" ] ]( value ) as ReturnType<C[ V[ "kind" ] ]>
// You check the type of result, change the type of value to A or B, make the cases non-exhaustive...
const howToUse = ( value: Sum ) => {
const result = match( value, {
kindA: _ => _.a,
kindB: _ => _.b
} )
}
You can test it here: https://www.typescriptlang.org/play?#code/C4TwDgpgBAglC8UDeU...None of these could spark enough interest to get feedback on what users want. I am sharing this experience so that you may study my attempt, if you want.
2 7 6
9 5 1
4 3 8
Here, if a triplet of one player's cells sums to 15, that player has won.Can you provide a high-level view of how you achieve that speed? I have also heard of eXtended Position-Based Dynamics as one of the latest improvements in physics engine. Do you have a perspective on that?
[0] https://developer.chrome.com/docs/extensions/reference/offsc...
Currently, to avoid computing the embedding of a sentence twice, I put them in a JS Map as a cache. I will find a way to empty the cache.
Thank you for reporting the bug regarding Twitter. I will investigate.
However, the Chrome web store review might take some time to allow the update.
Regarding the privacy policy, you have a point: I did not put one on the website, as everything works offline, but people may indeed look for one.
Manifest v3 is a remarkably hostile development environment: Google knows that people block advertisements with extensions and want to limit their scope. I had to adapt a lot of code, and as such, making it work cross-browser would require more than a few changes. But I understand your point and want Pinbot to run on more browsers, especially Firefox!
Regarding performance, here is how it works: the extension accumulates page changes (thanks to a Mutation Observer[1], so I do not have to regularly read and compare the page) for some time, then checks if the sentences are in the database. Only unknown sentences are converted to embeddings.
The extension is CPU-only currently (WebGPU support was not merged yet in transformers.js), so it may be slow. I understand your concern, while that is a proof of concept, I consider a good performance to be vital to a good user experience.
[0] https://developer.chrome.com/blog/sqlite-wasm-in-the-browser... [1] https://developer.mozilla.org/en-US/docs/Web/API/MutationObs...
Remote: Yes, only
Willing to relocate: No
Technologies: currently using React (top 5% of LinkedIn test-takers), TypeScript (I can perform arithmetic with types), Next.js, Vite.js, TRPC, Tauri and Capacitor for cross-platform, CRDTs, other web technologies, Postgres, SQLite. Believer in statically-typed functional (like OCaml)/logic (like Prolog) programming, solvers (like Z3/CVC5), probabilistic programming.
Résumé/CV: https://drive.google.com/file/d/1HylyUPPZS2lcHLYTX0yI5OfdTsu...
Email: kamil (at) withcomment (dot) com
Hello, I am Kamil, an aspiring Renaissance humanist who became a frontend-leaning software engineer. Other than graduating as the top CS student from Sorbonne Université (1st/194 students), I have included my major professional achievements in my CV. Outside of work, I keep looking for the fundamental nature of things — through music theory, great tales, mathematics, or human virtue.
Nowadays, I want to focus on doing my best work, without other worries: work-life balance (ideally a 4-day week), pay, office politics, etc. Working with coworkers I can trust for their competence and integrity is important, as well as being challenged intellectually and keeping learning.
Emails require a salary range to be considered.
Issue opened in 2021: https://github.com/weaveworks/ignite/issues/874
You can run the following script in your browser console to show only the fully remote listings.
document.querySelectorAll("tr").forEach(_=>!_.textContent.includes("Fully Remote")&&_.remove())By far the best monospaced font I have seen, discovered on HN. Before that, I used Ligconsolata (Inconsolata with ligatures).
[0] https://thehighbook.netlify.app/muller's-ratchet (first half)