Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • verified-software/psvg.doc.ic.ac.uk
  • xr119/psvg.doc.ic.ac.uk
2 results
Show changes
Commits on Source (491)
#!/bin/sh
# Use rsync to transfer files to a server via ssh, ensuring that the files are transferred with the correct permissions,
# user group. The command will also remove old files from the remote directory.
# To transfer files to the default location, you will need to be a member of the `rr` DoC usergroup.
#
# Example usage:
# DOC_DEPLOY_USER=me ./.deploy.sh
set -x
USER=${DOC_DEPLOY_USER:+${DOC_DEPLOY_USER}@}
SERVER=${DOC_DEPLOY_SERVER:-shell1.doc.ic.ac.uk}
PTH=${DOC_DEPLOY_PATH:-/vol/rr/www}
exec rsync -e "ssh -o StrictHostKeyChecking=no" --chmod=Dg+s,ug+rwX,o+rX --chown=:rr -igrp --delete _site/ "${USER}${SERVER}:${PTH}"
...@@ -3,3 +3,4 @@ _site ...@@ -3,3 +3,4 @@ _site
.jekyll-metadata .jekyll-metadata
vendor vendor
.bundle/config .bundle/config
.DS_Store
...@@ -3,74 +3,88 @@ stages: ...@@ -3,74 +3,88 @@ stages:
- build - build
- deploy - deploy
update_publications: image: "ruby:2.6-buster"
stage: update variables:
script: NOKOGIRI_USE_SYSTEM_LIBRARIES: "true"
- git checkout -B ${CI_BUILD_REF_NAME}
- git submodule update --init --remote
- git add publications
- git commit -m "[AUTO] Updating publications submodule" || exit 0
- git remote rm rw || true
- git remote add rw git@gitlab.doc.ic.ac.uk:${CI_PROJECT_PATH}.git
- eval `ssh-agent`
- echo "$PUSH_KEY" | ssh-add -
- git push rw ${CI_BUILD_REF_NAME}
variables:
GIT_AUTHOR_NAME: Resource Reasoning Group Backup Bot
GIT_COMMITTER_NAME: Resource Reasoning Group Backup Bot
GIT_AUTHOR_EMAIL: rr-gitlab-bot@example.com
EMAIL: rr-gitlab-bot@example.com
image: ignoredambience/github-gitlab-sync
tags:
- docker
only:
- triggers
build: build:
stage: build stage: build
image: "ruby:2.4" artifacts:
paths:
- _site/
expire_in: 1 day
cache:
paths:
- vendor/bundle/
except:
- triggers
tags: tags:
- docker - docker
- vtss_site
before_script: before_script:
- bundle install --deployment --without=development --with=test - bundle install --deployment --without=development --with=test
- bundle exec rake init - bundle exec rake init
script: script:
- bundle exec rake -s --suppress-backtrace . test - bundle exec rake -s --suppress-backtrace . test
artifacts:
paths:
- _site/
expire_in: 1 day
except:
- triggers
deadlinks: deadlinks:
stage: deploy stage: deploy
image: "ruby:2.4" allow_failure: true
cache:
paths:
- vendor/bundle/
except:
- triggers
tags: tags:
- docker - docker
- vtss_site
before_script: before_script:
- bundle install --deployment --without=development --with=test - bundle install --deployment --without=development --with=test
script: script:
- bundle exec rake -s --suppress-backtrace . testlinks - bundle exec rake -s --suppress-backtrace . testlinks
allow_failure: true
except:
- triggers
deploy: deploy:
stage: deploy stage: deploy
environment: production environment: production
script: image: resourcereasoning/website-deploy
- "umask 0002 && rsync --chmod=Dg+s,ug+rwX,o+rX --chown=:rr -igrp --delete _site/ /vol/rr/www"
tags: tags:
- auth-rr - docker
- vtss_site
only: only:
- master - master
except: except:
- triggers - triggers
# DOC_DEPLOY_USER and DOC_DEPLOY_KEY should be defined as secret variables in the GitLab CI Settings panel
before_script:
- eval `ssh-agent`
- echo "$DOC_DEPLOY_KEY" | ssh-add -
script:
- ./.deploy.sh
variables: # Special target triggered when publications repository is updated:
NOKOGIRI_USE_SYSTEM_LIBRARIES: "true" update_publications:
stage: update
cache: variables:
paths: GIT_AUTHOR_NAME: Resource Reasoning Group Backup Bot
- vendor/bundle/ GIT_COMMITTER_NAME: Resource Reasoning Group Backup Bot
GIT_AUTHOR_EMAIL: rr-gitlab-bot@example.com
EMAIL: rr-gitlab-bot@example.com
# PUSH_KEY should be defined as a secret variable in the GitLab UI
SSH_KEY: $PUSH_KEY
image: ignoredambience/github-gitlab-sync
tags:
- docker
- vtss_site
only:
- triggers
before_script:
- eval `ssh-agent`
- echo "$SSH_KEY" | ssh-add -
script:
- git checkout -B ${CI_COMMIT_REF_NAME}
- git submodule update --init --remote
- git add publications
- git commit -m "[AUTO] Updating publications submodule" || exit 0
- git remote rm rw || true
- git remote add rw git@gitlab.doc.ic.ac.uk:${CI_PROJECT_PATH}.git
- git push rw ${CI_COMMIT_REF_NAME}
[submodule "publications"] [submodule "publications"]
path = publications path = publications
url = https://gitlab.doc.ic.ac.uk/resource-reasoning/publications.git url = https://gitlab.doc.ic.ac.uk/verified-software/publications.git
branch = master branch = master
...@@ -5,16 +5,16 @@ RewriteEngine on ...@@ -5,16 +5,16 @@ RewriteEngine on
# Rewrite former site subdomain pages to new site pages # Rewrite former site subdomain pages to new site pages
RewriteCond %{HTTP_HOST} =www-rw.doc.ic.ac.uk RewriteCond %{HTTP_HOST} =www-rw.doc.ic.ac.uk
RewriteRule ^ http://psvg.doc.ic.ac.uk/research/javascript.html [R=301,L] RewriteRule ^ http://vtss.doc.ic.ac.uk/research/javascript.html [R=301,L]
RewriteCond %{HTTP_HOST} =www-lrr.doc.ic.ac.uk RewriteCond %{HTTP_HOST} =www-lrr.doc.ic.ac.uk
RewriteRule ^papers.html http://psvg.doc.ic.ac.uk/publications/ [R=301,L] RewriteRule ^papers.html http://vtss.doc.ic.ac.uk/publications/ [R=301,L]
RewriteCond %{HTTP_HOST} =www-lrr.doc.ic.ac.uk RewriteCond %{HTTP_HOST} =www-lrr.doc.ic.ac.uk
RewriteRule ^ca($|/) http://psvg.doc.ic.ac.uk/research/concurrency.html [R=301,L] RewriteRule ^ca($|/) http://vtss.doc.ic.ac.uk/research/concurrency.html [R=301,L]
# Bump any other subdomain request that gets here over to the main psvg site # Bump any other subdomain request that gets here over to the main psvg site
RewriteCond %{HTTP_HOST} !=psvg.doc.ic.ac.uk RewriteCond %{HTTP_HOST} !=vtss.doc.ic.ac.uk
RewriteRule ^(.*)$ http://psvg.doc.ic.ac.uk/$1 [R=301,L] RewriteRule ^(.*)$ http://vtss.doc.ic.ac.uk/$1 [R=301,L]
ErrorDocument 403 /403.html ErrorDocument 403 /403.html
ErrorDocument 404 /404.html ErrorDocument 404 /404.html
FROM ruby:2.6
# throw errors if Gemfile has been modified since Gemfile.lock
RUN bundle config --global frozen 1
RUN gem install bundler:1.16.6
WORKDIR /usr/src/app
COPY Gemfile Gemfile.lock ./
RUN bundle install
COPY . .
RUN bundle exec rake init
EXPOSE 4000
CMD ["bundle", "exec", "jekyll", "serve", "--host", "0.0.0.0"]
\ No newline at end of file
source 'https://rubygems.org' source 'https://rubygems.org'
Encoding.default_external = Encoding::UTF_8
gem 'rake' gem 'rake'
group :build do group :build do
gem 'jekyll' gem 'jekyll'
......
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
activesupport (5.1.4) activesupport (5.2.1)
concurrent-ruby (~> 1.0, >= 1.0.2) concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (~> 0.7) i18n (>= 0.7, < 2)
minitest (~> 5.1) minitest (~> 5.1)
tzinfo (~> 1.1) tzinfo (~> 1.1)
addressable (2.5.2) addressable (2.5.2)
public_suffix (>= 2.0.2, < 4.0) public_suffix (>= 2.0.2, < 4.0)
bibtex-ruby (4.4.4) bibtex-ruby (4.4.7)
latex-decode (~> 0.0) latex-decode (~> 0.0)
citeproc (1.0.5) citeproc (1.0.9)
namae (~> 0.8) namae (~> 1.0)
citeproc-ruby (1.1.7) citeproc-ruby (1.1.10)
citeproc (>= 1.0.4, < 2.0) citeproc (~> 1.0, >= 1.0.9)
csl (~> 1.4) csl (~> 1.5)
colorator (1.1.0) colorator (1.1.0)
colorize (0.8.1) colorize (0.8.1)
concurrent-ruby (1.0.5) concurrent-ruby (1.1.3)
csl (1.4.5) csl (1.5.0)
namae (~> 0.7) namae (~> 1.0)
csl-styles (1.0.1.8) csl-styles (1.0.1.9)
csl (~> 1.0) csl (~> 1.0)
ethon (0.10.1) em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
ethon (0.11.0)
ffi (>= 1.3.0) ffi (>= 1.3.0)
ffi (1.9.18) eventmachine (1.2.7)
ffi (1.9.25)
forwardable-extended (2.6.0) forwardable-extended (2.6.0)
html-proofer (3.7.3) html-proofer (3.9.2)
activesupport (>= 4.2, < 6.0) activesupport (>= 4.2, < 6.0)
addressable (~> 2.3) addressable (~> 2.3)
colorize (~> 0.8) colorize (~> 0.8)
mercenary (~> 0.3.2) mercenary (~> 0.3.2)
nokogiri (~> 1.7) nokogiri (~> 1.8.1)
parallel (~> 1.3) parallel (~> 1.3)
typhoeus (~> 0.7) typhoeus (~> 1.3)
yell (~> 2.0) yell (~> 2.0)
i18n (0.8.6) http_parser.rb (0.6.0)
jekyll (3.6.0) i18n (0.9.5)
concurrent-ruby (~> 1.0)
jekyll (3.8.5)
addressable (~> 2.4) addressable (~> 2.4)
colorator (~> 1.0) colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 0.7)
jekyll-sass-converter (~> 1.0) jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 1.1) jekyll-watch (~> 2.0)
kramdown (~> 1.14) kramdown (~> 1.14)
liquid (~> 4.0) liquid (~> 4.0)
mercenary (~> 0.3.3) mercenary (~> 0.3.3)
pathutil (~> 0.9) pathutil (~> 0.9)
rouge (>= 1.7, < 3) rouge (>= 1.7, < 4)
safe_yaml (~> 1.0) safe_yaml (~> 1.0)
jekyll-feed (0.9.2) jekyll-feed (0.11.0)
jekyll (~> 3.3) jekyll (~> 3.3)
jekyll-redirect-from (0.12.1) jekyll-redirect-from (0.14.0)
jekyll (~> 3.3) jekyll (~> 3.3)
jekyll-sass-converter (1.5.0) jekyll-sass-converter (1.5.2)
sass (~> 3.4) sass (~> 3.4)
jekyll-scholar (5.10.2) jekyll-scholar (5.14.0)
bibtex-ruby (~> 4.0, >= 4.0.13) bibtex-ruby (~> 4.0, >= 4.0.13)
citeproc-ruby (~> 1.0) citeproc-ruby (~> 1.0)
csl-styles (~> 1.0) csl-styles (~> 1.0)
jekyll (~> 3.0) jekyll (~> 3.0)
jekyll-sitemap (1.1.1) jekyll-sitemap (1.2.0)
jekyll (~> 3.3) jekyll (~> 3.3)
jekyll-watch (1.5.0) jekyll-watch (2.1.2)
listen (~> 3.0, < 3.1) listen (~> 3.0)
kramdown (1.15.0) kramdown (1.17.0)
latex-decode (0.2.2) latex-decode (0.3.1)
unicode (~> 0.4) liquid (4.0.1)
liquid (4.0.0) listen (3.1.5)
listen (3.0.8)
rb-fsevent (~> 0.9, >= 0.9.4) rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7) rb-inotify (~> 0.9, >= 0.9.7)
ruby_dep (~> 1.2)
mercenary (0.3.6) mercenary (0.3.6)
mini_portile2 (2.3.0) mini_portile2 (2.3.0)
minitest (5.10.3) minitest (5.11.3)
namae (0.11.3) namae (1.0.1)
nokogiri (1.8.1) nokogiri (1.8.5)
mini_portile2 (~> 2.3.0) mini_portile2 (~> 2.3.0)
parallel (1.12.0) parallel (1.12.1)
pathutil (0.16.0) pathutil (0.16.2)
forwardable-extended (~> 2.6) forwardable-extended (~> 2.6)
public_suffix (3.0.0) public_suffix (3.0.3)
rake (12.1.0) rake (12.3.1)
rb-fsevent (0.10.2) rb-fsevent (0.10.3)
rb-inotify (0.9.10) rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2) ffi (>= 0.5.0, < 2)
rouge (2.2.1) rouge (3.3.0)
ruby_dep (1.5.0)
safe_yaml (1.0.4) safe_yaml (1.0.4)
sass (3.5.2) sass (3.7.2)
sass-listen (~> 4.0.0) sass-listen (~> 4.0.0)
sass-listen (4.0.0) sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4) rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7) rb-inotify (~> 0.9, >= 0.9.7)
thread_safe (0.3.6) thread_safe (0.3.6)
typhoeus (0.8.0) typhoeus (1.3.1)
ethon (>= 0.8.0) ethon (>= 0.9.0)
tzinfo (1.2.3) tzinfo (1.2.5)
thread_safe (~> 0.1) thread_safe (~> 0.1)
unicode (0.4.4.4)
yell (2.0.7) yell (2.0.7)
PLATFORMS PLATFORMS
...@@ -111,4 +119,4 @@ DEPENDENCIES ...@@ -111,4 +119,4 @@ DEPENDENCIES
rake rake
BUNDLED WITH BUNDLED WITH
1.15.4 1.16.6
--- ---
layout: page layout: page
title: PSVG Group Website Readme title: VTSS Group Website Readme
--- ---
This readme file is published in its fully rendered form [on the website](https://psvg.doc.ic.ac.uk/README.html). This readme file is published in its fully rendered form [on the website]({{site.baseurl}}{% link README.md %}).
The source code for [this site](https://psvg.doc.ic.ac.uk) is [hosted on the DoC GitLab server](https://gitlab.doc.ic.ac.uk/resource-reasoning/psvg.doc.ic.ac.uk), The source code for [this site](https://vtss.doc.ic.ac.uk) is [hosted on the DoC GitLab server](https://gitlab.doc.ic.ac.uk/resource-reasoning/vtss.doc.ic.ac.uk),
you should have access to edit it if a member of the resource-reasoning group. you should have access to edit it if a member of the resource-reasoning group.
**DO NOT EDIT THE SOURCE CODE IN `/vol/rr/www`, IT IS ALL REPLACED EACH TIME THE SITE IS REBUILT FROM VERSION CONTROL** **DO NOT EDIT THE SOURCE CODE IN `/vol/rr/www`, IT IS ALL REPLACED EACH TIME THE SITE IS REBUILT FROM VERSION CONTROL**
[![Build Status](https://gitlab.doc.ic.ac.uk/resource-reasoning/psvg.doc.ic.ac.uk/badges/master/build.svg)](https://gitlab.doc.ic.ac.uk/resource-reasoning/psvg.doc.ic.ac.uk/commits/master) [![Build Status](https://gitlab.doc.ic.ac.uk/resource-reasoning/vtss.doc.ic.ac.uk/badges/master/build.svg)](https://gitlab.doc.ic.ac.uk/resource-reasoning/vtss.doc.ic.ac.uk/commits/master)
[![Dependency Status](https://gemnasium.com/bd81b2aa11ff43417700f75dbd194221.svg)](https://gemnasium.com/6ba7afbbfda9adcba06f007cc565a29a) [![Dependency Status](https://gemnasium.com/bd81b2aa11ff43417700f75dbd194221.svg)](https://gemnasium.com/6ba7afbbfda9adcba06f007cc565a29a)
## Managing Content ## Managing Content
...@@ -93,7 +93,19 @@ are consistent. ...@@ -93,7 +93,19 @@ are consistent.
An additional check that external links are still live is also run, but this test is permitted to fail without blocking An additional check that external links are still live is also run, but this test is permitted to fail without blocking
the deployment. the deployment.
The site is deployed to `/vol/rr/www` automatically on successful build. The site should be deployed automatically by GitLab CI. To deploy the site manually from your own machine, run the `.deploy.sh` script. This will use `rsync` to synchronise the contents of the `_site` directory with the webserver via SSH. Default deployment parameters:
* DOC_DEPLOY_USER: the default username used by SSH to connect, usually the username on your local machine
* DOC_DEPLOY_SERVER: `shell1.doc.ic.ac.uk`
* DOC_DEPLOY_PATH: `/vol/rr/www`
To override these parameters, set shell variables, eg: `DOC_DEPLOY_USER=me ./.deploy.sh`
The site is deployed to `/vol/rr/www` automatically on successful build using the `.deploy.sh` script.
The contents of the `DOC_DEPLOY_KEY` CI environment variable are used
as the private key used to authenticate with the server. This key is currently configured to give locked-down rsync access to the
`/vol/rr/www` using `pg`'s user account. For further details for how this is achieved, [see this
howto](https://www.guyrutenberg.com/2014/01/14/restricting-ssh-access-to-rsync/). Note: when deploying to a locked-down
rsync account, the DOC_DEPLOY_PATH should be set to a path relative to the lockdown path -- use `.` if in doubt. You
won't need to set this if you're deploying from your own user account.
Locally Building and Testing Locally Building and Testing
---------------------------- ----------------------------
......
...@@ -35,3 +35,8 @@ desc "Build the site, rebuild when files are edited, and serve via a local http ...@@ -35,3 +35,8 @@ desc "Build the site, rebuild when files are edited, and serve via a local http
task :serve do task :serve do
sh "bundle exec jekyll serve" sh "bundle exec jekyll serve"
end end
desc "Deploy the website to the webserver"
task :deploy do
sh ".deploy.sh"
end
File deleted
title: Verified Trustworthy Software Specification Group title: Verified Software
subtitle: <a href="http://www.doc.ic.ac.uk">Department of Computing</a>, <a href="http://www.imperial.ac.uk/">Imperial College London</a> subtitle: <a href="http://www.doc.ic.ac.uk">Department of Computing</a>, <a href="http://www.imperial.ac.uk/">Imperial College London</a>
copyright: Imperial College London copyright: Imperial College London
baseurl: "" baseurl: ""
url: "https://psvg.doc.ic.ac.uk" url: "https://vtss.doc.ic.ac.uk"
markdown: kramdown markdown: kramdown
encoding: utf-8
timezone: Europe/London
include: include:
- .htaccess - .htaccess
exclude: exclude:
......
...@@ -26,8 +26,8 @@ fontawesome: ...@@ -26,8 +26,8 @@ fontawesome:
integrity: "sha384-XdYbMnZ/QjLh6iI4ogqCTaIjrFk87ip+ekIjefZch0Y+PvJ8CDYtEs1ipDmPorQ+" integrity: "sha384-XdYbMnZ/QjLh6iI4ogqCTaIjrFk87ip+ekIjefZch0Y+PvJ8CDYtEs1ipDmPorQ+"
mathjax: mathjax:
uri: "http://cdn.mathjax.org/mathjax/" uri: "https://cdnjs.cloudflare.com/ajax/libs/mathjax/"
version: "latest" version: "2.7.5"
js: js:
path: "/MathJax.js?config=TeX-AMS-MML_HTMLorMML" path: "/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
async: true async: true
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
{% assign id = group.name | replace:' ','-' %} {% assign id = group.name | replace:' ','-' %}
<div class="panel-heading"> <div class="panel-heading">
<h6 class="panel-title"> <h6 class="panel-title">
<a data-toggle="collapse" href="#{{id}}" style="color:black">{{position}} ↯</a> <a data-toggle="collapse" href="#{{id}}" style="color:black">{{position}}s</a>
</h6> </h6>
</div> </div>
......
<footer class="site-footer"> <footer class="site-footer">
<p>&copy; {{ site.time | date: "%Y" }} {{ site.copyright }}</p> <p>&copy; {{ site.time | date: "%Y" }} {{ site.copyright }}<br />
<a href="https://www.imperial.ac.uk/about-the-site/privacy/">Privacy Notice</a> - <a href="{{ '/accessibility/' | relative_url }}">Accessibility</a></p>
</footer> </footer>
...@@ -6,7 +6,7 @@ layout: default ...@@ -6,7 +6,7 @@ layout: default
{{ content }} {{ content }}
</div> </div>
{% assign research_pages = site.pages | where_exp: 'page', 'page.url contains "/research/"'%} {% assign research_pages = site.pages | where_exp: 'page', 'page.url contains "/research/"'%}
{% for item in research_pages reversed %} {% for item in research_pages %}
<a class="btn btn-primary btn-lg" href="{{ item.url }}">{{ item.title }}</a> <a class="btn btn-primary btn-lg" href="{{ item.url }}">{{ item.title }}</a>
{% endfor %} {% endfor %}
</div> </div>
......
...@@ -13,7 +13,8 @@ menu: false ...@@ -13,7 +13,8 @@ menu: false
</header> </header>
{% comment %} Test that we have main content to show {% endcomment %} {% comment %} Test that we have main content to show {% endcomment %}
{% capture bibliography %}{% bibliography -q @*[author ~= {{ page.lastname }}] %}{% endcapture %} {% if page.search_lastname %}{% assign search_lastname = page.search_lastname %}{% else %}{% assign search_lastname = page.lastname %}{% endif %}
{% capture bibliography %}{% bibliography -q @*[author ~= {{ search_lastname }}] %}{% endcapture %}
{% assign test_bib = bibliography | strip_html | strip_newlines %} {% assign test_bib = bibliography | strip_html | strip_newlines %}
{% assign test = test_bib | append: content | strip_html | strip_newlines %} {% assign test = test_bib | append: content | strip_html | strip_newlines %}
{% if test == "" %}{% assign card-col-class = " col-md-offset-4" %}{% endif %} {% if test == "" %}{% assign card-col-class = " col-md-offset-4" %}{% endif %}
......
---
firstname: Sacha
lastname: Ayoun
position: PhD Student
webpage: https://www.doc.ic.ac.uk/~sja3417/
email: s.ayoun17@imperial.ac.uk
github: https://github.com/Giltho/
alumnus: false
projects:
- gillian
- sl
---
Sacha Ayoun is a PhD student at the Department of Computing at Imperial, under
the supervision of Professor Philippa Gardner. He is currently working
on [Gillian](https://gillianplatform.github.io), a parametric symbolic execution
tool for symbolic testing, verification and automatic compositional testing.
As an undergraduate, Sacha worked at the [French Alternative and Atomic Energy Commission
(CEA)](http://www.cea.fr/english) as a researcher-engineer intern in 2017. His goal was
to improve the Frame-C abstract interpreter to better handle file descriptors.
In 2018 he completed his Supelec Engineer Diploma at [CentraleSupelec](http://www.centralesupelec.fr/)
as well as his MSc in Advanced Computing at Imperial.
---
firstname: Martin
lastname: Bodin
position: Researcher
webpage: https://mbodin.github.io/index.html?lang=en&pedanticJS=no#en
email: mbodin@ic.ac.uk
github:
alumnus: true
projects:
- web
---
Martin joined the group as a Research Associate in 2018. His work focused on a formalism called [skeletons](http://skeletons.inria.fr) to represent the semantics of real-world programming languages (JavaScript, R, etc.) He also was part of the team working on the [formalisation of WebAssembly/Wasm in Coq](https://github.com/Imperial-Wasm/wasm-coq-public). In 2020 Martin was appointed CRCN (chargé de recherche de classe normale) in the [Sound Programming of Adaptive Dependable Embedded Systems (Spades)](https://team.inria.fr/spades/) group at [Inria Grenoble-Rhône-Alpes Research Centre](https://www.inria.fr/en/centre-inria-grenoble-rhone-alpes), France.
\ No newline at end of file
--- ---
firstname: Andrea firstname: Andrea
lastname: Cerone lastname: Cerone
position: Research Associate position: Researcher
webpage: https://www.doc.ic.ac.uk/~acerone/
email: a.cerone@imperial.ac.uk
github: acerone85 github: acerone85
alumnus: false alumnus: true
projects: projects:
- concurrency - concurrency
- moc - moc
--- ---
Andrea Cerone is a Research Associate with the group. Andrea's research focuses on investigating the the mathematical foundations Andrea joined the group as a Research Associate in 2016. He left Imperial College in 2019,
of geo-replicated and distributed systems, with a particular emphasis to databases, and its applications for overcoming practical challenges in such systems. to move to industry. He is still an active researcher, continuing his work on the mathematical foundations
\ No newline at end of file of geo-replicated and distributed systems, with a particular emphasis to databases,
and its applications for overcoming practical challenges in such systems.
His latest publication is [Data Consistency in Transactional Storage Systems:
A Centralised Semantics](https://2020.ecoop.org/details/ecoop-2020-papers/21/Data-Consistency-in-Transactional-Storage-Systems-A-Centralised-Semantics)
at [Ecoop 2020](https://2020.ecoop.org/)