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!

Jessica's Blog

Blog posts by Jessica Canepa

    Farewell Ascend

    16 Oct 2014 »

    Farewell Ascend Project! Hello World of Open Source!

    I am happy to report that I gained much more from Ascend than technical competence. I learned how open source collaboration works and I have much greater confidence in my ability to figure things out.

    More Than Technical Skills

    I am proud of . . .

    • Continuing communication when I am stuck. Learning to ask questions.
    • Trying, again and again.
    • Committing to the learning process (with lots of trial & error)
    • Not being satisfied with merely getting things to work (wanting to understand why it works)
    • Letting my interest in how things work motivate me to keep tinkering and asking questions
    • Being comfortable with not understanding something . . . yet

    Bug Progress Update

    My pull request has finally been merged for webmaker (App Maker to be more precise) after fixing lots of syntax errors. The final, nearly undetectable syntax error was the “tabbing versus spaces” error.

    I had a lot of mishaps along the way. Even when the code worked I still had to go back and clean it up. I didn’t realize that such a huge part of adding and fixing code is syntax related. I forgot to add a comma between methods. I also had to go back and keep the same html formatting structure so that the CSS can still stylize everything the right way.

    I am still in the process of fixing what I hope are only syntax errors in the popcorn bug/feature request I started earlier. We’ll see how that goes! I hope to continue working on that after Ascend. It’s been a delight to learn more about Map APIs.

    What’s Next?

    I am not sure what’s next! But I am applying to some internships and feel hopeful about further building my technical skills with other Open Source projects. You can follow me on Twitter at @jmarlena_canepa. I will have a blog link set up there soon. Open Source World, you haven’t heard the last of me.

    Final Week of Ascend

    15 Oct 2014 »

    Onward to the Open Source World!

    So my bug mentor has been very kind to walk me through the google maps feature request and in the meantime I’ve also been working on another bug in webmaker fixing a back button. I am delighted that contributors have been so generous with their time to help!

    I am amazed at how much this process involves collaborating with others and keeping up frequent communication. Tomorrow I will give a presentation on some reflections I’ve made on my experience here at Ascend. I will share about how this experience has given me much more confidence in my ability to learn and face the challenges of code & communication in the open source world. Stay tuned for one more follow up post!

    In the meantime I’d like to share how I felt about belonging to the Open Source community before Ascend. I felt very much like this picture below as I attempted to feign comfort among technical contributors and developers at meetups.

    An impostor among techies

    Fifth Week of Ascend

    10 Oct 2014 »

    Wrangling with Google Map APIs

    So the latest word from my bug mentor is that my “bug” or feature request isn’t that beginner friendly afterall. I’ve been having trouble figuring out how to get the latitude and longitude outputs from a custom map url so it can upload into the popcorn maker site and be interactive.

    Alas, hearing that adding this feature is either not possible or complicated for developers experienced with APIs is both comforting and . . . well, disappointing. We have just one week left! I am suppose to give a presentation on all this next Thursday. The pressure is on. If I don’t submit a patch on a bug by the end of next week (or really Wednesday) I can’t tell what this means. Certainly I have learned a lot either way but I am tempted to feel like not submitting a patch in time is equivalent to “failing” somehow.

    Three Days to conquer a new bug!

    My bug’s mentor has offered to search for an easier bug for me. I feel relieved because “finding a good first bug” can be just as stressful as sticking with a harder feature request. Even if wrangling with the Google Map API is a bit of a stretch for me I am proud that such adding such an interesting map feature was compelling enough for me to spend the time and energy on it. No, for the record, I didn’t give up! I just decided to take the advice of more experienced developers and seek out something easier. I’ve learned a lot about map APIs, adding interactive mapping and geolocation services to web applications. Perhaps I can take what I’ve learned and make something interesting.

    In the meantime, I will work on making my own blogging & portfolio site and dreaming up a way to apply what I’ve learned so far.

    Dear Maps Feature Request,

    You haven’t heard the last from me . . .

    Your wrangler,


    Fourth Week of Ascend

    03 Oct 2014 »

    Assigned to a bug! Let the questions begin . . .

    Finally I found a bug that has been forgotten by most of the world! Actually, it’s a request for a new feature in Popcorn Maker to allow custom google map urls to upload in the site. I posted a comment explaining my interest and that I set up the dev environment to reproduce the site locally along with a proposal of where to start next.

    Thankfully, I got a response quickly afterwards by a contributor who gave me a more concrete (and correct) starting place. Next I spent several hours trying to decipher his comment, looking up terms, reviewing node.js, reviewing the code and formulating . . . more questions! It can be discouraging to understand so little but I think learning to ask semi-informed questions is invaluable. I have to keep reminding myself that I am not expected to not need any help on my first bug and that instead I am expected to ask questions and seek the answers. Just knowing how to phrase questions has been a great challenge for me.

    How to carry on when you don’t know what you’re doing

    Learn the art of asking questions!

    Last night I went to a PDX maptime meetup and there was a discussion about impostor syndrome. I asked how this syndrome applied to people who are inexperienced and new to coding and I was reminded that we’re all new and inexperienced at something and that’s just a part of the challenge of working in tech. It was comforting to be reminded that we’re all newbies at something. I also enjoyed hearing more experienced developers and mappers say that one of the best things newbies can do is not be afraid to ask questions.

    I don’t really have much advice on the “art of question asking” at this point as I am still learning it but I am relieved to know that asking questions and researching online are skills that I can develop with practice. I have much to learn on this but help is out there and practice makes . . . well, more progress! For help on formulating questions I reread Katherine Wu’s blog post on how to be a better junior developer. She offers concrete points on how to make it easier for others to help you and even calls “asking questions” a junior developer’s superpower!

    Useful question templates I’ve used to formulate questions

    “I am trying to __, so that I can __. I’m running into __. I’ve looked at __ and tried ___.”

    “My current undestanding is that I need to __. I’ve found code and docs (documentation or instructions and background info) from __ and started __ (any proactive steps you can take like setting up dev environment, reproducing the bug locally, etc.). I think my next steps are __. Am I on the right track?”

    What I will do when not working on my bug

    Besides looking for ways to touch up Mozilla and Ascend documentation for newbies and searching for an easier bug to work on (for the joy of submitting a patch!) I will be working on my OPW internship application and patch submissions. I am very excited about the prospects of a internship with OPW. I’ve been hesistating to jump into the patches because I am not sure I understand where to start so for now I will use my newly discovered superpower of asking questions to make sure I am on the right track. It’s easy for me to feel like I should already know where to start but asking (even just for confirmation) eases up that expectation, helps me learn more and helps others help me.

    Third Week of Ascend

    26 Sep 2014 »

    Venturing into the world of bugs


    Something about illustrating a brave fox venturing out into the unknown makes me feel courageous. This week we explored how to find a good first bug, upload a patch and build firefox with custom features. We also launched a local wordpress site and learned about some wordpress tools and freelancing.

    I’ve had trouble finding a good first bug that isn’t already taken or doesn’t get assigned to someone else before I can set up the dev environment and devise a plan for making the patch. I didn’t think “good first bugs” would be so competitive. Lukas suggested I widen the scope of ‘good first bugs’ I am looking for and include those that don’t seem as straightforward to me.

    Bug Search Tools

    • Bugs Ahoy- bug search tool that lets you search according to your interests
    • Bugzilla@Mozilla-Searching “good first bug” brings up bugs considered a good place to start contributing

    Build Firefox Tutorials

    Running a local Wordpress Site

    The instructions we followed to run our local wordpress site (or rather to install the prerequisites) required a lot of . . . backtracking. Kronda taught us that this is called “Yak Shaving”, which is a fun visual for such a tedious process. I am starting to learn the importance of good documentation (instructions and background on code) and how hard it is to find truly beginner friendly resources or to know when instructions are outdated or no longer relevant.

    Second Week of Ascend

    19 Sep 2014 »

    Testing, testing and more testing.

    This week we explored how to help with QA (Quality Assurance), including how to do manual and automated testing, search for bugs and file a bug report.

    New Tools

    • Bundle & Jekyll- used to preview our GitHub Pages blog posts and run them locally
    • MozMill- command line tool for manual and automated testing with javascript
    • MozTrap- test case manager where you can select tests to run
    • OneandDone- designed to screen ways to help with manual testing, automation, bug verification, mobile testing and more by time commitment and experience level

    In my opinion the most fun part of the week was seeing MozMill automated testing run especially after going through some manual testing. Check out the MozMill Automated Tests Tutorial I wrote for more details. Here’s the functional test results of the automated test I ran.

    As a class we also discussed revisions and udpates to our class agreements, how to address agreements that are broken, the nebulous use of “Culture Fit” in tech companies, and the role of Mozilla Reps to name a few topics. On Wednesday, we had guest speakers from the SUMO (Support at Mozilla) team come and share about how their different backgrounds in anthropology, mathematics and engineering helped them in their roles to support users. They made suggestions about joining certain IRC channels to learn more about how they support users and ways we can contribute and continue to learn.

    This afternoon we will start exploring how we can write our own tests in javascript and next week the goal is to create our own browser.

    MozMill Automated Tests Tutorial

    19 Sep 2014 »

    How to run automated tests using MozMill on a Mac

    Automated testing is fun to watch but beware it will make manual testing seem even more tedious and leave you asking “Why hasn’t this test been automated yet?” MozMill is a command line tool that lets you test using Python and Javascript. This tutorial will walk you thorugh the basics of running a MozMill automated test on a MacOSX 10.9.4. I’ll admit that I chose this topic for the tutorial so that it would force me to understand more about this process so if you run into any errors in my understanding feel free to let me know. I might have gotten overambitious on this choosing this topic.

    Brief Overview of Installation on newer Mac (version 10.4 or higher)

    Since my Mac already has Python 2.7 installed (MozMill requires at least Python 2.5) downloading MozMill is as easy as entering 4 lines into the terminal.

    curl -O

    sudo python

    sudo easy_install pip

    sudo pip install mozmill

    More details on installation here.

    Clone the Automated Test Repository using Git

    Using Git we can clone the Automated MozMill test repository with the following command in the terminal:

    git clone

    Switch to hotfix-2.0 branch

    We need to switch to the hotfix-2.0 branch because it contains updates we need to run automation tests. So first we change to the newly created mozmill-automation branch.

    cd mozmill-automation

    Next we switch to the hotfix-2.0 branch by typing these lines into our terminal:

    git checkout hotfix-2.0

    sudo python develop

    Run Automated tests

    Now we should be able to run automated tests by entering this in the terminal:

    testrun_functional /Applications/ –report=

    Note: Our pathway (/Applications/ is specific for Macs using %path_to_firefox% (on Mac to .app)

    And behold the computer runs tests for you faster than you could.

    If you could get this working then go ahead and award yourself a badge!

    Image of Badge

    You can use this code kvcw3t at to redeem your badge here.

    Also, feel free to comment on how I could’ve made these instructions easier to follow. You can check out the official documentation here.

    First Week of Ascend

    15 Sep 2014 »

    A whirlwind of account set up, supportive learning agreements and command-line tools

    This week we did a lot of set up, account configuration and learned the basics of working with:

    • Terminal
    • IRC
    • Git & GitHub
    • VIM
    • Bash shortcuts
    • Markdown (Git flavored)

    We started the week by laying down class agreements, attendance expectations, and assessing our strengths and how we can use them to support our learning. Overall I was delighted by the thoughtfulness and excitement of our first day. Initially, I was disappointed we didn’t dive right into more technical topics but by the end of the day I felt relieved that establishing a supportive learning environment was treated so seriously.

    On the second day we claimed a strength for ourselves and for the benefit of our cohort. I enjoyed reflecting on the contributions I could make to our group beyond code. After reviewing my strengths test results I claimed the strength of learning and told my comrades they could count on me to encourage and support their learning. I hope this blog will help others as they learn to code or learn to teach coding (two different skills!).

    Image of Learning SuperPower

    I had prearranged to miss some class midweek and I was feeling nervous about catching up but I think I was able to with some one-on-one help and helpful notes. Although every now and then I come across a bash shortcut I didn’t set up or something else I am still not grasping and I ask myself “Did I miss something?” It’s a good thing I am learning to be more comfortable with confusion.

    I am surprised by how conceptual much of our learning has been so far. For instance, how Git works is so much more than learning the commands in the Terminal. The pacing of new material sometimes feel slow (even if I am not caught up) but there’s so much to learn in using Git and Vim that I feel like we could spend 6 weeks on just learning the ins and outs of these programs. Git Immersion is a helpful tutorial we used for setting up Git in the Terminal.

    Here’s a diagram I recreated from class on how GitHub works:

    Image of GitHub Diagram

    By the end the week we held a Maker Party, where we presented on different Web Literacy topics and then made a web page, GIF, etc. for the web using Web Maker tools. I learned more about privacy, the filter bubble and Net Neutrality to name a few topics.

    Web Maker has lots of resources and tools to teach web literacy. I am excited about using this site as a learning resource and I’d like to organize a Maker Party at some point. Here’s a clip I edited from my favorite Russian animated film “The Hedgehog in the Fog” using Web Maker’s Popcorn Maker. The clip I edited reminds me that curiousity and confusion can lead to meaningful learning but sometimes the process is uncomfortable.

    I am looking forward to exploring more of the unknown next week! Bring on the confusion!