Adventure into web development

Last updated: 18 September 2022

Since around the start of 2022, I have been taking some time to learn some basic web development fundamentals to improve my ability to better communicate information and roll out small projects and web apps. I have a background in statistics and quantitative ecology and, like many ecologists, have spent most of my coding hours in the R language for scientific computation.

After several years of tinkering around with web apps through frameworks, like R shiny, I became a bit frustrated by my lack of understanding of the underlying "magic" that made these things work. Playing around with some CSS, to change the default text color of a widget was about as deep into the weeds I went.

<div style="color:red;"></div>

Lessons from my first blog

I stopped using it. In my old site, I wrote about some of the projects I had been working on and things I had learnt along the way. It was a fun experience, but I eventually stopped using it for a number of reasons, which are worth reflecting on here.

It stopped being fun. Blog posts became more of an after thought following something new I had learned. I am hoping in this new site, I will have a post in development while I am learning, so that the post can ride the same wave of excitement.

The compiler broke. R does not have a great out-of-the-box versioning system for installed dependencies (but see Packrat), so after a few migrations to new computers the burden of getting the whole beast to compile finally beat me. I was using blogdown, which is essentially a wrapper for the static site generator Hugo.

Interactive web apps Perhaps most importantly, lately I have been finding that developing interactive, user-facing interactive applications has become the most satisfying component of my work. If you know the R programming language, R shiny is a great framework to get you started, but as you start remedying the limitations with your own custom css, and javascript, it does not take long until your codebase is a dog's breakfast. Also, javascript is waaaaay more ubiquitous than R. I found the css and js hacks were not a great way to learn solid fundamentals for web development.

The purpose of this website

  1. A place I can rapidly publish content related to topics I am learning (i.e. Posts)
  2. A playground for exploring ideas, data sets, or new web components through short blog posts.
  3. My portfolio of projects (i.e. Projects)
  4. Somewhere I can store and organise things I want to remember or access easily (i.e. Resources).

Ecological computation and science

I am planning on partitioning my content between two sites: one personal and one professional site (still under construction). The professional site will include topics surrounding quantitative and computational ecology, which I see as an area I will be continuing to work for some time. Any content that doesn't coherently fit this theme will go into the personal site, along with my general contact information and cv. So this web site will likely develop into a hodge-podge of thoughts, information, and coding experiments.