- Q1: What will I be working on during this internship?
- Q2: What kind of software will we be using for this internship?
- Q3: Where can I find more information about this internship?
- Q4: What are the hours of the internship?
- Q5: Is this a paid internship?
- Q6: What happens after the initial steps?
- Q7: If I'm an international student, how soon can I get my paperwork required by my visa?
- Q8: How many pull requests and issues in total do I need to make to finish the steps?
- Q9: How long do I have to complete these steps?
- Q10: What is the purpose of nations and communities, and how do they work together?
- Q11: How can I enable the Virtualization in order to turn vagrant on?
- Q12: Why is the "Submit" button not showing up when I try to submit my survey?
- Q13: Why does Firefox say “Unable to connect” when I try to load my community?
- Q14: When I first run BeLL with the "vagrant up" command the download fails, why?
- Q15: I named my repo incorrectly by not naming it <username>.github.io, can I rename it or I need to delete it?
- Q16: [What do I do if I already have a github.io with my username?](Q16: What do I do if I already have a github.io with my user name?)
- Q17: What do I do if I am on Unix/Mac/Linux and accidentally give root permissions, corrupting the installation of the vagrant vm?
OLE virtual interns will be helping develop OLE’s BeLL (Basic e-Learning Library) software. The BeLL is a virtual library that is deployed internationally to children in countries that typically do not have access to educational resources.
As a part of this internship you will be working with software and languages including Git, GitHub, Gitter, Markdown, Vagrant, VirtualBox, Command Line/Terminal, Command Line/Terminal Scripts, Vim, CouchDB, Docker, HTML5, Javascript, and Node.js.
More information about the internship can be found here.
This is an intensive internship that requires 16 hours of work each week. Work with your fellow interns and keep us updated in the Gitter chat.
Unfortunately no. This position is unpaid, but it will provide a diverse range of experiences in the workplace. It can provide a certificate of completion, upon request. Also, academic credit can be provided through your institution (if applicable).
The initial steps are meant to introduce potential interns to the OLE BeLL software and the process that we use to develop features and improve upon the BeLL. To be more clear: the initial 10 steps are a vetting process to determine whether or not people are fit for the internship, so consider it an interview for the internship. Once you have completed the 10 steps and are approved, you have officially joined the OLE interns team! We’ll add you to the interns Gitter chatroom and assign you to a team. You and your team will be working on an assignment, and we’ll switch up the assignments each week.
After you finish the first 10 steps, let us know if you need us to sign some paperwork or provide you with an offer letter for your visa. Since the first 10 steps are a vetting process, your internship technically doesn't start until you finish them. Think of the first 10 steps as a continued application process as you are not working or adding to our organizational software, but rather showing that you have enough technical background to work with us. We are more than happy to speak to you about providing you with an offer letter or assisting with organizational information once you complete the 10 steps, but as you are not working with us until you are officially an intern, we cannot provide proof of working with us until you complete the first steps.
To finish the initial steps, you need to make a minimum of four issues and five pull requests so you can get familiar with GitHub and to show us that you can write proper issues/PRs.
There is no official deadline, work on your own time. However, please note that most people who continued into the internship program completed the steps within 7-8 days.
We use the nation/community infrastructure because we often deploy our software in places without internet. Nations are the services sitting in the cloud (which are connected to the internet). Communities, which run locally on Raspberry Pis and/or laptops, are run on an intranet but are most of the time not connected to the internet. Because nations are connected to the internet, they allow a connection process between us (with internet) and users on communities (without internet). To sync with a nation, however, a community needs to be connected to the internet so that information can be sent in both directions.
First of all, you have to access the BIOS. To do that, you need to reboot your computer and press the appropriate key while it’s booting. It is usually the "F2", "Esc" or "Delete" key. Once you have entered the BIOS setup menu, you have to search for an option called "Intel VT-x", "Intel Virtualization Technology" or something similar. Enable this option, save and reset. Now the "vagrant up" command should be working fine.
Please make sure you’re using Firefox, as our BeLL software is only guaranteed to work in Firefox. To get the “Submit” button to show up, try logging out of the BeLL and logging back in, then go back to the survey. If that doesn’t work, log out of the BeLL, shut down the vagrant machine (vagrant halt
in the directory where the Vagrantfile is located), vagrant up
again, log in, and check the survey again. If you’ve tried these steps and it still doesn’t work, let us know in the Gitter chat.
Because a community is run locally on your machine, you need to vagrant up
in the directory where the Vagrantfile is located. You can then see if your community is running by going to 127.0.0.1:5985
in Firefox. Go to 127.0.0.1:5985/_utils
to see the CouchDB behind the BeLL, and 127.0.0.1:5985/apps/_design/bell/MyApp/index.html
to navigate the actual BeLL user interface.
You should first check if Hashicorp's atlas is up and running by looking at the left sidebar :
If Atlas is operational, then maybe your download is being interrupted, you can try to download and set up the big vagrant box file manually:
-
Go to this atlas box page
-
Click on the last version's (the uppermost) version number
-
Add
/providers/virtualbox.box
to the page's link you have been redirected to, and click enter to start the download via your browser, or copy the link and paste it in your preferred Downloader, preferably one that has pause/resume functionality. -
After you download the box run the following commands while in your
ole--vagrant-vi
directory, also put the correct path to the box you downloaded:
vagrant box add ole/jessie64 /path/to/vagrant-box.box
vagrant init ole/jessie64
vagrant up
You now have a working communityBeLL on your OS.
Q15: I named my repo incorrectly by not naming it <username>.github.io, can I rename it or I need to delete it?
You need to delete it and start over. Navigate to the misnamed repo and click the settings tab or enter https://github.com/YOUR-USERNAME/YOUR-MISNAMED-REPOSITORY/settings
in your browsers URL bar. Next, scroll down to the Danger Zone section of the settings and click 'Delete this repository'. Read the warnings and then type in the name of the repo to confirm.
You have a couple of options.
-
If you are not using the repo anymore you can delete it and then follow the First Steps.
-
If you are still using it and you don't want to remember another login, you can create an organization and name the forked repro <orgname>.github.io
-
Or you can just create another github account, and use that for OLE work
Q17: What do I do if I am on Unix/Mac/Linux and accidentally give root permissions, corrupting the installation of the vagrant vm?
In git bash
type:
cd ole--vagrant-vi
vagrant destroy -f
cd ..
rm -rf ole--vagrant-vi
git clone https://github.com/dogi/ole--vagrant-vi.git
cd ole--vagrant-vi
vagrant up
The aim of the ‘First Steps’ is to introduce prospective interns to the software that they will be using, and make sure they are familiar with each. While each step goes into detail on the specific program(s) at hand, it can be easy at times to lose sight of the bigger picture. To that end, below is a brief synopsis of the primary tools you will be using/learning about in the first steps, and how they work together to empower our collaborative development environment.
We start off by learning about BeLL, or the 'Basic e-Learning Library.' BeLL is the learning tool that OLE uses to provide the educational materials and resources to its students. It is a lightweight digital Library that can be accessed through Local networks (’Communities’) and synced through the Internet (‘Nations’). To do so, we need to install a few software packages, Vagrant and VirtualBox primary among them. We use Vagrant (a development environment builder), in conjunction with VirtualBox (virtual machine software) to initialize a BeLL environment on the local system. Using this virtual environment we access the BeLL interface locally and create our own communities/nations.
The other two tools we focus on are GitHub and Markdown. Similar to how we use Vagrant and VirtualBox to standardize the development environment for each developer, we use Git/GitHub in order to centralize the development process, and enable greater collaboration and teamwork. Git is a revision control system that allows many users to simultaneously edit and develop the same projects, and GitHub is a website/hosting service that utilizes the git system, and hosts the git repositories we work on. Markdown, on the other hand, is a style of formatting text native to GitHub and thus used in the Virtual Intern program. Markdown simplifies formatting and emphasizes readability, helping coders focus on content, and not get bogged down in syntax.
To sum up, the primary software/tools we cover in the 'First Steps' are BeLL, Vagrant, VirtualBox, Git/GitHub and Markdown. Though not immediately apparent, the tools we use are all unified by a common purpose. Each bit of software we use is chosen in an effort to promote collaboration. The use of Vagrant and VirtualBox mandates that each instance of BeLL is the same, making sure that all developers utilize the same system. Markdown simplifies the development process, as each piece of code must comply to its syntax, increasing clarity for all users. Finally, GitHub serves as the last piece in the puzzle, as it takes advantage of the standardized development environment that Vagrant/VirtualBox provide, as well as the streamlined syntax of Markdown to allow for easy collaboration.
It can often be challenging to see the 'Big Picture', and it’s easy to lose sight of it when focused on individual tasks. With that said, hopefully this synopsis will have shed light on the importance of the process, and shown that each step is not an isolated assignment, but rather part of a greater task.
- GitHub and Markdown Short Tutorials
- GitHub Help
- GitHub's Git Tutorial
- Git-it Workshop
- Codecademy's Learn Git Course
- Git Pro (Book)
- Git Cheat Sheet (PDF)
- GitHub Tips
- Markdown Syntax
- Markdown Cheat Sheet (PDF)
- Markdown Editor
- Vi Cheat Sheet (PDF)
- GitHub & Git Foundations (Playlist)
- Shorter Git/GitHub Tutorial (Playlist)
- Mastering Markdown (Playlist)
- How to Manually Fix Git Merge Conflicts - Please, note that this video will explain how to fix a merge conflict from the point of view of the repo owner who is trying to merge a pull request. However, it is helpful also when you have to fix a merge conflict on your own local and forked repos.
- How to Use VirtualBox
- Vagrant Tutorial