Week 3 Day 1 Ataru is born

Our gem Ataru is on RubyGems.org

Our gem Ataru is on RubyGems.org

Week 3 of our journey started with a birth.

Since our documentation tool will be a command line tool at first, we had to make a gem out of it.
So we learned today how to build a gem with the help of Bundler. With Bundler (bundle gem your_gemname_here) you get the folder structure and all the needed files for a gem. Nice thing.

The biggest problem we had to solve, was that the name we had in mind (jibe) was already taken. So needed to figure out a new one.

And finally we decided to use….*drumm roll*


For those of you who don’t wander the path of the power, here is the explanation:

Form IV: Ataru, also known as the Way of the Hawk-Bat, or The Aggression Form, was the fourth of the seven forms of lightsaber combat. The history of Ataru stretched back through the Old Republic, to at least as early as the Mandalorian Wars, where it was commonly employed by Jedi of that day. Ataru continued to be a common form among the Jedi in the latter stages of the Republic, and was also known to be employed by the Sith.

An aggressive style, Form IV was fast-paced and effective against single opponents, though weaker in prolonged combat and confined spaces. Also, it was not recommended for use against opponents wielding blasters. Ataru was characterized by Force-assisted acrobatics, such as somersaults and leaping strikes, both for attack and defense. Another characteristic of the form was its fast, powerful strikes from multiple directions. Notable users of this combat form during the Old Republic included Yoda and Qui-Gon Jinn. The New Jedi Order preserved knowledge of Ataru and Jedi Masters such as Luke Skywalker, Mara Jade Skywalker, and Kyle Katarn all employed it.

Read more here: http://bit.ly/1nNmQJi

After finding the name we created a code_padawans account on rubygems.org and pushed there our gem. It’s almost nothing in there, but we’ve saved the name :)

Besides of that exciting part of creating a gem we did the following things today:

  • Creating a gem and pusing it to rubygems.org
  • Planning the next Sprint, deciding what features our next version will have (read a markdown file, extract code samples out of the markdown, wrap them into a test method and run it)

We finished the day with a google hangout with two others Rails Girls Summer of Code Teams: Team Participate from Helsinki and Karolina and Magda from Team Species+. It’s cool to talk to other students and see how they work.

Week 2 Day 5 – Secret Jedi Super Power of the Week – Synergy

Secret Jedi Power of the week

Secret Jedi Power of the week

Synergy is the interaction of multiple elements in a system to produce an effect different from or greater than the sum of their individual effects. The term synergy comes from the Greek word synergia συνέργεια from synergos, συνεργός, meaning „working together“. (Wikipedia)

Yes, there it is, the second secret Jedi super power, that Code_Padawans gained and are to execute and benefit from all through the Summer, and beyond.

We acquired this super power by doing pair programming sessions; we found out, that when we work together and discuss our ideas, we are much more effectiv than while working on our own.

Besides that very meaningful attainment, we did some research and readings on TDD. The resources:
„Test Driven Development By Example“ 
„Growing Object-Oriented Software Guided by Tests“ (both by Kent Beck)
and „BDD mit Hanoi“ tutorial (in German, but with pictures;)
We enjoyed going through „How do I test my code with Minitest?“ tutorial by Steve Klabnik (who is a really awesome guy btw [Ute knows]).

We also did a review in the morning, talked about the week that lies behind us: what we liked, what we can do better next week, what tasks we have in front of us. We both came to the conclusion, that this week was good for us. Writing code is fun (and challenging) and you can see, that with exercise the use of tools like vim and git becomes easier and easier.

Soooo, week 2 is over. Time is running so fast!

Week 2 Day 4 – Improve your code by eating strawberries

Strawberries improve Code_Padawans powers

Today we worked on our test framework nano_padawans_test.
We implemented a method that finds all subclasses of the Test superclass and saves them in an array. That’s the base for the method that runs all tests: it creates an instance of each test class, finds all the methods that are test methods (you have to name them like „_test“ in the end) and runs them.

After that we cleaned up a bit:

  • Created a separate file for each class
  • Renamed the classes to point out their functionality
  • Pushed that files into github

Week 2 Day 3 Nano Test by Padawans

Let’s walk on the path of enlightment in becoming a test driven Code_Padawan!
And what could be better to learn something about tests than writing our own small test framework?

The Test superclass has this functionality:

  • find all methods that end on  „_test“ and run them
  • find all classes that inherit from Test
  • make assertions and get the result of the method

It’s super helpful, as you don’t want to run every single test method one after another. Test finds all of tests for you (or those that you want to be found) and runs them all at once.

Yes, this sounds like nothing big, but we have learned a lot out of it:

  • What it means, that all classes in Ruby are an object
  • That there is something called „self“, that gives you access to the current object
  • You can search for method names and save them into an array, and run them then by using „send“

We had to read a lot to find out how we can implement this. It was a good exercise to read through Ruby-Doc, use Stack Overflow and find some helpful tutorials about MiniTest for example.

We had to deal with the fact, that our first ideas didn’t work as expected…

Magda is working hard

Magda is working hard

But at the end of the day we wrote something, that worked. It’s still not finished, we have to do some refactoring, buuuuut it’s a piece of working code. Written by ourselves…

Firt sight of nano_padawans_test

Firt sight of nano_padawans_test

nano_padawans_test is born. You can take a look at our repo, if you like: nano_padawans_test

Week 2 Day 1 – Issues with branches

issues with branches

issues with branches

Magda says: it was great working today. But my brain got full, no more comments, check out the picture 😉

Week 2 Day 2 – So this is a real world project

How our website looks like at the moment

How our website looks like at the moment

It’s the time to get used to working with github, github issues, branches and pull requests. We create now issues for features we want to implement, create a branch for each implementation and make a pull request once we are ready with it.
At first this workflow needs some exercise, but after making a few pull requests one gets used to it and, what’s most important, it makes work more transparent and organized.

