Phlog archive

Back to home

RSS feed

2023-08-12 - Refurbishing my bike

2023-06-10 - Excel Scottish Land Tax calculator

2023-06-01 - Geo-referenced Teixeira (1968) Bicuar National Park vegetation map

2023-05-24 - An email about estimating productivity

2023-05-18 - R functions to download data from KoboToolbox

2023-05-15 - Vegetation map of Bicuar National Park - Teixeira 1968

2023-04-13 - Presentations for lectureship interview

2023-03-14 - Blog post on fieldwork in Ongava Game Reserve

2023-03-13 - Importing data layers into Avenza Maps Android app

2023-03-01 - Yoga routine for fieldwork

2023-02-15

2023-02-12

2023-01-03 - Command line tools I'd like to use but can't

2022-12-29 - Shell script to extract colours from macOS Terminal.app themes

2022-12-23 - R function to find nearest named colour

2022-12-08 - CMUS colour scheme and persistent settings

2022-12-02 - Cider making

2022-11-23 - `BIOMASS::getWoodDensity()` description

2022-09-18

2022-09-10 - Shiny app to explore climate space of SEOSAW region

2022-08-27 - Comparing coordinates of tree stems collected with GPS or tape measures

2022-08-16 - Tracking meals for a year

2022-08-14 - Using `any()` with `ifelse()` and `group_by()`

2022-06-20 - Todo lists in Vim, syntax highlighting

2022-06-15 - PhD thesis

2022-06-12 - Voronoi tessellation to measure tree spatial distribution

2022-06-07 - Starting a repeat census of the New Wood

2022-06-01 - Guide for analysing forest canopy photos

2022-05-12 - Measuring stick for DBH measurements

2022-03-18 - Fieldwork in Namibia

2022-03-15 - Building adjustable tree mounts for camera traps

2022-02-19 - Thoughts on setting up permanent vegetation monitoring plots

2022-02-18 - Omajowa mushrooms

2022-01-19 - Ecology projects and acronyms

2022-01-15 - Food on New Year's Eve

2022-01-10 - Atom notebooks

2022-01-05 - Making bark thickness punches

2021-12-30 - Pros and cons of conducting ecological fieldwork with ODK

2021-12-20 - Processing data from the TRY traits database

2021-12-10 - Why big square vegetation plots are best

2021-11-30 - First setup for nvim-lsp with nvim-cmp

2021-11-26 - SEOSAW plot metadata Shiny app

2021-11-14 - Minimum bounding rectangles around sf polygons in R

2021-10-26 - Extracting pages with colour from a PDF

2021-10-20 - New website

2021-10-12 - Walking three days of the Cleveland Way

2021-09-30 - Mulching trees to stop grass growth

2021-09-25 - Display lots of points with tiles in ggplot2

2021-09-20 - Data management during and after my PhD

2021-09-10 - PhD keyboard

2021-08-31 - Sensible page breaks in LaTeX grouped longtables

2021-08-21 - Collecting qualitative colour palettes

2021-08-15 - Flowering Aechmea fasciata

2021-08-08 - Grabbing BibTeX from a DOI

2021-08-01 - siunitx 'S' table column 'table-format' option

2021-07-31 - Diagrams to explain niche complementarity

2021-07-15 - BibLaTeX reference formatting

2021-07-10 - tmux popup windows for quickly launching scripts

2021-07-05 - Scraping museum catalogues

2021-06-25 - Network graph of R package usage

2021-06-23 - Interview presentation for SECO post-doc position

2021-06-17 - ASCII/UTF8 terrestrial carbon cycle diagram

2021-06-03 - A blog post on the Edinburgh Teaching Award

2021-06-01 - Diagrams to summarise Biodiversity - Ecosystem Function Research

2021-05-20 - compInd: An R package for forest tree-tree competition indices

2021-05-15 - Using nnn.vim as a filepicker for neomutt attachments

2021-05-10 - Calculating the winkelmass in R

2021-05-05 - FZF in vim and bash

2021-04-30 - ASCII charts in R

2021-04-25 - Polygon SVG diagrams

2021-04-20 - Pretty pictures from Terrestrial LiDAR

2021-04-20 - Reading on disc pasture meters

2021-04-15 - Empirical Cumulative Density Function (ECDF) plots

2021-04-10 - Learning Julia

2021-04-05 - Flatbreads

2021-03-30 - Modelling stem diameter class distribution with Weibull distributions

2021-03-25 - Planting 10 acres of woodland

2021-03-20 - Splitting a large woodland survey plot into 1 ha subdivisions

2021-03-15 - Fixing a stool

2021-03-10 - RSS feeds for scientific journals

2021-03-01 - Microsoft Azure Translator API call in R

2021-02-25 - LaTeX plot census forms

2021-01-20 - Making sense of the ODK ecosystem

2021-02-15 - Dynamic lists from user-added choices within repeats and groups, in ODK

2021-02-05 - What XLSForm+ODK cannot do

2021-01-25 - Playfair cipher in R

2021-01-15 - Estimating grassy volume from terrestrial LiDAR

