RSSAmplifier

Blog

(untitled)

jrhawley.caRSS feed ↗92 posts

Latest posts

Write the documentation first

I never regret writing documentation and outlines for projects first.

Making a Tree-sitter parser for FASTA

Here I try to write a simple Tree-sitter parser for the FASTA file type.

Philosophy of science is fascinating

Interesting things happen at intersections, and a recent area of intersection that has caught my interest is the philosophy of science. Since the Enlightenment, people have noted that mathematicians and scientists do a kind of academic research that seems different from other disciplines. What differentiates these disciplines? When does something cross the line from science into pseudo-science?…

I like reading people's theses

When I am about to work with someone new or have an important meeting, I like to prepare by finding that person's Master's or PhD thesis and giving it a cursory read. Viewed in the right light, a thesis gives me an intimate understanding of who that person is, both as an individual and as a scientist.

We need an XDG spec for repositories

Root directories for software projects are over-cluttered and I think the XDG Base Directory specification can help us.

It's your job to understand

I recently attended a presentation by people from Anthropic at work about their large language models. One undercurrent in the presentation was that thinking is hard - wouldn't it be nice if it was easier? I'm sorry to say, but that's your job.

Performing surgery on my Zotero database

I encountered a unique problem with my setup that I couldn't find a solution for in the or anywhere else online. For posterity, here's how I solved it.

Blogroll

A collection of interesting blogs I follow.

Recognizing National Indigenous Peoples Day

Today is National Indigenous Peoples Day in Canada and I think it's especially important to recognize the rights, dignity, and sovereignty of these peoples today in Canadian politics.

Science is political and always has been

There is a common attitude in academia, with scientists, and in science-adjacent areas that science is not political. Or, in other words, that science is at its best when it is non-political. An expression of this idea has been recently published the current president of the US's National Academy of Sciences. This perspective is, frankly, wrong.

Most of your favourite mathematicians knew each other

The genealogy of advisor relationships for mathematicians is fascinating.

Resources for the successful computational biologist

A colleague asked me 'What kind of tools and resources do you feel you need access to for success as a computational biologist?'. Here are my answers.

Remote collaboration fuses fewer breakthrough ideas? Probably not.

An interesting paper was published in Nature two days ago, titled 'Remote collaboration fuses fewer breakthrough ideas'. I believe it should be retracted.

Unlearning Grad School - Part IIa: Low Stipends and Wages

This extended section of my "Unlearning Grad School" series focuses on the stresses around receiving little pay as a grad student.

Unlearning Grad School - Part II: Sources of Stress

This second part of my "Unlearning Grad School" series covers various sources of stress one experiences during grad school.

Unlearning Grad School - Part I: What I Felt

This first part of my "Unlearning Grad School" series covers the experiences I had and how I and others felt during grad school.

Unlearning Grad School

It's coming up on two years since defending my PhD and finishing grad school. And as valuable as I found the experience, it didn't come for free. I'm a very different person now than I was before grad school. In some ways, better, and in other ways, worse. And it is the ways in which I'm worse off now than before that I'd like to explore for World Mental Health Day on October 10th.

Independence of mean and variance estimators

I never found statistics classes in school very useful or intuitive. But occasionally there were some surprising statements that have stayed with me many years after some of those courses. I'd like to talk about one of them here that concerns the independence of mean and variance estimators.

Blocked by Cloudflare

Well, it finally happened to me. I was blocked out of a website I use for work because of Cloudflare. And I have no idea if or when I'll be let back in.

What's missing from values in data tables

Storing data in tables is such an integral part of data collection, curation, processing, analysis, and archiving. And for each of the these different purposes, there are different opinions and best practices for how that data should be stored. But I still feel that there's something missing from how modern data table software handles values.

Rethinking Nix for reproducible science

When I gave Nix a go in 2021, I had previously dismissed it as too technical for most computational biologists' purposes. There have been a few developments in the last couple years that have me playing around with Nix again. It's got me thinking about the problem of scientific reproducibility, too, and how Nix might help.

Cross-compiling with Rust

So you've just finished writing an application in Rust, congratulations! So how do you go about compiling a release version? And how do you do it for other operating systems that you're not currently working on? Here I cover the major cases when cross-compiling between Linux, macOS, and Windows.

Just leave

I have already written about why I don't think Twitter is for me, as a scientist. As Elon Musk and his financial partners have bought out Twitter and taken the company private, I feel it is necessary to re-evaluate the role of Twitter in the scientific domain.

An Ode to My Road Bike

I recently bought myself a new road bike to replace my old and failing Jaguar Trail Cat. Despite the Trail Cat never being a great quality bike, I loved that thing. As a final farewell, I want to tell you about it and all that it did for me.

Calculating the cosine similarity across a set of samples

