diff --git a/.gitignore b/.gitignore
index 5c531a00105..a5707514ec4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,4 +10,6 @@ Gemfile.lock
# Ingore files created by npm
node_modules
-package-lock.json
\ No newline at end of file
+package-lock.json
+
+.DS_Store
\ No newline at end of file
diff --git a/_config.yml b/_config.yml
index e63251be0a0..8ee508d6fa8 100644
--- a/_config.yml
+++ b/_config.yml
@@ -9,13 +9,13 @@
# Basic Site Settings
locale : "en-US"
site_theme : "default"
-title : "Your Name / Site Title"
-title_separator : "-"
-name : &name "Your Name"
-description : &description "personal description"
-url : https://academicpages.github.io # the base hostname & protocol for your site e.g. "https://[your GitHub username].github.io"
+title : "Home"
+title_separator : "- "
+name : &name "Patrick O'Hara"
+description : &description "Personal webpage"
+url : https://patrickohara.github.io # the base hostname & protocol for your site e.g. "https://[your GitHub username].github.io"
baseurl : "" # the subpath of your site, e.g. "/blog"
-repository : "academicpages/academicpages.github.io"
+repository : "PatrickOHara/patrickohara.github.io"
# Site Author - The following control what appear as part of the author content on the side bar.
# If a field is blank the icon and link will not appear, otherwise it will be shown.
@@ -152,6 +152,45 @@ analytics:
tracking_id :
+# Site Author
+author:
+ name : "Patrick O'Hara"
+ avatar : "patrick.png"
+ bio : "PhD Candidate in Computer Science"
+ location :
+ employer : "University of Warwick"
+ pubmed :
+ googlescholar : "https://scholar.google.com/citations?user=FrPPYhIAAAAJ&hl=en"
+ email : "patrick.h.o-hara@warwick.ac.uk"
+ researchgate : # example: "https://www.researchgate.net/profile/yourprofile"
+ uri :
+ bitbucket :
+ codepen :
+ dribbble :
+ flickr :
+ facebook :
+ foursquare :
+ github : "https://github.com/PatrickOHara"
+ google_plus :
+ keybase :
+ instagram :
+ impactstory : #"https://profiles.impactstory.org/u/xxxx-xxxx-xxxx-xxxx"
+ lastfm :
+ linkedin : "https://www.linkedin.com/in/patrick-o-hara-9a0b45155/"
+ orcid : "https://orcid.org/0000-0001-9600-7554"
+ pinterest :
+ soundcloud :
+ stackoverflow : # http://stackoverflow.com/users/123456/username
+ steam :
+ tumblr :
+ twitter :
+ vine :
+ weibo :
+ xing :
+ youtube :
+ wikipedia :
+
+
# Reading Files
include:
- .htaccess
diff --git a/_data/navigation.yml b/_data/navigation.yml
index 5959f5879b0..5f7f5736292 100644
--- a/_data/navigation.yml
+++ b/_data/navigation.yml
@@ -17,11 +17,11 @@ main:
- title: "Portfolio"
url: /portfolio/
- - title: "Blog Posts"
- url: /year-archive/
+ # - title: "Blog Posts"
+ # url: /year-archive/
- - title: "CV"
- url: /cv/
+ # - title: "CV"
+ # url: /cv/
- - title: "Guide"
- url: /markdown/
+ # - title: "Guide"
+ # url: /markdown/
diff --git a/_pages/about.md b/_pages/about.md
index 387e2f31cd7..cb4d44f3f46 100644
--- a/_pages/about.md
+++ b/_pages/about.md
@@ -1,49 +1,18 @@
---
permalink: /
-title: "Academic Pages is a ready-to-fork GitHub Pages template for academic personal websites"
+title: "About Patrick O'Hara"
author_profile: true
redirect_from:
- /about/
- /about.html
+ - /index/
+ - /index.html
---
-This is the front page of a website that is powered by the [Academic Pages template](https://github.com/academicpages/academicpages.github.io) and hosted on GitHub pages. [GitHub pages](https://pages.github.com) is a free service in which websites are built and hosted from code and data stored in a GitHub repository, automatically updating when a new commit is made to the repository. This template was forked from the [Minimal Mistakes Jekyll Theme](https://mmistakes.github.io/minimal-mistakes/) created by Michael Rose, and then extended to support the kinds of content that academics have: publications, talks, teaching, a portfolio, blog posts, and a dynamically-generated CV. You can fork [this template](https://github.com/academicpages/academicpages.github.io) right now, modify the configuration and markdown files, add your own PDFs and other content, and have your own site for free, with no ads!
+I am a forth year PhD student in Computer Science at the University of Warwick supervised by [Prof Theo Damoulas](https://warwick.ac.uk/fac/sci/statistics/staff/academic-research/damoulas/) and [Dr Ramanujan Sridharan](https://msramanujan.weebly.com/). I am an active member of the [Warwick Machine Learning Group](https://wmlg.io/).
-A data-driven personal website
-======
-Like many other Jekyll-based GitHub Pages templates, Academic Pages makes you separate the website's content from its form. The content & metadata of your website are in structured markdown files, while various other files constitute the theme, specifying how to transform that content & metadata into HTML pages. You keep these various markdown (.md), YAML (.yml), HTML, and CSS files in a public GitHub repository. Each time you commit and push an update to the repository, the [GitHub pages](https://pages.github.com/) service creates static HTML pages based on these files, which are hosted on GitHub's servers free of charge.
+My research interests lie in the intersection of distributionally robust optimisation, graph theory, and machine learning.
-Many of the features of dynamic content management systems (like Wordpress) can be achieved in this fashion, using a fraction of the computational resources and with far less vulnerability to hacking and DDoSing. You can also modify the theme to your heart's content without touching the content of your site. If you get to a point where you've broken something in Jekyll/HTML/CSS beyond repair, your markdown files describing your talks, publications, etc. are safe. You can rollback the changes or even delete the repository and start over - just be sure to save the markdown files! Finally, you can also write scripts that process the structured data on the site, such as [this one](https://github.com/academicpages/academicpages.github.io/blob/master/talkmap.ipynb) that analyzes metadata in pages about talks to display [a map of every location you've given a talk](https://academicpages.github.io/talkmap.html).
+From Oct 2022 - Mar 2023 I was an Applied Scientist Intern at Amazon supervised by [Phillip Loick](https://www.linkedin.com/in/philipp-loick-9333b6173/?originalSubdomain=lu).
-Getting started
-======
-1. Register a GitHub account if you don't have one and confirm your e-mail (required!)
-1. Fork [this template](https://github.com/academicpages/academicpages.github.io) by clicking the "Use this template" button in the top right.
-1. Go to the repository's settings (rightmost item in the tabs that start with "Code", should be below "Unwatch"). Rename the repository "[your GitHub username].github.io", which will also be your website's URL.
-1. Set site-wide configuration and create content & metadata (see below -- also see [this set of diffs](http://archive.is/3TPas) showing what files were changed to set up [an example site](https://getorg-testacct.github.io) for a user with the username "getorg-testacct")
-1. Upload any files (like PDFs, .zip files, etc.) to the files/ directory. They will appear at https://[your GitHub username].github.io/files/example.pdf.
-1. Check status by going to the repository settings, in the "GitHub pages" section
-
-Site-wide configuration
-------
-The main configuration file for the site is in the base directory in [_config.yml](https://github.com/academicpages/academicpages.github.io/blob/master/_config.yml), which defines the content in the sidebars and other site-wide features. You will need to replace the default variables with ones about yourself and your site's github repository. The configuration file for the top menu is in [_data/navigation.yml](https://github.com/academicpages/academicpages.github.io/blob/master/_data/navigation.yml). For example, if you don't have a portfolio or blog posts, you can remove those items from that navigation.yml file to remove them from the header.
-
-Create content & metadata
-------
-For site content, there is one markdown file for each type of content, which are stored in directories like _publications, _talks, _posts, _teaching, or _pages. For example, each talk is a markdown file in the [_talks directory](https://github.com/academicpages/academicpages.github.io/tree/master/_talks). At the top of each markdown file is structured data in YAML about the talk, which the theme will parse to do lots of cool stuff. The same structured data about a talk is used to generate the list of talks on the [Talks page](https://academicpages.github.io/talks), each [individual page](https://academicpages.github.io/talks/2012-03-01-talk-1) for specific talks, the talks section for the [CV page](https://academicpages.github.io/cv), and the [map of places you've given a talk](https://academicpages.github.io/talkmap.html) (if you run this [python file](https://github.com/academicpages/academicpages.github.io/blob/master/talkmap.py) or [Jupyter notebook](https://github.com/academicpages/academicpages.github.io/blob/master/talkmap.ipynb), which creates the HTML for the map based on the contents of the _talks directory).
-
-**Markdown generator**
-
-The repository includes [a set of Jupyter notebooks](https://github.com/academicpages/academicpages.github.io/tree/master/markdown_generator
-) that converts a CSV containing structured data about talks or presentations into individual markdown files that will be properly formatted for the Academic Pages template. The sample CSVs in that directory are the ones I used to create my own personal website at stuartgeiger.com. My usual workflow is that I keep a spreadsheet of my publications and talks, then run the code in these notebooks to generate the markdown files, then commit and push them to the GitHub repository.
-
-How to edit your site's GitHub repository
-------
-Many people use a git client to create files on their local computer and then push them to GitHub's servers. If you are not familiar with git, you can directly edit these configuration and markdown files directly in the github.com interface. Navigate to a file (like [this one](https://github.com/academicpages/academicpages.github.io/blob/master/_talks/2012-03-01-talk-1.md) and click the pencil icon in the top right of the content preview (to the right of the "Raw | Blame | History" buttons). You can delete a file by clicking the trashcan icon to the right of the pencil icon. You can also create new files or upload files by navigating to a directory and clicking the "Create new file" or "Upload files" buttons.
-
-Example: editing a markdown file for a talk
-
-
-For more info
-------
-More info about configuring Academic Pages can be found in [the guide](https://academicpages.github.io/markdown/), the [growing wiki](https://github.com/academicpages/academicpages.github.io/wiki), and you can always [ask a question on GitHub](https://github.com/academicpages/academicpages.github.io/discussions). The [guides for the Minimal Mistakes theme](https://mmistakes.github.io/minimal-mistakes/docs/configuration/) (which this theme was forked from) might also be helpful.
+Prior to starting my PhD, I was a research assistant working at The Alan Turing Institute (2019-2020) and the University of Warwick (2018-2019). Projects I was working on include the London Air Quality Project and Project Odysseus. From 2015-2018, I completed my BSc in Computer Science at the University of Warwick.
diff --git a/_pages/publications.md b/_pages/publications.md
new file mode 100644
index 00000000000..a757bf4a747
--- /dev/null
+++ b/_pages/publications.md
@@ -0,0 +1,17 @@
+---
+layout: archive
+title: "Publications"
+permalink: /publications/
+author_profile: true
+---
+
+{% if author.googlescholar %}
+ You can also find my articles on my Google Scholar profile.
+{% endif %}
+
+
+{% include base_path %}
+
+{% for post in site.publications reversed %}
+ {% include archive-single.html %}
+{% endfor %}
diff --git a/_portfolio/portfolio-1.md b/_portfolio/portfolio-1.md
index 847af9e4d96..b0b66644a35 100644
--- a/_portfolio/portfolio-1.md
+++ b/_portfolio/portfolio-1.md
@@ -1,7 +1,29 @@
---
-title: "Portfolio item number 1"
-excerpt: "Short description of portfolio item number 1
"
+title: "TSPLIB with Profits"
+excerpt: "Python library for parsing TSP with Profits datasets."
collection: portfolio
---
-This is an item in your portfolio. It can be have images or nice text. If you name the file .md, it will be parsed as markdown. If you name the file .html, it will be parsed as HTML.
+[See the code](https://github.com/PatrickOHara/tspwplib) and [read the docs](https://patrickohara.github.io/tspwplib/).
+
+Get an instance of the Orienteering Problem:
+
+```python
+import os
+from tspwplib import *
+
+oplib_root = os.getenv("OPLIB_ROOT") # TODO set your path to oplib
+filepath = build_path_to_oplib_instance(
+ oplib_root, Generation.gen1, GraphName.st70
+)
+problem = ProfitsProblem.load(filepath)
+```
+
+
+Get a [networkx](https://networkx.org/) graph with attributes for prize on the vertices and cost on the edges:
+
+```python
+nx_graph = problem.get_graph()
+```
+
+**Acknowledgements**: This library relies heavily upon [tsplib95](https://github.com/rhgrant10/tsplib95.git) and [OPLib](https://github.com/bcamath-ds/OPLib.git).
diff --git a/_portfolio/portfolio-2.html b/_portfolio/portfolio-2.html
deleted file mode 100644
index 8a0c6ebb444..00000000000
--- a/_portfolio/portfolio-2.html
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: "Portfolio item number 2"
-excerpt: "Short description of portfolio item number 2
"
-collection: portfolio
----
-
-This is an item in your portfolio. It can be have images or nice text. If you name the file .md, it will be parsed as markdown. If you name the file .html, it will be parsed as HTML.
diff --git a/_publications/2009-10-01-paper-title-number-1.md b/_publications/2009-10-01-paper-title-number-1.md
deleted file mode 100644
index 37cfe9a4700..00000000000
--- a/_publications/2009-10-01-paper-title-number-1.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: "Paper Title Number 1"
-collection: publications
-category: manuscripts
-permalink: /publication/2009-10-01-paper-title-number-1
-excerpt: 'This paper is about the number 1. The number 2 is left for future work.'
-date: 2009-10-01
-venue: 'Journal 1'
-slidesurl: 'http://academicpages.github.io/files/slides1.pdf'
-paperurl: 'http://academicpages.github.io/files/paper1.pdf'
-citation: 'Your Name, You. (2009). "Paper Title Number 1." Journal 1. 1(1).'
----
-
-The contents above will be part of a list of publications, if the user clicks the link for the publication than the contents of section will be rendered as a full page, allowing you to provide more information about the paper for the reader. When publications are displayed as a single page, the contents of the above "citation" field will automatically be included below this section in a smaller font.
\ No newline at end of file
diff --git a/_publications/2010-10-01-paper-title-number-2.md b/_publications/2010-10-01-paper-title-number-2.md
deleted file mode 100644
index 00637099397..00000000000
--- a/_publications/2010-10-01-paper-title-number-2.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: "Paper Title Number 2"
-collection: publications
-category: manuscripts
-permalink: /publication/2010-10-01-paper-title-number-2
-excerpt: 'This paper is about the number 2. The number 3 is left for future work.'
-date: 2010-10-01
-venue: 'Journal 1'
-slidesurl: 'http://academicpages.github.io/files/slides2.pdf'
-paperurl: 'http://academicpages.github.io/files/paper2.pdf'
-citation: 'Your Name, You. (2010). "Paper Title Number 2." Journal 1. 1(2).'
----
-
-The contents above will be part of a list of publications, if the user clicks the link for the publication than the contents of section will be rendered as a full page, allowing you to provide more information about the paper for the reader. When publications are displayed as a single page, the contents of the above "citation" field will automatically be included below this section in a smaller font.
\ No newline at end of file
diff --git a/_publications/2015-10-01-paper-title-number-3.md b/_publications/2015-10-01-paper-title-number-3.md
deleted file mode 100644
index 42bf1d4ae7c..00000000000
--- a/_publications/2015-10-01-paper-title-number-3.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: "Paper Title Number 3"
-collection: publications
-category: manuscripts
-permalink: /publication/2015-10-01-paper-title-number-3
-excerpt: 'This paper is about the number 3. The number 4 is left for future work.'
-date: 2015-10-01
-venue: 'Journal 1'
-slidesurl: 'http://academicpages.github.io/files/slides3.pdf'
-paperurl: 'http://academicpages.github.io/files/paper3.pdf'
-citation: 'Your Name, You. (2015). "Paper Title Number 3." Journal 1. 1(3).'
----
-
-The contents above will be part of a list of publications, if the user clicks the link for the publication than the contents of section will be rendered as a full page, allowing you to provide more information about the paper for the reader. When publications are displayed as a single page, the contents of the above "citation" field will automatically be included below this section in a smaller font.
\ No newline at end of file
diff --git a/_publications/2020-12-expectation.md b/_publications/2020-12-expectation.md
new file mode 100644
index 00000000000..77247a6644b
--- /dev/null
+++ b/_publications/2020-12-expectation.md
@@ -0,0 +1,12 @@
+---
+title: "An Expectation-Based Network Scan Statistic for a COVID-19 Early Warning System"
+collection: publications
+permalink: '/publications/2020-12-expectation'
+excerpt: ''
+date: 2020-12-01
+venue: 'ML4PH @ NeurIPS 2020'
+paperurl: 'https://arxiv.org/abs/2012.07574'
+citation: "Haycock, C., Thorpe-Woods, E., Walsh, J., O'Hara, P., Giles, O., Dhir, N., and Damoulas, T. (2020). An expectation-based network scan statistic for a covid-19 early warning system. Machine Learning in Public Health workshop, Neural Information Processing Systems."
+---
+
+**Abstract**: One of the Greater London Authority's (GLA) response to the COVID-19 pandemic brings together multiple large-scale and heterogeneous datasets capturing mobility, transportation and traffic activity over the city of London to better understand 'busyness' and enable targeted interventions and effective policy-making. As part of Project Odysseus we describe an early-warning system and introduce an expectation-based scan statistic for networks to help the GLA and Transport for London, understand the extent to which populations are following government COVID-19 guidelines. We explicitly treat the case of geographically fixed time-series data located on a (road) network and primarily focus on monitoring the dynamics across large regions of the capital. Additionally, we also focus on the detection and reporting of significant spatio-temporal regions. Our approach is extending the Network Based Scan Statistic (NBSS) by making it expectation-based (EBP) and by using stochastic processes for time-series forecasting, which enables us to quantify metric uncertainty in both the EBP and NBSS frameworks. We introduce a variant of the metric used in the EBP model which focuses on identifying space-time regions in which activity is quieter than expected.
\ No newline at end of file
diff --git a/_publications/2024-01-social.md b/_publications/2024-01-social.md
new file mode 100644
index 00000000000..25c36f109c9
--- /dev/null
+++ b/_publications/2024-01-social.md
@@ -0,0 +1,14 @@
+---
+title: "Near Real-Time Social Distance Estimation In London"
+collection: publications
+permalink: /publication/2024-01-social
+excerpt: ''
+date: 2024-01-01
+venue: 'The Computer Journal'
+paperurl: 'https://doi.org/10.1093/comjnl/bxac160'
+citation: 'James Walsh, Oluwafunmilola Kesa, Andrew Wang, Mihai Ilas, Patrick O’Hara, Oscar Giles, Neil Dhir, Mark Girolami, Theodoros Damoulas, Near Real-Time Social Distance Estimation In London, The Computer Journal, Volume 67, Issue 1, January 2024, Pages 95–109.'
+---
+
+**Abstract**: To mitigate the current COVID-19 pandemic, policy makers at the Greater London Authority, the regional governance body of London, UK, are reliant upon prompt, accurate and actionable estimations of lockdown and social distancing policy adherence. Transport for London, the local transportation department, reports they implemented over 700 interventions such as greater signage and expansion of pedestrian zoning at the height of the pandemic’s first wave with our platform providing key data for those decisions. Large well-defined heterogeneous compositions of pedestrian footfall and physical proximity are difficult to acquire, yet necessary to monitor city-wide activity (busyness) and consequently discern actionable policy decisions. To meet this challenge, we leverage our existing large-scale data processing urban air quality machine learning infrastructure to process over 900 camera feeds in near real-time to generate new estimates of social distancing adherence, group detection and camera stability. In this work, we describe our development and deployment of a computer vision and machine learning pipeline. It provides near immediate sampling and contextualization of activity and physical distancing on the streets of London via live traffic camera feeds. We introduce a platform for inspecting, calibrating and improving upon existing methods, describe the active deployment on real-time feeds and provide analysis over an 18 month period.
+
+
\ No newline at end of file
diff --git a/_publications/2025-12-dro-bas.md b/_publications/2025-12-dro-bas.md
new file mode 100644
index 00000000000..5710d7bcd49
--- /dev/null
+++ b/_publications/2025-12-dro-bas.md
@@ -0,0 +1,14 @@
+---
+title: ""
+collection: publications
+permalink: /publication/2025-12-dro-bas
+excerpt: ''
+date: 2024-12-01
+venue: 'NeurIPS 2024 Workshop on Bayesian Decision-making and Uncertainty.'
+paperurl: ''
+citation: "Dellaporta, C., O’Hara, P., & Damoulas, T. Distributionally Robust Optimisation with Bayesian Ambiguity Sets. In NeurIPS 2024 Workshop on Bayesian Decision-making and Uncertainty."
+---
+
+**Abstract**: Decision making under uncertainty is challenging since the data-generating process (DGP) is often unknown. Bayesian inference proceeds by estimating the DGP through posterior beliefs about the model's parameters. However, minimising the expected risk under these posterior beliefs can lead to sub-optimal decisions due to model uncertainty or limited, noisy observations. To address this, we introduce Distributionally Robust Optimisation with Bayesian Ambiguity Sets (DRO-BAS) which hedges against uncertainty in the model by optimising the worst-case risk over a posterior-informed ambiguity set. We show that our method admits a closed-form dual representation for many exponential family members and showcase its improved out-of-sample robustness against existing Bayesian DRO methodology in the Newsvendor problem.
+
+
\ No newline at end of file
diff --git a/_talks/2012-03-01-talk-1.md b/_talks/2012-03-01-talk-1.md
deleted file mode 100644
index b9416d48046..00000000000
--- a/_talks/2012-03-01-talk-1.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: "Talk 1 on Relevant Topic in Your Field"
-collection: talks
-type: "Talk"
-permalink: /talks/2012-03-01-talk-1
-venue: "UC San Francisco, Department of Testing"
-date: 2012-03-01
-location: "San Francisco, CA, USA"
----
-
-This is a description of your talk, which is a markdown file that can be all markdown-ified like any other post. Yay markdown!
diff --git a/_talks/2013-03-01-tutorial-1.md b/_talks/2013-03-01-tutorial-1.md
deleted file mode 100644
index 0a6e069d7a9..00000000000
--- a/_talks/2013-03-01-tutorial-1.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: "Tutorial 1 on Relevant Topic in Your Field"
-collection: talks
-type: "Tutorial"
-permalink: /talks/2013-03-01-tutorial-1
-venue: "UC-Berkeley Institute for Testing Science"
-date: 2013-03-01
-location: "Berkeley, CA, USA"
----
-
-[More information here](http://exampleurl.com)
-
-This is a description of your tutorial, note the different field in type. This is a markdown files that can be all markdown-ified like any other post. Yay markdown!
diff --git a/_talks/2014-02-01-talk-2.md b/_talks/2014-02-01-talk-2.md
deleted file mode 100644
index 0fc6b146ab1..00000000000
--- a/_talks/2014-02-01-talk-2.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: "Talk 2 on Relevant Topic in Your Field"
-collection: talks
-type: "Talk"
-permalink: /talks/2014-02-01-talk-2
-venue: "London School of Testing"
-date: 2014-02-01
-location: "London, UK"
----
-
-[More information here](http://example2.com)
-
-This is a description of your talk, which is a markdown files that can be all markdown-ified like any other post. Yay markdown!
diff --git a/_talks/2014-03-01-talk-3.md b/_talks/2014-03-01-talk-3.md
deleted file mode 100644
index 558a5b73521..00000000000
--- a/_talks/2014-03-01-talk-3.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: "Conference Proceeding talk 3 on Relevant Topic in Your Field"
-collection: talks
-type: "Conference proceedings talk"
-permalink: /talks/2014-03-01-talk-3
-venue: "Testing Institute of America 2014 Annual Conference"
-date: 2014-03-01
-location: "Los Angeles, CA, USA"
----
-
-This is a description of your conference proceedings talk, note the different field in type. You can put anything in this field.
diff --git a/_talks/2019-06-06-cogx.md b/_talks/2019-06-06-cogx.md
new file mode 100644
index 00000000000..569918c6e1e
--- /dev/null
+++ b/_talks/2019-06-06-cogx.md
@@ -0,0 +1,11 @@
+---
+title: "Running from air pollution: prediction, forecasting & routing"
+collection: talks
+type: "Talk"
+permalink: /talks/2012-03-01-talk-1
+venue: "CogX 2019"
+date: 2019-06-06
+location: "London, UK"
+---
+
+[See the talk on YouTube](https://youtu.be/ixoOpX8MeGI).
\ No newline at end of file
diff --git a/_talks/2021-12-13-wpccs.md b/_talks/2021-12-13-wpccs.md
new file mode 100644
index 00000000000..192a81753f9
--- /dev/null
+++ b/_talks/2021-12-13-wpccs.md
@@ -0,0 +1,13 @@
+---
+title: "The Prize-collecting Travelling Salesman Problem"
+collection: talks
+type: "Talk"
+permalink: /talks/2021-12-13-wpccs
+venue: "Warwick Postgraduate Colloquium in Computer Science 2021"
+date: 2021-12-13
+location: "University of Warwick, UK"
+---
+
+[More information here](https://warwick.ac.uk/fac/sci/dcs/research/wpccs/wpccs21/schedule/#546387572)
+
+**Abstract**: We study the Prize-collecting Travelling Salesman Problem: given an undirected graph with a cost function on the edges and a prize function on the vertices, find a simple cycle rooted at the origin that minimises the total cost such that total prize is at least some quota. Our aim is to find exact solutions on general graphs where the cost function does not necessarily obey the triangle inequality. We are motivated by the real-world problem of finding a sufficiently long running route in a city that minimises the air pollution exposure of the runner. We propose a new heuristic, valid inequalities and a branch and cut algorithm for solving sparse, non-metric instances. Finally, we analyse the performance of our algorithms on the London air quality dataset and the TSPLIB dataset.
diff --git a/_talks/2023-06-05-digital.md b/_talks/2023-06-05-digital.md
new file mode 100644
index 00000000000..242c9c0c693
--- /dev/null
+++ b/_talks/2023-06-05-digital.md
@@ -0,0 +1,13 @@
+---
+title: "Digital Twin of London Air Quality"
+collection: talks
+type: "Talk"
+permalink: /talks/2013-03-01-tutorial-1
+venue: "Global to Local Environmental Exploration with Data Science and AI Innovations "
+date: 2023-06-05
+location: "University of Warwick, UK"
+---
+
+[More information here](https://warwick.ac.uk/research/data-science/warwick-data/news/events/global-to-local/)
+
+
diff --git a/_talks/2023-12-11-wpccs.md b/_talks/2023-12-11-wpccs.md
new file mode 100644
index 00000000000..9d6ddd1eef8
--- /dev/null
+++ b/_talks/2023-12-11-wpccs.md
@@ -0,0 +1,11 @@
+---
+title: "Distributionally Robust Routing Problems"
+collection: talks
+type: "Talk"
+permalink: /talks/2014-03-01-talk-3
+venue: "Warwick Postgraduate Colloquium in Computer Science 2023 Winter"
+date: 2023-12-11
+location: "University of Warwick, UK"
+---
+
+**Abstract**: Given a probability distribution over the cost function of edges in a graph, a stochastic routing optimisation problem finds a route in the graph that minimises a risk function of the route cost. In practise, it is rare that we have access to the true data-generating distribution over edge costs. Instead, we are given a set of empirical cost observations. From the observations, we can construct a (Bayesian) machine learning model of the costs, then do out-of-sample prediction with our model on new, unseen data. If the observations are noisy or in limited supply - or if our model is misspecified - we might not trust the posterior predictive distribution of the model. In this talk, we discuss routing optimisation algorithms that are robust with respect to an ambiguity set of distributions that are close to the predictive distribution of the model. Real-world applications to air pollution are demonstrated.
diff --git a/_teaching/2014-spring-teaching-1.md b/_teaching/2014-spring-teaching-1.md
deleted file mode 100644
index e354740888d..00000000000
--- a/_teaching/2014-spring-teaching-1.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: "Teaching experience 1"
-collection: teaching
-type: "Undergraduate course"
-permalink: /teaching/2014-spring-teaching-1
-venue: "University 1, Department"
-date: 2014-01-01
-location: "City, Country"
----
-
-This is a description of a teaching experience. You can use markdown like any other post.
-
-Heading 1
-======
-
-Heading 2
-======
-
-Heading 3
-======
\ No newline at end of file
diff --git a/_teaching/2015-spring-teaching-2.md b/_teaching/2015-spring-teaching-2.md
deleted file mode 100644
index 58e1ddb96e7..00000000000
--- a/_teaching/2015-spring-teaching-2.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: "Teaching experience 2"
-collection: teaching
-type: "Workshop"
-permalink: /teaching/2015-spring-teaching-1
-venue: "University 1, Department"
-date: 2015-01-01
-location: "City, Country"
----
-
-This is a description of a teaching experience. You can use markdown like any other post.
-
-Heading 1
-======
-
-Heading 2
-======
-
-Heading 3
-======
diff --git a/_teaching/2020-formal-languages.md b/_teaching/2020-formal-languages.md
new file mode 100644
index 00000000000..87d75ace362
--- /dev/null
+++ b/_teaching/2020-formal-languages.md
@@ -0,0 +1,12 @@
+---
+title: "CS259 Formal Languages 20/21"
+collection: teaching
+type: "Undergraduate course"
+permalink: /teaching/2020-formal-languages
+venue: "Department of Computer Science, University of Warwick"
+date: 2020-10-01
+location: "UK"
+---
+
+Seminar tutor for approx 30 students in the 20/21 academic year.
+Subjects taught include regular languages, context-free languages, and turing machines.
\ No newline at end of file
diff --git a/_teaching/2021-formal-languages.md b/_teaching/2021-formal-languages.md
new file mode 100644
index 00000000000..062746113ed
--- /dev/null
+++ b/_teaching/2021-formal-languages.md
@@ -0,0 +1,12 @@
+---
+title: "CS259 Formal Languages 21/22"
+collection: teaching
+type: "Undergraduate course"
+permalink: /teaching/2021-formal-languages
+venue: "Department of Computer Science, University of Warwick"
+date: 2021-10-01
+location: "UK"
+---
+
+Seminar tutor for approx 30 students in the 21/22 academic year.
+Subjects taught include regular languages, context-free languages, and turing machines.
\ No newline at end of file
diff --git a/images/patrick.png b/images/patrick.png
new file mode 100644
index 00000000000..250d55c1132
Binary files /dev/null and b/images/patrick.png differ