Programming languages are complex things, and over time they get refined, extended and eventually abandoned. In this post, I'm going to run through some of Python's core characteristics, and compare them with some other languages, and demystify a few head-scratching words on the way. For example, I explain what a .pyc file is, and why does it eventually get turned into C. In fact, if Python gets turned into C, why don't we just write everything in C in the first place? With an understanding of the design choices made by the Python developers, it is possible to see why Python operates in the way that it does, and it is also possible to see evolution in programming concepts. Think ...


If, like me, you have come from a LAMP (Linux, Apache, MySQL and PHP) background, you are probably used to vhosts, mod_rewrite and various .conf files. These are some of the core concepts for setting up Apache to serve a PHP application, and are a cornerstone of LAMP DevOps.

Recently, I’ve started to explore the Python / Django ecosystem, and one of the major differences is the move away from Apache, towards Nginx. As well as this shift, a raft of other technologies become useful with Django, and, crucially, there are some changes in architecture. In this post, I’ll run down some of the core technologies, and compare them to the LAMP stack architecture.

Before we start on the software, ...


In this post, I’m going to be talking about how to automatically control programs on Linux. The programs in question are likely to be essential to the operation of your website, so you need them to be available whenever your website is running. You may also want them to automatically start if you reset your server. To understand this problem a little better, I will discuss how programs are generally managed on Linux, before talking about some modern solutions, such as Supervisor.

On Unix-based operating systems, init is the first process started by the kernel during startup. It is the ancestor of all other processes, and is usually assigned the first process identifier (PID1). It is a daemon, which means ...


This post is an introduction to automatic server management. It is particularly relevant if you have been using a single server, maybe your laptop, to learn to program, and you are starting to get projects interfering with each other. Things like conflicting software versions, or some bug that you can't seem to solve. If you want to start using VMs to separate things, then read on...

If you have ever tinkered around with a web server, you will have probably broken it by accident, probably whilst trying to update something. This puts you in a frustrating and awkward situation, because you still want carry out the upgrade, but now you also have to fix the thing you have just broken. But ...


Tephra is another name for volcanic ash. With a powerful volcanic eruption, tephra can travel large distances and cover huge areas. For my project, the important idea was that a blanket of tephra covered a large area simultaneously. If it is possible to identify the same volcanic ash in two sets of old soil from different locations, then it is possible to say that the two sets of soil were created at the same time as the tephra.

Tephra is a term used to describe solid volcanic ejecta and it includes materials of varying composition and structure. Tephrochronology is a geochronological technique based on the location and identification of chemically distinct ash layers within a sediment sequence. The dominant control on ...


Another part of my research focused on pollen grains. Pollen is produced as part of the reproductive cycle of plants and are transported by wind and water throughout the environment. In principle, the more of a certain type of tree there is in the local environment, then the more of that plant’s pollen should be present in the surrounding landscape. When there are large shifts in the climate, then the species of trees in an environment changes. Therefore, the pollen in that environment will also change. As pollen is very resistant to degradation, analysing the pollen content of old soil (eg in a sediment core from the bottom of a lake) provides information on the vegetation present when that soil ...


As part of my research, I studied dinoflagellate cysts, which are tiny algal shells. The algae don’t all like the same water conditions, so when the water changes, so do the species of algae. By looking at the remains of dead algae in marine sediments, it is possible to understand what the past water conditions at that location might have been like.

Dinoflagellates are small, mostly unicellular, often photosynthetic protists, which are primary producers in both lacustrine and marine environments. They are characterised by the possession of a transverse and longitudinal flagellum, which together provide motility. Heterotrophic and autotrophic dinoflagellates exist, although some species exhibit both trophic modes. Dinoflagellates are active in the photic zone of a wide range of marine ...


April 22, 2017

During my Ph.D and Post-Doc positions, I co-authored 2 papers in peer-reviewed journals. The papers discussed the role of European volcanic activity in early human migration and the fallout patterns of a volcano that erupted in Germany around 12,000 years ago.

  • Riede, F; Bazely, O; (2009) Testing the 'Laacher See hypothesis': a health hazard perspective. Journal of Archaeological Science , 36 (3) pp. 675-683. 10.1016/j.jas.2008.10.013. (PDF)
  • Riede, F., Bazely, O., Newton, A.J. and Lane C.S. (2011) A Laacher See-eruption supplement to Tephrabase: Investigating distal tephra fallout dynamics. Quaternary International 246(1-2), 134-144. (PDF)

I also prepared a paper from my Ph.D, but it remains unpublished because I didn't have enough data from one of my samples, and I had ...