quiz2
Quiz
We took a quiz today, below are my answers.
Software Developer
We took a quiz today, below are my answers.
Open source is an idea. When i hear it, I generally think about software, and maybe technology in general. I’ve written previously about an initiative to open source the manufacturing of machines/products for space research, and this isn’t the only open source initiative for manufacturing modern technology that I’ve seen. However, listening to npr recently I heard something that changed my perception on what open source is, or can be.
For our final project in my HFOSS class, we have to create an activity for sugarlinux that would be education for a fourth grader. After looking into how exactly activities are made for sugar, my group found that the best option for making a game would probably be with the sugargame library. Sugargame is just a wrapper for the PyGame library that allows PyGame to run well on sugar linux, specifically on the XO. PyGame is a python based framework for making video games. Looking over the docs, I’ve found that the library isn’t all too different from other game frameworks that I’ve worked with before. However, looking through it, I’ve had a burning question, the titular question for this blog post actually: Is PyGame any good? What I mean by this question is how good of a development environment is PyGame? Should I use it to make other games for any reason besides just to see if I can? Is it worth developing in? Well, I’ve done some research and I think I’ve found an answer.
Today I made it to FOSS at Magic for the first, and unfortunately last, time. I say last because this was the last one of the semester and I’m graduating! Either way, I’m glad I made it to the talk, as it was very interesting, and it was cool to see some of the RIT FOSS community together in one place. I think the discussion among the crowd is actually what made this event really fun for me.
For my bugfix assignment, I was pointed to an error in the README.md file for the Sugarizer application by my wonderful professor. The issue with the Sugarizer README was pretty simple. In Markdown, some number of octothorpe (#) at the beginning of a line denotes a header. If there is no space between the octothorpe and the header title, the text will not be emboldened. You can see an example of the issue below.
Lately i’ve been doing a lot of coding in javascript, specifically for node.js as opposed to for a website directly. With this comes the inevitable use of npm. npm is Nodes package manager, and its honestly one of the best package managers I’ve ever used. No need to carry around all of your project dependencies with your code either in your repository or somewhere else, all you need to do is list a dependency your project has and run npm install. It even takes care of installing dependencies for your dependencies! So convenient, right?
While perusing redit recently, I cam across a link to a Valve Software Github page. This repository is currently empty except for a readme and a license, but it’s valves first step into releasing it’s Game Networking Sockets framework as an open source project. This framework will handle NAT punchthrough and relay and is the actual code valve uses for most of its games. There hope that once this is released it will be a better documented and better maintained version of RakNet, another proprietary gone open source framework that accomplishes the same thing. There are complaints in the community about the current (or at least recent) state of RakNet and it’s documentation.
I think that with any large scale open source problem, there is bound to be some disarray. No one reports to anyone in particular, no one’s going to lose a job if they miss a deadline, everyone is just going to work when they can and when they want. Despite this, open source projects still work, and sometimes they work pretty damn well. I think that Godot is one of those open source projects that, despite being large, still has decently well organized community.
I realize that, through the course of this blog, I haven’t really taken the time to talk about myself. I’ve mentioned my name (Keegan), but that’s about it. It’s a bit of a cop out as far as the requirements for my class blog goes, but still, I’d like to take the time to introduce myself once more.
I just finished up the second half of Roads and Bridges: the Unseen Labor Behind our Digital Infrastructure by Nadia Eghbal. In this half of the reading, Nadia switched to discussing more modern issues with the open source infrastructure, as well as possible ways to correct these issues.
1) Please expand each of the following acronyms (1 pt each):
1.1) IRC Internet Relay Chat 1.2) FOSS Free and Open Source Software 1.3) OLPC One Laptop Per Child 1.4) FSF Free Software Foundation 1.5) PR Pull Request Bonus: Give the expansion for the acronym GNU. (1pt) GNU’s Not Unix
2) What is the name of the version control system we use in this course? (1 pt) Bonus: Give the name for another version control system. (1pt)
We use git for version control in the HFOSS course. Another version control system, which we don’t use, is SVN.
3) Please give the one-word name for the interface used in the OLPC computers & our VMs? (1 pt)
The interface used on the OLPC computers is called Sugar.
4) Bonus: What is the short, two-letter name for the OLPC computers used in the final project for this class? (1 pt)
They are called XO.
5) We refer to sites that host source code as “forges”. What is the name of the primary forge used in this course? (1 pt)
The main forge used in this class is Github.
6) Bonus: Name the other forge we have used? (1pt)
The other forge we have used in this class is Gitlab.
7) Bonus: Name another forge, one we have not used for this course. (1pt)
A forge we haven’t used in this class is Bitbucket.
8) The GitHub-specific term to describe the process in which, starting from one repository hosted at GitHub, one creates another repository, also hosted at GitHub, but under the control of a different user account. a) repository b) branch c) remote d) fork e) clone
The answer to this question is D) fork. ##Question 9 9) A collection of related commit objects a) repository b) branch c) remote d) fork e) clone
The answer to this question is A) repositroy.
10) A separate, but related, repository from which one may fetch or pull changes into one’s own working copy, and to which in some instances one might have permission to push changes from one’s own working copy. a) repository b) branch c) remote d) fork e) clone
The answer to this question is C) remote.
11) The general term in git for making an exact, working copy of another repository in which changes can be tracked separately between the two versions. a) repository b) branch c) remote d) fork e) clone
The answer to this question is E) clone.
12) A namespace in which one can track changes to a set of files within a given repository. This term applies both to the action and to the result of the action. Comparisons (‘diffs’ or patches) can be made between different such namespaces. a) repository b) branch c) remote d) fork e) clone
The answer to this question is B) branch.
13) Consider the following (+1 for each correct, -1 for each incorrect): a) e59b627 b) 451.867 c) cf153fb32 d) dca_079 e) 9539807 f) DB6A60A g) 614@1d4 h) be34fb47c60d List which of these could be a valid commit identifier?
The answer to this question is A) and E)
14) We’ve discussed “the four R’s” as a shorthand for the freedoms attached to software for it to be considered “free” or “open source”. List or describe each. (eg, if you can remember the “r” word you can just give that. If you cannot remember the term, but can describe the freedom involved, that also counts). Various “r” words are roughly synonymous for some of the freedoms, but we’re counting freedoms here, not synonyms so if you give two (or more) terms for the same freedom, it only counts once. For the purposes of this quiz, “remix” does not count as describing any of them. (1pt each)
10.1) Read 10.2) Revise 10.3) Reuse 10.4) Redistribute
This week, I had to begin reading a book about the crumbling open source infrastructure tha most of the modern world is currently relying on. (I have written some form of that sentence several times now and it doesn’t feel like english anymore). After reading half of it, I do believe that there is a pretty big and growing problem. According to the author, less people are contributing to the commons while more people continually build new products off of what already is struggling to stay up to date. These new products may or may not be free. It seems like we’re in dire need of a way to get people more involved with open source.
This week, I was tasked with reading the first half of Roads and Bridges: the Unseen Labor Behind our Digital Infrastructure by Nadia Eghbal. I also read the bug report titled Critical Linux filesystem permissions are being changed by latest version by user Crunkle from 14 days ago. The former reading discussed the growth of open source from a small movement to the underpinning infrastructure behind most of today’s widely used software. Following the explanation of how open source software became so integral to the modern world, the paper describes how this infrastructure is beginning to crumble, and that spells disaster for millions. That point is driven home with the contents of the second reading documenting a fatal bug in NPM, a package manager that a large percentage of web developers (front and backend) rely on.
The firstflight assignment seems to be an introduction into some of the culture of FOSS. It asked for an introduction, which I split apart into a seperate blog here