OPW – Forking and Creating a New Branch in Git and GitHub

This week, we are working on getting familiarized with Git and GitHub, and writing up some more detailed documentation to facilitate future deployments of TidePools. I am a complete n00b to Git and GitHub, so here are a few of my notes about them to help me keep things straight. I’m posting them here in the hopes that they may be useful to others, as well.

The TidePools code was recently moved here:


I was added to the organization as a team member and given permissions to push and pull. I was told that the preferred way to contribute for this project is to add branches, which will then be reviewed before being merged. I didn’t know where to start, and while GitHub’s tutorials are pretty good, I had to read between the lines to figure out how to set up proper branching. Below are the steps I used. I tested functionality by making small modifications to the README file and then checking whether the changes were reflected on GitHub.

The first step was to log in to the GitHub site, go to the TidePools repository on OTI (linked above), click the Fork button at the top, and tell it to fork to g33kgrrl. That creates a copy of the code in my GitHub repositories. Then I make a copy of the forked repository on my local machine:

g33kgrrl@saturn:~/TidePools$ mkdir fork
g33kgrrl@saturn:~/TidePools$ cd fork
g33kgrrl@saturn:~/TidePools/fork$ git clone https://github.com/g33kgrrl/TidePools.git
Cloning into TidePools...
remote: Counting objects: 1788, done.
remote: Compressing objects: 100% (1734/1734), done.
remote: Total 1788 (delta 63), reused 1778 (delta 53)
Receiving objects: 100% (1788/1788), 50.49 MiB | 280 KiB/s, done.
Resolving deltas: 100% (63/63), done.
g33kgrrl@saturn:~/TidePools/fork$ cd TidePools

Continue reading

OPW Application Project – Overview

This is the first of my documentation for the application project I submitted to the GNOME Outreach Program for Women.  First, a little background…

In order to apply for the internship, one must make a small contribution to a FOSS project first.  If you are selected, you get a paid 3-month internship where you can continue to hone your skills.  In case you missed the last post, I was one of the fortunate ones!  I’m thrilled beyond measure to have this opportunity.  This internship goes from January 2 to April 2.  I am asked to blog at least once every 2 weeks about my projects and experiences… but knowing me, it’ll probably be more often than that.  This post outlines the contribution I submitted with my application, which was part of the basis for my selection for internship.

I am working on a cool and philanthropic project called TidePools, through the Open Technology Institute (OTI). In order to understand the following explanation, it’s worth checking out the TidePools website to get an idea what is going on.  Should you wish to see the full code listings for my application project, here is the GitHub repository where my code will be stored.  GitHub has a fancy interface that displays the code with syntax highlighting, which greatly enhances readability, so I won’t clog the blog by reposting my code here.  (You can view the code by clicking on the name of the file you wish to view.)  I will post key sections in future posts along with explanations.

Continue reading

Online Learning

As promised in my last post, here is a list of some websites with free classes and/or tutorials.  These types of classes are often called Massive Open Online Courses, or MOOCs for short.  They’re mainly from big-name ivy league universities like MIT, Harvard, Stanford, etc. and cover all kinds of subjects, not just computer science.

  • edX – online classes – I’m taking CS50x (Intro to CS), an excellent class so far, and great for beginners.  There’s still time to enroll in this class if you want to take it.  It’s pass/fail and you get a certificate of completion if you pass.  Scroll down the main page or click “Find Courses” to see what they have.
  • Stanford Engineering Everywhere – online classes – click on Courses
  • Coursera – online classes – click on Courses
  • cplusplus.com – tutorials, discussion forums, and other stuff – in the upper-right box is a link to “C++ Language Tutorial.”  I downloaded the pdf version to my phone and I study C++ while I’m standing in line or what-have-you.
  • Cprogramming.com – tutorials, lots of them
  • MIT OpenCourseWare – online classes – these are online versions of a couple thousand of the classes they teach on campus.  There’s an Intro to C++ class and you can find the rest of their computer science stuff by going to Courses > Find courses by: Department > School of Engineering > Electrical Engineering and Computer Science
  • OpenCourseWare Consortium – keeps an ongoing list of OpenCourseWare websites offered by universities around the world

Please let me know if there are others that ought to be added here.  Best of luck to you in your endeavors!


The GNOME Outreach Program for Women

Gee, where to start??  I have so much news to share!  (It just won’t all sound like good news at first, heh.)

