Blog posts by Jessica Canepa
16 Oct 2014 »
- 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
- 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
- Simple Firefox Build
- Virtual Box (Virtual Machine)- lets you run another operating system within a window on your computer
- Tim Taubert’s Tutorial- on a ready to use virtual build of Firefox
- CodeFirefox- awesome tutorial site on building firefox, getting started with contributions and more
- Bundle & Jekyll- used to preview our GitHub Pages blog posts and run them locally
- 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
- Git & GitHub
- Bash shortcuts
- Markdown (Git flavored)
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 . . .
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.
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.
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.
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 . . .
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
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.
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
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.
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.
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.
19 Sep 2014 »
How to run automated tests using MozMill on a Mac
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 https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
sudo python ez_setup.py
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 https://github.com/mozilla/mozmill-automation
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.
Next we switch to the hotfix-2.0 branch by typing these lines into our terminal:
git checkout hotfix-2.0
sudo python setup.py develop
Run Automated tests
Now we should be able to run automated tests by entering this in the terminal:
testrun_functional /Applications/FirefoxNightly.app/ –report=http://mozmill-crowd.blargon7.com/db/
Note: Our pathway (/Applications/FirefoxNightly.app) 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!
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.
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:
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!).
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:
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!