DPS909 Lab 3 Fixing a Bug in Mozilla Thimble

Setting up Bramble was not a difficult task for me. I forked the brackets repository on GitHub and than cloned it. After that I installed it using these commands:

  • npm install
  • npm run build

After I finished installing Bramble I ran it using the command npm start.

Setting up Thimble on the other hand I found to be difficult. I ran the vagrant up command and waited for it to download and provision the Virtual Machine. After it was done I connected to the server by going to http://localhost:3500/. Thimble loaded up and here’s a screenshot of it working.

Screen Shot 2017-02-03 at 5.36.08 AM.png

The problem I faced with vagrant is that when I modified a file from my cloned copy of the Thimble repository and wanted to see the changes on Thimble it would not show me the changes I did. For some reason the only way it would show me the changes is if I deleted the Virtual Machine using the vagrant destroy command and ran the vagrant up command again.

The Thimble issue I chose to do was: https://github.com/mozilla/thimble.mozilla.org/issues/1001

The issue was that when a user wanted to delete a project the message that would display after the user clicks the delete button wasn’t clear enough. It would just say “OK to Delete this project?”. This wasn’t a clear enough message for the user and doesn’t specify if the web-published project will also get deleted.

DPS909 Lab 2 – Contributing Fixes to package.json file

For the second lab in DPS909 I had to find a module in node.js that was missing the keywords field in the package.json file. There are many node.js modules available at npmjs and surprisingly it wasn’t hard to find a module that was missing the keywords field. I decided to add the keywords field to the morgan module.

This module is described as a HTTP request logger middleware for node.js. It is a popular module and as of today has gotten over 2 million downloads in the last month.

The steps I took to complete this lab I found to be relatively simple. I first forked the morgan repository and then cloned it using git. After that I created a branch and edited the package.json file. Once I finished adding the keywords field in the package.json file I used the JSON validator to validate my changes. This ensured that I didn’t make any mistakes when editing the file. I then added, committed, and pushed the branch onto GitHub. Once my changes were on GitHub I created a pull request. Creating the pull request was a bit nerve-racking. I kept thinking if they would accept my changes or if they would be upset that I added a change.

After I created my pull request one of the members from the morgan team replied back to my request. He was glad that I wanted to contribute to their project but stated that npm completely redid their search engine and wanted to know if adding the keywords field mattered. He also stated that the morgan module is already at the top for the keywords I wanted to add and wasn’t sure if adding my changes would make a difference. He asked me to explain how the keywords section is used and what uses them. I replied to the best of my ability and until now didn’t receive any further reply.

Contributing to my first open source project felt scary but at the same time felt accomplishing. Even though I contributed a small change it felt good and encouraged me to want to contribute to other open source projects. I was surprised as to how easy it was to contribute to an open source project.

Welcome to my blog

Hi, my name is Badr Modoukh and I am currently in my last semester in the BSD (Software Development) program at Seneca@York. I enjoy web development, web design, debugging software, and programming in Java. I am interested in getting involved in the open source community and learning as much as I can.

DPS909 Lab 1

Learning a new programming language can be hard and challenging. Especially if you are new to programming.

An interesting open source project I found to solve this problem is called Exercism. Exercism gives you hundreds of practice problems in over 30 programming languages and is a place where you can get feedback on your solutions.

Exercism is specially useful for:

  • gaining fluency in your first programming language
  • ramping up in a new programming language
  • developing the skills to be a great lead developer: code review, refactoring, and mentoring

Exercism is written in Ruby and has 363 contributors who have contributed to the codebase. If you are interested in this project and want to learn more about this project its GitHub is https://github.com/exercism/exercism.io and their website is http://exercism.io/.