2021-01-05 - Pandoc LaTeX shopping list template

2021-01-01 - Estimating canopy rugosity from terrestrial LiDAR

2020-12-30 - Extracting a vertical height profile from terrestrial LiDAR

2020-12-20 - Measuring canopy gap fraction from point clouds

2020-12-15 - Processing Terrestrial LiDAR with PDAL

2020-12-10 - Tiling wallpapers

2020-11-18 - Writing legibly in a field notebook

2020-11-08 - Querying the SoilGrids REST API

2020-10-31 - Making abundance matrices

2020-10-25 - Random effects plots

2020-10-17 - Scripting qutebrowser to grab papers with scidownl

2020-10-10 - Propagating basil

2020-10-05 - Comparing which simulated distribution is closest to the truth

2020-09-15 - Making a LaTeX thesis template

2020-09-10 - Making playlists for cmus

2020-09-05 - Display line segments with given slope in ggplot2

2020-08-24 - Sort and filter .bib files

2020-08-14 - Email about estimating competition with basal area

2020-08-08 - Curl-able contact card

2020-07-22 - Exporting draw.io images to LaTeX

2020-07-15 - How I cast Youtube videos to the TV

2020-07-10 - A weekend of consultations on woodland planting

2020-07-05 - Pretty correlation matrices with ggplot

2020-06-30 - Vim HTML img tag to markdown

2020-06-25 - Questions about operational IT for research

2020-06-15 - FZF script for searching a lookup table

2020-06-10 - Flow diagram for data cleaning process

2020-06-05 - An R function to split species names

2020-05-30 - Writing R package documentation

2020-05-25 - An email which tries to make sense of the RMarkdown ecosystem

2020-05-20 - Adventures in tweaking RMarkdown

2020-05-15 - Rendering list structure in R

2020-05-10 - Snippets to tweak macOS Finder.app

2020-05-05 - Thoughts on the publication process

2020-04-30 - Shiny app to visualise scaled planetary orbits on world map

2020-04-25 - Compiling a single master.tex from a modular document

2020-03-04

2020-04-10 - Kit list for tropical fieldwork

2020-04-05 - Comparison of F-droid notetaking apps on Android

2020-03-30 - Too many software options for group working

2020-03-25 - Shell script for internet radio

2020-03-20

2020-03-10 - My vimdiff setup

2020-03-05

2020-02-25 - Charging the laser scanner off a generator

2020-02-16 - Attaching threaded bar to rebar

2020-01-20 - Automate CSV typesetting for plot data sheets

2020-01-15 - An email about ordination and environmental fits

2020-01-07 - R functions for creating LaTeX variables

2019-12-20 - Workflow for writing an academic paper

2019-12-05 - Constructing diversity profiles with Hill numbers

2019-11-25 - Creating a personal library catalogue

2019-11-20 - Making a Gopherhole

2019-11-15 - Making better ggiNEXT plots

2019-11-10 - Making a LaTeX Beamer template

2019-11-05 - Shell script to get wifi password in macOS

2019-10-30 - UltiSnips cheatsheet

2019-10-25 - urlview to easily handle URLs in the terminal

2019-10-20 - Scraping instagram without an account

2019-10-15 - Writing ggplot2 grobs in a loop to maintain data values

2019-10-10 - A Pandoc template for converting markdown letters to LaTeX PDFs

2019-10-05 - Custom .sty files in LaTeX

2019-09-30 - Miscellaneous LaTeX snippets

2019-09-21 - Notes on Poisson regression

2019-09-12 - Analysing BibTeX files in R

2019-09-05 - Notes on diversity indices

2019-08-25 - My spot in Summer

2019-08-20 - Writing non-standard notation in ggplot2

2019-08-08 - Writing a Makefile for LaTeX and R

2019-08-07 - Customising plots drawn to estimate pairwise marginal means comparisons with emmeans::pwpp()

2019-07-31 - Vim fold expression for BibTeX files

2019-07-25 - Making lists

2019-07-12 - Plotting a semi-variogram fit in ggplot2

2019-07-15 - Marking laser scanning targets to aid processing

2019-07-10 - An email about setting up 1 Ha plots

2019-07-05 - Compressing images for this website

2019-06-25 - Fetching mail with offlineimap within Mutt

2019-06-10 - The Mackenzie Dendrometer

2019-06-05 - Hotter than average map

2019-05-30 - Poster for Postgraduate Research Conference

2019-05-28 - Talk at Remote Sensing of Vegetation meeting

2019-05-25 - Task management macros in Vim

2019-05-20 - Fewer geocaches

2019-05-17 - Plain text data entry in the terminal

2019-05-15 - Managing receipts on fieldwork

2019-05-10 - Edinburgh Teaching Award

2019-05-05 - Taking notes in the field

2019-04-30 - A 20 cm measuring stick

2019-04-25 - Thoughts on natural surroundings in Bicuar National Park

2019-04-20 - Angolan matchbox designs

2019-04-15 - Fermented drinks and exotic food in Huila province Angola

2019-04-10 - Ubuntu network timeout

2019-04-05 - DIY disc pasture meter in action

