Past Two Months…

This place has been quite inactive since the past two months. I have not been in hibernation, but didnt have too much to post about. Two months down the line, I have enough material that warrants a post, though will not make it too long

GSoC:
This is one part I am very excited about. openSUSE made it to this year’s GSoC, and is well poised to get awesome student contributors. Participating with us Hedgewars, ownCloud, Balabit (makers of syslog-ng). This has been quite awesome, as it points towards openSUSE as an umbrella organization. I am hoping participation of openSUSE is successful and fruitful.

1-Click Installer:
This is one major regret. I have not been able to put in much effort towards continuing making the installer, because my laptop developed severe problems. A faulty VGA chip and heat sink led to thermal shutdowns, and simply running Qt Creator (or any other IDE for that matter) was leading to thermal shutdowns. This has now been resolved, and my system is back on Track. I am planning to resume work very shortly, and will spend a lot of time on it. I plan to make it ready by the 13.1 release of openSUSE

Honeywell:
Work has been quite exciting at Honeywell. At times tiring, but very fruitful. I learnt a lot during my time here, mostly about Flight systems and Design of large software in general. As my time here is nearing completion, I think I did some pretty cool work here too.

GRE:
I am planning to pursue my Masters in the next two to three years, and hope to have good GRE scores by then. I have my exams scheduled in a months time, and my preparation is in full swing.

oSC/openSUSE:
I have planned to attend the openSUSE Conference in July, and have already registered for it. Last year’s oSC was an awesome event, and I hope it is even better this time. For the Indian openSUSE Community, I am planning to create a Meetup Group, to interact with openSUSE users and Contributors regularly. I will give it shape in the coming days

openSUSE in GSoC 2013

openSUSE is ready to rock Google Summer of Code this year. openSUSE figures in the list of 177 organizations for this years programme. This year promises to be very exciting, with a wide variety of projects on the ideas page relating to OBS, Virtualization to name a few. This year also promises to be bigger for the project as a whole, with openSUSE coparticipating with other organizations such as BalaBit (makers of syslog-ng), Hedgewars, ownCloud among others. Interest is quite high among students, and GSoC is quite an active topic for discussion on the Mailing List and IRC.

If you are a student interested in contributing to openSUSE, then Google Summer of Code is an awesome platform. You can start by looking at our ideas page, and catch us on #opensuse-project on Freenode (IRC) and our opensuse-project mailing list. Happy Contributing!!!

Open Source 101 at NIT Trichy

This post is long overdue. I had the pleasure of taking a workshop titled ‘Open Source 101′ at NIT Trichy sometime back. It was an amazing experience. Till the time, I had only taken workshops and talks at my college, not counting an impromptu talk at PyCon 2011. I was somewhat nervous due to this fact, but open source is a topic on which I can talk at hours at length. I have discovered myself to be an evangelist, who will try to change the software philosophy of people I interact with. That was the focus of the workshop – To introduce people to the world of Open Source. I took a short introduction to the the terminologies involved, common misconceptions (you cannot make money with OSS etc), and then took their questions. This was an interesting part of the whole event. The attendees threw all sorts of questions at me, some of which I expected (considering I had asked some of them myself ;) ).

I also covered Open Source Licenses, specifically GPL, BSD. I had an interesting conversation with an attendee, Gokul. We had a good discussion about licenses. He is a firm believer in the GPL and told me about FSF membership, which I am considering taking up.

After licenses, I took up a discussion on Google Summer of Code, specifically to openSUSE. Many people were aware of the programme, and were eager to know more about it. I took their queries, and tried to answer them to the best of my knowledge. Most of them were about how to prepare, how to select an organisation etc. My answer to the second one – Select one which you actually use ;) I also gave some tips, some of which were useful to me in my own time. I also spoke at length about the openSUSE community, which I am fondly involved with. I spoke about openSUSE’s stability, and the fantastic community that we have.

Then we moved onto a hands on with Git and Github. I tried to make it as hands on as possible. I started with the basics of Version Control, its need, and the awesomeness of Git. I had taken a similar session in my university some time back, and I took it in a similar fashion. Overall, this was probably the most fun part of the workshop.

I ended the workshop by taking half an hour on writing Linux Patches. I had been interesting in contributing to the kernel since the time I watched Greg Kroah Hartman’s talk about the same at FOSDEM. I tried to cover similar aspects, with slightly more emphasis on writing a patch, rather than the kernel specifics.

