|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "Raspberry Pi and Code Club: Workshop" |
| 4 | +meta: "A full day workshop to help solve the Raspberry Pi’s upcoming CSS conundrums" |
| 5 | +permalink: /case-studies/raspberry-pi-code-club-workshop/ |
| 6 | +next-case-study-title: "Two days of architecture and performance workshops with Ocado" |
| 7 | +next-case-study-url: /case-studies/ocado-workshop/ |
| 8 | +hide-hire-me-link: true |
| 9 | +--- |
| 10 | + |
| 11 | +<img src="/img/content/case-studies/raspberry-pi/logo-pi.png" alt="" width="128" height="165" |
| 12 | + style="float: left; |
| 13 | + margin-right: 24px; |
| 14 | + shape-outside: url(/img/content/case-studies/raspberry-pi/logo-pi.png); |
| 15 | + shape-margin: 12px;" /> |
| 16 | + |
| 17 | +I was approached by my friend [Jonic](https://twitter.com/Jonic), Senior |
| 18 | +Developer at the Raspberry Pi Foundation, about running a workshop with him and |
| 19 | +a bunch of the team. Specifically, they wanted to focus on building out a UI |
| 20 | +toolkit that could underpin a number of different properties, including [Raspberry |
| 21 | +Pi](https://www.raspberrypi.org/) and [Code Club](https://www.codeclub.org.uk/). |
| 22 | + |
| 23 | +I was particularly excited to work together for a number of reasons: firstly, |
| 24 | +Jonic is loads of fun, so working together was bound to be great, but |
| 25 | +secondly—mainly—I have a huge interest in education in tech. I never went to |
| 26 | +university because the offering at the time I was looking (around 2008) was so |
| 27 | +poor, and any IT education I had before that left a lot to be desired. I got to |
| 28 | +where I am through self-teaching, open source, and the knowledge of others. It’s |
| 29 | +because of this that I guest lecture at certain universities, and have a bit of |
| 30 | +a soft spot for non-traditional education resources: The Raspberry Pi Foundation |
| 31 | +is a great cause to get behind. |
| 32 | + |
| 33 | +Our working engagement was to be a single day workshop, on-site at Raspberry |
| 34 | +Pi’s Cambridge offices. The ‘work’ started the night before, when four of us met |
| 35 | +up for dinner and a few drinks. We hung out, got to know each other a little |
| 36 | +better, and briefly discussed expectations for the day ahead. |
| 37 | + |
| 38 | +- - - |
| 39 | + |
| 40 | +We started the day with me doing a bit of an audit of the code, [looking for any |
| 41 | +potential issues or oddities](/2017/01/ack-for-css-developers/). This filled the |
| 42 | +first 45 minutes or so until everyone had arrived and was settled in for a day |
| 43 | +of workshopping. |
| 44 | + |
| 45 | +Jonic and the team had a sound understanding of Sass and naming conventions, so |
| 46 | +we skipped past that and dove straight in to a crash course on |
| 47 | +[ITCSS](http://itcss.io/). Lots of scribbling on whiteboards, drawing diagrams, |
| 48 | +and discussing how ITCSS might fit their specific requirements (that’s a core |
| 49 | +part of the architecture’s design: it can be moulded to fit almost any project). |
| 50 | + |
| 51 | +<img src="/img/content/case-studies/raspberry-pi/logo-cc.png" alt="" width="128" height="128" |
| 52 | + style="float: right; |
| 53 | + margin-left: 12px; |
| 54 | + shape-outside: circle();" /> |
| 55 | + |
| 56 | +Once we had an idea of what shape the codebase would take, we then began to look |
| 57 | +at how we would deploy and consume it into projects. More whiteboards, more |
| 58 | +scribbling, and some head scratching later, we settled on a number of separate |
| 59 | +repos and npm packages to consume smaller, more granular parts of the toolkit |
| 60 | +into projects that needed it. This granularity would make the toolkit more |
| 61 | +useful and more flexible. |
| 62 | + |
| 63 | +After we got down a lot of architectural theory, we began to focus our |
| 64 | +attentions on theming and repurposing the toolkit so that it could be used on a |
| 65 | +variety of different sites and products. Theming is [a problem I’ve |
| 66 | +solved](https://speakerdeck.com/csswizardry/4half-methods-for-theming-in-s-css) |
| 67 | +for many different companies, in many different ways, many different times |
| 68 | +before, so we managed to settle on the correct approach very readily: this left |
| 69 | +us with a fun bit of code tennis where I mocked up a proof of concept in |
| 70 | +[Sassmeister](http://www.sassmeister.com/), and Jonic and the team added the |
| 71 | +next features, and so on, until we’d got a pretty comprehensive chunk of code |
| 72 | +that allowed us to generate and switch themes very quickly. |
| 73 | + |
| 74 | +We rounded off the session by looking at some performance topics, mainly |
| 75 | +CSS/runtime/rendering performance: how to measure it, how to debug it, and how |
| 76 | +to improve it. |
| 77 | + |
| 78 | +By the time the day wound down, heads were beginning to spin. In just a short |
| 79 | +amount of time, we covered a _lot_ of ground. We’d worked out the most suitable |
| 80 | +architecture for a multi-platform UI toolkit; we decided how best to package, |
| 81 | +deploy, and consume it; we coded up a way of completely reskinning and theming |
| 82 | +it, and then we began to touch on how to make things like animations silky |
| 83 | +smooth. |
| 84 | + |
| 85 | +After that, it was time for the pub, and a couple of us made it to somewhere |
| 86 | +local to finish the day talking non-technical things with a beer in hand. I’m |
| 87 | +really pleased with the work we did together, and happy to have been a part of |
| 88 | +shaping the future of Raspberry Pi’s new UI toolkit. What a great client! |
| 89 | + |
| 90 | +- - - |
| 91 | + |
| 92 | +{% include promo-next.html %} |
0 commit comments