Code chats

Code chats occur on a semi-regular monthly basis within the group at ISIS. Although they were originally intended to be presentations focused on a specific part of the IBEX GUI they often cover other subjects that may be considered part of the backend, or talk about general coding practices.

Upcoming Code Chats

Topic

Presenter

Date

Basics of Epic DBs

TBD

TBD

Books and article ideas for technical book club

  • Peopleware

  • Clean code

  • The Pragmatic Programmer

  • The Effective Engineer

  • Design Patterns: Elements of Reusable Object-Oriented Software

  • Refactoring

  • The Agile Manifesto

  • Fluent Python

  • Effective Python

Proposed Future Code Chats

Idea

Proposed Speaker

IBEX Project Management

Kathryn

LUA

?

BDD/DDD

?

Software design techniques in our processes

Aaron

The HIFI Cryomag

Lilith/Kathryn

Design Patterns in IBEX

?

Datastreaming

Dolica/Jack/Matt

LVDCOM

Freddie

IBEX UI Design

Thomas Löhnert

Jenkins, testing and our build processes

?

asyncio and asynchronous programming in Python 3

?

Script Server and Nicos

?

CAEN v895 Discriminator

Freddie

MuSR conversion retrospective

Jack/Tom

BCC Cryogenics Course 2021

?

Java 17 LTS

TBC

Proposed Repeated Code Chats

Idea

Proposed Speaker

Observables and Writables in IBEX

?

Dynamic Layouts in SWT

Thomas Löhnert

Databinding

?

Mocking in Python and Java

?

Checkstyle Quiz

?

Maven, Tycho and Surefire

Tom Willemsen?

IOC Testing Framework & Emulators

Tom Willemsen?

Previous Code Chats

The presentation slides for previous code chats are available here.

Previous code chats

2015

Topic

Presenter

Date

Data Binding (two parts) (Contains info on MVVM)

Matt Clarke

Sept 2015

Mockito

Ian Bush

Sept 2015

Java Classes

Matt Clarke

Sept 2015

Eclipse RCP (two parts)

Matt Clarke

Oct 2015

Java Collections, Iterators and Streams

David Keymer

Nov 2015

Design Patterns in IBEX

Dominic Oram

Dec 2015

Eclipse Extensions

Dominic Oram

Dec 2015

Observables and Writables in IBEX (two parts)

Ian Bush

Dec 2015

2016

Topic

Presenter

Date

Final

Matt Clarke

Jan 2016

Java Quiz

Matt Clarke

Jan 2016

Checkstyle Quiz

Dominic Oram

Jan 2016

The SNS Scan Server

Dominic Oram

Jan 2016

Testing with RCPTT (the basics)

Ian Bush

April 2016

Maven and Tycho (two parts)

Matt Clarke

April 2016

Javadoc

Kathryn Baker

Aug 2016

Synchronized & Volatile

Thomas Lohnert

Aug 2016

RCPTT - Tips and Tricks

Dominic Oram

Aug 2016

User Interface Heuristics

Thomas Lohnert

Nov 2016

How to Read ISIS LabVIEW Drivers

Kathryn Baker

Nov 2016

2017

Topic

Presenter

Date

MVVM Pattern

Dominic Oram

Feb 2017

Collision Detection

Jon Elmer

Feb 2017

IOC Testing Framework & Emulators

Tom Willemsen

Jul 2017

Motion Control Axis Testing

Dominic Oram

Jul 2017

Pythonic vs Non-Pythonic

Matt Clarke

Sep 2017

Python Style Checking & Flake8

Samuel Jackson

Sep 2017

Eclipse 4 Migration

Adrian Potter

Sep 2017

Alignment Automation on ALF

Thomas Löhnert

Sep 2017

Code Reviews

Matt Clarke

Oct 2017

Dynamic Layouts in SWT

Thomas Löhnert

Oct 2017

The DAE

Freddie Akeroyd

Nov 2017

The HIFI Cryomag

Eilidh Southren

Nov 2017

