subota, 18. svibnja 2013.

DORS/CLUC 2013 impressions

This post would be good to start with Linus Torvalds' quote: "It is the journey that matters the most not the end result."

Try to organize some event (in this case Open system days/Croatian Linux Users Convention) and you will realize what I am talking about. That journey is not easy especially if everyone from the team is working on this in their free time. So, this is additional task to do which seeks major amount of time and energy. The only thing that kept us going was motivation that everything has to be in best possible order. 

It was not always easy during that journey, sometimes we had struggle, sometimes everything went smoothly, sometimes you loose motivation but then other team members encourage you. I can say (despite this being my second year of organizing such an event with my friends), that anything is possible if you have good colleagues near you who care a lot about this event and not just this event but Free and Open Source world and they live in that spirit. If you have friends with that kind of an indomitable will then you have real team and real friends. 

During an organization we exchanged over 1000 mails. For some this would be too much or really big number. But it actually is not. You see, everything has to be in best possible order, and every detail has to be settled, there has to be a lot of reminders because people have their own life and a lot of obligations, and just forget that something has to be done. It is nothing bad. This just proves you how it is not easy to have your daily life and volunteer on several projects including this one which is an event organization.  Only, as mentioned above, indomitable will can push this forward. 

It was not easy, we were worried till the last moment how will everything end but it ended sucessfully. We were all more relaxed after the first day of the convention. For those of you who don't know, on first day of the convention we have had President of Croatia as a special guest. You have no idea what pressure that was. I slept cca 3 and a half hours before the first day of the convention, just mentioning to prove the pressure part. 

When we arrived to the hotel where convention was held everything went pretty well. First of we had to wait for Croatia's president in front of the hotel, after that we had little coffe talk with him, and then convention started... Openings, President's intro keynote, Open Informatics award ....

After president left we were all relieved that "President part" went well and that no issues occured. It was easier to breathe :)

Then started keynotes of our dear guests  Karel De Vriendt, Karsten Gerloff and Matija Šuklje. ... I really learned a lot from them. I realized how my knowledge about Free software foundation, open standards and public procurement is superficial. 

They were not the only ones there as special guests. We also had dear guests from San Francisco who presented GitHub, Alex Malinovich and Vlado Herman.  And of course our special good friend (he is now like one of us ;) Marian Marinov from Bulgaria. 

Of course there were a lot of Croatian keynote speakers as well who gave their special note to the convention's schedule plate.

I must say that in my eyes this schedule was really great. This year also everyone could find their theme field of interest and they could ask keynote speakers what ever they wanted considering that theme field. 

Second day was more relaxed. As us organizers like to say, it is usually a geeky or more casual day :) 

When convention (keynotes) part ends you can breathe :) I mean really breathe :) Third day is the most relaxing day because there are workshops only, less people, you have additional partner who takes care that people at workshops have all the equipment etc....etc...)

I really enjoyed all three days. Third day was icing on a cake..... Again I learned a lot and had fun with my new and my old friends :)

I know I am boring to my colleagues with lots of thank notes lately but......

I would like to thank again everyone from the organizing team, our volunteers, our keynote speakers (home and foregin), sponsors, media sponsors, everyone who contributed that this happening goes smooth as possible. 

As my friends from Ubuntu community like to say: "No contribution is too small!"

So, BIG THANK YOU to everyone. 

Events like DORS/CLUC are important because people can hear in live about FLOSS world from individual, business, tech and academic perspective. With events like this fear and reluctance to try something new could be diminished one day. 





utorak, 7. svibnja 2013.

My first Linux Kernel hacking

I know I know I should have done it before...... But  there is an advice "If you don't have to do it, don't bother"....

Why did I do it now? 

Well, several days ago Linux Foundation posted an article that they are funding three Linux internships through the Outreach program for women ran by GNOME Foundation.....

I planned to apply for OpenStack firstly but I was making my decision till the last minute when I saw Linux Foundation's call...

I decided in a matter of minutes to send first mail to Sarah Sharp (she works for Intel  as a kernel developer and she is responsible for USB 3.0 maintenance)...

So she helped me to write my application for opw and send it to GNOME official list. I also had to join the kernel-opw google group (collaboration group for Linux kernel interns)....

After that I had to do first assignment - create the first patch and send it to the opw-kernel google group not the main kernel mailing list since this is not "the real deal" at least not yet...

