Delivering Linux 101
Achievement get: Deliver workshop!
At the beginning of my time here at University I never thought I'd be planning and leading the delivery an entire workshop on the basics of Linux. Assessed coursework presentations have nothing on this!
Overall, I think it went rather well, actually. About a dozen people attended in total, and most people seemed to manage to get near the end of the tasks I had prepared:
- Installing Ubuntu
- Installing Mono
- Investigating Monodevelop
I think next time I want to better prepare for the gap when installing the operating system, as it took much longer than I expected. Perhaps choosing the "minimal" installation instead of the "normal" installation would help here?
Preparing some slides on things like the folder structure and layout, and re-ordering the slides about package management would would all help.
If I can't cut down on the installation time, pre-installed virtual machines would also work - but I'd like to keep the OS installation if possible to show that it's an easy process installing Ubuntu on their own machines.
Moving forwards, I've already received a bunch of feedback on what future sessions could contain:
- Setting up remote access
- This would be SSH, which is already installed & pre-setup on a server installation of Ubuntu
- I unsure precisely what's meant by this. Is it installation of various games? Or maybe it's configuration of various platforms such as Steam? Perhaps someone could elaborate on it?
- Server installation & maintenance
- Installation is largely similar to a desktop
- I'd want to measure how long it takes to install, because much of the work with a server is the post-install tasks
- Perhaps looking into a pre-installed server might be beneficial here, but security would be a slight concern
I think for anything more advanced, I'll probably go with a lab sheet-style setup instead, so that people can work at their own pace - especially since something like server configuration has many different steps to it.
I'd certainly want a goal to work towards for such a session. I've had some ideas already:
- Setting up a web server
- Installing Nginx
- Writing and understanding configuration files
- Possibly some FastCGI? PHP / Python? Probably not, what with everything else
- Setting up a server to host a custom application
- Writing systemd service files
- Setting up log rotation
Common to both of these ideas would be:
- Basic terminal skills
- Uploading / downloading files
- Basic hardening
sudoinstead of root if it doesn't come configured with that setup already
- Securing SSH
- Enabling UFW
I'm pretty sure I'll be doing another one of these sessions, although I'm unsure as to whether there's the demand for a repeat of this one.
If you've got any thoughts, let me know in the comments below!
Thanks also to @MoirkoB and everyone else who provided both time and resources to enable this to go ahead. Without, I'm sure it wouldn't have happened.
If you'd like to view the slide deck I used, you can do so here:
If you missed it, but would like to be notified of future sessions, then fill out this Google Form: