First, let’s make a frontend key and save it in our hugo.toml under a key like paddleSandboxClientSideJsToken (you’ll also have a paddleProdClientSideJsToken). Then, on your layouts/products/single.html template make a javascript snippet like so: <script src="https://cdn.paddle.com/paddle/v2/paddle.js"></script> <script type="text/javascript"> {{- $paddleToken := "" -}} {{- $priceIds := slice -}} {{ if hugo.IsServer -}} Paddle.Environment.set("sandbox"); {{- $paddleToken = .Site.Params.pa...| nickgeorge.net home on nick
A lot of parsers are generated, but I'd like to learn more about the mechanics of how they work. These are notes on a handmade lexer and parser for WDL written in rust.| nick
Learn how to set up webhook handling for Paddle payments using Go. Covers creating sandbox accounts, building a webhook server, using Hookdeck for local development, and validating Paddle webhook signatures.| nick
Introducing PharmaPay.Watch, an automated job board tracking 2,500+ pharma and biotech positions with real-time salary data from 13 major companies| nick
23andMe revolutionized genetic testing, building a database of over 15 million genotypes for research. However, the company now faces significant financial and legal challenges, casting doubt on its future. This article examines the scientific value of 23andMe's data, the potential implications of a go-private deal, and proposes an alternative solution: a strategic NIH acquisition to safeguard this invaluable resource and its impact on personalized medicine and data stewardship.| nick
I’ve been building dashboards (essentially just pretty tables and some plots) that display data from different public data sources in a novel ways. Most of these dashboards are ephemeral and experimental, so I’d rather not host a separate public application + database before I’m sure they’ll be around for a while. The simplest and most secure way to do this is to setup a static website and setup some kind of auto-update mechanism to build and re-deploy.| Nick's website on Nick's blog
OpenAlex API Explorer| nickgeorge.net
Learning to search and read man pages is a superpower even in the age of LLMs| nickgeorge.net
Bootstrapping Ansible on FreeBSD| nickgeorge.net
My formal training is in Cellular and Systems Neuroscience, but what I really enjoy is writing tools to help my peers automate silly things that we shouldn't be wasting our time on anyways. I learned early on about a problem: while I could easily write a script to re-name a thousand files for analysis, I couldn't easily share it with my peers. The problem If you think writing code is hard, wait until you have to share it.| Programming on Nick's blog
Projects are a great way to learn a new skill. When I was first learning Clojure, I wrote a post about building my new static website using Clojure. I have learned a lot in the interim, so I wanted to clear up some of the meandering and confusion in my last post here. Let's go over what a static website is, and how to build a website generator in Clojure from scratch, and how to host it on GitHub pages.| Programming on Nick's blog
(2023-10) Update: see this post to return pydantic models Let's write a simple function which returns data in a sane and organized way from a SQLite3 database using only the Python 3 standard library. We will be working in Python 3.8 for this example and will be using some very basic SQL statements. If you are new to SQL, I highly recommend this course: https://www.executeprogram.com/courses/sql I wrote a gist as an example program to test and demonstrate this concept as well.| Programming on Nick's blog
My website is a personal project I use to learn more about the web and document what I do. When I first set it up, I used some simple <div>'s and Bootstrap CSS to make it look (kinda) nice. This works fine, and a lot of websites do just that. I recently wanted to fine-tune some settings. Simple things, like change the max-width of the text and float my table of contents in a left margin.| Programming on Nick's blog
Ilastik Ilastik is an excellent image analysis suite which makes pixel and object classification easy. Ilastik recommends using HDF5 as an input/output file format for image segmentation/probability and measurement results, but the documentation on how the results are stored in this format are somewhat lacking (I made a small change to the documentation to clear some of this up). I will focus on the reading/interacting with the output here, as Ilastik provides extensive tutorials on pixel and...| Programming on Nick's blog
Python's mutable default data types When I first started learning programming (using python), I loved how explicit things were. a=5 assigns the value 5 to the variable a, b = [1,2,3] creates a list with 1,2,3 and assigns it to the variable b. Pretty quickly, you want to create a new list based on an old list. So you might naturally search for "adding an item to a list in python" and come accross the .| Programming on Nick's blog
The NEURON installation adds python support using the PYTHONPATH global environmental variable. I use virtual environments to separate my projects but the PYTHONPATH NEURON was unfortunately adding itself to every environment I created. I want to develop projects and organize dependencies in an orderly way, so here we will remove this global environmental NEURON installation and create an isolated environment for it. I am using the NEURON simulation environment with Python 3.| Programming on Nick's blog
Making things easier to do makes me more likely to do them. Even a simple static website like this one requires a few bespoke commands to build and deploy, so to lower the barrier to publish, I decided to start learning and using GNU Make to reduce the steps to one command. Make is a program designed for generating executables (or any end product) from a set of source files.| Programming on Nick's blog
The more I learn about computers, the more I realize you can’t really understand much without understanding memory and the C programming language. As someone who grew up on garbage collected interpreted languages like python, I have very little experience in this area and need to improve. So, while I don’t plan on becoming a C programmer, I’ve started working on some from-basics handmade-style projects to learn more about how the system works and develop a better intuition about memory ...| Nick's website on Nick's blog
Keep pip up to data automatically in virtual environments| nickgeorge.net