41554 blogs · [ { "id": "01a08791-d09a-70eb-ab0f-1b61cefda17f", "title": "Write the documentation first", "url": "https://jrhawley.ca/2026/05/11/write-the-docs-first", "published_at": "2026-05-11T04:00:00+00:00" }, { "id": "01a08791-d09a-70eb-ab0f-1b61cfa27161", "title": "Making a Tree-sitter parser for FASTA", "url": "https://jrhawley.ca/2026/04/19/tree-sitter-fasta", "published_at": "2026-04-19T04:00:00+00:00" }, { "id": "01a08791-d09a-70eb-ab0f-1b61cfc03450", "title": "Philosophy of science is fascinating", "url": "https://jrhawley.ca/2026/02/03/philosophy-of-science-is-fascinating", "published_at": "2026-02-03T05:00:00+00:00" }, { "id": "01a08791-d09a-70eb-ab0f-1b61d0ba41eb", "title": "I like reading people's theses", "url": "https://jrhawley.ca/2026/01/09/i-like-reading-theses", "published_at": "2026-01-09T05:00:00+00:00" }, { "id": "01a08791-d09a-70eb-ab0f-1b61d1303a02", "title": "We need an XDG spec for repositories", "url": "https://jrhawley.ca/2025/12/07/xdg-spec-for-repos", "published_at": "2025-12-07T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a352bc78058", "title": "It's your job to understand", "url": "https://jrhawley.ca/2025/11/25/its-your-job-to-understand", "published_at": "2025-11-25T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a352c7542f4", "title": "Performing surgery on my Zotero database", "url": "https://jrhawley.ca/2025/08/28/performing-surgery-on-my-zotero-database", "published_at": "2025-08-28T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a352d2c350a", "title": "Blogroll", "url": "https://jrhawley.ca/2025/08/13/blogroll", "published_at": "2025-08-13T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a352db84aae", "title": "Recognizing National Indigenous Peoples Day", "url": "https://jrhawley.ca/2025/06/21/recognizing-national-indigenous-peoples-day", "published_at": "2025-06-21T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a352de9920b", "title": "Science is political and always has been", "url": "https://jrhawley.ca/2024/11/15/science-is-political-and-always-has-been", "published_at": "2024-11-15T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a352ebcb15f", "title": "Most of your favourite mathematicians knew each other", "url": "https://jrhawley.ca/2024/07/16/most-of-your-favourite-mathematicians-knew-each-other", "published_at": "2024-07-16T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a352f27b241", "title": "Resources for the successful computational biologist", "url": "https://jrhawley.ca/2024/06/22/resources-for-successful-comp-bio", "published_at": "2024-06-22T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a352f36f458", "title": "Remote collaboration fuses fewer breakthrough ideas? Probably not.", "url": "https://jrhawley.ca/2023/12/01/remote-work-disruption", "published_at": "2023-12-01T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3530272da4", "title": "Unlearning Grad School - Part IIa: Low Stipends and Wages", "url": "https://jrhawley.ca/2023/10/24/unlearning-grad-school-part-2a-low-stipends-and-wages", "published_at": "2023-10-24T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35312082e6", "title": "Unlearning Grad School - Part II: Sources of Stress", "url": "https://jrhawley.ca/2023/10/23/unlearning-grad-school-part-2-sources-of-stress", "published_at": "2023-10-23T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3531693aa9", "title": "Unlearning Grad School - Part I: What I Felt", "url": "https://jrhawley.ca/2023/10/10/unlearning-grad-school-part-1-what-i-felt", "published_at": "2023-10-10T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35325db633", "title": "Unlearning Grad School", "url": "https://jrhawley.ca/2023/10/09/unlearning-grad-school", "published_at": "2023-10-09T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3532f7978d", "title": "Independence of mean and variance estimators", "url": "https://jrhawley.ca/2023/08/31/independence-of-mean-and-variance-estimators", "published_at": "2023-08-31T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3533c16434", "title": "Blocked by Cloudflare", "url": "https://jrhawley.ca/2023/08/07/blocked-by-cloudflare", "published_at": "2023-08-07T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35347e4406", "title": "What's missing from values in data tables", "url": "https://jrhawley.ca/2023/07/28/data-table-values", "published_at": "2023-07-28T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35355e0fd3", "title": "Rethinking Nix for reproducible science", "url": "https://jrhawley.ca/2023/04/06/rethinking-nix-for-reproducible-science", "published_at": "2023-04-06T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353576a1f7", "title": "Cross-compiling with Rust", "url": "https://jrhawley.ca/2023/02/20/cross-compiling-with-rust", "published_at": "2023-02-20T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35362c84cb", "title": "Just leave", "url": "https://jrhawley.ca/2022/12/10/just-leave", "published_at": "2022-12-10T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3536f2f3ab", "title": "An Ode to My Road Bike", "url": "https://jrhawley.ca/2022/08/09/an-ode-to-my-old-bike", "published_at": "2022-08-09T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35372ba2b2", "title": "Calculating the cosine similarity across a set of samples", "url": "https://jrhawley.ca/2022/07/17/cosine-similarity-as-matrix-multiplication", "published_at": "2022-07-17T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3537fe37c9", "title": "Killing time in a new city", "url": "https://jrhawley.ca/2022/06/05/killing-time-in-a-new-city", "published_at": "2022-06-05T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35388cec5a", "title": "A command line interface for HomeBank", "url": "https://jrhawley.ca/2022/04/14/homebank-cli", "published_at": "2022-04-14T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353902751e", "title": "Acting on COVID-19 rapid antigen tests", "url": "https://jrhawley.ca/2022/02/04/acting-on-covid-rapid-tests", "published_at": "2022-02-04T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3539fe7fce", "title": "A microcosm of life: lessons learned from a PhD", "url": "https://jrhawley.ca/2021/12/02/phd-lessons-learned", "published_at": "2021-12-02T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353a31e5ee", "title": "Testing the Nix environment manager for computational biology", "url": "https://jrhawley.ca/2021/10/18/nix-package-manager", "published_at": "2021-10-18T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353acd6cd1", "title": "The 3D topology of the prostate cancer genome", "url": "https://jrhawley.ca/2021/10/12/hic-prostate-cancer", "published_at": "2021-10-12T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353b53c8ad", "title": "Parallelization isn't always faster", "url": "https://jrhawley.ca/2021/08/20/parallel-isnt-always-faster", "published_at": "2021-08-20T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353b9bc9c1", "title": "Ignorance is strength", "url": "https://jrhawley.ca/2021/07/31/alberta-covid-19-restrictions", "published_at": "2021-07-31T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353c8e3d62", "title": "Limit of a t distribution", "url": "https://jrhawley.ca/2021/06/27/limit-t-distribution", "published_at": "2021-06-27T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353cdbe51d", "title": "Documents as code and LaTeX", "url": "https://jrhawley.ca/2021/05/18/documents-as-code", "published_at": "2021-05-18T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353d0c86f4", "title": "Strings, OsStrings, and PathBufs in Rust", "url": "https://jrhawley.ca/2021/05/06/rust-str-osstr-path", "published_at": "2021-05-06T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353d9944a4", "title": "Notes, tasks, and planning with Org mode", "url": "https://jrhawley.ca/2021/04/18/org-mode", "published_at": "2021-04-18T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353dbbf4ba", "title": "Illumina flow cell teardown", "url": "https://jrhawley.ca/2021/03/13/flow-cell-teardown", "published_at": "2021-03-13T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353dc21fed", "title": "Is your null hypothesis, or your model, more likely to be rejected?", "url": "https://jrhawley.ca/2021/03/01/small-p-values", "published_at": "2021-03-01T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353e101cf7", "title": "Running Linux GUI applications on Windows", "url": "https://jrhawley.ca/2021/02/22/linux-gui-wsl", "published_at": "2021-02-22T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353ed0f041", "title": "\"Buying\" music sucks", "url": "https://jrhawley.ca/2021/02/11/buying-music-sucks", "published_at": "2021-02-11T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353f39b362", "title": "Understanding file permissions", "url": "https://jrhawley.ca/2021/02/02/file-permissions", "published_at": "2021-02-02T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353f58707d", "title": "Pragmatic tips: Conda CLI", "url": "https://jrhawley.ca/2021/01/31/conda-tips", "published_at": "2021-01-31T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353f6828c3", "title": "A solution to dependency hell: static binaries by default", "url": "https://jrhawley.ca/2021/01/25/static-binaries-by-default", "published_at": "2021-01-25T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a353f93b9bd", "title": "Why I like Rust - and why it's annoying", "url": "https://jrhawley.ca/2021/01/22/why-i-like-rust", "published_at": "2021-01-22T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354012f24c", "title": "Check your references", "url": "https://jrhawley.ca/2021/01/14/check-your-references", "published_at": "2021-01-14T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3540d1585d", "title": "Experimenting with web monetization", "url": "https://jrhawley.ca/2020/12/16/experimenting-with-web-monetization", "published_at": "2020-12-16T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35419512d7", "title": "Colours and the scientific eye", "url": "https://jrhawley.ca/2020/11/26/scientific-colours", "published_at": "2020-11-26T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35426a7eeb", "title": "Pragmatic tips: Emacs", "url": "https://jrhawley.ca/2020/11/21/emacs-tips", "published_at": "2020-11-21T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3543514380", "title": "A more sane way to modify your PATH", "url": "https://jrhawley.ca/2020/11/16/pad-path", "published_at": "2020-11-16T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3543acc530", "title": "A collection of useful command line tools", "url": "https://jrhawley.ca/2020/11/14/useful-clis", "published_at": "2020-11-14T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354434279a", "title": "Notes from a mathematical physics degree", "url": "https://jrhawley.ca/2020/11/11/math-notes", "published_at": "2020-11-11T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35449b621e", "title": "Aggregate peak analysis with Hi-C data", "url": "https://jrhawley.ca/2020/10/29/hic-apa", "published_at": "2020-10-29T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35454dd5cb", "title": "What is differential analysis, anyway?", "url": "https://jrhawley.ca/2020/10/15/diff-seq-analysis", "published_at": "2020-10-15T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35460682c8", "title": "The Central Limit Theorem and estimation of variance", "url": "https://jrhawley.ca/2020/10/08/clt-variance", "published_at": "2020-10-08T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3546ebe17a", "title": "Notation and thinking in math", "url": "https://jrhawley.ca/2020/10/04/stats-notation", "published_at": "2020-10-04T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354728e7e3", "title": "How to keep track of your bills", "url": "https://jrhawley.ca/2020/09/19/financial-statements-quill", "published_at": "2020-09-19T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3547607b83", "title": "Pragmatic tips: remote teaching", "url": "https://jrhawley.ca/2020/09/11/remote-teaching", "published_at": "2020-09-11T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3547702d3e", "title": "Teaching stats for statistical thinking", "url": "https://jrhawley.ca/2020/09/10/biostats-statistical-thinking", "published_at": "2020-09-10T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35482d8277", "title": "Anti-curl and Poincare's lemma", "url": "https://jrhawley.ca/2020/08/06/poincare-lemma", "published_at": "2020-08-06T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35483922ef", "title": "Physical symmetries result from what we think good scientific theories are", "url": "https://jrhawley.ca/2020/08/03/physical-symmetries", "published_at": "2020-08-03T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3548e84046", "title": "A marketplace of half-baked ideas", "url": "https://jrhawley.ca/2020/08/03/marketplace-of-half-baked-ideas", "published_at": "2020-08-03T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354900e403", "title": "Creating simple genome annotation tables", "url": "https://jrhawley.ca/2020/06/19/annotation-tables", "published_at": "2020-06-19T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35496fd818", "title": "Please, show your work", "url": "https://jrhawley.ca/2020/05/29/machine-learning-in-bio", "published_at": "2020-05-29T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354a12eb93", "title": "A fully-fledged toolchain for Rust on Windows", "url": "https://jrhawley.ca/2020/05/25/rust-toolchain-windows", "published_at": "2020-05-25T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354ac28705", "title": "Creating a custom genome annotation for HiGlass", "url": "https://jrhawley.ca/2020/05/15/higlass-genome", "published_at": "2020-05-15T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354b0c2dec", "title": "Jeffrey Epstein, Harvard, and Martin Nowak", "url": "https://jrhawley.ca/2020/05/11/epstein-harvard-nowak", "published_at": "2020-05-11T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354bcfbb18", "title": "Structuring code for ggplot", "url": "https://jrhawley.ca/2020/04/28/ggplot-syntax", "published_at": "2020-04-28T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354c182d84", "title": "A Vim user's introduction to Emacs", "url": "https://jrhawley.ca/2020/03/08/emacs", "published_at": "2020-03-08T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354c45eed3", "title": "High impact papers are not how you learn science", "url": "https://jrhawley.ca/2020/02/13/high-impact", "published_at": "2020-02-13T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354c86588d", "title": "Reading List 2019", "url": "https://jrhawley.ca/2019/12/31/reading-list-2019", "published_at": "2019-12-31T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354d0ebc73", "title": "Well-defined biology", "url": "https://jrhawley.ca/2019/12/19/well-defined", "published_at": "2019-12-19T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354e0096eb", "title": "Now is an exciting time for mathematicians in the biological sciences", "url": "https://jrhawley.ca/2019/10/03/exciting-math-in-biology", "published_at": "2019-10-03T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354e188a02", "title": "Pragmatic guidelines for bioinformatics software tools", "url": "https://jrhawley.ca/2019/05/27/guidelines-for-bioinformatics-tools", "published_at": "2019-05-27T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354eedd074", "title": "Pragmatic tips: Conda Packages", "url": "https://jrhawley.ca/2019/03/28/conda-packages-intro", "published_at": "2019-03-28T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a354f74bf63", "title": "Designing dark academic posters", "url": "https://jrhawley.ca/2019/01/17/dark-academic-poster", "published_at": "2019-01-17T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35501106bd", "title": "Academic twitter isn't for me", "url": "https://jrhawley.ca/2019/01/04/academic-twitter", "published_at": "2019-01-04T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3550a46403", "title": "The cleverness behind Tajima's D statistic", "url": "https://jrhawley.ca/2018/12/04/tajima-d", "published_at": "2018-12-04T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a355136b513", "title": "Don't trust your data at first glance", "url": "https://jrhawley.ca/2018/11/23/file-validation", "published_at": "2018-11-23T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3551feaa3e", "title": "\"Support\" over \"coverage\"", "url": "https://jrhawley.ca/2018/08/24/read-coverage-support", "published_at": "2018-08-24T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a355253a6d7", "title": "The woes of using bioinformatics software: a case study in trying to install ChAMP", "url": "https://jrhawley.ca/2018/07/18/champ-installation-notes", "published_at": "2018-07-18T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35530172c5", "title": "PubMed + RSS for following specific authors", "url": "https://jrhawley.ca/2018/05/26/pubmed-rss", "published_at": "2018-05-26T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35536d7404", "title": "Git flow for scientific analysis", "url": "https://jrhawley.ca/2018/05/11/git-flow-science", "published_at": "2018-05-11T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3554672b66", "title": "How I Maintain a Reproducible Computational Environment", "url": "https://jrhawley.ca/2018/01/18/reproducible-stack", "published_at": "2018-01-18T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35554c6ed8", "title": "PubPeer for Microsoft Edge", "url": "https://jrhawley.ca/2017/10/22/pubpeer-for-edge", "published_at": "2017-10-22T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3555e24313", "title": "Using GitHub Pages in Visual Studio Code", "url": "https://jrhawley.ca/2017/09/11/github-pages-vscode", "published_at": "2017-09-11T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3556dfd0b1", "title": "Visualizing layered fluids in a rotating reference frame", "url": "https://jrhawley.ca/2015/12/16/rotating-fluids", "published_at": "2015-12-16T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3557525444", "title": "CRISPieR: Re-engineering CRISPR-Cas9 with functional applications in eukaryotic systems", "url": "https://jrhawley.ca/2015/09/28/igem2015", "published_at": "2015-09-28T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3558502ad5", "title": "Quasi-geostrophic models and Hamiltonian dynamics", "url": "https://jrhawley.ca/2015/08/31/usra-fluids", "published_at": "2015-08-31T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a3558a2dc39", "title": "Staphylocide: Stopping Antibiotic Resistance Through Gene Silencing", "url": "https://jrhawley.ca/2014/11/03/igem2014", "published_at": "2014-11-03T05:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a355904cca6", "title": "Quantum Communication Complexity", "url": "https://jrhawley.ca/2014/08/31/usra-iqc", "published_at": "2014-08-31T04:00:00+00:00" }, { "id": "01a08791-d09b-739e-a87b-8a35590815c9", "title": "Controlled Modification and Intercellular Transmission of a DNA Message", "url": "https://jrhawley.ca/2013/11/04/igem2013", "published_at": "2013-11-04T05:00:00+00:00" } ] posts Claim your blog
Back to jrhawley.ca
Blog · corpus.blog/blogs/jrhawley.ca/posts

jrhawley.ca

jrhawley.ca

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2015

2014

2013