Oh boy,  it seemed easy while reading this tutorial 

But it was not easy, at least not for me and my computer (You'll see later what I am talking about.)

First of I had to set up an environment so I could actually do some Linux Kernel Hacking. For those of you who are not familiar with Kernel development - there is a whole set of rules how to contribute to Linux development. 

They even have their own style of coding - read it first before sending the first patch (It will save you a lot of nerves). 

So, setting up an environment was a big deal to me. I had to learn Git basics so I could actually download Linus' branch of newest version of kernel in the special directory. 

O.K. that went well. It took my computer for cca 2 hours to download it (that was a surprise for me)

When the kernel was downloaded it was time to copy old kernel config file (2.6.x.x-generic) to the new kernel folder as .config file, and then press make olddeconfig to record  changes

(Me the n00b) firstly skipped make olddeconfig command and pressed make instead... What happened then?

Good Golly - compiling didn't went smoothly because I had to answer questions what do I want to include in my new kernel/what I don't want to include/what should be as a module...... Oh Boy ... I was answering for almost an hour but then I started to feel like an idiot and I asked on opw-kernel group how long does this take? Greg Kroah-Hartman told me that I forgot to do make olddeconfig and he was right.... Yes Greg Kroah-Hartman is one of the mentors for Linux kernel interns and he is really cool...

So that saved me a lot of effort... I did make olddeconfig and then make and compiling went on its own.

But my 8 year old computer with 2.40 Ghz Intel Celeron and 128 MB of RAM was not happy... It took almost 6-7 hours to compile the kernel... I slept only 3 hours from Sunday to Monday because I was too eager to see what will happen next.


I left computer working and when I woke up it was done, with low disk space message, but it was done.... After that I installed the new kernel - which worked fastly unlike compiling...

Environment was set including Git, mutt, Vim, e-mail setup so I can send a patch from the terminal....

Creating the first patch was not easy at the first but when you start reading tutorials on KernelNewbies site and other tutorials you get quite comfortable. 

First thing before sending a patch is to read Patch philosophy and coding style rules.... If you brake the rules and if you try to commit the patch it is most likely not to be accepted...

After you have read those, get familiar with Git's basic commands.

 For a start you need to know how to switch between different kernel branches. You can see under which branch you are by typing git branch

 You are NOT suppose to do changes in the Linus' branch which is called master as I figured it out. You have to create your own branch. So do this --- git branch NameTheBranchAsYouLike

To switch to that branch just type git checkout NameTheBranchAsYouLike

You can use git branch command again to see if you really are under your branch (you'll see an asterisk next to your branch's name)

Now it's time to do some hacking.... What to hack? Well, If you have read KernelNewbies tutorial you have noticed that there is also staging branch which has a lot of drivers to clean up (they have either bad code styling or some other errors that should be fixed)

You can find them by just typing path find drivers/staging -name TODO (TODO means that they need to be fixed)

So, pick one, open it with cd commnd and you'll see a lot of files...

That's a problem now... How the heck are you going to know what should be fixed?

Well, Kernel developers thought about it too and they created script called checkpatch.pl which you can find under /linux/scripts folder

So, to check some file for errors (or that you could know what to fix) you have to write following  for example, you can choose some other driver and a file

./scripts/checkpatch.pl --file -f drivers/staging/comedi/drivers/pcmda12.c

 After script ran through the file you will be prompted with warnings - you will get number of line and explanation what should be fixed

At this stage I recommend that you open another terminal window and open that file in Vim editor - so you can fix file on one side and run the script on the other side until you solve all problems and get 0 warnings and 0 errors. 


When you came to the stage with 0 warnings and 0 errors and a note that file is ready for submission you have to type the following (which I forgot to do and I sent patch without it - luckily Greg warned me)

make drivers/staging/comedi/drivers/pcmda12.o

This is the real check up - so you could know that you didn't brake something... Although you fixed the file with help of checkpatch.pl  that doesn't mean that it is really fixed and that it will be built into kernel properly....

O.K. after that is done you can check your changes by typing git status and git diff ... Git remembers all changes you did (literally ALL of them - pretty cool ha)

Time to commit the patch (If you didn't set your e-mail and editor do that by following the KernelNewbies tutorial - it is nicely written there)

So type git commit drivers/staging/comedi/drivers/pcmda12.c

You will be prompted with Vim (Do NOT erase anything in there) just start writing by following the "Patch Philosophy" what does your patch fix, don't break the rule of 80 characters) 

Save it and get out of the Vim editor

You will still have to do the following so you could ship your patch via mutt (everything with patching in kernel world works via mailing lists)

git format-patch -o /tmp/ HEAD~
 
mutt -H /tmp/0001-<whatever your filename is> (you will see the name after the command above)
 
After you pres mutt ....... you will be prompted with e-mail tool (press no) and then you will have to type an e-mail where are you sending your patch to.... Send it to yourself first just in case (good recommendation from kernel devs)

Then do the mutt ......... again and send it to the real list you have to...
You will be able to edit your patch in mutt but I don't recommend that... What is done is done by Git


My first patch was real trivia - fixing wrong indentation

here it is and how it looks  like


Fixes indentation for file pcmda12.c
Wrong indentation was found at:
line 83
line 102
Patch also fixes comments readability

Signed-off-by Jasna Bencic <bencic24@gmail.com>
---
 drivers/staging/comedi/

drivers/pcmda12.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/comedi/drivers/pcmda12.c b/drivers/staging/comedi/drivers/pcmda12.c
index 0a5e663..4c0b85b 100644
--- a/drivers/staging/comedi/drivers/pcmda12.c
+++ b/drivers/staging/comedi/drivers/pcmda12.c
@@ -81,7 +81,7 @@ static void zero_chans(struct comedi_device *dev)
                                   ASIC chip to defaults */
        int i;
        for (i = 0; i < CHANS; ++i) {
-/*      /\* do this as one instruction?? *\/ */
+                                       "/* do this as one instruction?? */"
 /*      outw(0, LSB_PORT(chan)); */
                outb(0, LSB_PORT(i));
                outb(0, MSB_PORT(i));
@@ -100,8 +100,9 @@ static int ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
         * very useful, but that's how the interface is defined. */
        for (i = 0; i < insn->n; ++i) {
-       /*do this as one instruction??*/
-       /*outw(data[i], LSB_PORT(chan));*/
+
+                                       "/*do this as one instruction??*/"
+                                       "/*outw(data[i], LSB_PORT(chan));*/"
                /* Need to do this as two instructions due to 8-bit bus?? */
                /*  first, load the low byte */
 
 


Nothing special but it is my first patch.... 


Will I be accepted as a Linux Kernel Intern, I don't think so, I still have to learn a lot and I realized that this for now is way out of my league.....

I learned a lot for these past 2 days, I'm not afraid to poke the kernel anymore and to break stuff.... It is pretty cool.....

Now I have a new learning environment called drivers/staging/ -name TODO where I can lurk the code and think how to fix it and when I'll be ready I'll send patches to the real kernel list and wait for Linus to say how horrible it is :D

You know Linus, he is strict and strong with his language when talking with kernel developers (even he admitted it)....

I really wanted to meet Linus this way as a Linux Foundation's intern but maybe some other time in some other place.....




































nedjelja, 14. travnja 2013.

Fundamentals of online education: planning and application

Besides entrepreneurial courses at Coursera, I had a chance to attend course: Fundamentals of online education: planning and application. Well, I had a chance to attend it for couple of weeks until instructors decided to suspend the course due to difficulties. I was not happy at the beginning but then I started to understand. It is not easy to teach students in live and it is even more difficult to teach students online especially if you have more than 40 000 students .... Scary number ha?

However, during those first weeks I had an interesting homework. Loads of materials to read and reflect it. 

Education and especially informatics education is my passion. Thus I decided to share my thougths based on materials I had to read. And I'm looking forward when course will be reinstated because e-learning form of education has been with me for quite a while and there is always enough room for improvements. 

To follow my thoughts easier I suggest that you read those articles as well (you'll see the links).... These thoughts are not final, they are first thing that came to my mind. Who knows what thoughts will I have some day about this.... Everything is evolving. So is education. That includes new ways of teaching and learning.... Educational specialists today say that students are digitized citizens. They are but till what border?  Topic worth to discuss.

Here is the link towards Google doc so I don't copy it on the blog (it is long, so brace yourselves) -> Reflection: Week 1

petak, 5. travnja 2013.

Gaudeamus Igitur at Faculty of organization and informatics

So, today was a special day. I finally got my masters diploma. I thought I won't be overwhelmed with feelings but I almost cried. It is not easy to say goodbye to my alma mater (as there is a saying for college), to all those friends, all those professors. 

I guess Linus Torvalds was right - "The journey is important not the very end".... 

So, my sister was with me as a moral support and I thank her million times. And my friends were with me (not all of them unfortunately) .... Although not everyone was able to be present at the promotion physically (my friends and family), they were present actually -> during my journey/study. I thank them for the moral support and all moments we had. It was not easy but we made it through. 

Dean's words were very influencing and encouraging. Thank you again all members of Faculty of organization and informatics. I will be always proud that I'm part of you... And of course thank you all members of educational institutions where I had internship during the study. To conclude, thank you all who were with me during my study. You've taught me a lot, I'll continue to learn and fight to make a difference in this world as dean said.... See you sometimes and thank you again...


subota, 23. ožujka 2013.

Entrepreneurship or not

Recently I had chance to attend entrepreneurial courses which were offered at Coursera:

First course (Developing innovative ideas for new companies) was focused on new startup companies. From the idea development to the financial analysis.  If I haven't listened to that course I would probably rush with the first idea that came to my mind. Starting a company is not an easy task even if it looks like that. Individual can think that some idea that he/she has is viable and that they can cope with it. Think twice or 10 times before you can really say that your idea is viable and that it has chances to survive in market that has no mercy. So, before starting a company there should be: thorough analysis of market and its segmentation, analysis if an idea or future product will or will not succeed in market, detailed business plan, detailed financial analysis for 3-5 years. Not forgetting to mention that you have to have people with whom you can work with and really relay on - that is the most difficult part. It is not easy to find people that will invest same amount of time, enthusiasm and work or even more than you will... It takes time.... Second, if you don't have money or if you don't know a lot of people you are doomed as well, that breakthrough will take much longer time. Some people say that it is good to pitch investors but on the other course (Grow to greatness: Smart growth for private business) I have learned that investors are not always the bright idea. You see, when you have investors you have partners from the start who will push you faster than it is normal that one young company has to grow. As professor Hess said: "Not all growth is good. It can overwhelm people, processes and control." To put it simple you might find yourself doing more than you can cope with. Consequence of that is losing quality and potential customers. To quote professor Hess again: "Customers won't loving care!" So, play smart and easy on the  gas pedal called business growth. 

That second course was actually an upgrade for the first one because it taught me how to run company, how to grow step by step. 

Am I ready for starting my own company now?  Some people would say: "Give yourself a permission to be ambitious."  I am giving myself that permission but step at the time. It is not smart to rush with the first idea, sometimes not even with 10th idea. I had several of them but after those courses and a lot of thinking I realized that these ideas were existing or too big for me to cope with. So, I'll keep on thinking. Maybe I'll find some problem as they call it that I can cope with. At least for now I have a good entrepreneurial fondation that I can use. 

srijeda, 6. ožujka 2013.

Croatian Linux Users' Convention 2013 - organization in progress

Croatian Linux Users' Convention or better known as DORS/CLUC is coming again. This year DORS/CLUC is celebrating 20th birthday... Boy, that reminds me on 20 years of Linux :)  

So, this is my second year of being involved in organization. That part is always the best. Yes you have a rush and you have a worry all the way through. But that's true magic of organizing and preparation of some event (FLOSS related in this case) and I wouldn't change it for a world. 

Again I'm surrounded with great and experienced team. Although this is my second year I'm still learning. If you ask me If I could do this without experienced mentors I have. I would say: Yes but with a lots of struggle and it would take me much more time. I still don't have that security, my experience hasn't matured yet, there's still a lot of connections to be made so I could get to the point that a lot of folks know me and that I wouldn't have to be afraid will I pull something like this off or not..... 

Even with a lot of experience you have a worry every single time. I've noticed that by cooperating with much more experienced people than I am. And that is normal. Every organization of such an event brings something new for you to cope with. 

I hope everything will be fine. As Linus Torvalds said once: "When you go through some journey towards some goal you realize in the end that journey was more important than goal itself."  And he is so right. Organizing part of  DORS/CLUC is very intensive and great at the same time. The goal i.e. those three days which will happen in May will go so fastly as they did last year :) And I will catch myself again saying: Why does it last so short? Forgetting all those thousands of exchanged e-mails before the convention between organizing team, keynote speakers, sponsors, volunteers ..... 

If you are interested in this convention visit official web page and join in as a keynote speaker, sponsor, media cover or volunteer.. 

Here's a DORS/CLUC 2013 video for the end so you could see one little slice what this convention presents. Of course more details you can find on the already mentioned official web page of the convention. 







nedjelja, 24. veljače 2013.

How to get involved with open source world

This post is "work in progress"....  I have to finish it first localy and than you'll be updated here....

Edit: post is done....

My friend inspired me to write this by asking me one question... He asked are there any detailed books about Ubuntu.... Got to admit it that I wasn't looking for them because I didn't need them..... So this post will be kind of a mixture - books that I found and real deal i.e. getting involved which is way better than books if you ask me..... But with the accent on time O.K.? You have to have time.... I do have a will but no time to dedicate myself to it completely..... I hope everything will get normal soon for me or more calm... It's a bit of a rush now because of the job search and other obligations...If it won't get calm, I'll keep on searching and learning new things till I find my happyness as Will Smith did on the film called Pursuit of Happyness ... Yeah, it is spelled wrong but on purpose...

(This is a clip from the film, not original but it says how I feel and how I want to feel)....



How to start ? 


So you are new kid in town called free and open source technologies. You are struggling which GNU/Linux based distribution to choose. For a start I suggest that you try out some user friendly distributions like Ubuntu and its derivatives Xubuntu, Lubuntu, Edubuntu, Mint....

Here is a lovely preview of Ubuntu 12.04 so you could get to know it's graphical user interface. 



 There are more than 300 GNU/Linux based distributions for you to choose and play with till you find your perfect match. Each and every one of them is special on it's own way and it is meant for certain audience (basic users, programmers, artists .....) You probably know in which group you belong. What is great here that you are not obliged to install those distributions. You can make yourself a bootable CD or DVD or USB (this depends on a size of distribution's .iso and your computer's capabilities - BIOS options, strength of graphical card, memory strength etc....)  You will figure it out as you will play along with it. 

It is strongly recommended that you firstly study what you are going to do or install. If you are not sure what you are doing than it is good to ask someone who is more experienced. That leads us to the next level and it is called getting yourself involved into some FLOSS community. You probably have in your country some groups or associations which are related to Linux and the rest of the free and open source technologies. In Croatia you have Croatian Linux Users' Association, Croatian association for open systems and Internet, Linux for everybody portal. These are just some mentioned here. 

It is good to visit them first (depends where you live) and ask them questions about how can you do certain things with some of  the GNU/Linux based distro. Further more you can ask them other questions related to other free and open source technologies. 

As time will go by you will see whether you like being surrounded with Linux geeks (this is a compliment - so somebody won't get offended) or this  is not what you want. I personally love being surrounded with them because I always learn something new, always some new technology pops out. 

If you have decided that this is for you and you want to go further. O.K. than. Now you are probably ready to go to the phase called give something in return to FLOSS community. You can do that by just asking those same GNU/Linux related groups or associations how can you help them. Soon you will find yourself working on some FLOSS project or you will help to organize some install fests for certain distro or something bigger like Linux conventions, or give some workshops/lectures for people who are on the start goal where you were, or ....... There's a lots of or's  i.e. this list how to get involved is endless. FLOSS communities are endless (from Linux associations and groups to specific communities related to some open source tool or some GNU/Linux operating system). Open source projects to work on, same story... 

What will you get?: 
  • New people in your life (not only in your hometown but from the other side of the world and you don't even have to leave your own room.)
  • Experience
  • Constant learning
Options how to get involved are endless and it is up to you whether you will do that step called "How can I get involved." 

You will come to the point when you will be overwhelmed  - then it is time to do a break.... But afterwards if you still feel the same i.e. that you belong to FLOSS world you will come back trust me..... From personal experience I can tell you - Once you get yourself involved it is hard to leave all that because it really energizes and fulfills a person.... 

Oh yeah, I mentioned Ubuntu books in first paragraph of this post .... Forget them.... This is what I told friend of mine.... and not only that... I also told him: If you really want to  know  Ubuntu profoundly or any other distro get yourself involved into their community. This is the best way to really learn. There are plenty of books, just type Ubuntu books keyword in Google or some other search engine and there you go.... I'm not saying that books are bad but learning process is better if you are actually working on some project.... Whether that be Ubuntu or something else ... It doesn't matter.. That's actually your choice...