SBR600 – Networking Without Wires or Waves- General Reflection:
In my final semester at Seneca College studying CTY, I had taken SBR600 based on a suggestion from a co-op supervisor. He had mentioned that this course would be beneficial to me in that I would learn how to work with people inside the open source community. Also, gives me better understanding on how software works and how to customize applications to better suit my needs.
Learning Outcomes:
Other than referencing the course outline, I would like to put down exactly what my learning outcomes that I got out of this course that I would like to mention.
Compiling software from Code using GCC:
I was never really comfortable with building software until I had taken this course. I understood that basics of it but if there was ever a dependency error I wouldn’t know where to look. I recognized that there were certain things that needed to be done in order to build the software. For example, I had asked Chris for some advice on how to build an ethernet driver for one of my laptops. At this point, I have never successfully installed a driver on linux ever before. I had always had problems understanding this ever since my first version of Red Hat back in the 90s. I had problems with getting X windows to show up because i never had the right graphics card that was computable with Linux. Same with today, I could never figure out how to install the ATI graphics driver for Fedora. IT would always fail. Anyway that was another story. I would like to tell you how I installed my NIC driver so that I could do my work for another class (long story – OPS535).
downloaded the source code from realtek.com.tw for a RTL8102 PCI-E NIC
made sure I had all the correct building libraries
untar’d and compiled
lsmod and saw the NIC driver was installed =)
You may think that this was as easy as I just described it but I did not clue in to half this stuff because I had a tough time trying to compile the driver. Turns out that the library build files were the wrong ones base on the kernel version that I was running! To alleviate this, I had to run a yum install kernel-devel and then a `uname -r` (i think) the get the correct build libraries!
Eureka! It worked like magic. Chris had pointed this out to me and this was the problem! Not only did I learn from this from a software building standpoint, I could now work on my OPS 535 assignment from home!!!!! Note the exclamation marks as I was pretty excited about this.
Even though this was not directly part of the SBR objectives, I feel that as a prospective system administrator, I should know how to compile / install a driver in *nix systems. In SBR or any course in CTY for that matter I would like to see some more information in how one would install drivers on a *nix system to improve your computers performance & functionality.
Building RPMs from SPEC files:
I found this to be a progressive learning curve. At first, it was a bit scary. Especially building the spec file. I had struggled with this but eventually figured it out. It is not until working on the project with Tarin & Vitaly that I really started to understand SPEC files and how to design them. In an earlier post I discuss using source SRPMs to create NLED. This is another thing that still baffles me but I think I just need more practice.
Using Version Control Systems:
GIT
Let’s talk about GIT, I made an earlier post about GIT and discussed my experience with it. I find that if I were to use it on a regular basis I would be very comfortable with it and use it very often. It is getting over that initial learning curve where this tool can be very helpful. When I first heard about this tool I had also thought this was some sci-fi tool and seemed abstract. If I were to do this course again or take the next SBR, I would be using GIT all of the time. It provides a better collaborative effort as suppose to having people do things themselves.
Jobs:
No not Steve Jobs, although I do own a mac that does not boot from USB unless it is formatted correctly with a EFI compatible boot loader. It is a huge headache to boot a MAC with a usb key. Still haven’t figured it out yet but that is not what I want to talk about here.
I had some experience running jobs in a previous post below. I found it interesting to learn how to benchmark the jobs and learn how to change the j value to vary the job speed.
I could see how this can help your build times. At the end of the day we are always trying to push the limits of speed and effectively use the CPU to its full potential. As the Eagles songs once said “Take it … To the limit one more time”.
Working on remote systems (Chile, Iraq and Romaina):
I have always been fascinated by remoting. The idea I can do something far far away and have it work in real-time is awesome. I feel it really gives people more possibility to do things with computers and maximize the resources. When I was trying to build the driver for my laptop I utilized the Chile and Iraq systems and found that I was able to build the drivers on Chile but not Iraq. Just being able to test things out on different machines I found useful. I found it fascinating that you could have multiple users connect to the machine to take on a task. IT reminds me of the old days of modems and BBSes.
For our project we had done many things to utilize these systems:
1. Setup a repo on Chile
2. Tested a repo on Iraq system
3. Tested the minefield setup on these systems
What I found really cool that I did not know I could do before is to run the ssh with the -XC flag. This allows us to run the X11 sessions so it was as if i were accessing the computer if I was in front of the terminal. These are things I though were only possible in Sci-Fi flicks. I would boast more about remoting but I think I will move on about some other neat stuff.
Mock & Koji
I did not do a lot of work with Mock and Koji but I recognize the value of having these tools. A lot of times when your building software it would work on one system but not the other. Using Mock, it will allow your to build the software on a clean slate using chrooting. I understand the concept but I have yet to apply this. I hope to apply it in the future when I am exploring this on my own time.
I like the idea of Koji because again you are attempting to maximize efficiency. Allow you to build on different architectures and setup scheduled jobs is the driving force behind server farms. Before this class, I though server farms had something to do with farmtown on facebook. Just kidding…
Overall Reflection:
I found this course to be very progressive. I like progressive courses. By teaching us the tools and letting us experiment the tools and create something really pushed us to figure out how to use them. This is classic college practical experience and using the tools and applying it to the real world. This method could be compared to any hands on tools.
You need to build a house? Here are the tools, here is how to use the tools. Now go build a house use your brain. Talk to people get their help and ask them how they would build their house. Apply the information from others and use it to your design.
Which leads me to the title of this blog “Networking without Wires or Waves”. This course teaches you the power of networking with people. To understand what to do if your running into a problem and how to solve it using the vast resources of the internet. When I am talking about networking I am not talking Ian Allison DCN386 Cisco speak. I am talking about talking. It is the people that you involve in the project that can help you out will advance the project. This is why open source is very powerful in that the community helps each other out when trying to reach a common goal. Our project had an outcome where Armen and the Mozilla build team had a problem with the nighties and betas. We had taken on a solution to the problem by creating a repository for people to download from to obtain the nighties. So far, we have had excellent response and we as a group we had an epiphany in how fast the news travels and how our contributions positively affects the open source community.
In closing, I would like to thank our professor Chris Tyler, Armen Zambrano, Tarin Choudhury, Vitaly Bluzmans and my other classmates who had assisted me in any questions (good & bad). Best of luck to all in the future.
Sincerely,
Brett van Gennip