nedjelja, 16. ožujka 2014.

First virtual day of free, libre and open source technologies

After almost a month of preparations my colleagues and I have held first virtual day of free, libre and open source technologies. Got to say that this took time and energy like you were preparing some mini conference, the only difference is that it was virtual.

Here is the video and I'll describe briefly below the video what does this virtual day present to all of us.




To explain the event, Virtual day of free, libre and open source technologies serves to promote/present FLOSS technology world to Croatian audience.

What actually motivated us to run this event? Well, there are several reasons why this virtual event happened:

  • Last year we should have presented free, libre and open source technologies at INFO 2013 Fair. Unfortunately that fair has been canceled due to a small interest of people who would present themselves there and in general that fair doesn't have a lot of visitors unlike gaming fair. Sad but true. 
  • Second reason is to promote free, libre and open source technology world in a different way then we would do it live at INFO Fair and similar events
  • Third reason is to open ourselves more to the public and try to diminish wrong believes where people think that everything what is free and open source has lesser value. 
Keynotes that were held:

How and why would someone get involved into free, libre and open source technology world, keynoters (Lucija, Pilić and me)
OpenStreetMap Croatia -free world map, keynoter - Matija Nalis
NetBeans and GDB on Linux, keynoter - Domagoj Stolfa
Project Open Network, keynoter, Valent Turković

To conclude, I'm very happy that this event happened and I hope there will be interest for more events like this one.

Happy Linuxing

utorak, 31. prosinca 2013.

Happy GNU/Linux 2014 Year

This year was even better than year 2012

Here are highlights of year 2013


Visited  president of Croatia with my colleagues in January

Linux Kernel hacking with Greg Kroah-Hartman, Sarah Sharp and many other Linux mentors and many cool Linux girls in May

Organized and held DORS/CLUC 2013 convention with my colleagues in May

The biggest highlight to me are my first jobs starting from June. Work at Gymnasium was my first starting point and I will always be thankful to Bibijana Šlogar (principal of Gymnasium) who accepted me to get my first steps in real work. Many thanks to her and the rest of the Gymnasium team. 

 Work at TeamSnap..... Now that is a chance that I still can't differ is it a dream or is it real. Really, hats down to my mentors for giving me a chance to learn from the best team this year. Jamie Oliver is my favorite Chef in real kitchen but Mark Cornick, Wade Minter and Geoff Brodinak are my favorite Chefs in virtual kitchen. (Those who are familiar with sysadmin automation tools will get what I wanted to say). 

What about year 2014? As usual I wish for more FLOSS in Croatia and abroad, many opportunities for everyone in different areas and may the source be with us!





subota, 7. rujna 2013.

Dear ladies how about an open source career?

Dear ladies,

Getting a career in IT world can be a struggle for women  - that should be acknowledged. Not every company will be welcoming/friendly. IT society also and that includes open source society as well. Somewhere you will find an acceptance somewhere you will hit the human brick wall as Randy Pausch said. 

 But hey, that's life. 

If you are in an IT world and even better if  you have an IT background you know what I am talking about.

So, you are a lady and you would like to have a career in IT world but you are struggling somehow. I think I can help you.

Free and open source technology world offers much more than a proprietary world and that also doesn't need proves. You can join projects, work with people and show what you are made of and in case you didn't know, you can develop a career in that world.

You can start as a volunteer and eventually someone will notice you. That's one way. Maybe it is a harder/longer way but it is a good way. IT companies will appreciate that - trust me. If they'll see on your CV that you are an active person who doesn't wait for opportunities but makes them than you are on a good way to make a career. Also, do not be afraid of making risks. Push your limits every day. 

The other (slightly faster?) way  is applying for an internship that Open Source companies offer. How to do that? Please read an article about Outreach Program for Women. If you have read it you have noticed important dates when next round for applying will be up and running. That is your chance. Grab it with both hands. 

I'm giving you a heads up to start preparing for an internship because it won't be easy. I didn't make it in May because I needed more background in Linux kernel hacking and didn't have time to dedicate myself enough because I was overloaded with DORS/CLUC 2013 convention preparations.

Start learning now, start researching and prepare yourself. Even if you fail at first as I did don't make it stop you. Apply for the next round because you will know what will be expected from you. Application process and first contribution may seem easy at first glance but they are not. It is intensive, you will have competitors who will be stronger than you etc...etc... 

After first Linux kernel Hacking I had a plan in my head that I would apply for the next round but certain people changed  my life. I got an opportunity for an open source career which I think that suits my personality better. Being a system administrator enables me to touch many different areas - from monitoring and analysis to hacking and going through lots of different technology. 

So, getting an open source (IT) career can be a struggle but it is definitely doable.  Everything depends on you and your will. It doesn't matter how you start. It matters that you start!







nedjelja, 7. srpnja 2013.

First job/s

I know, I have been silent on this blog since May but I had a good reason to be silent. After the  DORS/CLUC 2013 convention I continued my quest of finding real jobs. I nearly lost every hope but then came the sun i.e. opportunities I would have never dreamed of.

First job was at Gymnasium Antuna Gustava Matoša in Zabok. "Was" because It lasted only for a month. You'll see later why. So, at Gymnasium my position was information expert intern which involved: helping teachers to use technology easier, web maintenance, computers maintenance... Most of that time I was a help support for teachers and have to tell you that I quite enjoyed in it. It was a good jumping start, welcoming people, positive atmosphere but I had to let them go. Why? Second job is the reason why. Also,  I have realized that I can't do two jobs at once. I was too exhausted and had headaches because I was sleepless.

So, second job is system administration internship at TeamSnap company which is based in Colorado. OK I didn't move to Colorado :)  - I work from home.  I better pinch myself again to make sure that this is real. :) You see, I always had a dream to work somewhere where I could speak English every day. You know what, I got that chance in the best possible way. It all started at Ubuntu women mailing list when Jenny Shedd TeamSnap's recruiting consultant posted job vacancy for a Jr. Linux System Administrator. I had to apply. First of she told me: "Sorry we are only looking for people from US but I'll ask my boss." OK, I said thanks for a chance (didn't hope for anything.) But after several hours I got response: "We can test you if you are interested." ... Holy moly, of course I accepted. I didn't do quite well since my knowledge with servers administration was really low. Said to myself, nice, I wasted their and my time plus I embarrased myself.

Then the most positive mail I ever saw came from Wade Minter, he is a CTO at TeamSnap. Really encouraging mail not to give up and to continue learning. Of course I thanked the man but my curious nature had to ask if they offer internships for n00bs like me. I wasn't expecting anything because on previous interviews (in my country) people thanked me and that was it.... What a surprise it was when I got positive answer from Wade around internship and that's how it all started to roll.

Currently I have two weeks behind me at TeamSnap. Really cool company and people and great working environment. Do I have to mention that most of the technology they use is FLOSS technology? If you know me you will understand how happy that makes me --> big time because I can use free and open source software at work as well not only for personal stuff.

I know, I know this is an internship position and who knows what chances are there going to be after internship finishes but hey, this is a fantastic chance not to be missed but embraced with both hands. This is a chance to upgrade knowledge considering servers administration and FLOSS technology in general.

Oh yeah, once I get into a routine with the job I'll continue volunteering in FLOSS world with full strength. Now I decreased volunteering  because job is No. #1 and there is a lot to be learned.

For a conclusion,  Linus Torvalds said (and I can completely relate with that sentence): "I love the technology." Would add FLOSS technology :)

See'ya on the next post.





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. 


From left to right: me, Svebor Prstačić, Ivan Guštin, Kristijan Zimmer
(photo courtesy: Krešimir Kroflin)



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