Sunday, 24 March 2013

Kuuliza Si Ujinga - (Direct translation) Asking is NOT foolish

Kuuliza Si Ujinga

As a native Swahili speaker, there are some things, especially Swahili proverbs, that I find impossible to express in English. So excuse the title - but sure hope the translation helps! ;) To elaborate on it a little, the proverb was used by encourage people to ask many questions, because asking does not mean your foolish. In fact, it means the exact opposite! 

I remember my teachers using this proverb a lot in class. After teaching a new concept, my physics teacher would always ask for questions - no hand was raised. This is because most of us were thinking that our silly question was going to waste time for the other brilliant students, and teacher. Plus, who wants to be the only one who did not understand?

So how does all this relate to opw?

One of my favourite activities during my internship is the opw meeting. The meeting is pretty informal - done over irc where the mentors and interns share their thoughts on whatever topic that's being discussed. You can get the logs here.

Doing the last meeting someone made a comment, and I thought I must blog about it.  Here is the comment:

I particularly ask, because I have sort of inhibition that people might be very busy to entertain my naive queries which I am sure to have

From my experience contributing to Deltacloud, these are my thoughts on this. 

It's totally OK not to know

Seriously, it's ok! When joining a new project, everyone else in the project knows more about it than you do. This is a fact. Everyone knows it. And there is nothing to be ashamed about. On day one on my internship, Marios gave me the most comprehensive intro to the code I was going to work with (and two fat pdfs! :) ). He gave me the intro, even before I asked thing. I choose to highlight this because it means one thing - he knew I didn't know as much as about the Deltacloud API as he did, which is ok! He probably expects "naive" questions from me (And he got many of them!). 

The comment up there got me thinking that a lot of people are not contributing to open source projects cause of that fear - which actually only exists in your head! FOSS devs are usually very willing to help out - it's actually part of the culture! There is no shame is not knowing - but there is shame in not wanting to learn! 

To emphasize my point, if a Ruby Conf was being held in Tanzania (a country that mainly speaks in Swahili) and Marios and I are attendants, I actually expect "naive" questions from  him! E.g, "How do I say hi?". These questions do not mean he is dumb - they mean he wants to learn! He could have chosen to just smile and wave to whoever he is saying hi to, but instead, chose to learn how to say it in Swahili. 

I hope this encourages someone to ask more of those those naive questions - they have a home in open source. ;)

Friday, 8 March 2013

Two months later - Progress?

Yay - yet another blog post! This is great. My internship has got me blogging, almost regularly, something I have been trying to do for years, and failed miserably. I have like 9 blogs out there, with an average of two posts. So, this is great! :)

In case you are new to my blog, I joined the GNOME Outreach Program for Women (#fossopw on Twitter) in January 2013. I have been an intern with Deltacloud project for two months now, which is 2/3 of the internship. This post is a summary of my experience and contribution. I like grouping things up, so I will divide this into three parts: mentorship, code and new ideas.

1) Mentor-ship

My internship is a unique one. Instead of being joining the project and feeling all lost, the program attached me to a mentor, David, an awesome mentor! The internship is remote, and this comes with it's own challenges. I live in Nairobi, Kenya and my mentor is in the US. There is a 13 hr time difference! But, surprisingly, this has been no hindrance. The amazing thing about my mentorship is that I have learnt more than just the project I am working on.

A couple of weeks ago, I bombarded David with "why did you get a PhD" questions on an irc meeting - the conversation was very interesting, and got me learning Common Lisp and reading  this amazing book. I chose to highlight this because I am not onnly being mentored on the project, but also on my skills as a programmer. Which makes so much sense! Now that I am really getting into FLOSS, I need to really master my craft. ;)

2) Code

As mentioned in previous posts, I was to achieve to objectives during my internship - 1) Get the CIMI web app working again, 2) ensure we are not explicitly writing URLs, but the app is getting then from the server. I am still on task 1, and in a bit of a panic mode. Unanticipated difficulties such power outages (Kenya Power, it is the 21st century!) and unreliable internet (Orange Kenya, I will shamelessly point you out - as a warning to others!) are dragging me behind. But I have plan on catching up - I work surprisingly well even in panic mode. ;)

On finishing task 1), I am going to patiently work though my buggy code in 9 branches, so that I have code pushed up - oh the joy of having your code pushed to master! :D . Chasing after your own bugs can get frustrating, and it is even more frustrating when you get other people on board to chase after your bugs (Michal and Marios, I awe you tea ;) ). 

In the interest of helping others understand what I am doing, and not intimidate them with random code, I will not include any code in this post. But is you are a Ruby programmer, get down to the Deltacloud website and have a little fun! :)

3) New Ideas

Ideas ideas ideas! :) A friend of mine hates them because he claims ideas == more work, which is true! ;) My new idea => I need to actively speak at Dev confs. Please note, not attend, but speak! Preparing a talk is a whole different story, because you cannot speak to amazing geniuses when you do not thoroughly have your facts right. (Yes, I said it! Programmers are amazing geniuses, sue me if you wanna :P #GeeksRock).

Focussing... Now back to my new idea - Martha the speaker at developer conferences! This guy has been psyching me up for this (including reviewing topics I am thinking of presenting on, and giving me advise about them, for free! +1 for that you!). The other day(like 2-3 weeks ago), Marina, the one organizing the entire project, joined in psyching me up! (Sent out an email with a list of conferences happening this year that I could start preparing presentations for! Talk of amazing!). I have started submitting proposals and I am loving all the research I am doing in my free time. P.S: it is a great way of relaxing, it is ok not to code 24/7 ;) .

Now here is the little hitch - did I mention that I live in Nairobi, Kenya? The tech scene is pretty you here - you need to see the number of people in my Ruby and MongoDB user groups! If you did not get the hint, developers in Kenya are few, so we do not attract all the dev conferences in the world. Well, any for that matter - though I am actively working on a Ruby conf Nairobi this year! #WooHoo!! :D Focusing.. So the conferences happen to be far, really far! And I am 19, so I do not have accumulated funds to be globe trotting. But this is no big deal - I have found ways of getting around this. For those interested, if you are thinking of speaking at conferences, your level of experience, of availability of travel funds should not kill your psych for speaking! Google around for work-arounds - like serious! ;)

As much as this post has not about code, or the project I am working one, I think it will greatly benefit anyone stating out in open source. As I have come to learn the FOSS community goes beyond code. It is a culture. I hope this post captures some of that culture, that I have grown to adopt.