This week, I learned:
selectolaxis a fast, easy-to-use, modern HTML5 parser with CSS selectors. A good replacement forlxml.html.- The most effective way to convert a blob (e.g. file input) to a data URL on the browser seems to be via the FileReader API.
const blobToDataURL = (blob) => new Promise((res, rej) => { const r = new FileReader(); r.onload = () => res(r.result); r.onerror = () => rej(r.error); r.readAsDataURL(f); }); - Tool calls in OpenAI support files and images. OpenAI
- ⭐ “Task parity is not the same thing as job parity There is a lot of complexity as many different tasks are bundled into jobs, and many jobs contribute to processes inside an organization The jagged frontier of AI ability means doing tasks well doesn’t translate to doing jobs well.” Ethan Mollick
- Adding
// @ts-checkto a JavaScript file and documenting types via JSDoc might be the simplest way to migrate phase-wise from JS to Typescript. envsubst < file.txtreplacesfile.txtwith the environment variable, e.g.$HOMEis replaced by theHOMEenvironment variable. Clean shell-level templating.- GitHub Copilot CLI is out.
npx -y @github/copilot - Compost is the cheapest thing per ton that I can buy on Amazon India. I can buy 1 ton of compost for Rs 13,500. ChatGPT
yt-dlprequires Deno from now on. #14404- In meetings, make cameras optional by default – and judge engagement by contributions, not video – because a 4-week field experiment found camera-on increased fatigue and reduced voice, especially for women and newcomers. Camera on early for trust building is useful. PubMed
wrkflwis a quick and light way to test GitHub actions before publishing. It runs GitHub actions locally.- GPT-5-Codex is available as an API and on LLM. Simon Willison
- ⭐ I’m habit engineering, i.e. discovering and stacking habits on to existing ones. For example:
- ChatGPT suggested increasing observability based on code reviews. I’m including it in my weekly codecast.
- ChatGPT suggested defining closures inmeetings. I’mn now discussing objectives at meeting starts and effectiveness at the end.
- Since Anaconda cannot be used for free by organizations with 200+ people, Straive’s received legal notices from Anaconda. Since laptops are under central IT administration, they went ahead and deleted all Anaconda instances. Installing miniconda for use with conda-forge requires admin access that most developers do not have, however. That leads to an interesting “No Python” situation. This is where
uvbecomes the knight in shining armor. - Perceptron is SOTA LLM for object bounding boxes. Just 2B parameters.
- Gall’s “law” says that complex systems that work evolved from simple systems that worked. But a complex system designed from scratch won’t ever work. This holds in uncertain environments. But where formal theory or regulations exists, it doesn’t. ChatGPT
uvx --with visidata vdgives you a command-line Excel editor to edit / convert CSV, Excel, JSON, SQLite, directories, etc.uvx markitdown https://example.com/fetchesexample.comas Markdown. I learnt this when I told Codex it could useuvx markitdownto convert PDFs and it figured this part out by itself.- The Dropbox connector for ChatGPT is the little flaky – at least on Android. It could not identify a file that was clearly there in Dropbox and I had to upload it manually.
- ChatGPT’s output is too dense for me. I added this to my custom instructions: “Write in simple language. Explain non-obvious terms intuitively.”
yt-dlphas a--download-sectionsoption that downloads specific YouTube time ranges. For example--download-sections "*00:01:00-00:03:00"downloads roughly (not exactly) from 1 min to 3 min. Note the*at the beginning.- My Lenovo laptop’s touchpad started scrolling instead of moving when I moved my finger. Many things could have caused it, but the solution was to click (not tap) the top middle of the trackpad. ChatGPT
- The India Entrance Exam database is a dataset collating Indian entrance exams.