2019-03-15 - Exporting a list of R packages to install on a new machine

2019-02-28 - Python conda virtual environment in bash prompt

2019-02-20 - Making inset maps for publication

2019-02-15 - Using vifm to attach files to emails in Mutt

2019-02-05 - DIY disc pasture meter

2019-01-29 - Using the LaTeX 'float' package with Pandoc

2019-01-23 - Diagrams for tree measurements

2019-01-13 - Weekend walk on the Southern Upland Way and John Muir Link

2019-01-05 - Using notmuch to search email in Mutt

2018-12-29 - Putting a Linux distro on a USB, from a Mac

2018-12-23 - Converting Alpine addressbook to Mutt aliases

2018-12-15 - Updated Mutt config, multiple accounts

2018-12-05 - Calculating Vapour Pressure Deficit and other atmospheric things

2018-12-01 - Converting Qutebrowser bookmarks to w3m bookmarks

2018-11-25 - A better system for referencing

2018-11-20 - Calculating NDVI from Sentinel 2 images for Bicuar National Park

2018-11-15 - How much miombo is in each country

2018-11-06 - Making cider, bottling update

2018-11-02 - My spot in the woods in Autumn

2018-10-25 - Fixing up an Emmelle Diamond 5 bike

2018-10-19 - What I carry in my bag everyday

2018-10-15 - An R function to fill abbreviated genus names in a list of species

2018-10-10 - I made a mistake with cropping fisheye photos to a field of view

2018-10-02 - Hemispherical photography - should the focus be set to infinity?

2018-09-30 - Comparing forest canopy measurements with a phone lens and an expensive DSLR fisheye

2018-09-29 - Making Cider

2018-09-24 - Update on plant growth

2018-09-20 - Figuring out Sums of Squares in ANOVA

2018-09-12 - A method to crop hemispherical images to a field of view

2018-09-07 - A guide about processing hemispherical photos

2018-09-02 - An email about hemispherical photography

2018-08-31 - Ideas for a DIY bike chain tensioner

2018-08-25 - Foraging Chicken of the Woods

2018-08-20 - Pandoc CSS templates

2018-08-20 - Spoon carving trees in the SEOSAW network

2018-08-12 - Converting a bank .csv statement to ledger

2018-08-10 - Qutebrowser setup

2018-08-06 - VLC from the command line on macOS

2018-08-02 - Generating a static site using pandoc

2018-07-25 - Rebuilding a bike

2018-07-15 - Gmail on macOS command line: neomutt + offlineimap + notmuch + pass + vim + launchd (brew services) + w3m

2018-07-10 - Making a minimal wallet

2018-07-08 - Making a chopping board

2018-07-01 - Making arty renders of Belize's rivers

2018-06-25 - Updating pypodd to download most recent

2018-06-20 - Knife wear and tear

2018-06-10 - Hammock setup

2018-05-05 - Foraging and making wild garlic pesto

2018-05-01 - Converting stem locations in a square plot to X Y metre coordinates

2018-04-28 - Mapping GPX tracks from AAT for Android, in R

2018-04-25 - A workshop on Git for version control

2018-04-18 - Making a geoJSON powered Leaflet map

2018-04-15 - New hemispherical photography equipment

2018-04-07 - Dirty Weekenders Kitchen Table Talk

2018-04-07 - Updating pypodd to run .opml files

2018-04-05 - Kalanchoe propagation

2018-03-26 - I made a command line podcast grabber in Python

2018-03-25 - Spring woodworking in my spot

2018-03-22 - How many trees have I measured?

2018-03-02 - Grievances with email clients and the state of email usage

2018-02-21 - Expedition food

2018-02-21 - How to properly roll and store DBH tape measure

2018-01-11 - Replacing the lightline.vim plugin with a custom statusline/tabline

2017-12-10 - What are the possible uses for local webpages in a shared flat?

2017-12-01 - Elephants affect the spatial distribution of savannah trees

2017-11-01 - Producing Gitbooks

2017-11-01 - Methods of writing and collaboration

2017-11-01 - My workflow, tmux, vim, etc.

2017-09-15 - Cycling from Bridge of Allan to Blackford

2017-09-25 - Initial PhD ideas

2017-10-12 - Automating imageJ leaf area processing

2017-09-27 - Using R to locate spatial data points inside map polygons

2017-09-27 - Making Coding Club logos in R

2017-09-25 - Reconditioning an old axe

2017-09-22 - Walking the Great Glen Way

2017-09-16 - Visualising Survey Data with Likert Scales

2017-09-15 - Brewing Plum Wine

2017-09-10 - Making Logos for Coding Club

2017-09-10 - Growing micro-greens on cotton wool

2017-09-05 - Mapping The Vegetation and Climate of Africa in R

2017-09-01 - Analysing Ledger Personal Accounting Data Using R

2017-08-20 - Fire experiments in the Congo

2017-08-14 - Constructing a Useful Bash Prompt

2017-07-20 - Configuring Ranger, a File Manager for macOS, with rifle.conf

2017-02-10 - Interpretation panel at Roslin Glen