Team Reactives with coaches Vanchi (left-most) &Arrchana (right-most). Image taken by Arrchana
Who We Are
Hello, everyone! We are Team Reactives: Shwetha and Tu An with our coaches Arrchana and Vanchi. All of us are in Singapore and living in the same university campus. Being 2 undergrads and 2 Ph.D. student, we haven’t worked together before this and probably wouldn’t have if not for the summer of code. We two met each other as fellow guitar players for our university’s guitar orchestra and found our coaches through the Rails Girls website. This programme has brought us closer as we encounter and overcome obstacles together.
Tu An (left) & Shwetha (right). Image taken by Arrchana
Shwetha
Hi, I’m in year 2 of computer engineering at the National University of Singapore. I have had a passion for coding since my parents are coders and they first introduced me to GW-Basic back in middle school.
Tu An
Yo! I’m a mostly self-learning coder, who started out due to the mythical fear of programming prior to joining my engineering major two years ago. It’s a wonder for me to discover my fondness in coding (& weirdly long hours of debugging) after plowing through basic C programming course as a year 1. Currently, I’m still sticking with my biomedical engineering major as an undergrad, but I really hope to pursue further studies in computer science disciplines. As a junior, I’m figuring out my most interested IT field. I have been eyeing a few after two years of exposure to basic levels of computer graphics, web development, and testing automation.
The best thing in my learning journey so far is extending my abilities beyond myself and sharing my knowledge regardless of how little it seems. Besides coding and exploring other technologies, I really love guiding younger ones (like teenagers) as they pick up coding - the new literacy skill for present & future generations. Moreover, I hope to help others enjoy programming as much as I do despite the crazily deep & lonely valley of the learning curve for newbies as I’m there now and hoping to get through it soon.
We have learnt a ton together. From beefing up our Unix command line skills to picking up Ruby and Rails. We learnt about working in a team: that communication is critical for productivity. It might be tempting to take a crack at it on your own but if just 1 mind working on the issue is not working out for days on end, more heads just mathematically improve the odds of solving the issue.
And of course Git!!! It has been extremely useful for us to keep multiple versions of our old codes and avoid random bugs since we can revert them at no memory costs (at least locally).
Also, we got to learn about accessibility design principles. It was an eye-opening for our team to know about the multiple screen readers across various major platforms such as Orca for Ubuntu, NVDA & Jaws for Windows, VoiceOver for OSX. Many considerations which are required for designing web apps & pages with accessibility have never crossed our minds before beginning this project. Awesome features that we took for granted like dropdown menus, scrolling bars, hidden cards, tabs all turned out to have highly demanding logic implementation behind if made accessible,especially for the visually impaired.
What we’ve achieved
We had a major hiccup in our progress at the very start in installing and building our project so we decided to work with the latest release for now. Working with that version, we have managed to build a basic prototype to test server communication.
We also experimented other technologies such as JS, Reactjs + Webpack + Babel + Electron for cross-platform applications. We made a super simple prototype with these technologies to quickly try out our ideas for accessibility design on the view layer. Our plan for this prototype is to implement the MVC, connect the application with the local server and package it for Sonic Pi.
We’re almost halfway through the summer, which as every year can only mean one thing: It’s time for the official RGSoC Day Off!
What’s the RGSoC Day Off, you say?
Every year, we encourage our participants to take a day off to decompress, relax, and come back to work ready for the second half of the program; this ensures that they have some time they can spend away from the computer and do anything they feel like doing on that weekday. This year, our official RGSoC day off will take place on August 19th.
For some students, the Day Off just means “not coding”; for others, it’s the possibility to try doing something new and exciting or to spend the day outdoors and with friends. If you need some ideas on what to do on your very own day off, we’ve collected some here; our teams in the past have gone swimming, hiking, baked cakes, or just hung out with their family. However, you can really just do whatever you want: The sky is the limit!
The only rule is: no work, no commits, no learning code for that single day. We know it’s difficult, but we also hope you can follow through ;)
If you want to document your day off, you can use the #rgsocdayoff hashtag and post tweets or pictures of your day. But hey, you don’t have to — it is a day off after all.
On this note: We wish you a lot of fun on your official RGSoC Day Off!
It’s amazing to see how many people all over the world support Rails Girls Summer of Code.
Sponsors, coaches, mentors, supervisors decided to play a part in bringing diversity to IT and help us make our program work. But it doesn’t stop there. Many tech conferences have a hand in RGSoC too.
We encourage our students to attend conferences as part of their scholarship program. We believe that a novice coder can benefit a lot from a good conference, be it learning new things, making new contacts or getting in touch with a larger community.
This year we decided to experiment and don’t make a conference raffle; instead we asked students about conferences they were most interested in and tried to make their wishes come true.
We are very grateful to the conferences and their amazing organizers, who support us this year. It takes lots of efforts to organize a good conference and make it accessible to everyone. We appreciate this a lot!
Here are some of the conferences which generously granted free tickets to our students this year.
Date: September 15-16, 2016 Location: Warsaw, Poland Twitter: @CodemoWarsaw
Interested in attending this conference too? Contact us for getting 20% off promo code.
Date: October 3 - 6, 2016 Location: Copenhagen, Denmark Twitter: @GOTOcph
Interested in attending this conference too? Contact us for getting 10% off promo code or getting involved as a conference volunteer.
Date: February 9-10, 2017 Location: Melbourne, Australia Twitter: @rubyconf_au
Interested in attending this conference, contributing to the diversity ticket fund or giving a talk? Contact us for more details.
Didn’t find yourself in the list? Exhale! This is not the whole story yet. More conferences are coming soon!
We are Kasia and Ula from Warsaw, Poland. We met on Ruby on Rails basic weekend course organized by Coders’s Lab in November 2014.
When we finished it, we started to think what we should do next. We decided to apply for RGSoC 2015 but we weren’t chosen as a team. We didn’t give up and applied for 2016 edition and that’s how KaUlah team was born :)
You probably may guess how we created our team’s name, but we’re going to explain it anyhow. First two letters are from Kasia’s name and remaining part is from Ula’s name. Some of you may tell that it sounds similar to known Mexican coffee liqueur „Kahlua”. It was our inspiration and finally occurs that both words are anagrams :)
Our team
KaUlah Team with coaches. From left: Tomasz, Kasia, Ula and Piotr. (Photo: Piotr Stachewicz)
Ula: I was a financial specialist and then one day I encountered coding, started to work on it, learn, research and met a lot of fantastic people who helped me.
I am involved into Geek Girls Carrots meet-ups, coordinate Python and mentoring SQL courses, and I go deeper and deeper into it. So in my free time I am helping others to run into IT, also I like traveling, mountain hiking and watching old episodes of TopGear.
Kasia: I started programming two years ago at home and then on Coder’s Lab RoR course. Before programming I was occupied by PhD studies in chemistry. Finally, it turned out that programming is not so different from chemistry, you research, experiment, learn and at the end get results.
In my spare time I pet my two lovely cats (Janusz & Grazynka) or play handball.
From left: Yorick (mentor), Grzegorz and Tomasz (coaches), Lucas (supervisor). (Source: gitlab.com and Lucas Pinto twitter account)
Above you can see pictures of great developers who are helping us during this summer: Piotr Szotkowski and Tomasz Stachewicz from Rebased (first picture, they are joining RGSoC for third time!) and from GitLab Tomasz Matczukin and Grzegorz Bizon (first time coaches). Our mentor is Yorick Peterse (who was a coach last year) and our supervisor - Lucas Pinto (who is a newbie as we are).
We are working at coaching company office so we meet Tomasz and Piotr everyday. With others we communicate via slack channel and Discussion section under issues.
So far we’ve mentioned our team but on our slack channel there are more people who support us - other GitLab employees.
What are we working on?
When we saw the list of projects available for RGSoC GitLab Community Edition became our number one right away. Previously we developed our small apps into GitHub. And now working on GitLab CE give us amazing opportunity to see how repository system is build and how it works. GitLab is an application to code, test, and deploy code together. It provides Git repository management with fine grained access controls, code reviews, issue tracking, activity feeds, wikis, and continuous integration. Contributing to GitLab CE is an amazing experience and fun.
What tips do we want to share about our journey?
Always check your branch.
Tests are very important.
Be patient - ask, check, read before you push.
Remember to rebase and squash.
Don’t miss empty lines.
Learn and learn - it’s great!
You can improve your code.
Issue is almost always more complicated then you thought.
What will we do next?
Finish all issues in progress.
Find issues, features and bugs for the next weeks.
We are silly sometimes! Left: Jeena. Right: Malisa. (photo: Malisa/Jeena)
Hello World! We are Team JaM: Jeena and Malisa from beautiful Portland, Oregon, USA. We are two biologists who met each other while studying bioinformatics, the child of biology and computer science. This summer, we are working on Servo, the parallel web browser engine written in Rust, and we cannot be having more fun! Josh Matthews is our project mentor, Stefan Novak and Nick Fitzgerald are our coaches, and Scott Kobewka is our supervisor.
More about us!
On our recent trip to a cat cafe. Jeena debugging next to a cat, and Malisa debugging a cat. (photo: Malisa/Jeena)
Jeena:
I spent about half of my life in South Korea, and the other half in the West Coast, USA. I studied genetics in college because I was amazed by how DNA with only 4 letters could translate into so many different flavors of life, ranging from salmonella to elephants. After college I worked at BoltThreads for a few years, where I programmed yeast to make spider silk. I recently realized that programming computers is similar to programming genomes with DNA, and I decided to study bioinformatics. The more I learn programming, the more I realize how fun it is! Maybe it is no surprise that I find programming fun because I like to make things, including ceramics, cooking, and knitting.
I always welcome learning opportunities, so please reach out to me through my blog or twitter!
Malisa:
I’ve spent most of my life in Seattle and Pennsylvania, with bits here and there in Long Island, New Zealand, and Japan. I really love Portland so far! I majored in Biology as an undergrad, but I’ve always wanted to study more computer science because of its emphasis on problem solving and algorithms. To that end, a little over a year ago I decided to get my Master’s in bioinformatics, and since then I’ve been coding full-time. I’m super excited to have an opportunity to broaden my programming skills this summer with RGSoC.
In my free time I enjoy the following in large quantities: eating, reading, cuddling with cats, swing dancing and ballet, and exploring different Portland-area neighborhoods.
Stefan and NickOur coaches pretending to be not so silly... Left: Stefan. Right: Nick. (photo: Malisa/Jeena)
Stefan works at Oregon Health and Science University, helping researchers and doctors share data. Though he may not admit, he is also a pinball master!
Nick works at Mozilla, where he hacks on Firefox Developer tools and Spider Monkey. On the weekends, you can find him playing bike polo.
What are Rust and Servo?
Rust is a systems-level programming language that was started in 2010 by an employee at Mozilla. It is a compiled language, so creating executable code is slow, but runtime is fast. It is also memory safe, so pointers will only point to things that actually exist. Lastly, it is designed for concurrency and parallelism on multiple cores. You might consider using it for projects where you would otherwise write C++ code. Plus we think Rust is easier to read and write than C++.
(photo: www.rust-lang.org/en-US/, www.servo.org)
Servo is also Mozilla’s baby. It is a parallel browser engine, and it is written in Rust! We are working on Servo this summer.
…what is a browser engine anyway? To generalize, a browser engine takes a URL and displays the document that corresponds to it. Every web browser has one. For example, Firefox’s current browser engine is called Gecko and is written in C++. Mozilla’s long-term plan is to replace bits of Gecko with bits of Servo. You can read more about browser engines here.
Our Project
(photo: www.slate.com. edited by: Malisa)
Within the vast codebase that is Servo, our task is to implement the Fetch API. The Fetch API sends an HTTP Request, similar to XMLHttpRequest. We are writing the Fetch API in Rust and connecting it to the JavaScript task.
Sending an HTTP Request via the Fetch API involves a request and a response. Our task is to follow the class templates for Request, Response, Headers, and Fetch, which are specified by the WHATWG standards for the Fetch API. We’re lucky to have very specific instructions and goals for our project. ;)
What have we achieved so far?
So far we have implemented the Headers API and the Request API. We started out pair programming (which really revealed some of the differences in the way we think and approach programming), but then we moved onto independent tasks.
One cool thing is that because our code is so dependent on the rest of Servo and the WHATWG specifications, over the past month we have had to modify other parts of Servo’s codebase to add additional functionality that our code depends on. We’ve also filed issues with WHATWG where the Fetch spec requires clarification. This has helped us realize “hey, what we’re doing actually affects the rest of the world, and we’re in it for real!”
Probably even more exciting is the influence that this project has had on us.
The Rust and Servo communities are both really awesome, and since we started working with them our standards for human interaction have gotten higher. ;P
Coming into this project, we had no experience with low-level languages. We were both used to writing lots of one-off scripts in Python. Working with Rust has really forced us to think about what’s going on in the stack and the heap and what happens in memory when you create or copy an object. It is tough but rewarding.
On a related note, working on such a big project with such an unfamiliar codebase and lots of contributors is a very valuable experience. Good documentation and collaboration etiquette is appreciated by everybody.
Plus this is the first time we’ve even heard that web browser engines exist!
What tips do we want to share?
Document your daily learnings with TIL (“today I learned”). When you feel like you’re not making progress, go through your TILs and realize how far you have come!
Be vocal about your thoughts, especially when pair-programming. Other people sadly cannot read your mind.
Asking questions is the fastest way to becoming less dumb fast – Julia Evans
What will we do next for the project?
You can see our goals on Servo’s issue page. Our next steps are to address the remaining components of the Fetch API, which means:
- Finish the Request API implementation
- Finish the Response API implementation
- Implement the fetch method
- Implement Promise in Servo
- Refine the Request, Response, and Headers APIs
This fall, we are attending Strange Loop and Rust Conf, so come say hi! If you happen to be in Portland, OR, drop us a line, and we’ll take you to our favorite cafe :)
Thanks for reading, and visit our blog for daily updates and in-depth discussions (coming soon)!