After four and a half hours, I was having some difficulty in speaking, having never spoken for this long. The workshop was well received by the attendees, and the organizers. I am thankful to GDG-NIT Trichy, Jeh Agarwal, Vikash Agrawal (for whom I was deputizing for in the first place) for the opportunity. It was a great experience for me, and I gained a lot of confidence from it. I would welcome further opportunities like this.

Flip Bits…Not Burgers – GSoC 2013

GSoC 2013 has been announced for this year. This gives an opportunity for students accross the globe to associate themselves with an open source organization and work on cool stuff in the summer. I had an opportunity to participate in last year’s programme, and had an awesome experience. This year, it will not be possible for me to participate, but I am trying to get involved by working with the openSUSE project, trying to get ideas, projects, mentors and most importantly…Students.

The openSUSE project has been a regular participant in the programme and has beniffited a lot from it. This year also, it aims to participate. As of now, me, Manu Gupta and Matt Barringer are working on preparing the ideas page, and finding mentors for the projects. If you have an awesome idea that could really benefit the openSUSE project, please add it to the ideas page.

https://en.opensuse.org/openSUSE:GSOC_ideas

If you are willing to mentor for a project, please let us know

If you are a student who is willing to participate with openSUSE, then keep a watch on the ideas page, and activity on the Mailing Lists, IRC channels. Feel free to contact us for any questions. We would be happy to help.

How not to perform 1-Click Installations

This is not one of my status updates with my variant of the 1-Click installer, but 1-Click installations on openSUSE as a whole. A bit of carelessness while using the system caused me a lot of pain. So this article is about – How NOT to perform 1-Click installations.

It began with the simple need to install MonoDevelop. As always, searching on software.opensuse.org got the ymp file for me. Due to carelessness, I downloaded the ymp for version 12.2, when I am using version 12.1. Due to AMD pulling support for my ATI card, the new version of KDE would not run on my system, along with the new catalyst driver. I added the repository, and installed MonoDevelop. All seemed fine, till I performed a system update, causing me to install openSUSE 12.2 software.

I realised only after a long time, when I woke up to a broken system, which didnt allow me to start the X server. I tried to use YaST to downgrade to openSUSE 12.1, but I still was not able to start the X server. I decided to reinstall, but again some slight carelessness cost me. I am usually quite comfortable at the terminal, and taking a mundane backup using the terminal didnt seem like a big deal. After copying files, I forgot to check whether the files were actually copied in the destination. Due to space constraints, the copy operation had failed. On reinstallation, I lost a truckload of data.

Lessons learnt:
1.) Always check that the ymp file is for your version of the distribution
2.) Uncheck ‘Subscribe to Repositories’ for most of the repos. (This could have saved my system!)

Despite the unfortunate incident, I am a big fan of the One Click Install mechanism, and feel it is a good system to attract new users, and help them acclimatise with the new environment. It is just that a certain amount of care has to be taken in using it.

Cancelling Installation – A DBus Implementation

This was a problem bugging me since quite some time. The cancel installation was not implemented properly. I was just closing the frontend on the click of the close button, creating a terrifying zombie, and creating the illusion that the installation cancels, when in fact it succeeds. the underlying problem was that the backend, which is a root level process, and spawns zypper, which is another (root level process) must be terminated by the frontend, which is a user level process.

I thought of many approaches for accomplishing this:

1.) Brute Force file based approach using QFileSystemWatcher
2.) QSharedMemory
3.) DBus

I did not want to go in for a file based approach, considering its inefficiencies, and that I was just creating too many files. With QSharedMemory, I ran into problems, that I couldnt have a callback on change of a variable, which I had planned.

Enter DBus. I was initially hesitant to use this approach, as I was not very comfortable with it. I was helped a great deal by my mentor, and a friend Srijan Mukherjee, who is a fellow intern at Honeywell. I created a base DBus skeleton, and attached it to my existing code. Voila! It works now, and is awaiting review by my mentor. A huge headache is over!

A really short update

So I had been really short of time in the previous months, and the hours put in the installer were pretty less. Now, after settling in Bangalore for my internship, I have found time to work towards the project both during the week and on weekends. Recently, i committed the progress module to the master branch, and will soon create the binary packages for openSUSE 12.2 and also for 12.3. Surprisingly, the build fails for openSUSE 12.1 for the same spec file, and this needs to be sorted out soon. A tasks which requires my immediate attention is to handle the cancel button, which doesnt behave quite as expected. This should be done in the coming week.