Debutsav 2014 Experiences – Day 2
This will be the last post in series on Debutsav 2014 held at Amrita University and consequently will be biggish.
As shared in the last blog post as well, the day started with Anup making sure that all of us were awake and had our bed tea. As most (or almost all) of us had slept late as quite a few of us know/knew each other and wanted to make most of the precious time left to know what is/was happening in each other’s professional and personal lives time had just gone by. Anyways, the early morning was routine as can be said from the day before, we had our breakfast and then reached the University around 9:30 a.m. We had a breakfast and the actual sessions for the day started at 10:00 hrs.
The first session of the day was given by Mr. Gokul S. for C-DAC for BOSS GNU/Linux. He shared the desktop and shared a bit about how they have started to use private git repos. within the organization this year itself. I was shocked, flabbergasted to know that a premier institute like C-DAC did this so late, but guess better late than never. Mr. Gokul shared that the new version of BOSS Linux would be available soon, which didn’t make sense of it. I suggested to him to suggest to the C-DAC people to follow Debian life-cycle and support our en-devour of having a short RC cycle so that Debian stable Jessie is soon available to everyone. A shorter RC (Release Candidate bugs removal cycle) would be appreciated by everyone within Debian as well as all those distributions which use Debian as the source. https://udd.debian.org/bugs.cgi?release=jessie_and_sid&patch=ign&merged=ign&done=ign&fnewerval=7&rc=1&sortby=id&sorto=asc&ctags=1&ctags=1&cdeferred=1#results is a good way to work on some of those bugs. Some of the bugs can be worked upon by students of Amrita University as well as anybody else who might have interest in seeing Debian release Jessie faster.
On the security front-end he shared some of the basic steps that can be taken as in having a BIOS password, disabling shadow passwords and other such steps. He was critical of cryptsetup as the encryption is that good that if you manage to lose your pass-phrase then the data is gone. I was thinking he would be talking/sharing about things like RSA algorithm and related encryption, cryptography subjects but that was not to be. There is a lot of work which is still to be done in that area and information at least in India is pathetic, as of now but that’s tale for another day.
The session was a small, quick one. I went out to have a quick cup of tea, coffee and missed the inaugural part of Ishaan’s talk on ‘Change the Rules’. Ishaan tried to frame the issues involved in the context of British rule and does they bringing in some changes and technology justify the rule over us which for some reason unknown, the students didn’t get it. Mr. Arun Kelkar, then on Ishaan’s behalf took the situation and went sharing into the details therein. As Ishaan was unsure, I also had to help out. The main issue which for us is this :-
Let’s say I go to buy a car in India, I can choose to buy it in all colors with the accessories I want (or not), with the option to have a Petrol model or a Diesel model (in future as in west) or an electric one. Now the shop-owner will not deliberately give fewer features to the Diesel one to sell Petrol ones as he is supposed to be neutral whichever sell more. This is exactly what is missing in the laptop market as most lappies which are available in the market with good specs. and good price are bundled with MS-Windows.
The ones which are available having either MS-DOS/DR-DOS or any DOS or GNU/Linux distribution are both under-powered (as in specifications viz-a-viz lappies which have MS-Windows pre-installed) and are also pricier without any accountability as to why it’s pricier (should be cheaper right) as compared to the models with MS-Windows integrated.On top of it the version you are getting on the lappy is not free and you are shelling out close to Rs. 3000/- or Rs. 4000/- extra on top of the lappy which is an unnecessary expense.
Apart from that, it also makes it harder for people to install other Operating Systems into the system. In fact, some of the hardware vendors would drop support if you install any other Operating System. This is wrong on so many levels. The software that is provided has no warranty which means if something goes wrong you can’t sue the software company and bugs, exploits, viruses are dime a dozen from boot viruses, macro viruses, worms etc. to if you are using MS-Windows. Also, the recovery CD which is sometimes given only works on MS-Windows and that too with a specific license copy. I don’t know if this has changed or not but with the older versions if you had installed/re-installed the OS, once too often, then the license key would refuse to work. All of which work against User and the rights they should have the system.
If we take the car system, then changing the accessories or servicing is often to optimize would make the car refuse to start. This would be unbelievable in hardware such as a car, but somehow is accepted in software environments.
My own example – I can spend Rs. 50k/60k on a good lappy with the latest specs and a deb-based distro. but such lappies don’t have a good graphics card.I want the best graphic card I can get within a certain price range. I could hack/reverse-engineer and get the best drivers working for my lappy but will buy a lappy only when such solutions exist as well as support is available. Something like system76.com for India. There are other issues as what Apple (makers of Macintosh) have been doing, they have been making a single
Me, Praveen and quite a few of us are striving to use and ask people to use h-node.org to see how many people’s lappies work with free software and report it. The idea is to have one or two models which we could tell people as the ideal model where free software works and compel both individuals as well as companies to buy those systems in whichever way we can accomplish. The only way we can reverse the current trend is by doing something like this.
After Ishaan’s talk Balasankar or Bala took the stage. He has been a localization expert as far as I remember/the first time I met him some 4-5 years back. The idea of localization and internationalization is to have the software in as many languages as possible. The basic idea is first to make sure that your software isn’t hardwired to only have software in one language (i18n) and once you have done that, you can invite/ask people to add as many .po files as they want. Most packages have .po files done via poedit. Sharing some lines of a .po file :-
msgid "\"Welcome! Take a look around.\""
msgstr "\"¡Bienvenido! Echa un vistazo.\""
This is from a game project I used to contribute (more in QA and ideas though, nowadays don’t simply due to lack of time) called valyriatear . It’s an RPG game and basically the moment the character enters a shop it will trigger the dialogue shared above. For the person who speaks spanish it will instead show that dialogue. Essentially, if you are native language skills are good and can write the language in computing, you can use the same skill-set to translate softwares in your language and make the software being used by more and more people. Sharing list of .po files from a debian package so people know what to look for.
$ dpkg -L python-django | grep '\.po' | more
Frankly speaking, whatever I know about localization is pretty little. The best way to know about it to open a .po file and look at the strings contained in the .po file. The main tool is poedit.
As can be seen there is a bit which is not translated as yet. Just uploaded this screenshot just for this purpose (meanwhile also helping screenshots.debian.net in getting a new version of the image.) Getting this window is as simple as :-
$ poedit /usr/lib/python2.7/dist-packages/django/conf/locale/hi/LC_MESSAGES/django.po
You could just go to /usr/lib/python2.7/dist-packages/django/conf/locale/ and just see the number of languages therein. The one which I used shows me 88 languages/locales and 2 files.
The .po file I showed you might be old as I have shown the one in testing, in unstable/sid the version of python-django is different.
$ apt-show-versions -a python-django
python-django:all 1.7-3 install ok installed
python-django:all 1.7-3 jessie http.debian.net
No testing-updates version
python-django:all 1.7.1-1 unstable http.debian.net
No experimental version
python-django:all/jessie 1.7-3 uptodate
You can view the latest/master at any point in time by looking at https://www.debian.org/international/l10n/po/hi to know the latest state of the language you are interested in. For instance this is the link for Indian Malayalam https://www.debian.org/international/l10n/po/ml_IN . As can be seen Indian Malayalam is in much better position than Hindi. I’m sure Bala might have also shared about transifex
I didn’t follow Bala’s talk as I’m not much inclined towards localization and dunno much anyway. The only comment I heard from him when his talk was over that he was unable to show all due to Net slowness. As had shared before, if we have had a debian repo. these issues would not have come up.
Then we broke for lunch. After lunch, Priyanka showcased Scrollback properly this time.
I managed to get a sneak-peak at the github code and saw there were lot of back-ends apart from IRC. As this is a web-based service, I suspect one of the big ways they will be thinking of making money is by having exclusive scrollback experience with various sites and having private chats. Whether that and having AI make decisions on tags and binding conversations to those tags would be a hit or miss would only be known in the long-run. As a concept I liked it, would like to see it develop much further.
Then after a while, Krishnakant a.k.a. KK, Mr. Arun Kelkar and Ishaan from Digital Freedom Foundation unveiled GnuKhata version 1.0 at debutsav. They were having some last-minute niggling issues and hence instead of launching it via the shell, it was launched from inside Eclipse. Mr. Kelkar tried his best to share about financial accounting practices but as nobody other than yours truly has been a B.Com graduate, it went above most C.S. students. The UI could be more pretty and hovering should have explanations, apart from that it looked cool. I wished Mr. Kelkar could have got access to people having Accounts background so they could have a fruitful discussion and also wished KK had given more of behind-the-scenes code which makes all of it possible but that was not to be. He would have probably required 2-3 hours and most of the Speakers, i.e. me, KK, Praveen, Bala etc. also wanted to hear presentations of students so we cut short our presentations so the students could also talk about whatever projects or bug-fixes they had done.
From Amrita side, the first presentation was given by Darshana on Git for humans. There are and were quite a few gaps in their understanding as well as explanation of DVCS versus centralized way of development. One of the main reasons why git and mercurial have been standard tools that each person can fork an existing project and do development. The social skills which were needed in the old model to get your patch accepted in the main tree are not there much. If some members of a project are not happy with the processes, procedures or personality/ego clashes they can fork and do their own development and at times still share code with each other. While there are many notables in this area, the LibreOffice fork from OpenOffice would be the first one that comes to mind in recent memory. There were other issues as how internally git manages objects and trees but didn’t feel inclined to correct her. I’m sure in due course she would find how things actually work.
What I did object and sort of made her understand why branching is done in git (another great feature) and merging those to the main/master/trunk tree . This is again so cheap. Both of these concepts were unclear and I did help clear it up. The simplest example could be you have a program which counts for e.g. how many transactions are entered into a spread-sheet. Now, this is a linear operation. What if the number of transactions become more than the processing can be done by the program, so you could make a branch where you could code and try to figure out if parallel processing of the transactions can happen and if that works out you merge it to main tree/trunk/master. In this way other development on the main tree/trunk/master does not stop and if the feature doesn’t work out, you can simply throw it away keeping the code-base small. I am sure there are other examples that people can use to show how branching works/ed for them in their various projects as well.
The next one which I was able to get was ‘Contribution to Linux Kernel’ by Tina Johnson. While I could see that she understood the process of how a new version of a kernel is churned out every 3 months and how work is segregated between each subsystem maintainer, I was turned off quite a bit with her offishness about the presentation. She tried to share Coccinelle and was 50-50 in that. A good explanation of what Coccinelle can do can be seen in this somewhat dated post shared on lwn.net years ago. The best way for her to realize what she was doing wrong would probably to have a friend video record the talk so she could see how her body language was during the talk/presentation.
The next presentation that followed was ‘Why ZSH is better than BASH’ . The Z Shell came to public consciousness in a big way only when the Shellshock bug was discovered about couple of months back. It was a good presentation as she shared about the oh-my-zsh repo. She was decent. She showed some of the git commands which are integrated in the shell itself as well showed coloured shell-prompt. I wish she had shared some more differences between bash,dash and ZSH but even then it was ok. The only thing I wish she was a bit more aggressive, bit more passionate about whatever they were presenting. If you have the passion that everybody in the world should be using ZSH that brings up discussions, rants and whatever which makes the overall presentation a much nicer experience for everybody.
Then next we continued with our session from the first day. I was supposed to give some info. about the Debian BTS, how to file bugs etc. and was under the delusion still that the audience in front of me did know of some GNU/Linux basics. I asked about the file layout structure in GNU/Linux. I was met with pin-trop silence. I repeated it couple of times hoping to meet with some success but not a single voice went up. I hadn’t prepared for showing off the file-layout structure both in matter of time and viz-a-viz relationships with MS-Windows. I showed up / and showed up what contains in each sub-directory but didn’t really have time to be thorough.
bin data etc initrd.img lib32 lost+found mnt proc run srv tmp var
boot dev home lib lib64 media opt root sbin sys usr vmlinuz
I did share that lib64 (or lib32) has the maximum .so library files which is similar to MS-Windows .dll files and things like that. If I had some idea before-hand, it would have taken me 10 minutes of reading to get the MS-Windows relationships figured out. I have been away from MS-Windows that have forgotten which files are kept where. If I knew I would have done some changes in each of the sub-directories (edit some files) and they would have understood how things work. I dunno how many people might have got the packaging part when they didn’t know basic Linux directory structure, file ownership and permissions and generally know where is what.
After the sort intro. how packages enter the repo., the baking/bug-reporting time and then finally moving to unstable/sid and then testing/next release. We started with the same installation session of diaspora pod on local machines and couple of the students in due course were able to get the pod running. We weren’t able to check if the pod was connecting as all of this was being on VM. We could have bridged the connection between the host and the guest OS but all of us were feeling extremely lazy. We used the info. that everything worked and they were able to have the database up, the daemon was running and everything was looking smooth at the server end. We didn’t have to say anything as people had realized by themselves why packaging is so important.
Then Praveen started the Packaging session. As I feeling a bit tired by this time, went for a break again and came to know that a certain Sarup Banskota was taking a ‘Contributing to Fedora’ session. I went to his session as I wanted to see what the fedora community was upto. Me and Sarup had just met just that day and I had known that he liked to work at UI/design and we knew some of the people in the community whom we thought were great for the contributions made by them from a design perspective and just being good cross-community people. I was surprised when he shared that github was the first to have a bug-ticketing system and everything that github did was innovation. I was embarrassed but had to correct him. Bug-ticketing was way before github got the action. People forget that there was freshmeat, sourceforge.net and quite a few others which did all that github does. What github innovated was in the visualization a bit, not anything else. The bug-ticketing system that Sarup is/was proud of is way below par as it needs markdown and doesn’t have a GUI toobar till date.
A good bug-tracking system would be something like Reportbug and add some sort of tagging to it. Tags are great way specially in complex software like libreoffice, 0ad, iceweasel,mediawiki etc. and other such software which need a myriad number of components for it to work smoothly. This would be in-line how stack sites work today and it would definitely be easier to get more eyes on a certain feature/topic than most of the existing tools and systems allow. While sourceforge.net, bugzilla went one way with categories and all (making it complex for people who don’t know the tools) github went the other way and tried to simplify it a bit too much without taking into account the sort of softwares that might be using it services one day.
Anyways, after that session, we had a closing remarks session where both me and Praveen some things we would like the students to participate and do. One of the things is obviously running their own pod, Amrita pod so they could do all their fun press releases while having complete control over what content they want to pass over third-parties which is next to impossible with social media sites like Facebook and others alike.
We had a small presentation ceremony as well where Amrita University presented some momentos as well as we presented a couple of T-shirts to people who were able to complete the pod (as in get the service running even though we were unable to connect to check from client side) . I was hoping to share the blog post last week, were hoping some photos will materialize but that seems not to be happening. I hope some students enhanced their understandings about Debian and FOSS even though it would have been loads better if we had thought that students would probably not know the basics 😦
a. The photos are courtesy Priyanka Nag (Evangelist at scrollback, Mozilla Rep. and a friend), and Anup Kumar (student, a Mozilla contributor, photographer and a friend.) . I have asked both of them to share the photos are under CC-SA-3.0 Unported license but that’s upto them.
b. Thanks to Debian.org for sponsoring my travel to and fro for the event.
c. Thanks to the various sponsors, C-DAC , ICFOSS, NIXI for making the event happen. It wouldn’t have happened without your generous support.
d. Thanks to Mr. Vipin (although we couldn’t meet), Mr. Bipin, Miss Aishwarya (both staff at Amrita) and the whole volunteer team at Amrita, they also played a huge-role in making sure that we were fed, on-time and generally didn’t make a nuisance of ourselves (at least I hope so :).
That’s it from Debutsav at Amrita University 🙂