Introduction
Statistics
Contact
Development
Disclaimer
Help
==== Phlog archive ================================================
Back to home
- Planning cycle routes in Washington DC
- Gathering data on plant growth form for a regional species
- Job talk for GEO-TREES post-doc
- Leaf trait sampling protocol for SECO
- Comparison of Mo et al. (2024) global wood density with
- GPX files for Edinburgh cycle loops
- Bash script to download audio from Youtube
- R function to extract raster data
- Processing bike ride data from Fitotrack Android app
- Converting stem locations from lat-long to XY coordinates
- An email about resprouting in the SEOSAW database
- Definitions of drylands
- Methods to establish square vegetation monitoring plots
- Raspberry Pi home server
- Scraping plot locations from the ForestPlots.net web map
- tmux grouped sessions
- SEOSAW growth rates workshop
- Refurbishing my bike
- Excel Scottish Land Tax calculator
- Geo-referenced Teixeira (1968) Bicuar National Park
- An email about estimating productivity
- R functions to download data from KoboToolbox
- Vegetation map of Bicuar National Park - Teixeira 1968
- Presentations for lectureship interview
- Blog post on fieldwork in Ongava Game Reserve
- Importing data layers into Avenza Maps Android app
- Yoga routine for fieldwork
- Fieldwork in Ongava Game Reserve
- Fieldwork bumbag
- Command line tools I'd like to use but can't
- Shell script to extract colours from macOS Terminal.app
- R function to find nearest named colour
- CMUS colour scheme and persistent settings
- Cider making
- `BIOMASS::getWoodDensity()` description
- Low bandwidth radio
- Shiny app to explore climate space of SEOSAW region
- Comparing coordinates of tree stems collected with GPS or
- Tracking meals for a year
- Using `any()` with `ifelse()` and `group_by()`
- Todo lists in Vim, syntax highlighting
- PhD thesis
- Voronoi tessellation to measure tree spatial distribution
- Starting a repeat census of the New Wood
- Guide for analysing forest canopy photos
- Measuring stick for DBH measurements
- Fieldwork in Namibia
- Building adjustable tree mounts for camera traps
- Thoughts on setting up permanent vegetation monitoring plots
- Omajowa mushrooms
- Ecology projects and acronyms
- Food on New Year's Eve
- Atom notebooks
- Making bark thickness punches
- Pros and cons of conducting ecological fieldwork with ODK
- Processing data from the TRY traits database
- Why big square vegetation plots are best
- First setup for nvim-lsp with nvim-cmp
- SEOSAW plot metadata Shiny app
- Minimum bounding rectangles around sf polygons in R
- Extracting pages with colour from a PDF
- New website
- Walking three days of the Cleveland Way
- Mulching trees to stop grass growth
- Display lots of points with tiles in ggplot2
- Data management during and after my PhD
- PhD keyboard
- Sensible page breaks in LaTeX grouped longtables
- Collecting qualitative colour palettes
- Flowering Aechmea fasciata
- Grabbing BibTeX from a DOI
- siunitx 'S' table column 'table-format' option
- Diagrams to explain niche complementarity
- BibLaTeX reference formatting
- tmux popup windows for quickly launching scripts
- Scraping museum catalogues
- Network graph of R package usage
- Interview presentation for SECO post-doc position
- ASCII/UTF8 terrestrial carbon cycle diagram
- A blog post on the Edinburgh Teaching Award
- Diagrams to summarise Biodiversity - Ecosystem Function
- compInd: An R package for forest tree-tree competition
- Using nnn.vim as a filepicker for neomutt attachments
- Calculating the winkelmass in R
- FZF in vim and bash
- ASCII charts in R
- Polygon SVG diagrams
- Pretty pictures from Terrestrial LiDAR
- Reading on disc pasture meters
- Empirical Cumulative Density Function (ECDF) plots
- Learning Julia
- Flatbreads
- Modelling stem diameter class distribution with Weibull
- Planting 10 acres of woodland
- Splitting a large woodland survey plot into 1 ha subdivisions
- Fixing a stool
- RSS feeds for scientific journals
- Microsoft Azure Translator API call in R
- LaTeX plot census forms
- Making sense of the ODK ecosystem
- Dynamic lists from user-added choices within repeats and
- What XLSForm+ODK cannot do
- Playfair cipher in R
- Estimating grassy volume from terrestrial LiDAR
- Pandoc LaTeX shopping list template
- Estimating canopy rugosity from terrestrial LiDAR
- Extracting a vertical height profile from terrestrial LiDAR
- Measuring canopy gap fraction from point clouds
- Processing Terrestrial LiDAR with PDAL
- Tiling wallpapers
- Writing legibly in a field notebook
- Querying the SoilGrids REST API
- Making abundance matrices
- Random effects plots
- Scripting qutebrowser to grab papers with scidownl
- Propagating basil
- Comparing which simulated distribution is closest to the
- Making a LaTeX thesis template
- Making playlists for cmus
- Display line segments with given slope in ggplot2
- Sort and filter .bib files
- Email about estimating competition with basal area
- Curl-able contact card
- Exporting draw.io images to LaTeX
- How I cast Youtube videos to the TV
- A weekend of consultations on woodland planting
- Pretty correlation matrices with ggplot
- Vim HTML img tag to markdown
- Questions about operational IT for research
- FZF script for searching a lookup table
- Flow diagram for data cleaning process
- An R function to split species names
- Writing R package documentation
- An email which tries to make sense of the RMarkdown ecosystem
- Adventures in tweaking RMarkdown
- Rendering list structure in R
- Snippets to tweak macOS Finder.app
- Thoughts on the publication process
- Shiny app to visualise scaled planetary orbits on world map
- Compiling a single master.tex from a modular document
- Waiting for permits
- Kit list for tropical fieldwork
- Comparison of F-droid notetaking apps on Android
- Too many software options for group working
- Shell script for internet radio
- Low bandwidth internet browsing
- My vimdiff setup
- Track changes in LaTeX for reviewer comments
- Charging the laser scanner off a generator
- Attaching threaded bar to rebar
- Automate CSV typesetting for plot data sheets
- An email about ordination and environmental fits
- R functions for creating LaTeX variables
- Workflow for writing an academic paper
- Constructing diversity profiles with Hill numbers
- Creating a personal library catalogue
- Making a Gopherhole
- Making better ggiNEXT plots
- Making a LaTeX Beamer template
- Shell script to get wifi password in macOS
- UltiSnips cheatsheet
- urlview to easily handle URLs in the terminal
- Scraping instagram without an account
- Writing ggplot2 grobs in a loop to maintain data values
- A Pandoc template for converting markdown letters to LaTeX
- Custom .sty files in LaTeX
- Miscellaneous LaTeX snippets
- Notes on Poisson regression
- Analysing BibTeX files in R
- Notes on diversity indices
- My spot in Summer
- Writing non-standard notation in ggplot2
- Writing a Makefile for LaTeX and R
- Customising plots drawn to estimate pairwise marginal means
- Vim fold expression for BibTeX files
- Making lists
- Plotting a semi-variogram fit in ggplot2
- Marking laser scanning targets to aid processing
- An email about setting up one hectare plots
- Compressing images for this website
- Fetching mail with offlineimap within Mutt
- The Mackenzie Dendrometer
- Hotter than average map
- Poster for Postgraduate Research Conference
- Talk at Remote Sensing of Vegetation meeting
- Task management macros in Vim
- Fewer geocaches
- Plain text data entry in the terminal
- Managing receipts on fieldwork
- Edinburgh Teaching Award
- Taking notes in the field
- A 20 cm measuring stick
- Thoughts on natural surroundings in Bicuar National Park
- Angolan matchbox designs
- Fermented drinks and exotic food in Huila province Angola
- Ubuntu network timeout
- DIY disc pasture meter in action
- Exporting a list of R packages to install on a new machine
- Python conda virtual environment in bash prompt
- Making inset maps for publication
- Using vifm to attach files to emails in Mutt
- DIY disc pasture meter
- Using the LaTeX 'float' package with Pandoc
- Diagrams for tree measurements
- Weekend walk on the Southern Upland Way and John Muir Link
- Using notmuch to search email in Mutt
- Putting a Linux distro on a USB, from a Mac
- Converting Alpine addressbook to Mutt aliases
- Updated Mutt config, multiple accounts
- Calculating Vapour Pressure Deficit and other atmospheric
- Converting Qutebrowser bookmarks to w3m bookmarks
- A better system for referencing
- Calculating NDVI from Sentinel 2 images for Bicuar National
- How much miombo is in each country
- Making cider, bottling update
- My spot in the woods in Autumn
- Fixing up an Emmelle Diamond 5 bike
- What I carry in my bag everyday
- An R function to fill abbreviated genus names in a list of
- I made a mistake with cropping fisheye photos to a field of
- Hemispherical photography - should the focus be set to
- Comparing forest canopy measurements with a phone lens and
- Making Cider
- Update on plant growth
- Figuring out Sums of Squares in ANOVA
- A method to crop hemispherical images to a field of view
- A guide about processing hemispherical photos
- An email about hemispherical photography
- Ideas for a DIY bike chain tensioner
- Foraging Chicken of the Woods
- Pandoc CSS templates
- Spoon carving trees in the SEOSAW network
- Converting a bank .csv statement to ledger
- Qutebrowser setup
- VLC from the command line on macOS
- Generating a static site using pandoc
- Rebuilding a bike
- Gmail on macOS command line: neomutt + offlineimap + notmuch
- Making a minimal wallet
- Making a chopping board
- Making arty renders of Belize's rivers
- Updating pypodd to download most recent
- Knife wear and tear
- Hammock setup
- Foraging and making wild garlic pesto
- Converting stem locations in a square plot to X Y metre
- Mapping GPX tracks from AAT for Android, in R
- A workshop on Git for version control
- Making a geoJSON powered Leaflet map
- New hemispherical photography equipment
- Dirty Weekenders Kitchen Table Talk
- Updating pypodd to run .opml files
- Kalanchoe propagation
- I made a command line podcast grabber in Python
- Spring woodworking in my spot
- How many trees have I measured?
- Grievances with email clients and the state of email usage
- Expedition food
- How to properly roll and store DBH tape measure
- Replacing the lightline.vim plugin with a custom
- What are the possible uses for local webpages in a shared
- Elephants affect the spatial distribution of savannah trees
- Producing Gitbooks
- Methods of writing and collaboration
- My workflow, tmux, vim, etc.
- Cycling from Bridge of Allan to Blackford
- Initial PhD ideas
- Automating imageJ leaf area processing
- Using R to locate spatial data points inside map polygons
- Making Coding Club logos in R
- Reconditioning an old axe
- Walking the Great Glen Way
- Visualising Survey Data with Likert Scales
- Brewing plum wine
- Making Logos for Coding Club
- Growing micro-greens on cotton wool
- Mapping The Vegetation and Climate of Africa in R
- Analysing Ledger Personal Accounting Data Using R
- Fire experiments in the Congo
- Constructing a Useful Bash Prompt
- Configuring Ranger, a File Manager for macOS, with rifle.conf
- Interpretation panel at Roslin Glen