My Experiences with Open Source Operating Systems

So this week I don’t have a whole lot to talk about regarding class discussions, but I have another “filler” topic in mind that I can talk about this week. I think the biggest hurdle for me getting involved in any open source project is the idea that getting used to a new OS would be a huge task for me. I’ve been a lifelong Windows user (besides using mac when I have no other choice like in RIT’s design labs or for RIT’s iOS Challenge) and up until I went on co-op at Hitachi Data Systems, I was super intimidated by the concept of Linux. I had seen enough black-terminal-with-green-text characterizations of Linux in pop culture that I had assumed it was exclusively for users who knew how their PC worked like the back of their hand, which is absolutely not me! I far prefer iPhones over Androids simply because I’ve used Android before, and the wealth of options and customization throws me down a massive rabbit hole of trying to get my environment set up just right, and being frustrated when the processes are over my head, whereas an iPhone just works out of the box and I don’t have to think about it. I’m consciously trading a wealth of useful features, supportive communities, exclusive applications and the opportunity to tune my phone to my exact usages for something that instead works on a pretty average level for my daily tasks. I have much the same relationship with operating systems. I have no interest in getting into the nitty-gritty of optimizing my environment, because I know it will only lead to a lot of wasted time and frustration when I try to customize EVERY SINGLE FEATURE rather than just USE my computer.

Knowing all this, I’ve avoided using Linux-based operating systems for a very long time. At Hitachi, I used Fedora with Cinnamon and was pleased with the interface, but not with the method of modifying the OS. Just as I had figured, in order to change small features (screen resolution and monitor positions is a good example) I had to learn how to access cinnamon’s control center (cinnamon-control-center) in order to use it, whereas in Windows, it’s more intuitive to right click the desktop to modify it’s properties. I put a lot of value on UX over being able to modify the low-level processes of my computer, and that makes Windows the most attractive option for me, because of how intuitive it is for me to use. I feel like I’m rambling a lot so I’ll get to the point… Fedora is an interesting operating system, it provides a windows-like experience (at least with cinnamon!) that’s comfortable for me, but it removes a lot of the intuitive-ness I appreciate in an operating system in exchange for tools that enable power-users to do their thing. I feel very intimidated by the number of tools at my fingertips and have NO idea where to start most of the time, and the last thing I want to have to do is google “how do I edit my monitor resolution in Fedora Cinnamon” to make my environment behave like I want it to. Windows is a good fit for me because I’m experienced enough with it that I can figure out how to modify my experience with ease, whereas Fedora is taking a LOT of getting used to. I hope I’m able to internalize all the processes that you need to go through to preform these lower-level tasks, but for now, that speed bump is turning into being a pretty serious annoyance as I use Fedora on my home PC.

My Experiences with Open Source Operating Systems

Week 8 Update

This past week we spent the majority of our time in class doing our Commarch presentations, and with little to talk about in regards to class content, I instead decided to make this post about my experience so far with installing my first non-Windows operating system!

A few weekends ago during BrickHack I spoke with jflory7 about the different spins of fedora that would be worth checking out and began looking into it and doing some research of my own. It wasn’t until this past Monday when I finally chose a distro, set up my bootable thumb drive and gave it a go! In order to format the thumb drive, I was suggested a program by another student in the class that would format the USB in such a way that you could bring in the ISO for your operating system, and it could be used as a bootable device. After getting that all set up and after a long day of classes I gave it a go, and accessed the boot menu on my desktop and was easily able to make my way into a Cinnamon environment on Fedora. I did some digging around, found the relevant commands to tweak my workstation to fit my preferences and was happily making notes of the commands I was using when I had to leave for other requirements. I shut down the PC and when I got back later that night, all of my preferences had been reset. I hadn’t installed Fedora to my hard drive, so I had some extra work to do to make my system have a persistent copy of Fedora’s OS. With this in mind, I reached out to jflory7 for some more advice on how to go about doing this, defragged my hard drive, collated all the data stored on there, and partitioned out a decent chunk of my hard drive for Fedora to sit on. With all that squared away I rebooted my computer in the Fedora environment, and was having some trouble finding the space on the hard drive I had partitioned on the Windows side of things. I’m currently doing the research to figure out how to help Fedora identify the Windows-created partition on my HDD, but I hope to have a dual-boot capable machine in the next week or so!

