Blog archive
-
2024-06-26 - Bash script to download audio from Youtube
-
2024-06-20 - R function to extract raster data
-
2024-06-19 - Processing bike ride data from Fitotrack Android app
-
2024-06-12 - Converting stem locations from lat-long to XY coordinates
-
2024-04-30 - An email about resprouting in the SEOSAW database
-
2024-03-15 - Definitions of drylands
-
2024-03-07 - Methods to establish square vegetation monitoring plots
-
2023-12-24 - Raspberry Pi home server
-
2023-10-05 - Scraping plot locations from the ForestPlots.net web map
-
2023-09-23 - tmux grouped sessions
-
2023-09-13 - SEOSAW growth rates workshop
-
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 - Fieldwork in Ongava Game Reserve
-
2023-02-12 - Fieldwork bumbag
-
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 - Low bandwidth radio
-
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-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-20 - Making sense of the ODK ecosystem
-
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-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 - Low bandwidth internet browsing
-
2020-03-10 - My vimdiff setup
-
2020-03-05 - Track changes in LaTeX for reviewer comments
-
2020-03-04 - Waiting for permits
-
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-15 - Marking laser scanning targets to aid processing
-
2019-07-12 - Plotting a semi-variogram fit in ggplot2
-
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 - Methods of writing and collaboration
-
2017-11-01 - My workflow, tmux, vim, etc.
-
2017-11-01 - Producing Gitbooks
-
2017-10-12 - Automating imageJ leaf area processing
-
2017-09-27 - Making Coding Club logos in R
-
2017-09-27 - Using R to locate spatial data points inside map polygons
-
2017-09-25 - Initial PhD ideas
-
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-15 - Cycling from Bridge of Allan to Blackford
-
2017-09-10 - Growing micro-greens on cotton wool
-
2017-09-10 - Making Logos for Coding Club
-
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