James Curtis-Smith

Open source web devloper

Development

Introduction

James has over 25 years of web development behind him, developing a range of complex and data driven websites.

He is an open-source developer at heart, he usually develops in Perl (including mod_perl) and PHP, on Apache webservers, and interacting with open source databases like MySQL.

He has extensive knowledge of HTML, Javascript and CSS, and a great understanding of both accessibility and responsive design.

James' portfolio includes examples of:

  • Complex user-interface development;
  • Large scale data collection, analysis and display;
  • On-line resource databases;
  • e-commerce;
  • Globalisation and localisation;
  • Site administration systems.

Skills

  • Languages:

    • PHP - including wordpress themes/plugins
    • Perl - including mod_perl and server/site management
  • Databases:

    • MySQL - both adminstration and query optimization;
  • Client-side:

    • HTML - Standards compliance, optimal design, XHTML, HTML 5
    • JavaScript - Vanilla javascript and jQuery based applications, security
    • CSS, SASS - CSS 3.x, Responsive CSS, mobile first design
    • SPAs, PWAs - Single page sites, conversions of sites into "mobile/offline apps"
  • Administration:

    • Apache, Pulse vADC - website configuration, proxy set ups and security
    • Ubuntu, bash - server deployment and management
    • SVN, git - including hooks for code
  • Other:

    • Responsive design - development for mobile, tablet
    • Web optimization - Image optimization, Javascript optimization, PHP/Perl optimaation, site design for static HTML, CSS
    • Security - Request headers, SSL - with Let's encrypt, code quality
    • Accessibility

Wordpress

Introduction

James brings his extensive PHP skills into Wordpress development - and has a good understanding of how Wordpress works under the hood

This has allowed him to develop a series of plugins which support rapid development of complex structured websites, remove some of the quirks of wordpress.

Plugin development

James has developed a number of simple plugins:

  • Base Theme Class - An über class which sets up functionality for themes - object creation using ACF/ACF Pro, tidies up/removes a lot of stuff wordpress adds as default, a simple templating system - based on HTML, additional PECR compliant short codes for embedded media, etc;
  • Wordpress simple cookie policy plugin - A simple PECR compliant cookie pop-up for simple sites (designed to be easy to integrate into own code which sets cookies, and e.g. Google Analytics and Matomo);
  • Form submitter - A static form renderer and handler;
  • Simple SEO tags - Adds additional SEO tags for Twitter, Facebook etc, based on attributes of posts/pages;
  • Pagesmith OAuth2 WP integration - Integrates with the Pagesmith OAuth2 provider {simple extendable log in system} to allow for single-sign-on.

Maintenance

To assist in the management of the development of the various websites James works on he has developed a number of useful scripts.

  • Manage sandbox

    simple configuration based script which maintains a sandbox version of the website - installs appropriate plugins and themes, either through the wordpress "website", via zip files or, copies back data and uploads from a master site.

    The script has options/aliases which allow for some or all of the steps to be executed.

  • Update

    manages secure/reliable propogation of code to the dev/edit sites

  • Fetcher

    a series of scripts to flatten the Wordpress site into static HTML for distribution to the live nodes.

Portfolio

Introduction

James has worked on a large number of high profile websites, below are a selection showing illustrating some of the features developed.

Wellcome Sanger Institute

The Insitute site uses Wordpress for it's administration interface, James was responsible for the creation of custom objects using Base Theme Class and ACF/Pro. He developed a number of the CSS/Javascript components for sliders, filtered searches etc.

The public facing site is static HTML site which is produced from the admin site by James' fetcher script.

https://www.sanger.ac.uk/

Screenshot of Sanger home page with carousel

Wellcome Sanger Institute - People directory

The directory uses custom Javascript and CSS developed by James to filter people and to also lazy load images as the user scrolls down the page.

The directory code use data- attributes and the presence of divs to configure the functionality of the directory so the same code can be used across multiple sites and directory listings.

Screenshot of Sanger people page with filters

Wellcome Sanger Institute - Data representation

James' background as a mathematician and statistian has helped him develop a number of dynamic data views for the more complex data sets within the Institute.

Screenshot of ARNIE - to show complex graphical interface

Human Cell Atlas - Registration

The Human Cell Atlas manages a number of registries of scientists linked to the whole consortium or individual projects or areas, or philanthropic funding from grant gives like the Chang Zuckenburg Initiative. This is an example of the "static" form generator plugin developed for wordpress generating a complex forms, and handling submission of data.