I suppose I should begin by saying that the ongoing dearth of jobs within my traditional line of work (sysadmin and computer repair, mainly) has caused me to do quite a bit of soul-searching regarding my chosen career path.  These days, I’m expected to know a lot more and do a lot more than I did in the 1990’s, often for less pay than I got back then.  (!)  Despite years of hacking away on Commodore 64 BASIC as a little girl, and a couple of classes on the LAMP stack and web programming in college, I’ve never really considered myself much of a programmer.  Some recent discussions with a programmer who is near and dear to me, however, made me realize that I’ve probably underestimated my skills in this department.  I decided to give it another look.  After some in-depth research on job prospects, pay scale, necessary skills, and so on, I decided it was time to make a career change and go into programming.

I soon began looking into what kinds of internships and scholarships there might be for women wanting to study computer science (CS).  When I did, I was amazed, pleased, and bewildered to discover that there seem to be plenty.  Why bewildered?  Because CS is apparently crying out for more women, offering abundant aid in an attempt to improve the lopsided gender ratio… and meanwhile, there are almost no women in my own field and no one seems to care much.  Strange, that.  Maybe female hardware/network geeks are so rare that there aren’t enough of us to decry our own rarity with sufficient volume. Maybe people see the lopsidedness here to be so far gone it’s beyond repair.  Maybe too many people just take it for granted that all such geeks are bound to be men.  I don’t know.  What I can say for sure is that when the bubble burst in 2000-2001, it took many of our would-be jobs with it.  Perhaps it’s a moot point, at this stage.  In any case, the apparent wealth of programs to get women into CS was and is very encouraging.  I began joining mailing lists for female developers and taking an online CS class from Harvard University.  (I’ll post the link for this and many other free online courses in a separate post in the near future.)

On a mailing list aimed at women programmers interested in FOSS (which must unfortunately remain nameless due to privacy rules), some members posted information about full-time internships available through the GNOME Foundation called the Outreach Program for Women (OPW).  It’s a worldwide competition for a limited number of internships.  If you win, you get $5000 USD for a 3-month internship from January 2 to April 2.  In order to apply, you have to submit a small contribution to a FOSS project with one of the participating organizations.  The description said you don’t absolutely have to have coding skills to complete a project and apply.  Unfortunately, what little background I have is mostly obsolete (C64 BASIC, anyone? {cue crickets}), with a smattering of PHP and some mostly-forgotten JavaScript. Knowing this, I decided I’d likely have to start off with a web design or documentation task instead, and perhaps that would open up an opportunity along the way to take on a minor programming-related task or two, should I happen to be awarded an internship.

Continue reading

Life is a Non-Maskable Interrupt

Well, it’s been an awfully long time since I’ve shown my virtual face here.  To those whose questions remained unanswered, I’d like to extend my sincerest of apologies.  There are a number of very good reasons, but suffice it to say that sometimes life is a non-maskable interrupt and one has no choice but to put everything else on hold for a time.  While I’m still having to juggle several important obligations, the time has come to resume, as best I can, the applications that were running before the unanticipated core dump.

I have much good news to share, and – as ever – some technical information, as well.  I’ve been doing a bit of writing lately on these topics, and will be posting the entries shortly.  There’s also some updating and tidying to be done sitewide, which will be taken care of in short order.

And now for a bit of tech blog necromancy.

{tap tap} Is this thing still on? … {minor audio feedback} …Yep.

Ahhh, so nice to be back!  🙂


Use a simple download manager – wget

(Side note: This is based loosely on a previous tutorial about getting PCLinuxOS, which was lacking some important detail and needed to be adapted to more general purposes.  This is the improved result.)

One very common operation in the GNU/Linux world is downloading of the ISO (CD or DVD image) for a given GNU/Linux distribution. Typically, this is around 650 or 700 MB – a sizable download. One of the biggest wastes of bandwidth – not to mention your time and patience – happens when an ISO download (or any other large download, for that matter) is interrupted or mysteriously quits… especially if it occurs when your download was almost complete. If you’re not using a download manager, you’re stuck downloading it all over again from the beginning.

There are a number of graphical download managers available at no cost. Ease of use varies, and importantly, so does freedom of use. That is, some of them are free/libre (also known as open source) software and some are not. The free/libre applications are safer security-wise to use on your system, since their source code is available for the public to scrutinize and ensure that they don’t do anything they shouldn’t be (such as collecting your information and sending it to someone without your knowledge or permission.) But the simplest one of all, in my opinion, is wget from the GNU Project, a well-trusted organization dedicated to producing and promoting free/libre software.  It is safe and also very simple to use, even for those who are scared of the command prompt. There are no unnecessary frills, nag screens, advertisements, registration forms, restrictions, or user agreements in legalese.  It comes with your GNU/Linux distribution and is almost always installed by default.  That makes it very convenient to use.

Continue reading