Student Stories
My first Linux operating system was Ubuntu 10.04, when I was still young. It was my first experience with open-source software, which I didn’t fully appreciate at the time. I just wanted an operating system to work on my Dell hand-me-down computer and didn’t want to pay for windows. So, Linux was the first thing I found. Over the next few years I started to really appreciate open-source software. I realized its importance for the internet and myself since it was one of the only things that allowed me to have full control over my devices.
Reflections on My Time at the Open Source Lab by Travis Whitehead
Working at the Open Source Lab has been the highlight of my computer science experience at Oregon State University. It was just by chance that I came across a job listing for the OSL. I had never heard of the organization, and it certainly was not a factor in my decision to pursue computer science at Oregon State University.
The Open Source Lab has treated me well. I came here bright eyed and full of wonder, fascinated by the racks and racks of servers we had in the data center. Fascinated at the treasure trove of artifacts held in the back room from conventions passed, old CDs labeled “Fedora 10” or “Ubuntu 8”. That scrap of paper on the wall of an IRC log with Linus Torvalds.
On April 28th, 2018, the OSL participated in the Corvallis Maker Fair for the second year in a row. We hosted 2 booths, the first had demos of programs in Python and Scratch, and the second had a HAProxy cluster with diskless nodes, which was built and deployed by OSL student JJ Frederick.
Attendees learned about the basics of programming by modifying the source code of the demoed programs to see how it changed the programs, learned about DevOps basics and saw how easy it was to add their laptops to the cluster as a diskless node, and also gained an appreciation of open source software.
I took part in a Cyber Defense Competition hosted by the Department of Energy, and it was a fantastic experience! Our team worked hard to ensure that we had a fighting chance at the competition, and we had much needed help from our mentor.
The competition took place in a control center. One wall covered in flat screen TVs to create a huge monitor and the other was lined with windows into the room where the Red Team worked. There was a table for each of the 6 teams, and on each table was a small model of a natural gas extractor with two little houses around it. This little model simulated a power plant – the thing we would be defending against cyber attacks.
About a decade ago, I was becoming disenchanted with my time in the computer industry. It wasn’t bad, it just wasn’t me anymore. After some serious soul searching, I decided to turn my hobby into my next career – but I knew that I needed formal education and training. After some careful research, I narrowed down my choices to two: UC Davis and Oregon State University. Both schools have top-tier records in my new field but it was the Open Source Lab that tipped the balance. After moving to Oregon I haven’t once looked back. | After establishing residency and completing my associate degrees (all three) at PCC, I finally moved to Corvallis. I sent Lance my resume in February of 2013 and was hired the following month as a student software developer. The staff was welcoming and the students were amazing and inspirational. I felt like I was right where I needed to be. I was surprised at how much pleasure I took from mentoring so I got involved with Google’s Summer of Code program which was a great experience. I even grew so attached to one of my projects that I still support it long after it transitioned to another lab. Yay PGD! | But all good things must come to an end. After finishing my undergrad work, I went on an internship and came back to start graduate school. I suspected then that I wouldn’t be able to have my cake and eat it too and that I would have to cut back on my commitments once my research got started, and my time at the OSL would probably be the first to go. This suspicion was reinforced after my daughter was born last January and again by the financial situation about which we all know. I decided to wait to resign until after the summer in case I was needed to help with the transition and now the summer is over. I want to thank all the students with whom I have worked at the OSL. You’re what makes the lab what it is: a finishing school for the finest students at Oregon State. I am proud to have worked with you as you launch your careers and I firmly believe that you will continue making the world a better place.
At the OSL we use Packer to build our images, because of the reproducible and easy work-flow it allows. We can create an entire operating system image based off a Linux distribution without any interaction! With this we are looking to add much more complete and automated testing.
To help with this we have decided to create a GitHub repository called Packer Templates. This is what the OSL will be using to generate OpenStack operating system images that many of our hosted projects use. We have been hard at work making this a reality for around 2 months and counting, and we still have a lot of work to do!
Programming languages are a touchy topic in Computer Science. In certain crowds even mentioning a language will elicit groans and eye-rolling. Conversely, there are crowds that will only use certain languages for all projects.
These people have lost sight of the fact that programming languages are tools. Languages have certain problem sets that they’re really good at and some not so much. If you were to ask me to do some complex math or signal processing, I would point you to MATLAB. Would I use MATLAB for developing a GUI? Not in a million years. So why do we choose C? Well, C is efficient since it’s practically one step above assembly and with a modern compiler it compiles down to a small executable. Plus modern compilers have extremely good optimization algorithms that can optimize your program better than if you wrote it by hand in Assembly. This makes C a great tool for embedded programming and systems level programming, which is why we have been using it for so long in these fields! However, a downside (and upside!) of C is that it’s like assembly. It will let you do whatever you want, even if that means shooting yourself in the foot. There is no type safety, there is no memory protection, and no thread safety built into the language. You have to do all of that yourself with mutexes, semaphores, and checks. It’s good to know about these concepts and be able to design a system that puts these protections in place, but every project should not be an exercise in memory management and complex concurrency. We should move on to tools that help you rather than give you enough rope to hang yourself with. With computers being as important as they are, security should be our number one priority when writing software. If you’re writing an application that does an unbounded copy from input (ex. heartbleed) in your final release, you just added another vector of attack to someone’s computer.
As of September 8th, my time here at OSU will officially come to an end. As sad as I’ll be to leave my life here in Corvallis and as nerve-racking it is to enter the real world, I realized recently I’ve spent the last seventeen years of my life in school and I’m ready to break free!
I’ll be leaving with both a degree in English and in music performance, both of which have taught me so much not just about their respective fields, but about growing up and how to work with what you’ve got.