56,966 blogs · [ { "id": "01a0b0b7-85f1-70f2-8325-5fadd0dbec7d", "title": "Things you should be doing", "url": "https://cmdcolin.github.io/posts/2026-09-15-youshould/", "published_at": "2026-09-15T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823bae42a49", "title": "My Claude Code setup and FAQ", "url": "https://cmdcolin.github.io/posts/2026-08-23-questionsiask/", "published_at": "2026-08-23T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823bb1dfc65", "title": "All the screenshots in your documentation should be autogenerated", "url": "https://cmdcolin.github.io/posts/2026-07-31-autogenscreenshots/", "published_at": "2026-07-31T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823bba19ba1", "title": "Maximizing agentic coding, or, wtf is a PRD", "url": "https://cmdcolin.github.io/posts/2026-03-15-maxagent/", "published_at": "2026-03-15T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823bbe4975a", "title": "Using tree sitter for syntax highlighting on the blog", "url": "https://cmdcolin.github.io/posts/2026-02-08-treesitterblog/", "published_at": "2026-02-08T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823bc8e9223", "title": "Beware! If you make custom React hooks, eslint-plugin-react-hooks may not catch some issues", "url": "https://cmdcolin.github.io/posts/2025-12-27-bewarehooks/", "published_at": "2025-12-27T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823bcc72525", "title": "My experiences with AI and Claude Code in 2025", "url": "https://cmdcolin.github.io/posts/2025-12-23-claudecode/", "published_at": "2025-12-23T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823bce4a42b", "title": "Are your optimizations making any improvement? A simple setup to benchmark two branches", "url": "https://cmdcolin.github.io/posts/2025-11-24-simplebench/", "published_at": "2025-11-25T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823bd6c6d19", "title": "Weird problems I grapple with a lot", "url": "https://cmdcolin.github.io/posts/2025-11-22-weirdthingsistrugglewith/", "published_at": "2025-11-22T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823bdd6b364", "title": "Vite library mode bundles your library's dependencies (which I don't think is good for libraries published to NPM)", "url": "https://cmdcolin.github.io/posts/2025-02-23-vitelibrarymode/", "published_at": "2025-02-23T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823be5892a0", "title": "Making a pure-ESM package using `tsc`", "url": "https://cmdcolin.github.io/posts/2025-01-12-pureesm/", "published_at": "2025-01-12T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823be6036e7", "title": "Begone, superstitious if-statements!", "url": "https://cmdcolin.github.io/posts/2024-10-29-superstitionsbegone/", "published_at": "2024-10-29T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823bf35573a", "title": "Be careful when you rename an optional \"prop\" in typescript", "url": "https://cmdcolin.github.io/posts/2024-09-18-renamingoptional/", "published_at": "2024-09-18T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823bf730015", "title": "I see that noUncheckedIndexedAccess is false. Did you want to use Record?", "url": "https://cmdcolin.github.io/posts/2023-09-27-areyousure/", "published_at": "2023-09-27T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c00b68ba", "title": "~7 eslint rules that will tumble the lint right off your lil sockies", "url": "https://cmdcolin.github.io/posts/2023-08-20-typescriptlint/", "published_at": "2023-08-20T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c0f6ab00", "title": "Making a static site blog with the Next.js 'app' directory", "url": "https://cmdcolin.github.io/posts/2023-04-08-nextjs-appdir-blog/", "published_at": "2023-04-08T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c1f04ffc", "title": "Command line productivity stuff", "url": "https://cmdcolin.github.io/posts/2023-03-25-commandlinestuff/", "published_at": "2023-03-25T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c29dcced", "title": "Things typescript didn't catch that should probably be lint rules", "url": "https://cmdcolin.github.io/posts/2023-02-05-typescript-gotchas/", "published_at": "2023-02-05T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c397a7b5", "title": "The devinterrupted'ening of /r/programming", "url": "https://cmdcolin.github.io/posts/2022-12-27-devinterrupted/", "published_at": "2022-12-27T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c3c21b7c", "title": "The React tutorial I wish I had", "url": "https://cmdcolin.github.io/posts/2022-11-20-the-react-tutorial-i-wish-i-had/", "published_at": "2022-11-20T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c4c1397c", "title": "Handling component state with React...you gotta reset it sometimes", "url": "https://cmdcolin.github.io/posts/2022-10-10-reactstate/", "published_at": "2022-10-10T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c573dad1", "title": "Making an audio slideshow with ffmpeg", "url": "https://cmdcolin.github.io/posts/2022-10-08-ffmpeg-slideshow/", "published_at": "2022-10-08T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c60aeef7", "title": "Creating a music player using Rust/GTK4 - fml9000", "url": "https://cmdcolin.github.io/posts/2022-09-05-rustmusicplayer/", "published_at": "2022-09-05T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c644e576", "title": "Making a twitter bot in the year 2022 with node.js", "url": "https://cmdcolin.github.io/posts/2022-08-26-twitterbot/", "published_at": "2022-08-26T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c6d9d4c9", "title": "Using Rust/WASM in a monorepo with create-react-app", "url": "https://cmdcolin.github.io/posts/2022-08-22-rustwasm/", "published_at": "2022-08-22T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c78b80b2", "title": "Photos of vacation", "url": "https://cmdcolin.github.io/posts/2022-08-21-vacation/", "published_at": "2022-08-21T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c84e69ff", "title": "Photos of life", "url": "https://cmdcolin.github.io/posts/2022-07-29-happy/", "published_at": "2022-07-29T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c919eb94", "title": "Watch out for your pinky finger (AND elbow posture)", "url": "https://cmdcolin.github.io/posts/2022-07-08-pinky/", "published_at": "2022-07-08T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823c9c319ae", "title": "You may not need a bundler for your NPM library", "url": "https://cmdcolin.github.io/posts/2022-05-27-youmaynotneedabundler/", "published_at": "2022-05-27T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823ca993f51", "title": "Notes on performance profiling JS applications", "url": "https://cmdcolin.github.io/posts/2022-05-10-performanceprofiling/", "published_at": "2022-05-10T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823cb12e888", "title": "Using find . -exec sed is dangerous in a git repo", "url": "https://cmdcolin.github.io/posts/2022-05-04-findseddangerous/", "published_at": "2022-05-04T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823cb4cd9d2", "title": "Cognitive reframing", "url": "https://cmdcolin.github.io/posts/2022-03-02-dont-let-it-get-to-you/", "published_at": "2022-03-03T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823cc4597da", "title": "Memoizing async functions so that you don't cache errors", "url": "https://cmdcolin.github.io/posts/2022-02-26-memoize-async/", "published_at": "2022-02-26T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823cc5e9295", "title": "Ukraine", "url": "https://cmdcolin.github.io/posts/2022-02-24-ukraine/", "published_at": "2022-02-24T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823cc6197ea", "title": "Back when I was a noise musician...", "url": "https://cmdcolin.github.io/posts/2022-02-15-noise/", "published_at": "2022-02-15T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823cd065431", "title": "Structural variants and the SAM format - the long (reads) and short (reads) of it", "url": "https://cmdcolin.github.io/posts/2022-02-06-sv-sam/", "published_at": "2022-02-06T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823cd4267c5", "title": "How to make your own npm package with typescript", "url": "https://cmdcolin.github.io/posts/2021-12-31-npm-package/", "published_at": "2021-12-31T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823cd4a2669", "title": "My next.js static blog setup", "url": "https://cmdcolin.github.io/posts/2021-12-26-nextjs/", "published_at": "2021-12-26T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823cd7ac1d4", "title": "A spooky error when you have a string bigger than 512MB in Chrome", "url": "https://cmdcolin.github.io/posts/2021-10-30-spooky/", "published_at": "2021-10-30T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823cd8d735e", "title": "Jest parallelization, globals, mocks, and squawkless tests", "url": "https://cmdcolin.github.io/posts/2021-10-05-jest/", "published_at": "2021-10-05T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823ce20c4d8", "title": "Decrease your idle CPU usage when developing typescript apps with this one weird environment variable", "url": "https://cmdcolin.github.io/posts/2021-09-05-typescript/", "published_at": "2021-09-05T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823cf02185a", "title": "An amazing error message if you put more than 2^24 items in a JS Map object", "url": "https://cmdcolin.github.io/posts/2021-08-15-map-limit/", "published_at": "2021-08-15T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823cf627a49", "title": "Do you understand your NPM dependencies?", "url": "https://cmdcolin.github.io/posts/2021-07-27-npm-dependencies/", "published_at": "2021-07-27T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823cfe20a9b", "title": "Making a HTTPS accessible S3 powered static site with CloudFront+route 53", "url": "https://cmdcolin.github.io/posts/2020-12-26-pt2/", "published_at": "2020-12-26T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823d0601fd6", "title": "Making a serverless website for photo and video upload pt. 2", "url": "https://cmdcolin.github.io/posts/2020-12-26/", "published_at": "2020-12-26T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823d0fde053", "title": "Making a serverless website for photo upload pt. 1", "url": "https://cmdcolin.github.io/posts/2020-12-24/", "published_at": "2020-12-24T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823d19c8405", "title": "Challenges I faced learning React", "url": "https://cmdcolin.github.io/posts/2020-07-04/", "published_at": "2020-07-04T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823d29c362c", "title": "Misconceptions your team might have during The Big Rewrite", "url": "https://cmdcolin.github.io/posts/2020-06-03/", "published_at": "2020-06-03T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823d2aac4c8", "title": "Behind the release - the story of the bugs and features in JBrowse 1.16.0", "url": "https://cmdcolin.github.io/posts/2018-12-17/", "published_at": "2018-12-17T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823d2bcbfe8", "title": "Problems that I experienced with the HPCC", "url": "https://cmdcolin.github.io/posts/2017-04-21/", "published_at": "2017-04-21T00:00:00+00:00" }, { "id": "01a08761-333b-72dd-8528-e823d349702e", "title": "How I learned to hate ORM (especially for data import scripts)", "url": "https://cmdcolin.github.io/posts/2017-03-12/", "published_at": "2017-03-12T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-162654c9835e", "title": "Plotting a coordinate on the screen", "url": "https://cmdcolin.github.io/posts/2017-02-16/", "published_at": "2017-02-16T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-1626557799e3", "title": "Creating a JBrowse plugin", "url": "https://cmdcolin.github.io/posts/2016-11-10/", "published_at": "2016-11-10T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-162655d23cde", "title": "Installing clamav on OSX", "url": "https://cmdcolin.github.io/posts/2016-06-20/", "published_at": "2016-06-20T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-162656cdac79", "title": "Querying InterMine databases using R", "url": "https://cmdcolin.github.io/posts/2016-06-17/", "published_at": "2016-06-17T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-16265740c37f", "title": "How to make your resume.json or resume-cli look great", "url": "https://cmdcolin.github.io/posts/2016-04-23/", "published_at": "2016-04-23T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-162657b43a24", "title": "Creating a testing framework for JBrowse plugins", "url": "https://cmdcolin.github.io/posts/2016-04-19/", "published_at": "2016-04-19T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-162658680766", "title": "Creating a docker image", "url": "https://cmdcolin.github.io/posts/2016-04-17/", "published_at": "2016-04-17T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-162659435b88", "title": "Basic command line productivity tricks and learning experiences", "url": "https://cmdcolin.github.io/posts/2016-04-06/", "published_at": "2016-04-06T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-162659aad6cd", "title": "Running nginx on containerised travis-CI pt 2", "url": "https://cmdcolin.github.io/posts/2016-03-28/", "published_at": "2016-03-28T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-162659d96763", "title": "On over-reproducibility", "url": "https://cmdcolin.github.io/posts/2016-03-05/", "published_at": "2016-03-05T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-16265acfe67a", "title": "Cheating in your computer science class by copying from stackoverflow", "url": "https://cmdcolin.github.io/posts/2015-12-17/", "published_at": "2015-12-17T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-16265b5b1212", "title": "Killing postgres the hard way", "url": "https://cmdcolin.github.io/posts/2015-10-22/", "published_at": "2015-10-22T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-16265be4a9d1", "title": "Tomcat memory debugging", "url": "https://cmdcolin.github.io/posts/2015-10-15/", "published_at": "2015-10-15T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-16265c779027", "title": "Fixing spiky CPU issues and unresponsiveness with Tomcat", "url": "https://cmdcolin.github.io/posts/2015-09-16/", "published_at": "2015-09-16T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-16265c8b977e", "title": "Weekend project - graphing tumblr reblogs using cytoscape.js", "url": "https://cmdcolin.github.io/posts/2015-08-30/", "published_at": "2015-08-30T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-16265d2036ea", "title": "Creating high-resolution screenshots (of jbrowse) with phantomJS", "url": "https://cmdcolin.github.io/posts/2015-03-02/", "published_at": "2015-03-02T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-16265d992959", "title": "Post graduation survey", "url": "https://cmdcolin.github.io/posts/2015-02-01/", "published_at": "2015-02-01T00:00:00+00:00" }, { "id": "01a08761-333c-73c1-ae02-16265e770f71", "title": "High DPI rendering on HTML5 canvas - some problems and solutions", "url": "https://cmdcolin.github.io/posts/2014-05-22/", "published_at": "2014-05-22T00:00:00+00:00" } ] posts Claim your blog
Back to cmdcolin.github.io
Blog · corpus.blog/blogs/cmdcolin.github.io/posts

cmdcolin.github.io

cmdcolin.github.io

2026

2025

2024

2023

2022

2021

2020

2018

2017

2016

2015

2014