Today we closed two issues:

  • Remove the .html file extension from the links in the sidebar menue.
  • Make some adjustments with text aligment and floating

As you can see, our simple website looks different now.

For the first issue, it was neccesary to understand how the class pathname works. you can remove the file extension by giving „.*“ to the method „basename“ as a parameter.

The second issue was fixed with the help of some CSS research (google).

In the afternoon we talked to Dario from the Padrino Core-Team about some technical details of the website and – as it happens to the real world projects all the time – we decided, for the time being, to postpone the project 1. (bulding a documentation website) and move to our second and bigger project – creating a documentation testing tool.

We also recorded our first podcast episode.

You can find us on SoundCloud.
Since this is our first podcast we’ve ever done, there are some things that could have went better. We will improve it next time around. As for now, we hope you still enjoy listening.

Day 5 – First week is over

The Code_Padawans at work

The Code_Padawans at work

Wow! Time flies! It’s already Friday, our first week of Rails Girls Summer of Code is over. We couldn’t believe it. It seems like yesterday that we walked into the Asquera office on Monday.

Today we began to get into concrete project planning.
Since this is our very first bigger project/website, we struggeled how to find out what we have to do and how the steps have to be done.
Our coaches do their best to help but it’s still a challenge for us. Best thing is to be patient with ourselves, it’s just the first week, isn’t it?
As you can see below, we created a first prototype of our website. We generated a Middleman project and copied the documentation markdown files into it.
Middleman creates static HTML pages out of them. Awesome.
Then we created a menu and linked some of the files.
It’s pretty simple and without styling and functionality but it works.
The menue is shown on every page because we implemented it in the layout.erb file.

A first small prototype

A first small prototype

The next step is to generate a menue out of the filenames, so it won’t be so static anymore and saves some code.
But now it’s weekend (we are attending a conference this weekend). So come back on Monday and read how our work evolves. :)

Day 4 – Terminal Day

Today we did a lot of command line foo:

  • installing RVM and different Ruby versions, setting a Ruby version as the default by using RVM
  • saving files from the web on the computer by using the curl-command
  • displaying a file-tree in the terminal

Besides of that we played around with Middleman and realised, that there are no step-by-step tutorials for Middleman. This makes it more difficult to understand for a beginner, how all those files work together. Maybe we write such a tutorial, if we have some time left.
Finally, we set up a very basic static website using Middleman. Let’s see how it goes next week, once we start to code the padrino docu website…

After work we visited a Tech Open Air satelitte event: Agile Development And Music Production At Ableton
We met another Rails Girls coach and Rubymonster – Carla and the Scrum Master Celine, who gave the Scrum introduction workshop we took two weeks ago.

Agile Development And Music Production At Ableton

Agile Development And Music Production At Ableton

Most of the time we work together, but Ute did also today some additional stuff.

Ute's iTerm with oh-my-zsh and agnoster theme

Ute’s iTerm with oh-my-zsh and agnoster theme featuring her favorite colors :)

What Ute did today:

When I found out that I can install oh-my-zsh on my mac, I had to do that!
After reading some posts I changed my terminal settings from bash to zsh, installed oh-my-zsh and decided to use the agnoster theme, because it’s very nice. Unfortunately there was a problem with a broken glyph. So I had to do a bit more research on github until I could fix this problem by myself (what makes me really proud that I didn’t have to ask a coach).
Now my command line is pretty nice and in all my favorite colors. <3

Visiting our other Jedi-Temple

Today was the first day at our other Coaching Company SponsorPay.
We meet Arsenia and Kacper at ten, got our KeyCards and found our tables. The awesome collegues of Rails Girls coach Debbie let us sit in their office. So nice! <3 [caption id="attachment_85" align="aligncenter" width="800"]Coach Kacper Coach Kacper[/caption]
After solving the problem with the Wi-Fi that did not wanted to let us in, we had a one hour session with our coach Kacper. He explaned how git works. We had done git-tutorials and used github already before but I must say that I now understand more what is going on and which command does what.

Kacpers sketchnotes about git

Kacpers sketchnotes about git

Around lunchtime I (Ute) had to leave because I had an examn to write at my university. The last two days were a little bit crzay, like doing Summer of Code the whole day and learning a lot of physics in the evenings until bedtime.
Ute's current status after the examn

Ute’s current status after the examn

Magda stayed at our Jedi-Temple (SponsorPay) and wrote a journal for me what she did:

Started to read Matthias Padrino book.
Going through the Middleman tutorial, i got stuck on corrupted gem and that’s how i learned how ruby gems work. I got unstuck and created new repo on github (check it out, Ute) with a learning middleman website to play with git.
I also pimped up my console with oh-my-zsh and intstalled some vim pluggins.

It's magic, isn't it?

It’s magic, isn’t it?

Seems that I have a lot of work to do tomorrow… :)

Deep into the buzzwordjungle

Today was a day of reaserching and getting to know a couple of tools.
We looked into Markdown and the differences to the Github Flavored Markdown.
We played around with Markable, converting HTML to Markdown and vice-versa.
We also read about Middleman. Jan explained us in some more details how it works, showing as an example the source code of a website. Afterwards, we talked about the differences between the static and dynamic websites.

Apart form all that fun, we had even more :)
We went for lunch with our mentor und supervisor.

Meeting Bodo and Arne for lunch

Meeting Bodo and Arne for lunch

And that’s how producing content for this blog post looked like 😉
Having some fun

Having some fun

Magda taking a picture of Ute

Magda taking a picture of Ute

On top of that, Ute solved a puzzle using her fingers somehow different than when typing…

Solving wodden problems

Solving wodden problems