Why take OSD600? – Open Source Development

First of all, I would like to suggest that the Open Source Development course be a mandatory course. I believe that every student should know and participate in open source as much as we are required to know about navigating and coding on mainframe. Don’t get me wrong, I have nothing against the IBC courses especially since it actually helped me finish a project while I was doing co-op at a bank (and mainframe will always be important) BUT I think OSD should also be a part of the core skills every students must learn.

At first I had the impression that OSD is somewhat exclusive for a certain group of programmers. Not everyone participates in it and so I never bothered especially since it was not required. But then when I was looking for a course to take and I couldn’t find any, I decided to face my fears and just take OSD – even though I absolutely had no idea on how it works. I somehow know how to use GitHub since I had an awesome teacher for OOP344, Cathy, who was patient enough to teach it to her students but I knew nothing when it comes to finding bugs online and fixing them.

Having Dave as a teacher in this course is just amazing. He is such a great instructor that I almost want to clap every time the class ends because I feel like I just witnessed a wonderful presentation. I also started becoming interested about the topics he talks about like the news about Microsoft open sourcing .NET. If I had just seen that anywhere online, I probably would not even bother reading it. I also found it interesting hearing how other programmers think and interact (like how they tweet and blog a lot). The topic about The Cathedral and the Bazaar from around week 2 also helped me understand how different cathedral built softwares are vs open source.

Another thing I like about OSD is that I can work on things that interests me. I think coming up with a mini project to work on is hard and that is one thing that open source helps me with since there are millions of projects available and I get to choose which ones I like. I have also been wanting to practice reading other people’s codes and the open source world is a great resource for that.


FSOSS shirt and stickers!

In addition to those mentioned, I’ve also learnt some few ideas like MVP (Minimum Viable Product) in where you release features that are sufficient enough for the meantime – you don’t have to have the entire project along with a thousand features ready before releasing it. Learning how to dive into codebases in where you don’t know a single line of code is also very handy. You don’t have to understand how the entire project works before working or fixing something in it. Just be good at finding out where you have to make your changes. I was also able to experience attending FSOSS – I guess it’s interesting attending something “geeky” from time to time?

All in all, I would say I had a fun experience in this class and it has definitely helped me get started contributing to open source. It is most likely something that I would continue even after the class ends. Thanks again to Dave Humphrey! BTW I am aware you tweeted one of my previous blogs and seeing in the stats that it has been viewed by people from different countries is another new experience for me.

Thanks for reading this everyone! – Ava

Release 0.4 – Fix issue #2150 (2nd fixed bug)

First, I may not have followed guidelines for this bug fix because I just worked on it without asking (I’M SORRY I’m trying to catch the due date for tonight) This bug is about App renaming in Mozilla Appmaker in where the user is allowed to rename an app while not signed in but gets an error message when Title is changed. The fix includes a check whether the user is currently signed in and if not, shows a “Please log in” first error message.

please sign in

Pull request can be found here.

Release 0.4 – Fix #2353

Again, this bug is about the Media Player brick in Appmaker showing twice whenever it is being loaded. Later I found out that the same behaviour happens whenever you click on the “Duplicate this brick” button as well. I’m currently waiting for them to look at my pull request so that I can know if I have to change anything. I have tested this fix so far only on clicking the “Duplicate this brick” button because I can’t seem to find a “Save App” button anywhere when running Appmaker locally.

The Media Player brick currently has a default video that loads up whenever you create one. Every time you select the brick, it calls the initPopcorn() function which then works with popcorn.js to create the player. The bug happens whenever you have changed the url for the source of the video and then duplicate the brick(or possibly load the saved app which I did not get the chance to test). This calls initPopcorn() twice – first from ready: and then urlChanged: – which gets triggered when the source gets changed. The quick fix I added was to put a check in ready: to see if it’s the original url, if it is, that’s the only time initPopcorn() will be called from ready:.

It’s a one liner fix that drove me nuts especially since my dev env got messed up last time (still waiting for a feedback but hey it works!) . I am super glad and very thankful to the people who created the Developer tools in Chrome and to Dave who showed that in class – this made my life easier.

Release 0.3 – Translating Mozilla Appmaker to Filipino

Since I paused on working on the double media player issue, I decided to work on something else for the meantime. My Release 0.2 was about the localization for the sign up page of webmaker-app and to test that it does change languages, I switched from English to French because it already has its own translations. My first instinct though was to test it in my language – which was not available. So I got the idea of translating stuff instead for release 0.3.

I thought it would be easier than expected but I ended up googling some words because of lack of translation and/or because I couldn’t think of the best word to describe it. At first I started translating in tl_ph (Tagalog Philippines) but decided to switch in Filipino because I converted some of the words mixed with English which is how people normally speak. Most would say that the two languages are exactly the same, even native speakers would, but technically Fiilipino has more borrowed words. Anyway, there is an entirely separate discussion about that which is not part of this blog – I did however translated in a more understandable way.


100 strings, 725 words

I was surprised I managed to translate 725 words within those 100 strings! Is the counter working properly? lol. But just to make sure I am on the right track, I looked at page and saw that it was mixed with English as well:

google filipino “Mag-sign in

transifex version that I translated

The string I translated in Transifex

