Ascend Project

Mentorship and barrier-removing accelerator program designed to explicitly invite, include, and support adult learners in making a first technical contribution to Open Source software.

Contact Us!

David's Blog

Blog posts by

    David's Week 6 Recap

    17 Oct 2014 »

    All good things

    Soo… Unfortunately I havent finished the bug… :X

    But I do have a mentor now Mr. Tim Taubert, a man out in Germany, unfortunately for me because I have a small window where I can ever talk to him. He’s helped me understand the bug a bit more, but to be frank I didn’t really know what to do with the information and i cant seem to get a hold of him for the moment but thats ok, as for right now I do have a direction. It’s likely the wrong direction but I’m going that one.

    Generally speaking I can say that I was wrong in my last two blog posts about how this whole bug works. Particularly about how the cells move. I didn’t write the code and I barely know JavaScript as it is but I know now. The problem is that for whatever reason when dragging a cell out of the browser the cell will no longer register a drop function. I actually have zero idea as to why that is. I registers the dragend function and the dragover function but the function that unlocks the grid just is not being called. So since the remaining cells don’t unlock, they don’t return to their original position and we got a bug.

    As of right now I’ve written some code that can detect when the mouse leaves the window with what’s called EventListeners.

      function mouseOut(){
        document.addEventListener('mouseout', function(){
              alert('left window');
      window.onload = mouseOut

    Once I got that figured and working within a test HTML file. I’ve tried putting it within the dropTargetShim.js file and can’t seem to place it in the right spot. My first instinct was to place it within the dragover function but all that ended up happening was It was adding several instances of the function to the Document while it was dragging. basically about 100 or so per second or 2. (This was before I added the remove.EventListener part of the code.) So basically when it adds that many instances the event listener to the document it creates an alert for each instance, and all of those alerts will apear simultaneously when you move your mouse outside of the browser, and will create all of them again when you move your mouse out of the browser again. However, the number of alerts do NOT scale linearly but rather exponentially, meaning:

    • 1 instance = 1 alert
    • 2 instances = 2 alerts
    • 3 instances = 8 alerts
    • 4 instances = 16 alerts
    • etc.

    If I was creating about 100 instances per second, I’m amazed I didn’t just crash my computer. So I added the removeEventListener to the code. And this is where I am right now. I’ve been adding this code to different functions within the dropTargetShim.js file and modifying it to fit, but have yet to have it make an alert when i drag a cell out of the browser. It’s made alerts when i move the mouse outside of a cell or just works the way it does in the html file, but i don’t think this code is quite it. It’s close, it’s damn close but its not quite what I need it to be.

    Unfortunately this is the last week of project Ascend and I’ve learned so much, I can honestly say that working on this bug has been one of the most interesting puzzles that I’ve struggled with. And I will continue to work on this bug even though I won’t be showing up to Mozilla for a while.

    David's Week 5 Recap

    10 Oct 2014 »

    Post Translating Code and Road Blocks

    futurama so good

    I need advice, I need to learn more JavaScript, and I need advice. I don’t have a mentor right now because my bug was not marked good first bug. There is a person I’ve heard who can help. He’s also the guy who changed the new tab page in the first place that created the bug in the first place. I’ve been trying to reach Tim Taubert, who is on the opposite end of the world right now. So it’s not the greatest to try and communicate. I’ve sent an E-mail and I hope to hear back from him. While i wait to hear back, let me explain where I am.

    Basically there are a few options to fix this bug

    1. we can lock the cursor in the browser during drag events. This seems like the easiest solution, It has is it’s drawbacks however. It takes away operating systems functionality.

    2. We can force the dragged cell node to go to the new target location that was created before it was dragged outside of the browser. I dont actually know how to do that because I’m not a 100% sure why it breaks when dragged out of the browser in the first place.

    3. We can force the remaining cell nodes on the grid to return to their original positions when the dragged cell fails to move to the new drop target. This one seems hard because this should already be heppening, it’s written within the code already to do this. But for some reason this process causes the nodes to lose the target location.

    Because 2 and 3 seem to be the hardest solution of the 3, locking the mouse within the browser during drag events seems to be the solution in my mind. Firefox already allows you to save links with a bookmark anyways. It seems that the people that would complain about this feature being gone would in the minority, at least in my mind. The big thing with this option I dont know how to incorporate it into the code.

    David's Week 4 Recap

    03 Oct 2014 »

    Self Guided Work

    This week as lead to a mostly self guided work flow. With Lukas and Kronda doing one on one talks with each member of the project. We ascenders have been left to our own devices. Generally whether I thrive off of self guided work or not is entirely based on how I feel that day.

    Luckily for me this kind of work has kept my interest for me to keep going. My bug, 1066148,

    has proven to be a challenging beast. Since we had set-up a Firefox Dev Environment earlier to build Firefox, I could jump right in.

    Ofcourse, however, I had no idea where to start. After indexing Gecko-Dev in Atom I searched for any file that had ‘newtab’ somewhere in the name. It turned up a few results that actually had nothing to do with the bug. So I hit my first road block.

    Since Keywords weren’t helpful, I ended up in a one off conversation with Lukas that pointed me towards mozregression. This tool is incredibly useful when looking for a starting point. It works like this,

    Find the release date for a build of firefox that doesn’t have the bug. This build will be marked as ‘good.’ since this latest release is bugged it will be marked as ‘bad.’ The mozregression tool will then start bi-secting builds in the middle. It will then install the build of Firefox that was released on that middle date and run it. Once it’s running you can test to see if your bug is there. If your bug is there, you can mark it ‘bad,’ if not you mark it ‘good.’ You and mozregression will then continue this process until it finds the exact build that created your bug.

    After doing all of this I had the push log of all the changes made and after a little keyword searching found this page which told me exactly where the code was and what had changed. Dope, now all I have to do is translate of of this javascript stuff into a discernable language and it’ll easy right? Wrong.

    So I decided the best way to translate this code is to break it down by essentially breaking the code. I would take out entire functions and build Firefox over and over again to see what stopped working. This gives me an idea of what the code does and I can map it on a piece of paper. What I was hoping to find would be a function that already places the cell back into the open gap, which while it does exist, is a combination of multiple functions. They dont track where the cell is being draged, they track where the cell is in relation to the other cells in order to move those cells in accordance.

    Meaning the functions can’t possibly track the cell if it’s dragged outside the window. If it’s released outside the chrome of the browser, the cell will return to the last drop target rather than the updated drop target. Since the the other cells have moved in relation to the draged cell, they cover the draged cell’s last drop target. Which is the bug.

    However what I’m thinking could be a possible solution is instead of tracking the draged cell. You force the cells to move to their original postion at the start of the drag. It’s a hard reset to the drag and drop operation which can probably be done very easily.

    Im probably gonna fix this bug before I even get it assigned to me. :B

    David's Week 3 Recap

    26 Sep 2014 »

    Recap so fresh. You all are scared to do what i do…


    This week we set up Virtual Box, got me all excited just thinking back to it. I really like the idea of running multiple OS on a single computer. It’s really cool that you can do that. We did this so we could observe ourselves writing a patch and see the outcome on a different OS. It’s a lot simpler to do than I thought it would be. Learning to create a patch was the last thing we needed before we went off to fix bugs and become a self sustaining contributor to Mozilla and the open sauce community. I decided to choose The bug my sister reported, 1066148, which is super cool.

    We also put a Wordpress site on the internet this week. Mine has yet to have anything on it, all I’ve done is choose a theme I thought looked cool. But there is a crap load of stuff you have to do to put a website on the internet. I dont honestly know how Kronda can handle doing that for people. I guess when its your job you get used to it. Over all things going great.

    Bugs and Numbers

    24 Sep 2014 »

    bug bug bug bug bug bug bug.

    Today we discussed picking and fixing ‘first time bugs’ and these are some that i’ve decided to look at.

    • 992386 - This is a bug focused around uploading things to Imgur which is a site I use a lot. The bug itself seems relatively simple. It seems it would focus on code that already exists within the page and a bit of tweaking to it.

    • 1015647 - This doesn’t necessarily fall under my definition of a bug as it is a feature enhancement, but it would be pretty cool to learn about how making a feature works.

    • 1039500 - This bug seemed like a bit of fun just because there was a lot of posts on with a lot of people. It seemed weird at first but it be nice to make a contribution to a big team.

    • 1066148 - This is a enhancement that bugzilla needs. The site is still very non-user friendly for how much can be done by it. It would be nice to be able to improve it with something small like this that can make a very large impact.

    • 1068354 - This bug was reported by my sister, and while its not marked as a good frist bug I’m confident I can do it. However theres no real documentation available off the bugzilla page. Theres a lot I can find elsewhere I’m sure.

    All in all some stuff i can work on :S

    David's Week 2 recap

    19 Sep 2014 »

    recap, everyday a recap.

    This week was a catch up week, We set up some local environments on our computers to allow us to view code before pushing it to the web. which was cool beans. We also set up Mozmill in bash, so we can automate testing our Firefoxs… Firefoxi… Foxes anyway, so when dont have to run a list of a 100 different things by hand. We will get into writing our own tests soon..ish. Overall im satisfied with the work im doing, Im able to keep up, learn quickly and teach those next to me who fell behind. Its a rewarding experience all around and Im learning things I wouldn’t have the opportunity to teach myself.

    Heres the link to my test that I ran.

    Guide to Customizing Atom

    17 Sep 2014 »

    What is Atom?

    Atom is a Text Editor very similar to Sublime Text but is open source, so its 100% free and mod-able. Atom has Themes and Packages that can be downloaded and installed to allow you customize your user experience.

    Installing Packages

    Packages are code additions made specifically for atom that increase functionality within the Editor, these can range from Project Managers to Color Pickers for CSS work and much more.

    You can browse packages on the Atom website, as well as search for them with in the Atom client.

    • So if you have not already, go and download and install Atom.
    • Open Atom, and open the preferences menu (Atom -> Preferences)
    • Open the Packages tab located on the left.


    • Find the Package you are looking for and click the blue install button underneath it.

    Installing Themes

    Themes are visual changes to the user interface, they can range from changes to locations of buttons, fonts or color changes, or a change to the chrome of the program itself.

    You can browse themes on the Atom website, as well as search for them with in the Atom client.

    • Open Atom, and open the preferences menu (Atom -> Preferences)
    • Open the Themes tab located on the left.
    • Find the Theme you’re looking for and click the blue install button.

    themes tab

    • Above the search bar there are 2 drop down lists, one is the UI theme, the other is the Syntax theme. Your downloaded theme will have components in these drop down lists. Select them and your Atom will load your theme.

    themes menu

    If you completed these steps then you’ve earned yourself this badge!

    First Week Recap

    15 Sep 2014 »

    Man did we have a week, a lot of git hub stuff has been thrown around and it’s been confusing for many people. I’ve been glad I could get help. Personally it hasn’t been to hard on me, I knew most of the github stuff that we’ve doing so i could actually help the others around me which has felt nice. This last day we had a maker party where we would have to make a thing on and well it didn’t quite go to plan to be honest.

    This is what I first made as I panicked

    Well, its a thing… that’s for sure.

    But after I thought about it I began to think about what I taught my self when i was younger, I tried my hand a graphic design and i thought about making a resource for myself and others.

    This is what I made before time was up.

    First Day

    11 Sep 2014 »

    David Hinojosa

    So I hear that I have to make a blog, and man do I not know what to say right now over all its been a pretty good day, I’ve been able to help a lot of people with the things I understand. which isn’t much but its enough to stay ahead for now which is nice. So thats all for now I’m gonna push this up.

    something something markdown is easier than i thought