https://www.humancellatlas.org/

Screenshot of Human Cell Atlas form - showing YAML based form renderer

Human Cell Atlas - infographics

Another part of James' work on the Human Cell Atlas is to manage the dynamic production of infographics giving information about the members of the consortium.

These displays use a mixture of CSS and Javascript to make the data easier to understand - the scripts use a mixture of D3.js and jQuery to help highlight features of the data.

Screenshot of Human Cell Atlas infographics page

Malaria Cell Atlas - visualisation

James redeveloped the Malaria Cell Atlas site in Wordpress to develop visualisations of the data produced by the Malaria team. The original app was developed in R (a statistcal package which includes data visualisation tools which can be viewed on the web using the Shiny server - this system required a large resource and was very unstable.

James re-wrote the views using a mixture of Vanilla JS and the D3 library, data is served statically by transforming the raw data from R into files suitable for d3 - which uses a column format for data. This improved performance and funcionality. Users can filter the data and have options to change the colour based on various facets of the data, as well as spinning & scaling 3d views to better view the subtlties of the data.

Screenshot of Malaria Cell Atlas visualised page

Ensembl - Transcript SNP View

James for a number of years was a principal developer and web team manager for the Ensembl project - a complex genome browser - with genomic data of approximately 50 species. James worked on many of the displays on the site. Transcript SNP View was one of the complex displays - this helps scientists visualise the effect of variation on the functionality of genes.

https://www.ensembl.org/

Screenshot of Ensembl Transcript SNP View - known affectionately as Big Top View

Annual Scout Census

James has worked on a number of Scouting websites over the last 25 years, including sites for The Scout Association. James has, for the past 20 years, developed and maintained the software behind the annual scout census which collects summary information about the 600,000 members of The Scouts, and the local section they belong to.

The system distributes the responsibility of data input to the roughly 40000 entities within the organisation. The site produces a number of dynamic reports to inform managers (at all levels) within The Association about the membership in their area.

Screenshot of The Scout Association Census Dashboard

Engauge Tools

James has developed a series of systems for Human Resources questionnaires, performing 360s and other survey types. Along with the user and admin interface James produces reports either as HTML pages or PDFs generated dynamically from the data.

Screenshot of part of the PDF report for Engaugetools 360 - illustrating bookmarks

Other websites

James has worked on a number of other sites over the years:

  • The Edinburgh University Mathematics Department student prospectus:

    James worked with the IT team in the Maths department to develop an online prospectus to advertise the courses available.

  • ScoutBase UK:

    The original website of The Scout Association which contained a large resource collection for adults within The Scouts in the UK and beyond.

    James started working on ScoutBase UK in 1995 at the infancy of the Internet and WWW.

    James developed much of the dynamic content of the website - including contact directories, a directory of campsites, the site search, document libraries, e-commerce, and the production and distribution of The Association's rule book Policy, Organisation and Rules as a structured, cross referenced PDF and series of web pages. James also worked on a number of other sites for The Association over the years.

  • UnderU:

    a clothing e-commerce site with a multi-lingual, multi-currency interface and complete fulfillment system. The site was integrated with a number of different payment solution providers, include NetBanx and WorldPay.

Publications

Publications

James has worked in academic and research institutes, both as a statistian and as a web develoepr within a genomics institute, below are citations of his published works.

2022

  • Return of genomic results does not motivate intent to participate in research for all: Perspectives across 22 countries.

    Milne R, Morley KI, Almarri MA, Atutornu J, Baranova EE et al.

    Genetics in medicine : official journal of the American College of Medical Genetics 2022;24;5;1120-1129

    PUBMED: 35125311 DOI: 10.1016/j.gim.2022.01.002

2021

2020

2018

  • 'Your DNA, Your Say': global survey gathering attitudes toward genomics: design, delivery and methods.

    Middleton A, Niemiec E, Prainsack B, Bobe J, Farley L et al.

    Personalized medicine 2018;15;4;311-318

    PUBMED: 29856292; DOI: 10.2217/pme-2018-0032

2012

  • Genomics of Drug Sensitivity in Cancer (GDSC): a resource for therapeutic biomarker discovery in cancer cells.

    Yang W, Soares J, Greninger P, Edelman EJ, Lightfoot H, Forbes S, Bindal N, Beare D, Smith JA, Thompson IR, Ramaswamy S, Futreal PA, Haber DA, Stratton MR, Benes C, McDermott U and Garnett MJ

    Nucleic acids research 2012;41;Database issue;D955-61

    PUBMED: 23180760; PMC: 3531057; DOI: 10.1093/nar/gks1111

2010

2009

2008

2007

2006

2005

2004

2003

2002

1998

    Constructing Partial Prior Specifications for Models of Complex Physical Systems

    Peter S. Craig, Michael Goldstein, Allan H. Seheult and James A. Smith

    Journal of the Royal Statistical Society. Series D (The Statistician) 1998;47;1;37-53

    DOI: 10.1111/1467-9884.00115

1997

  • Pressure Matching for Hydrocarbon Reservoirs: A Case Study in the Use of Bayes Linear Strategies for Large Computer Experiments

    Peter S. Craig, Michael Goldstein, Allan H. Seheult and James A. Smith

    Case Studies in Bayesian Statistics, Lecture Notes in Statistics 1997;121;37-93

    DOI: 10.1007/978-1-4612-2290-3_2

1996

  • Bayes Linear Strategies for Matching Hydrocarbon Reservoir History

    Peter S. Craig, Michael Goldstein, Allan H. Seheult and James A. Smith

    Bayesian Statistics 5: Proceedings of the Fifth Valencia International Meeting 1996;69–96

    DOI: 10.1093/oso/9780198523567.003.0004

1995

  • Matching hydrocarbon reservoir history - a Bayes linear approach

    Peter S. Craig, James A. Smith, Michael Goldstein and Allan H. Seheult

    Third International Applied Statistics in Industry Conference 1995;1;371-379

1993

  • "Looking for nothing" bayes linear methods for solving equations

    James A. Smith

    Durham theses - University of Durham 1993

    Durham E-theses

About James

Introduction

Before James turned his hand to web-development 30 years ago, he graduated from Durham University with a BSc and PhD in Mathematics, for the latter he spent three years Looking for Nothing. He then spent another 7 years as an academic statistician first at Durham as a Research Assistant looking at ways of improving the geological models of under sea oil reserves, by looking at production data and then lecturing statistics at Edinburgh Univeristy.

Hobbies and interests

Outside his work and web development James runs a Cub Pack just outside Cambridge. He has run and helped fun Cubs, Scouts and Beavers over the years in Norwich, Durham, Edinburgh, and Cambridge;

He enjoys building and collecting LEGO models;

He also enjoys walking in the hills, and paddling when he has the opportunity, reading Terry Pratchett and other fantasy authors, and cooking.

Contact and Privacy

Contact details

You can contact James at:

contact@jamessmith.me.uk

Cookie Policy

This site does not use cookies

Privacy Policy

What type of data we collect about you?

When you visit our websites, we may collect a variety of data about your use of our websites (“Browsing Data”), including but not limited to the following:

  • The domain name from which you access the internet;
  • The date and time at which you access our site;
  • Details of your usage of the site including pages visited;
  • The internet address from which you direct-linked to our site;
  • The information collected is not intended to be personally identifiable but we cannot guarantee in every case that no personally-identifiable information will be included. Logs of these data may also include your user ID in the event that you visit a page that requires you to log in. For more information about the data collected, please see our cookie policy.

Purposes and legal grounds for processing

We collect Browsing Data to meet our audit and security requirements, as well as to help us improve our sites. We have carried out a balancing exercise between our interests and your rights, to ensure your rights are protected during the processing.

How we store your data and when we delete it

Your Browsing Data is stored in logs kept on our access-controlled secure servers. These logs are maintained no longer than necessary and in compliance with our standard operating procedure.

Your data protection rights

You may have the right to request access, rectification or erasure, amongst other rights, in relation to your personal data.

Any request to exercise one of these rights will be assessed by us on a case by case basis. There may be circumstances in which we are not legally required to comply with a request because of relevant exemptions provided for in applicable data protection legislation. If we are required to comply, we have one month to respond in most cases.

Please contact us at the email address above if you wish to make a request.

How to complain

If you have concerns about how we have handled your personal data, you should get in contact with us at dataprotection@sanger.ac.uk in the first instance. If you are dissatisfied with our response, you have the right to complain to your Data Protection Authority. In the UK, that is the Information Commissioner’s Office (ICO).

The ICO’s contact details:

Information Commissioner’s Office
Wycliffe House
Water Lane
Wilmslow
Cheshire
SK9 5AF
Helpline number: 0303 123 1113
https://ico.org.uk/make-a-complaint/