A New Year, new talks, more Linux and more open source!

Wednesday, January 17, 2018 - 18:00
Linuxing In London

Shake off the New Year blues with a couple of interesting technology talks.

Firstly, there will be a very small presentation on Meltdown and Spectre, the recent vulnerabilities found across multiple processor types and many, many operating systems, including Windows and Linux.

In our main presentation, we are exceedingly fortunate to have Florian Gilcher, a notable Rust expert, flying over from Germany to give us the benefit of his expertise on writing CLI programs in Rust.

Then Carl Peto, a programmer extraordinaire, will look at the intricacies of doing Pulse Width Modulation on Linux.

Our hashtag is #LinuxingInLondon

Please sign up at Skills Matter too. https://skillsmatter.com/meetups/10341-linuxing-in-london-january

18:00 Doors open
18:15 What is Linuxing In London in 2018 by Dave Smith
18:30 Everything you wanted to know about Meltdown/Spectre and Linux in 5 minutes by Brian Byrne

18:45 Getting started with CLI programs in Rust by Florian Gilcher
19:30 Q&A

19:35 Break

19:45 PWM from a Linux daemon, I told you it was a bad idea, now here’s how to do it by Carl Peto
20:15 Q&A

20:25 Community slot and raffle.

Speakers' biographies and abstracts:

1. Brian Byrne

Brian is a veteran IT Manager that learnt his varied skills in the educational sector and the cut 'n' thrust of Banking. He freelances and offers free community classes on operating systems. He used to code in FORTRAN, COBOL and ALGOL!

Meltdown and spectre are red-hot topics across the complete field of technology. Brian will briefly summarises what we know by now and what might be done to mitigate against the worst aspects of these problems.

2. Florian Gilcher is a member of the Rust project and active on the global community team. Outside of the project, he's mostly into server-side programming, distributed systems and databases of all kinds. He's also a trainer for Rust, Ruby and Elasticsearch.

Rust is generally seen as an alternative to C and C++. But it is also gaining popularity for writing simple CLI programs, as a little stricter, faster and more easily distributable alternative to Python and Ruby. This is not only because CLI programming is in itself approachable, but also because there's ample convenient tooling around.

This talk will guide through writing your first CLI program: from getting set up over the basics of the language to parsing command line arguments to doing some useful work on common formats.

2. Carl Peto

I have spent 20 or 30 years working with all kinds of computer tech I could get my hands on. From big machines back in the 90s down to little shiny phones you hold in your hand nowadays. Writing iOS since pretty much the first iPhones, my day job is Swift fanatic with a dash of objective C and a side interest in "IoT". I'm currently working at a start up specialising in high tech IoT projects. And Arduino and Pi have been my side interest for ages. Half my flat is connected to one prototype or another.

I started the Swift compiler for Arduino UNO when I had drunk far too much coffee one day and I've been doing it ever since.

Carl on Twitter (https://twitter.com/carl_the_dev)
Carl on Linkedin (https://www.linkedin.com/in/carl-peto-1a93a01/?ppe=1)

- Recap what PWM is and why it’s useful
- You do PWM the same way on Linux as you would on an Arduino, as we will show
- But you have to handle a multi threaded environment, that means jitter

Writing the daemon:
- Brief: high level design of my daemon
- Brief: how to control GPIO pins on the raspberry pi (memory mapping with /dev/mem, /dev/gpiomem)
- Brief: introduction to daemons (fork/exit, start new process group with setsid, close standard file descriptors that were cloned by fork)
- Brief: open FIFO, endless loop on main thread waiting for messages, update the control structure based on the control message parameters for the pin, spawn a thread if needed

- Detailed: how the threads actually control LED brightness, basically each one does a mark/space and turns the LEDs on and off on a 100Hz cycle with varying duty cycle.