Note: I am not 100% sure if translations need to get approved first before it shows up. I’ll probably check in a few days.

Release 0.3 – Bug search – catching up on blogging part 2

This issue is about the media player in appmaker showing the video twice. After playing around a bit I found out that this does not happen if you simply use the default url when the player is created, it shows two videos when you change the url and save it. When it loads, it becomes like the screenshot below. It also happens when you change the url and then duplicate it.

Screenshot (100)

I didn’t look at the issue for a few days and when I pulled the newest codes… Actually I don’t remember what I did but anyway, I couldn’t run it  so I posted on the issue page what my current status is. The last time I was able to run it, I was using Chrome’s Developer Tools, added some breakpoints and from what I observed (not 100% sure though, this is just what I remember) is that it is creating the media player 2x. I’ll look into this again soon and try figure out what’s happening.

Release 0.3 – Bug search – catching up on blogging

I attempted to start early on working on my third release and but I did not expect I would get stuck. I wanted to look at other projects available but I started looking again at webmaker-app. As I was trying to run it though, I got an espirima error and I wasn’t quite sure how to go about it (Another classmate blogged about it later on and filed an issue on github). I fetched the newest codes from upstream just to make sure that it wasn’t because my current version is not updated, but it still failed. I cloned from the original repo because I was thinking that version should work since it’s up there on github and I don’t see anyone posting anything about the same error. Bad mistake.

So I waited, thinking it’ll get fixed soon. One week came, still the same, so I decided to switch to appmaker. I followed the Getting Started section and managed to setup my environment and then looked for bugs.

Media Player brick always shows double video caught my eye but decided to look for another bug. Couldn’t find one so I decided to take a look at it and managed to reproduce the issue. I spent a few hours setting up looking at this and trying to understand why it’s happening and the due date for release 0.3 is coming so I thought, what the heck, might as well work on it right?

Part 2 of bug search will be posted tomorrow…

My first contribution – Mozilla Webmaker App

As a refresher, here is a link to the issue in GitHub I picked for Release 0.2.

Here’s how I tackled it:

  1. Inside the issue description in GitHub was the link to the document on how to localize views in Webmaker Mobile as well the details of how I can see the page and where the codes are.
  2. Seeing actual codes, for me at least, is different from just reading the documentation. So I looked for an actual implementation within other files by going to the original repo and searched up i18n. I also checked which files I need to change.
  3. Updated index.html and locale\en_US\mobile-appmaker.json to enable localization. Saved.
  4. Gulp dev — NOTHING HAPPENED!

Did I do something wrong?!  Why aren’t the texts changing? Do I need additional files? Is it really being translated? I changed the English translation to gibberish and the changes still did not get reflected.

So what’s happening?

I copy pasted the exact working code and replaced it with the keyname I want to use. I tested it by putting back gibberish again and typed the gulp dev command. SUCCESS!!! Apparently, I typed in il8n instead of i18n. LOL. I tested it by confirming that first, the texts will change if I modify the mobile-appmaker.json US-English file. Second, I updated the French mobile-appmaker.json file using the same keys I used and checked if it translates when I add the ?locale=fr in the address bar and back to english when I type ?locale=en_US which it did.

So I’m ready to go! Almost at the exact moment I pushed a commit which referenced the issue number, k88hudson commented asking if I could get a patch up because they need it next week for Mozfest. (I was gonna say I’m psychic but she beat me to it saying “WOW ESP”). I had to change some of the descriptions based on her instructions and pushed again… And then she replied that it looks like I need to rebase. I remember “rebase vs merge” during class but I’ve never tried rebasing before. So I quickly googled how to do it, but I didn’t get lucky in executing it. In the end I think I unintentionally did a merge while attempting to rebase because I was trying some commands. I was expecting them to get back to me and suggest how to do it properly, but when I looked, thisandagain merged my commits into mozillafordevelopment:master.


Now I’m more comfortable with the process and really excited for the next task!

pull request

Oh and I got a rainbow colored .gif from thisandagain.

Can’t describe it so here is a link :

Mozilla Webmaker App

I’ve decided to work on Mozilla’s web-maker app for Release 0.2! What is it? It’s a web app which users can use on their Firefox phones and later Android to build stuff like stores, blogs, etc. Firefox OS smartphones aren’t available here in Canada (correct me if I’m wrong) but here’s a picture I took when it was being passed around during class:

firefox os

I started by looking for bugs in their GitHub repo and found one which was about building one of the templates. Unfortunately I didn’t get to work on that one because the milestone wasn’t done yet and I think I might get more confused if I continue.

So I went on and looked for another bug and found #Issue 294 – Localize sign-up page. Currently the sign-up page is not localized (viewing the texts in a different language).

I’ll be posting more about it next time when I finish working on it!

Release 0.2 – Still looking for bugs

There are different projects available and I still don’t know which one to pick!

Basically, I’m looking for bugs that seem doable for the release 0.2 due date in Oct 17. And I better be fast because I am thinking the others are doing the same thing too! :p That also involves talking to the contributors if that bug is available and of course assign the bug to myself (or someone assigns it?) so that it is clear that I will be working on it! I hope to have started on something by the end of this week. I will be posting more details about the bug I will be working on soon!