Moi, we are Cathy Nangini and Qian Zhou from Helsinki, Finland. This is our first time with RGSoC and we are quite passionate about our RGSoC journey. We are working on Participate frontend, a democratic participation platform based on LiquidFeedback,
an open source system used for internal decision making and policy creation. The platform is built with Ember.js for the front-end and will use Grape (ruby) for the API backend. Oliver Barnes is our project mentor, Miika Pihjala and Mukesh Thakur are our coaches, and Floor Drees is our project supervisor.
Cathy: I am a data scientist who has studied physics, geo- and bio-physics and uses scientific computing for data analysis. I started learning Rails at the first RG workshop in Helsinki in 2011. I loved the idea of being able to create and build web projects. The workshop gave me confidence and motivated me to dive into Rails further. After I completed Code School’s Rails for Zombies courses (Level 1 and 2), I developed my first simple app called the Happy OMeter. Later on, my friends and I built a social network platform that allows friends to coordinate the transport of gifts and other small personal items when they travel. It expanded my Rails knowledge and understanding of the MVC architecture, but many questions still remain. There is no doubt that RGSoC has furthered my skills. I am now quite addicted to open source and figuring out those features, and it’s great to work with Qian to hash out the never-ending mysteries of code.
Qian: I am a computer sicence student whose sepcilization is Networking and Services. I am eager to learn new programming languages in my free time. At the beginning of 2014, I self-studied Ruby at Codeacademy just for fun. This inspired me to learn Rails for Zombies (Level 1 and 2) by Code School. After that my curiosity about Ruby on Rails became stronger. Around February, I joined an event called SomeJam and cooperated with other team members to create a Rails application called Let’s Do It. It was only two days but I wished it was longer so that I could practice more. One day, I accidentally saw Rails Girls news and I became super excited about it. RGSoC exactly provides an awesome opportunity for me. Naturally, the next thing was to find a pair and some coaches. Rails Girls also gives me the chance to know my pair Cathy and coach Miika.
What have we achieved so far?
Emberjs. We both started from zero background in terms of emberjs. At the beginning, we were confused by its multiple models, routes, controllers and templates. Now we have a better understanding and know how to use them properly.
Knowledge of ember testing. We use Mocha and Chai for our testing, which we had never heard of before RGSoC. Now we use it frequently and know how to write tests and apply the idea of TDD/BDD.
App features. Currently we have implemented features on issues, initiatives, and suggestions, i.e., how to create them, how to list them and how to link them to the proper page, and so on. We are also on the way to creating a dashboard soon.
Knowledge of ember cli. We made our app with ember cli, which gives us command-line capabilities.
Knowledge of emblem. We use emblem as template engine, which is built on handlebars. Emblem is an added learning curve because we are not familiar with handlebars, and it is not always easy to translate template code in handlebars into emblem. Now we are getting used to using emblem.
Becoming Github professionals. We are now quite used to performing various GitHub gymnastics such as rebasing, squashing, resloving conflicts, etc. (but sometimes it still acts mysteriously).
Problem solving and troubleshooting ability. When we have problems, we first Google, Google, Google, then read related ember documents and stackoverflow. Later on, if we still cannot figure it out, we ask for help from the coaches, the campfire helpdesk from RGSoC and the emberjs IRC channel. In terms of troubleshooting, we maninly use Ember Inspector. We can also now understand the error messages better than at the beginning, and we know how to react according to the given error.
Good documentation habits. We use a shared Google document to record important information, tips and tricks about the project such as: GitHub commands, useful material and links, code for implementing some feature, and so on. It’s an accumulated treasure for us.
What tips do we want to share about our Participate journey?
Make keypoint notes when learning something new for things that are used frequently. For example, GitHub commands like rebasing and squashing.
Good to review and read the Ember guide, Mocha and Chai documents and other learning materials over and over again. You’ll always learn new things even if you read the same thing many times.
Be patient and it’s ok to slow down. Sometimes you may get stuck on one feature for three days or more. Don’t be panic that you aren’t making progress. Making the code work is the result, but the process of reading documents, Googling and asking for help to solve the problem is also valuable. You obtain accumulated knowledge while searching for a solution.
Good to explain questions clearly when asking questions. Aside from asking for help from our coaches, we also ask for help from the campfire desk and emberjs channel. It’s good to express your problem in clear way, so helpers could give related suggestions and solutions. Sometimes we use gist to post our specific problem.
What will we do next for the project?
Front-end
- Voting
- Delegation of votes to other users
- Login
Back-end
- Login
- Vote weight processing
And we are always looking for new contributors, so please, join us!
Follow us on twitter or read our blog for the daily details :)
We are Akanksha Agrawal and Sana Khan, Information Technology graduates from College of Engineering Pune. We got introduced to FOSS and Open Source from COEP’s Free Software Users Group (CoFSUG).
Sana: During my sophomore year, MiniDebConf India happened at our college and that got me introduced to Debian Packaging. Met a lot of awesome people in the Debian India community. Learning from them, was able to make contributions to LibreOffice hyphenation packages for Indian Languages. An year ahead, took a few sessions along with other contributors. Love the Debian India Community and would love to make more contributions :) While attending packaging sessions for packaging gem dependencies for Diaspora, I got introduced to Ruby on Rails. Thats how I began to learn Ruby and Rails to package a Diaspora gem dependency into Debian.
Akanksha: Concept of FOSS was introduced to me by our college’s open source group. Attending open source seminars and workshops has always been my passion. I got introduced to Ruby on Rails in the Rails Girls Pune event. Also attended the Rails 4.1 Release Party where I met our coaches Nishant Modak, Vipul Amler and Prathamesh Sonpatki. Got fascinated with the language and Rails and applied for Rails Girls Summer of Code so as to start contributing to open source.
What are we working on
We are working on making a memory visualizer tool for Rubinius. Hence we are called ‘Team Rubinius’.
Heap dump is one of the most important analysis tools for troubleshooting or fixing high memory usage problems by identifying the root cause of memory leaks in Ruby applications. Rubinius provides a heap dump interface which allows for analysis of memory dump of Rubinius. Our project aims at utilizing the information available from the heap dump file and displaying this information in a graphical way through a visualization tool that helps the user explore the memory usage of their application.
Learning so far
Starting with basic concepts of Ruby, we studied the internals of Rubinius such as object structures, how array objects are represented internally, types of objects and their memory layout.
We then went on to read and understand the heap dump code and well as the Gauge Application code. We tried out different example codes to identify memory leaks.
We learned how Garbage Collectors work, what is Mark and Sweep Garbage Collection and how that is different from Generational Garbage Collection.
We also learned about how memory leaks occur. We now know that memory leaks are possible even when you have a garbage collector which does things to avoid leaks whenever possible.
Learned how memory visualizers work. Worked with VisualVM, Jhat and Eclipse Memory Analyzer (MAT).
And there is still so much to learn.. :)
Progress so far
We started with understanding the format of the Json file generated by the heap dump tool to be able to use it to generate visualization in d3.js.
The Json file had too much information for visualization, so we played around with the heap dump code to generate our own reduced data-sets. One major issue we faced was that the number of objects and their related information was too huge that it would either clutter up the visualization or make the browser slow in rendering it.
With inputs from our mentor we started to work on the diff of two heap dumps. We are now working on displaying the instance view in a histogram based visualization representing what percentage of objects are consuming how much memory.
On August 28th, 2014, after almost two months of full-time coding, we recommended to our students that they take a day off. It was a wonderful opportunity for everyone to get their minds off gems, classes, and variables, to take a breath and recharge. Here’s some of the stuff that happened that day.
In Berlin, the lovely people from Applift wanted to do more than sponsoring RGSoC. So they came up with the crazy idea of doing a houseboat trip, since their CEO had just bought himself one. Of course, we immediately jumped on board (pun intended, ba-dum-tsssssh!) the idea to take out the Berlin teams for a spin around Tegeler See. With the weather being on its best behaviour that day, we enjoyed ourselves with food, drinks, talks and gazing across the water. Initially, we planned to have a lightning talk about depression & burn out and a big group discussion about how to handle stress at work and for everybody to share their coping mechanisms. But we immediately felt so relaxed on the boat, that we decided to really take the day off. Also for us organizers. So we hung around, talked a bit with everyone and shared a very relaxing day, which was so wonderfully planned. A big thanks goes to Sarah, Peter, Linda and Therese from the HitFox Group and Norbert, the skipper, for making this a beautiful day to remember.
Over in Bogotá, Paola from Team ARIA had a little chat with the geese at a farm while her pair, Melipao, hopefully had a day that was just as relaxing - in spite of the weather not looking too promising in Barraquilla, by the Caribbean Sea.
In Vienna, our organizers Floor and Laura gave up on trying to find a house boat to celebrate the day off, and put their baking skills to good use for a cupcake feast instead. Proof below!
Meanwhile in Warsaw, Team Species+’s Magdalena went for a walk in the forest and Karolina spend the whole day reading (we know what you’re thinking, but no: no coding related literature was involved). Apparently, the day off has come just at the right time for them: “Yes, it was really necessary day. Now we feel as if we have more room in our brains…”
And to all the other students: We hope all of you had a wonderful day, too! <3
As promised, we have a whole new round of great-conferences-you-can-visit-for-free! This time around we have both tickets and scholarships to draw your attention to. We’ve listed what you should do to get either of those in the list below. Good luck!
Tickets
CSSconf EU (@cssconfeu on Twitter) takes place in Berlin, September 12. We have 2 tickets to give away.
RubyConf Portugal (@rubyconfpt on Twitter) takes place October 13th - 14th in Braga. We have 3 tickets to give away. RubyConf Portugal will also be organizing a Rails Girls Braga in the days before the conference, which you’d be very welcome to attend and coach at.
Oredev (@oredev on Twitter) takes place November 4-7 in Malmö (Sweden) and we have 2 tickets (a ticket costs around $1500) to give away!
Keep Ruby Weird (@keeprubyweird on Twitter) takes place Friday, October 24th in Austin. They set aside 2 tickets for Rails Girls Summer of Code.
RubyConf Philippines (@RubyConfPH on Twitter) takes place March 27-28, 2015 on Boracay Island and we have 2 tickets to give away.
For all the above conferences we need you to tweet from your team Twitter account or from your personal Twitter account, what conference(s) you would like to attend - mentioning the conference’ Twitter handle and using the #rgsoc hashtag.
The deadline for claiming your conference ticket is Tuesday, September 9th (up until midnight, wherever you are).
Winners will be drawn by raffle at 07:00(GMT+2) on Wednesday, September 10th, and informed shortly thereafter
Scholarships
rejectjs offers one ticket to their wonderful conference, plus covers travel expenses of up to 150€ via their Community Package. Do mention that you are a Rails Girls Summer of Code student!
Both RailsConf Atlanta, taking place April 22-25 (yes, 2015), and RubyConf San Diego, taking place November 17-19 this year still, have an ‘Opportunity Scholarship Program’ in place. We will share application details with you shortly.
What to do at the conference?
First of all, we want you to be amazed and inspired. A conference is one of the best places to learn heaps of stuff and talk to wonderful people.
Additionally, why not amaze the other attendees? We would love for you to share your Summer of Code story and spread the word to even more seasoned programmers about the great opportunities of the Rails Girls. Many conferences have slots for lightning talks. Not sure how to tackle the task? We have just the blog post for you!