This should be some great practice for familiarizing myself with a Linux environment, and I can’t wait to poke around some more and explore some of the features and differences from Windows that are available on Linux.

Until next time!

Week 8 Update

Commarch Report

For the Humanitarian Free and Open Source Software Development (HFOSS) course at the Rochester Institute of Technology, we were tasked with the Community Architecture (CommArch) project. For this project, we were tasked with analyzing an open source project’s community and the general details surrounding the project. This blog post serves as the analysis our team prepared for the project.

Continue reading “Commarch Report”

Commarch Report

Commarch Project – A through H

For the commarch project, I’ve taken on the role of answering the first half of the questions for part 4. I’ve found most of my answers from examining the github repo for Tahrir, and extrapolating from that.

A. Describe the software project, its purpose and goals

Tahrir is a project that allows its users to create their own Open Badges – graphical icons that identify that a user has attended a particular event, completed a specific challenge, or any number of other accomplishments.

B. Give a brief history of the project. When was the Initial Commit? The latest commit?

The Mozilla badges project’s wiki page was created in November of 2010 mentioning a few other projects that utilized a badge system and encouraging individuals to contribute to that project. Once Mozilla’s badge project was established, github user ralphbean created the inital commit for the Tahrir project in April of 2012. Since then 22 contributors have worked on the project, with commits as recently as March 2nd of 2016.

C. Who approves patches? How many people?

I’m not sure if there is an easier way to get a list of who works on approving patches, but from what I can tell in the most recent pull requests, the following users have been actively responsible in the past year for approving patches:

Cydrobolt
Ralphbean
Puiterwijk
Trishnaguha
Decause(!)

D. Who has commit access, or has had patches accepted? How many total?

From what I can tell, users Ralphbean and Oddshocks have made far more contributions to the project than anyone else, but I believe the users listed above (being able to approve patches) probably have commit access as well. Again I’m not exactly sure how to determine user permissions but that seems to be the case. In total the project has had 22 contributors.

E. Who has the highest amounts of “Unique Knowledge?” (As per your “Git-by-a-bus” report. If there is a tie, list each contributor, with links if possible)

This is definitely ralphbean, the diversity of his commits and the results of the git-by-a-bus analysis clearly indicate this.

F. What is your project’s “Calloway Coefficient of Fail?”

JustBobbyThings calculated this himself and came up with a value of 35

G. Has there been any turnover in the Core Team? (i.e. has the same top 20% of contributors stayed the same over time? If not, how has it changed?)

In the first two years of the project, oddshocks had a greater number of lines of code contributed to the project, and had some huge activity spikes in July of 2013. Since then though, ralphbean and puiterwijk have taken up a lot more of the work, and oddshocks hasn’t contributed since October of 2014. Ralphbean overall has been the greatest (and most consistent) contributors to the project.

H. Does the project have a BDFL, or Lead Developer? (BDFL == Benevolent Dictator for Life)

ralphbean would be the closest thing to that. He guides the development project, but after the project stabilized and all the core functionality was implemented, any further contributions seem to be minor bugfixes for the overall QOL of the project. I can’t necessarily speak to ralphbean’s role as a BDFL during the development process, especially without any  chat logs from relevant IRC channels or email lists, but at the project’s current state, ralphbean seems to just be keeping the project going along in a healthy direction and fixing the minor bugs that come up as they’re reported or patched.

Commarch Project – A through H

Meetup 3

I attended my second RITLUG meetup today to hear a talk about Tmux and Screen. Both are methods of maintaining sessions when logged out, multitasking and sharing a terminal with someone. Vim and Emacs allow for tabs and splitting screens, but don’t allow multitasking with different applications, Tmux and Screen are intended to make some of these activities possible.

Tmux allows you to run a command when you log of a computer, and have it continue running on the server while you’re away. Additionally, you can then resume the same terminal session on a different computer elsewhere.

Another cool feature gets around sharing a terminal window by sharing account credentials. Tmux can handle multiple users, but there are some obvious problems that come from this. The user with the smallest terminal window effects the window size of all others, plus giving full terminal access to multiple people is inherently dangerous if you don’t all get along super well.