When collecting data from scientific experiments, it's often useful to compare individual samples against each other to see how similar they are. One way to do this is using the cosine similarity statistic. Here, I describe how to calculate this statistic efficiently for a large set of samples.

Killing time in a new city

When I need to kill time in a new city, I like to walk around, get a feel for the place, and take a few photos along the way.

A command line interface for HomeBank

I have used HomeBank for many years to manage my personal finances. It's a great tool and I love the GUI, but I also love command line interfaces. So I decided to build one for HomeBank.

Acting on COVID-19 rapid antigen tests

Widespread testing for COVID-19 is an effective measure to protect yourself and others from disease spread. Rapid antigen tests are an effective tool that individuals can use at home on their own schedule, but interpreting the results and deciding what to do is not always simple. Here, I discuss some of the statistics behind why and what consequences this has.

A microcosm of life: lessons learned from a PhD

What is a PhD worth? What do you gain from the experience and what do you lose? Here are the things that I lost and found in the microcosm of my university during my PhD.

Testing the Nix environment manager for computational biology

Nix is an emerging tool for keeping your computational environments reproducible and isolated. Here, I test how useful Nix is, compare it to conda, and assess whether it's ready for use in computational biology.

The 3D topology of the prostate cancer genome

A paper from my and my colleague, Stanley Zhou, looking at the 3D structure of DNA in prostate cancer cells was published. This post is a breakdown of this article that's more approachable for non-experts.

Parallelization isn't always faster

I have told colleagues in the past about some benefits of parallelized code, especially with large genome-wide calculations. Parallelizing over chromosomes is intuitively easy and simple to code. But sometimes parallelization isn't worth the effort because you're using a really well-written library.

Ignorance is strength

Hallelujah, the COVID-19 pandemic is coming to a close. Or, at least, so says the Alberta provincial government. But I wouldn't be too trusting of what they're advocating.

Limit of a t distribution

I like to write some proofs when I have need of them but have a hard time tracking them down. Here is one about the limit of the t distribution with infinite degrees of freedom.

Documents as code and LaTeX

Lots of work goes into writing documents. Lots of that work is rule-based and can be made programmatic. This makes working with documents as a form of code that needs to be compiled as useful way to think about them, as well as working with them. LaTeX can handle these kinds of documents and may be the right place to start.

Strings, OsStrings, and PathBufs in Rust

In Rust, I have always had trouble dealing with paths and how they differ from strings. Here, I want to break down how these types are related to each other, why they're different, and how to convert between them.

Notes, tasks, and planning with Org mode

This post is about Org mode, an exemplary Emacs package, and why I think so many people love this piece of software.

Illumina flow cell teardown

For many computational biologists, their work starts with sequencing data. But that data obviously doesn't appear out of nowhere. To bring that side of molecular biology a bit closer to home, I got my hands on an old flow cell and take it apart to see what it's made of.

Is your null hypothesis, or your model, more likely to be rejected?

Science and statistics are hard. There are lots of reasons that can make things go wrong, and it's important to remember that when looking at p-values and hypothesis tests.

Running Linux GUI applications on Windows

This post is a walkthrough of how to get these Linux GUI applications running on Windows using the Windows Subsystem for Linux.

"Buying" music sucks

My friend, Finn M-K, makes music for a living. I wanted to buy his most recent album and keep the MP3 files. The process was miserable and the easiest route was to pirate it. This is not a sustainable ecosystem for musicians.

Understanding file permissions

Here is a brief rundown of file permissions on Unix systems and how to change them.

Pragmatic tips: Conda CLI

I use Anaconda managing my computational software environments. Here are some pragmatic tips for making conda environments easier to deal with.

A solution to dependency hell: static binaries by default

Dependencies are complicated for computational biologists. Adapting a different development strategy can help your end users.

Why I like Rust - and why it's annoying

Here is a reason why I like the Rust language and community, but also why developers may not like them.

Check your references

Relying on first hand evidence is important for building an argument. Here I discuss how citation limits in journals may entice readers to read the review papers and not the original articles, but that doing this diligent work is important for research.

Experimenting with web monetization

This blog post is an experiment in running the web monetization protocol on this blog. If you don't have web monetization enabled in your browser, you won't see the contents of this post.

Colours and the scientific eye

Scientific writing is about communication. Colour is an effective visual communication tool, but tough to use well in scientific figures. Here are some notes on how to do it well, what tools to use, and what examples to use as inspiration.

Pragmatic tips: Emacs

Emacs is a text editor that has a lot of history and a lot of functionality. Because of its history and the philosophy behind it, it can be hard to find the "right" way to do anything with it. In this post, I want to compile some information that I've found over time, and things that have worked for me.

A more sane way to modify your PATH

The PATH environment variable is key for getting software to run on your computer. Sometimes you have to edit it by hand for your development purposes. Here is a tool to make that process a little more sane.