As we’re nearing the end of the program, it was also time to get the second round of our WORLD-FAMOUS conference raffle going. We’re excited to finally announce the winners:
You should have all already been introduced to your respective conference organisers; and as always, we’re happy to introduce first-time (and even second-time) conference goers to people from the local Rails Girls community. If you need to be introduced, let us know - we can try connecting you. For those of you giving lightning talks, we always have those tips and tricks handy so you can rock that stage! Don’t forget to take pictures and, most importantly: have fun!
Last but not least: We’d like to thank again all of the conferences who offered tickets for our second round conference raffle:
We’re Vi & Sarah. We’re the team that makes up Team Melbourne, the first Australian sponsored team to participate in Rails Girls Summer of Code.
Image: Team Melbourne
From July to September 2015, we created an advertising plugin for Discourse that supports Adsense, DoubleClick for Publishers and Amazon Affiliates. This was our first ever contribution to open source.
In the podcast below we interview each other and talk about our experience in Rails Girls Summer of Code (Q&A Format with 5 questions each. Duration: 13 minutes).
Don’t have 13 minutes to listen to the podcast? Below we’ve summarized the skills that we’ve gained over three past three months in 8 dot points:
Javascript: Prior to the program, we completed Codeacademy’s Javascript course and read Eloquent Javascript. The challenge came with picking up Ember.js from scratch. It took a while for us to get our heads around Routes, Views and Templates!
Google Doubleclick for Publishers: We had to create code that supported both Adsense and DoubleClick for Publishers in harmony. One key feature of DFP is custom targeting, where we built an infinitely increasing user input box that supported multiple keys and values.
Amazon Affiliates: This was an additional feature in the last 3 weeks of the project. We found out about Banner and Product Link Amazon Ads, and managed to build support features in the plugin.
Git: With multiple contributors, we quickly learnt the ins and outs of managing a full project and to ensure that it was in sync. We learnt about symlinks, submodules and more…
Mobile Testing: We learned how to deploy Discourse to a live site (Docker) in order to test mobile ad features.
Pair Programming: This allowed us to discuss features and programming approaches in an effective and engaging manner every day. It’s a great approach!
Asynchronous Loading: With Ember.js, advertisements would time-out without a page refresh. We fixed this and the tough part was ensuring ads would work with Discourse’s asynchronous logic.
Productivity Platforms: Our amazing coaches introduced us to Slack, Trello, and Daily Stand-Ups. These were effective tools in making sure the project continued to stay on track!
We’d like to thank Rails Girls for giving us the opportunity, Redbubble for being our coaching company and Discourse.org for building something amazing!
We have been working on the RapidFTR project, which assists humanitarian workers to gather, sort and share information about separated children in emergency situations so they can be reunited with their families.
Working on this project has broadened our programming knowledge especially in Ruby and Rails. We have interacted with Git (It was not that easy at first :)), CouchDB, Solr, and Gems. At this point, we cannot say that we are masters with Ruby and Rails, but we are much better than when we started learning it.
Start of the Project
Initially, setting up the project on our local machines was a bit challenging (we were discouraged at first :( ). Nelly uses a Windows environment and that required vagrant installation (with this, one does not require a manual install of all the features) alongside setting up the project on her machine. On the other hand, Mercy uses a Linux environment and that required manual installation of the required features of the application. At the end of it all, we had installed so many features and gems but the good news was that the application was working perfectly fine after a couple days of setting up our respective environments.
RapidFTR setup Blog
We noticed the guidelines for setting up RapidFTR on our local machines was not so clear. We decided to write more detailed instructions which can be found here. This would also be used by new and upcoming contributors to the project.
United States International University - Africa Summer, 2015 Hackathon
Last semester, we had a hackathon at our university which was amazing. A few universities across Nairobi, Kenya were in attendance too. Surprisingly, out of 80 people in attendance, only 7 were female :0 :0 :0. That got us a bit worried since that clearly showed not many female coders and programmers are out there. We created a kind of a revolution to encourage women into programming. How did we do that? Well, it was easy. We came up with a women’s award category called ‘Nekesa Kiboi’ Award. Nekesa Kiboi is a combination of both our names.
The award focused to provide funding on the best project done by a female(s). The theme of the hackathon was based on social innovation. More details on the hackathon can be found here. The winner under the Women’s award category did a hardware hack using raspberry pi for digital display which incorporated the use of counter and timer. As simple as it was, their project can be further extended and applied not only in the university, but also in the country for digital display purposes.
Announcing the Women’s Award Winner. L-R: Paul, Mercy, Nelly and Prof. Wamuyu Kanyi (Image: Team Tremors)
Women’s Award Winner (Image: Team Tremors)
We decided to have that because we know women have potential in programming that they can exploit and the award was a way to facilitate and drive women in the hackathon to exploit their potential. Well, we did not do that alone. We contributed some of our RGSoC funds and also got help from our professors and friends. We encouraged the girls at the hackathon to work on projects and join community groups like RGSoC, AkiraChix, and Women in Tech Africa. Such groups help women of like minds to learn from each other and grow together.
Hackathon Day (Image: Team Tremors)
Meeting with Team Techylite
Esther, Nelly and Mercy (Image: Team Tremors)
We met up with Esther Monchari, from Team Techylite. They work on the Speakerinnen project. It was such a great day to spend time chatting, learning from each other and sharing our experiences. We actually had our weekly skype call with Cathy together with Esther. Cathy was excited to see and have a chat with the two teams from Nairobi, Kenya.
Conferences
We could not manage to attend any of the conferences because of the proximity. But, we attended the Women in Tech Africa Conference held at ihub in Nairobi, Kenya on September 10th 2015. This was the launch of the Kenya chapter. The conference aimed at identifying women in tech from Africa, and to organise activities that would support these women across the African continent. During this conference, we learned to apply the tech knowledge in business growth. In addition to that, we learned how to be techpreneurs. Where we focus on both technology and entrepreneurship. That was a good perspective to look at technology since most people would always associate technology with techies and rarely with techpreneurs.
We would be attending the 2nd Annual African Women in Technology Conference, hosted by AkiraChix held on October 15th 2015, in Nairobi, Kenya. AkiraChix is a non- profit organisation that inspires and develops the force of women in technology who will change Africa’s future.
From the 2nd round raffles tickets, there would be a RubyConf in Kenya and we are so looking forward to it.
We are hoping to give a lightning talk during both conferences.
What we learned during RGSoC
Throughout this journey, we learned to work as a team and absorbing pressure when things don’t work out as we anticipated.
We managed to fix the issues on the project that was required of us and we also learned how to make successful pull requests. :)
We also learned that women are few and needed as well in the STEM world. Well, based on our experience from the hackathon, we noticed that most girls are enthusiastic about programming but lack that drive and motivation. We had the chance to encourage the few female that attended the hackathon, shared our RGSoC experience and the lots of opportunities alike that are available for women in STEM.
Challenges We Faced
We faced a couple of challenges but the two major ones were Internet reliability and writing cucumber tests. We use a space at the university for the RGSoC. At some point, internet connectivity was so slow that we opted to use LAN connection as opposed to WiFi. Sometimes we would even use our phones for internet connection. That saved us some trouble.
Writing cucumber tests was very challenging for us (extremely challenging :) ). We asked pro ruby programmers around Nairobi, Kenya concerning cucumber tests and surprisingly, none of them write tests because they say it is difficult and confusing. Eventually, we managed to find our way through understanding cucumber tests and actually writing them. :)
Our Gratitude
We appreciate our mentors, Sri Prasanna and Anne Mwangi for guiding us through the whole project. They showed us the easy way out to work with not only the RapidFTR project, but also understanding the project’s code and the importance of writing tests :) :). Our supervisor, Cathy Nangini, has been very supportive throughout the program. From the weekly skype/hangout calls and updating our progress with her, to also linking us up with the tech people across the globe. She has also been very understanding on the unreliable internet that would occur a few times. Thank you very much Cathy :). Not forgetting our Coach, Paul Bombo, For being with us from the word go. Paul, we are apologize for ever bugging you, but you’ve helped us quite a lot both during the sad and happy times. :) :) And owww… and Max Musau. The one guy that we took over his office whenever the university labs were closed for the night. Thanks Max for giving us a space in your office ;). And all in all, we appreciate the RGSoC community which is and will always be a lovely family.
What next???
The RGSoC is coming to an end and we are glad to be part of the journey. We have a positive impact from the experience. This is not the end for us as we will still continue to learn everything new, and take the initiative to encourage other women to be part of ‘Women in Technology’.
Emma and Karla during the first week in the GitHub office.
A little bit of background
CocoaGems is a pretty large team. We had the great fortune of having four mentors from CocoaPods and a total of seven coaches. Five of our coaches are from GitHub and two of them are private coaches. GitHub hosted us during the entire Summer of Code and provided us with office space in their beautiful office in San Francisco. CocoaPods is a dependency manager for iOS development written in Ruby. It allows iOS developers to use pods containing libraries and also to share their own pods with other developers.
What we did together
While pairing with our CocoaPods coach Boris Bügling we worked on a CocoaPods plugin called CocoaPods Label. Step by step we created and released our first gem together. We took terms driving, navigating and asking questions. As you fellow developers know, pairing is a great way to practice your patience, asking questions and taking initiative. Communicating about code can be frustrating when you are having trouble explaining what you mean, but it gives you hints about what you need to work on more since the only way to be good at explaining something is to really understand it. It is also pretty epic to put your trust in someone much more experienced to walk you through there ways of thinking and solving problems.
Karla, Boris and Emma visiting the Twitter office .
We also had more theoretical sessions with our coaches at GitHub about general Computer Science subjects like algorithms, search, sorting, regular expressions, piping etc. As individuals we worked on our own project helping CocoaPods with defined issues. This allowed us to work with projects that inspired us at our own pace. While working on our issues we scheduled tutorial sessions with our coaches and mentors about concepts we needed to understand to be able to solve our issues. As if this wasn’t enough we also worked on our side iOS projects with one of our savant GitHub coaches to better understand CocoaPods audience. We also created a blog together using Jekyll. It is a developer friendly blog tool that allows you to write blog posts in markdown and just push it to your git hub repository to post a new blogpost using GitHub pages.
During CodeConf in Nashville we got to take a 3D image.
We also got some nice t-shirts, had fun and learned a lot.
What we learned
Karla:
How do you work on an Open Source Project without a read.me as a newbie? As some of you may know this summer CocoaGems have been working on CocoaPods. Sorting the order of how pods are listed in an Xcode project. The issue I have been working on this Summer Cork did not contain a read.me. Fortunately, I had mentors and coaches who offered there precious time to work with us. The question that confronted me shortly after choosing to work on Cork is how do you go about getting more background of the Code base while learning Ruby? Git-blame came to the rescue. Git-blame allows you to track down the first person to contribute to the file and also to track every other commit since the first to the most present connecting each one to its author and date. While working on an open source project it is useful to know whom the contributors of each commit are because it makes it a lot easier to ask them questions directly.
How to automate your learning process. Is that even possible? learn to schedule meetings with mentors, coaches, colleagues and managers naturally by scheduling one each and every single time after every session. The best resource available for learning aside of the web are definitely our coaches and mentors. I learned to schedule as many sessions with them. Some were in person, some were over screen hero and some of the meetings we scheduled were also with other RGSoC participating teams and or Github Summer of Code students in particular Mark Tareshawty. Google Calendar became my best friend. Adding Meetup events that I wanted to attend and also scheduling a well thought out plan for the day made it so that transitioning from one activity to the next happened with as least cognitive exertion as necessary.
Emma:
I wanted to take the opportunity to get exposed to different parts of programming during this summer. To get started I chose one of the issues labeled easy in the CocoaPods repository. The pods used to be ordered case sensitive and that caused confusion for users with a large number of pods. By working on this issue I learned a great deal of things that I can’t imagine learning in a better way. I hadn’t been exposed to a larger codebase before an it felt exciting to search for the lines of code that loaded the pods in Xocode. I picked my coaches and mentors brains for all of there tips and tricks to find the right place and ignore everything else. I also learned more about how sorting works and became better at understanding Ruby syntax. Once I got the sorting figured out it was time to rewrite the tests. I needed to learn how to write tests, did a bunch of online tutorials and got help from our coaches. Once the tests succeeded I was very proud to do my first pull request ever to an open source project.
After that I worked on moving the source code for search to its own plugin (gem) to make the codebase more modular. By doing so it will be easier to make changes or improvements to search in the future. With my new skills from previous work it was easier to get started, however CocoaPods is pretty huge and has its own infrastructure to get your head around. I struggled with understanding the development environment and how to run my local changes with Rake. Once I got that figured out I worked myself backwards copying code too the new plugin and making sure I got everything right. Moving the tests for search was actually more complicated than moving the source code since the tests required a lot of files in the fixture folder to run the tests. By working on this I got a better understanding of what a gem is an how it’s structured. For the last month I chose to work on a new web project called CocoaPods stories that enables user generated lists of pods. I’ve always wanted to learn more about databases and I feel really inspired to be able to do so in this project working my way through the issues.
Thank you <3
Karla:
The summer was a full on learning experience - it makes me happy to know that we kept a RGSoC Team Apps journal- this summer has to be the best well spent three months of my life and best use of time. An enormous thank you to our CocoaPods Mentors: Kyle Fuller, Orta Therox, Boris Bugling and Samuel Giddins. To our GithHub coaches: Jake Boxer, Jesse Toth, Rachel Meyers, Rob Rix and Ross Mc Farland. Learning about software development, fundamentals, Git, algorithms,how to write tests, and Agile has been a great experience with you!!
Emma:
I just want to aim a big thank you to everyone who made these three months of immersive learning possible. Thank you to Rails Girls Summer of Code organizers for creating this excellent program to help change the ratio in open source development. Thank you to CocoaPods for believing in us, giving us support and projects to work on. Thank you to GitHub for hosting us and giving us coaching in various subjects. Thank you to our private coaches for your patience, time and support.
Memebers of CocoaPods getting together for dinner after AltConf. Photo by Karla
Summer of 2015 is almost ending and, with it, team DEIGirls adventure comes to an end. For 3 months we have been delving into the world of Ruby, learning Ruby on Rails, Lotus, Git and meta-programming with Ruby. It has been 3 awesome months, full of joy, happiness, laughter and some frustration, as well. We meet incredible people, Ruby community is great! And, most of all, we had lots of fun!
Waiting for someone to join a call with team DEIGirls(Image: Team DEIGirls)
###So, who are we?
Team DEIGirls is composed by Inês and Rosa, two portuguese IT girls interested on programming for the web and learning new technologies.
Initially our team was supported by our coaches Christian Weyer, Pablo Porto and Tiago Mendes-Costa. These amazing guys were with us from day one, helping us and supporting us, we wouldn’t have survived without their help! However, somewhere in the middle of the Summer, more help was needed, and our little team grew with the addition of Benedikt Deicke, Markus Prinz and Ramon Huidobro as coaches. Their help was invaluable! We can not thank our coaches enough for all the help they gave us throughout the Summer!
The project mentors were also always there for us. Luca, the project owner, helped us to design our project plan and to set our route. Trung, our mentor, accompanied us in our journey, guiding us in every turn and not even the time difference (he lives in Australia) prevented him to come to our rescue, when needed!
The last, but not the least, member of our team is our amazing supervisor Alex! Our talks and our weekly catch-up calls are something that we’ll surely miss! We always ended up laughing until our stomachs hurt! (and no, it isn’t from the cookies!)
Team DEIGirls family tree (Image: Team DEIGirls)
Our work
During the Summer, we have been working on the web framework Lotus for Ruby. But, since we were newbies in programming for the web, there were a lot of things to learn before we get out hands into that.
First, we started by learning Ruby, Ruby on Rails, html and css. We also had to learn how to work with Git, for real. We did a lot of online tutorials and earned loads of badges! Then, we did a diary application on Ruby on Rails and a similar one in Lotus, to better understand their differences. Afterwards, we started meta-programming on Ruby. Our main work was to built a mailer gem for Lotus. And we did it!
Participating in the Rails Girls Summer of Code was much more than working on Ruby. It had a human component that is hard to put on words. Ruby community is warm and welcome, and we felt like we belonged to a big and cozy family!
We used Slack and Twitter to comunicate with everyone and the daily logs and blog posts on the RGSoC app page allowed us to keep up with the work done by other the teams. We would start our days by catching up on the news and the other teams’ tweets.
It was overwhelming to participate in something like this! There was always someone active on the community. When our work, in Portugal, started, the team from Australia was finishing their day. And when our day ended, the teams from North America were just starting! Even on weekends we would find someone out there, working on their projects!
We had regular skype/hangout/team viewer/screen hero calls with our team. Most of them were work related but some of them were just catch-up calls. Our team is great and we had lots of fun!
We also had a chance to participate on a Rails Girls event, to help as coaches and to do a lightning talk about our experience on RGSoC. We were a little scared but it turned out great!
After that, we participated on RubyConf PT. We attended great talks and we were able to meet other Rubyists and share our experience of participating on RGSoC. We also had a chance to meet our coach Christian on person, since he was one of the speakers at the conference. We are glad that we had this opportunity to meet one of our team members for real, after spending a big part of the Summer talking with him through a computer!
Most of all, it was an enriching Summer, full of new experiences and challenges, and lots of fun!
We want to thank everyone who made this Summer possible! The organizers, the sponsors, the people who donated money for the program, the coaches who volunteered to help us and the mentors who brought the projects. You are incredible for allowing us to have this amazing adventure!