Python 2 vs. Python 3

David Keymer

Dec 2017

The RB Numbering System

Matt Clarke

Dec 2017

2018

Topic

Presenter

Date

System Testing with Squish

Adrian Potter

Jan 2018

Threading

Tom Willemsen

Jan 2018

Galil Motors

Kathryn Baker

Feb 2018

Grafana

Aidan McComb

Feb 2018

AutoIt

Chris Moreton-Smith

Apr 2018

Nicos

Dominic Oram

Apr 2018

SScanSS

Stephen Nneji

Aug 2018

Reflectometry

John Holt

Aug 2018

Java 8

Tom Willemsen

Sep 2018

Introduction to Beckhoff Motors (Layers, Onions and Ogres)

Simon Cooper

Oct 2018

Experience as a new starter

Aaron Long

Nov 2018

Christmas Special: Bell ringing

Debbie Greenfield

Dec 2018

2019

Topic

Presenter

Date

Convert Record Changes

Liam Panchaud

Mar 2019

Technical debt: Configurations

Thomas Löhnert

Mar 2019

ACCU Conference Recap

Michal / Jack

April 2019

Queued State Machine

Kathryn

April 2019

Cryogenics

Tom

May 2019

Beckhoff Code Camp Recap

Dom

May 2019

EPICS Spring Meeting 2019 Recap

Aaron & David

June 2019

Graduate Placement Retrospective

Sophie Kirkham

June 2019

Controls at the ESS

Michael Hart

July 2019

Datastreaming

Jack Harper

July 2019

How data moves at ISIS

Chris

Sep 2019

Migration to Python 3

James

Sep 2019

Java 11

Tom

Oct 2019

EPICS 7

Freddie

Nov 2019

2020

Topic

Presenter

Date

The IBEX Script Generator

James

Jan ‘20

NeXus

Freddie

11th March ‘20

System Testing With Squish

Dom

May ‘20

How to Read ISIS LabVIEW Drivers

Kathryn Baker

6th August ‘20

Review techniques

Tom, Dom, James

3rd September ‘20

DAQMx and Moxa DIO devices

Alistair

28th September ‘20

Deploying EPICS with Ansible

CLF Controls team

19th October ‘20

Helium Level Monitoring

Kathryn/Mihai

19th November ‘20

Handover: Client Build System

Tom

10th December ‘20

2021

Topic

Presenter

Date

Cryogenics handover

Tom Willemsen

2nd February ‘21

RIKEN refurbishment

Kevin

8th of March 21

2022

Topic

Presenter

Date

Recording

Github Universe

Jack Allen

14/01/22

Not Recorded

ISISICP/DAE

Freddie

31/03/22

Recorded here.

Motion in Ibex

Jack Harper

27/04/22

Not Recorded

Docusaurus

Jack Allen

24/06/22

Recorded here.

SANS/TRANS Instrument Scripts

Thomas Cottee Meldrum

21/07/22

Recorded here.

IOC Testing Framework & Emulators

Tom Willemsen

23/08/22

Recorded here.

Ibex Gui Build System (Maven)

Tom Willemsen

22/11/22

Recorded here.

2024

Topic

Presenter

Date

Recording

Java Debug Option & the GUI Singleton

Sudeepta Chakraborty

08/03/24

Part 1. Part 2.

How Virtual Machines and VHDs can speed up IBEX deployment

Chris

29/04/24

Recorded here.

Bluesky

Tom Willemsen

21/08

Slides talk

Lightning Talks

Lightning talks are a chance to share smaller bits of interesting information after standup at the end of a sprint.

Topic

Presenter

Date

Rust

Jack Harper

23/03/2022

Git Interactive Staging

Lowri Jenkins

10/08/2022

Speeduino

Jack Harper

10/08/2022

All presentations should be uploaded to the SharePoint site here (There is a subfolder for lightning talks) and/or converted to a wiki page if more appropriate. It should also be reasonably assumed that the people who gave these presentations should know something about these subjects.