You can also open Tmux within Tmux. That’s weird. I can’t imagine a usecase for this, but the presenter mostly said it was muscle memory doing it by accident, but it functions in more layers than just two (i.e. you can have Tmux within Tmux within Tmux… etc.).

Tmux has a plugin called Resurrect that will allow you to save your tmux session and open it elsewhere by creating a file you can use to “resurrect” your session. It will allow persistent Tmux sessions between reboots too!!

Screen is an application that allows a user to access multiple separate login sessions within a single terminal window. It’s similar to Tmux because it’s less portable between sessions/computers, but it’s more stable for sharing terminal windows (one user crashing doesn’t crash everyone).

Terminator is a graphical alternative to Screen and Tmux with a few unique features. dvtm requires an extra utility (dtach) to detach from sessions but also offers similar features but doesn’t support plugins.

Meetup 3

Week 7 Update

This week we did a lot of talking about the teaching methods for 4th graders, and I’m starting to brainstorm about ideas for my project. Besides that, I’ll also be looking into installing Fedora on my own PC sometime in the coming week, and I’ll be attending my third meetup later today at RITLUG.

As far as the educational activity project goes, we spent some time in class discussing the learning abilities of students this age and what skills we should be targeting. I took a look at a bunch of the projects that RIT students have done in the past for this assignment (found here) and got a few ideas just from that. Nolski’s project in particular was really cool to me. Not only is the art fantastic, but the underlying principals of how it teaches fractions is totally rad. PacMath was also a pretty neat crossover of games and math-based learning. I’ll be taking some inspiration from both of those (and other projects) for sure. The summer between my Freshman and Sophomore year, as well as the summer between my Sophomore and Junior years at RIT I worked at InternalDrive Tech Camps teaching 8-18 year old students a variety of technology-based courses. From my experience with the youngest group of students (8 year olds which were right around 4th grade) generally preferred working with their hands over working with their computers whenever possible. I would love to incorporate more physical movement into the game I work on for the class, so I’m brainstorming on ideas for using the XOs as tiles to lay out physical math problems (i.e. 4 students all join the same activity, each get a number, and there are mathematical operators laid out on the floor that they have to use to create a valid equation). I’m pretty excited about this project, but the biggest hurdle for me will be establishing a dev environment that I’m comfortable with using Python (a relatively new language for me, especially when it comes to working in a new project from scratch).

This past weekend when I attended BrickHack, I spoke with jflory7 about the variety of Fedora Spins that I could get installed on my computer and play around with. Dual booting with the design spin seems like the option best suited for me. I worked with the Cinnamon desktop environment for Fedora when I was on co-op, but my workstation was set up for me, and I haven’t had the opportunity to go through the process of a Linux installation yet. It should be an interesting experience, and I’m excited to give it a try.

Until next time, I’m off to lunch and I’ll be posting again later today after the RITLUG meetup covering some of the points covered there tonight.

Week 7 Update

Meetup 2

This past weekend I had the opportunity to volunteer at BrickHack, RIT’s biggest yearly hackathon. I know three of the head organizers (Wilfred from HFOSS, and Sneha and Stuart from Pep Band) very well so I was happy to get a chance to help them out with their event. For the most part when I was actively participating in my Volunteer opportunities I didn’t have much FOSS related experience, but between shifts I made an effort to seek out one of the FOSS tech talks and speak with jflory7 about getting a Fedora spin on my home PC.

BrickHack meetup picture

The first tech talk that I stopped in was hosted by Remy Decause, a Rochester native, Red Hat employee, and a huge contributor to the Fedora project. He stopped by to talk with us about 4 major FOSS topics, Communication, Infrastructure, Onboarding and Licensing. The full notes can be found here thanks to jflory7! There was a lot of cool information talked about, and it gave me an excellent opportunity to talk with Decause about Red Hat culture and what an employee can expect to experience there.

When I stopped by the Fedora booth, I had the chance to talk with jflory7 about different spins of fedora, the process of dual booting, as well as getting some recommendations for what resources I should check out for getting Fedora installed on my own PC.

This was a really cool experience, and as my second hackathon that I’ve worked on, it was by far the best organized. Lots of amazing projects were presented, and I had a fantastic time speaking with a lot of the hackers.

Meetup 2