Talk on ABI Compatibility in FUDCon, Pune

I am happy and excited to attend FUCon APAC 2015. It is a Fedora user and developer conference with wide varieties of talks on topics like packaging, QA, design, documentation, etc. This year, it is happening in MIT College of Engineering, Pune, India from 26th June to 28th June. Schedule of FUDCon is already up and you can choose in advance what all talks you want to attend. This year, there will be 3 parallel tracks going on as main talks. If you don’t like listening to talks much, then you can go for workshop which is also happening in parallel.

This FUDCon is special to me because it will be my first Fedora conference and on top of it I will be speaking as well on ABI Compatibility . Slides and demo to be shown during talk are already available on github. This talk will walk you through why and how your application could be incompatible with upgrading dependent packages required for your application. Later, introducing to different tools which you can use to avoid using/developing incompatible ABI (Application Binary Interface) in your application. At the end, a demo showing how ABI incompatibility gets introduced in a C library across its two versions, its effect on application consuming that library and how  ABI tools detect that ABI change, will make your understanding even more clear.

See you all during FUDCon!

 

 

Advertisements

Another amazing conf.kde.in !

Conf.kde.in 2015 –  KDE conference organized by passionate KDE India team. This year it took place in Amrita college, Kerala from 17th to 18th April.  Schedule of these two days conference included talks on various KDE applications, Qt tutorial,  how to contribute to KDE, etc. We also organized Qt workshop to give a hands-on feeling to attendees.  Slides and pictures from conference are available.

 

Compared to past conf.kde.in, I felt venue of this year pretty different because this college had very cultural touch as it was near to Ahsram, it also had beautiful beach around 10 minutes walking distance from venue, beautiful backwater flowing very near to Guest house we were staying, also teachers of college were interested and involved as well throughout conference and were personally taking care whether everything is fine or not.

    

Day1

After registration, first day of conference started with opening ceremony where college teachers involved in FOSS community, Pradeepto Bhattacharya and Noufal Ibrahim addressed it by lighting lamp and traditional college prayer.

    

This year we did something different and as a result we had a keynote speaker Noufal Ibrahim who is Kerala based and is founder of PyCon India and PSF board member since 2012. It was pleasure in listening to his talk Reusable software – the UNIX way. In his talk he showed how easily you can come to know what exactly a book is about by using few UNIX command – sort, ls, wc, grep, awk, tail, uniq. It was good to see the power of UNIX commands and people appreciating it.

Further Pradeepto gave brief introduction to what KDE is, its aim and objective. In addition to that Shantanu gave a glimpse of different awesome KDE applications and showed how beautiful KDE software and helpful community is.  To keep conference interactive, Shantanu announced among audience that whoever will ask or answer question will get Qt/KDE stickers and goodies and it really worked 😀

In order to keep audience curious and interested, next talk was on Krita– Awesome digital Painting Software by Somsubhra Bair who is contributing to Krita from around 2 years.  He showed couple of beautiful videos about painting in Krita and talked what other powerful and amazing work you can do using krita.

        

Later Pinak Ahuja talked about his SoK experience and how he started contributing to KDE. This talk was quite motivating to attendees in order to getting started with KDE. To add more motivation and building confidence in attendees,  Shantanu gave Qt/QML basic tutorial and showed how easily you can create basic elements like Rectangle, images, etc in QML and how easily you can add animation to it. To give a hands-on experience we also added workshop for students in college lab where Qt creator and needed libraries were already set-up by local volunteers. Everyone enjoyed building basic application themselves and few of them were also able to do what Shantanu gave task. We all speakers were helping out attendees with problem and queries.

 

     

Day 2

Second day started with A tour to Marble project  by Sanjiban Bairagya where he talked about  different features of Marble like virtual tour from one place to another comprises of earth and also other planets like Mars. He also demonstrated how easily you can navigate from one place to another over globe.

Next was my talk where I talked this time on a different topic – Qt on Android.  I opted this topic because I knew there is lot of craze among students for creating android apps. So, I thought let me learn how to make Android app using Qt and talk on same. I demonstrated how easily you can run your Qt application on android and distribute generated .apk file to others and also how to publish app to Google play store. Android app which I created was Imgs and somehow I managed to publish it to Google play store. Attendees were very much interested in listening to this talks and it seems more than  50% of them had android phone and most of them were interested in creating their own Android application.

 

   

Further, talks were going on in conference room and in parallel we also conducted Qt/QtQuick workshop for few first year students who missed out in Day1. I was helping students with their doubts, issues and monitoring ensuring if everyone is on track. It was good to see that all first year college students were able to grasp whatever Shantanu demonstrated and were able to do it by own.

Interesting talk from Ashish Madeti on MPRIS support for multimedia applications. Ashish started his KDE journey from conf.kde.in 2014 and in one year he did really great work in KDE and especially in Plasma Media Center and Simon project in order to add MRIS support and enabling voice command in PMC. It was very good to see a student  giving talk who started his KDE journey from same conference, it felt rewarding and worth doing KDE conference in India 🙂

   

Last talk of the day and conference was by Karan Luthra on Trojitá project. Karan talked about what all features Trojitá provides and why to use it and how  to contribute into it. It was good to see a fast and lightweight  email client. Looking forward to try it out in my system and will see whether it fits my need or I should continue using Kmail.

        

At the end of conference, attendees and speakers were talking to each other and having discussion on  KDE projects they were interested on. I also distributed Fedora stickers sheets among attendees which I got from my Fedora friends and talked to few attendees/teachers regarding attending upcoming FudCon APAC conference.

Another conf.kde.in ended with the help of hard work involved by Organizers, volunteers and local college authorities. I was so excited to know how Harish who took initiation for organizing this year conf.kde.in met Pradeepto and rest all happened.  Many thanks to KDE eV for sponsoring me as well as other speakers to make this event successful. I am proud to be a KDE contributor and being a part of such an awesome and loving community. I hope with this year conf.kde.in we will get another few new member in our KDE family 🙂

Cheers!

GopherCon India 2015

gophercon-con-logoGopherCon India happened from 19th to 21st February 2015 in Bangalore and it was an amazing experience for me. It started with workshop on first day followed by 2 days of main conference presented by speakers coming from different corners of globe. Slides from the conference are available on github and pictures on flickr

Go Workshop

I am totally new to coding in Go, so I thought it will be a good idea to attend the workshop. I hoped that it will help me in understanding the conference talks better. The topics covered by  William Kennedy during the workshop were very good. He covered all the basic and important topics like variables, pointers, functions, types, slices, methods, interface, goroutines, channels, etc very well with hands-on examples.  Goroutines are very interesting topic as all of them can run concurrently and leads to no block in your application. It took me some time to digest variable declaration in Go.

For example, for declaring an int variable in C/C++ or Python we do “int foo” while in Go we write “foo int”.

Same applies to function definitions. Function declaration in C, C++ looks like-

return_type function1(int *var1)

while in Go we write,

func function1(var1 *int) (return_type1, return_type2, …)

But from whole conference, I observed lot of speakers saying that while learning any new language you should forget whatever you learnt before and learn as if you are learning a new language.  I personally liked this idea and I would suggest everyone should follow this while learning new concepts.

       

Conference

Day 1

After usual registration work, everyone went to conference room to attend talks and keynotes. It was quite surprising to see cute little gophers sitting on chairs for everyone 😀

Conference started with Opening Keynote by Francesc Campoy Flores where he nicely explained various types of people who uses Go. He categorized Go users as

  • Newcomers – who are very new to Go and want to learn
  • Explorers – who are familiar with basic coding in Go and are now trying to make useful applications using Go to understand it more
  • Builders – who know Go very well and have developed Go applications
  • Experts – who understand specs and knows all details of Go

It was interesting to know about these tools:

  • gofmt – Formats your code according to Go standard (yay, you don’t have to worry about formatting anymore)
  • goimport – Adds missing import packages in your code and also removes unnecessary imports.
  • goreturns – The best one as it will run both gofmt and goimport for you, in addition to that it will auto add return variables in case your functions don’t have any.

Talks from Aaron Cruz and Gabriel Aszalos provided multiple tips on how one should be working on a Go project and how code should be written. Couple of tips were:

  • Use good editor of your choice which has support for Go like sublime, vim, etc to write code faster.
  • While contributing to new project, first go through README and documentation in order to understand overview.
  • To understand a new codebase, it is really important to follow the flow in which code is written and best way is to first look for entry point in project.
  • Every now and then you should look into components of project which you haven’t looked into from long time and refactor them in case needed.
  • Use gofmt, goimport and goreturn tools to keep code clean, formatted and less error prone
  • In order to get source code from Github, we can use “go get <source name>” instead of git clone.
  • Code should be well documented, tested for keeping code maintainable for long run. At least exported functions from libraries must be documented so that user can use them without hassle.
  • Code written in Go should be readable – not in english language but in terms of Go. For example if you are creating an empty struct in Go, no need to to create a new empty struct like type struct empty {} instead of it whenever you need an empty struct just write struct {} there
  • Try to use features available in Go libraries instead of writing your own. For that one should explore Go functionalities and should go through its specs.

Regardless of what language you are coding, I would say these tips are useful for everyone.
     

The next talk was about Mike Gehard’s journey from being a Rubyist to a Gopher. One of the things he suggested was to read the Go language specification to understand why certain design decisions were made. For the builder, he suggested to understand Go’s common idioms as it helps in producing effective code. The major difference he discovered between Go and Ruby was OO support. He suggested to use small structs and methods that operate on them instead of classes/objects. Learning to program to the interface is something he emphasized as well. For understanding concurrency, he asked people to watch the Concurrency Patterns talk by Rob Pike. For experimenting, he suggests using http://play.golang.org/ . Finally, he said that the golden rule is to forget old idioms from Ruby and not fight Go.

Julia Poladsky shared her experience on how she is using Go now in her work with Java Script. Being a web  front-end developer, she compared very well how Go is a better designed language than JS. She feels Go as one of language which is going to be used in future as well by developers due to features like providing async behaviour, concurrent, Garbage collection, enforcing error handling in code which makes code more robust and I too agree with her.

A Physicist at day and Android app developer at night, Verónica explained how easy it was for her to code in Go being a Physicist. While she was excited by the possibility of writing Android apps in Go, she mentioned that the current support is crude and very painful to setup with the Android SDK.

       

While I haven’t written Go packages myself, this talk about principles of designing packages gave a good insight in Go practices. Alan Shreve explained that usually Go packages should do everything synchronously and let the called handle the async. However, he also showed situations where the opposite was desirable.

Rajesh Ramachandran shared his experience with using Go at Qube cinemas where they do high performance digital media. Due to performance requirements, the actual processing happens in C and Go is used to do post processing with the results. He explained with code how to call Go methods from C and the other way round. He listed the caveats that one should be aware of when using Cgo to do this.

    

First day ended with closing keynote by Baishampayan Ghose. He told in a very beautiful way that Go is not a 6 year old programming language but it is more than 40 years old. He explained how Go used different useful concepts from various old programming languages like BCPL, Modula2, Newsqueak, SmallTalk, Pascal, C, etc and evolved as a powerful modern programming language.

It was interesting to see that lot of people have migrated from Ruby/Python to Go and are very happy with it. It was funny to hear everyone saying evil Java during conference. I was very happy with talks covered on first day and surprised to see Go solving multiple real world problems in fast way. I was eager to attend talks which were lined up for the next day.

Day 2

As Go is a high performance language which comes very close to C, it was not surprising to see people using it for embedded programming. Kunal powar  from SoStronk presented the EMBD package which lets people write embedded code which interacts with sensors and various communication protocols. The cool thing about EMBD was that it can work on a variety of boards like Raspberry Pi, BeagleBone etc. Kunal showed a demo of an accelerometer controlling an airplane model in a desktop application.

Martin Schoch talked about bleve which is a text indexing and search library for Go where you can index text based documents and later query for terms. You can have exact matches by keyword or a complete phrase. Martin demoed bleve by querying the Gophercon India talk schedule he had indexed earlier. He also showed that there is Unicode support by searching for the Hindi terms in Wikipedia pages he had indexed.
EDIT : In demo, taking Hindi Analyzer as example Martin showed Indic and Hindi character normalization, Hindi stemming, and Hindi stop word removal. Analyzers are what improve search recall when you customize the mapping to indicate data is in a particular language.

   

The next talk by Jyotiska NK was particularly interesting because I personally found Image Processing quite difficult in my college days. Jyotiska explained that their system extracts dominant colors from images in e-commerce websites such as Amazon. The earlier system was implemented in Python but was very CPU intensive and memory consumption was high. They later implemented the same in Go and got reduced CPU usage, reduced memory and could serve more requests thanks to Go’s easy concurrency. The only pain point was interfacing with C code for OpenCV which was complex even with tools like SWIG. The other limitation was that there weren’t that many libraries in Go which supported scientific computing like SciPy and NumPy in Python.

Dave Cheney ended the conference with his closing keynote in which he talked about why Go is simple by design. He explained that to the Go creators it was more important to be simple than to being complete.

     

There was also a FAQ session where panel members and speakers gave answers to questions asked by conference attendees as well as asked online

  • One of question was first Go experience of panelist members and kinds of problem they faced. Answers were quite mixed like for Julia, in Denver there is already active Go community while for Verónica in Mexico people are very repellent for learning new language.
  • Support for embedded system like Raspberry Pi – currently embd is there with few functionality. In future support for embedded devices will be added.
  • Can Go be recommend as first programming language to learn like C, C++, Python? The panel agreed it can be.

I must say that GopherCon 2015 was awesome with variety of talks on Go. For beginners in Go like me, this conference was the right place. Thanks to my employer Red Hat for sponsoring my workshop and conference ticket. Organizers had done very good job in arranging everything including venue, speakers, food, quality of talks and keeping conference on time. Being a C/C++ programmer, I must say that I am impressed by Go. Looking forward to learn it in more detail and also start with writing few applications using Go to get feel of its power. I would recommend others as well to give it a try.

Fedora 21 Release Party, Bangalore

Fedora 21 got released on 9th December 2014 targeting desktops, servers, and cloud. To celebrate this release, Fedora Release Party was organized at Red Hat, Bangalore on 10th Jan, 2015.

This was my first Fedora event which I attended and no doubt it was very nice experience. Around 40 people appeared for this event which included students from local colleges, employees from local Companies and few from Red Hat as well. Among them few were already using Fedora while some of them were using Ubunutu/Windows as primary desktop. It was good to see different people who came to celebrate Fedora 21 release party!

All talks were lined up in a very well fashion. It started with  introduction to Fedora by Archit ,  followed by what all new cool features Fedora has by Ratandeep . Fedora 21 has new flavour i.e cloud and this was covered in more detail by Neependra Khare who talked about Project Atomic. Now, its time for talk about how you can contribute to Fedora like as a Packager, Content Writer, Designer, Translator, Administrator, etc and it was well covered by Sayan .

              

I also got an opportunity to give a talk on Basic RPM packaging in Fedora. Now a days, I am learning Fedora packaging and wanted to contribute to Fedora as a Packager. I thought this is a great place to talk about it because most of attendee would be new to packaging. I enjoyed giving talk because everyone was quite interested in knowing about how packaging is done. It was well taken by audience and I hope they will learn more in details from awesome Fedora wiki pages.

In between, to make Release Party more awesome there was a beautiful and delicious Fedora cake. Everyone participated in cake cutting and had lots of fun 😀

     

(Copyright Ratnadeep Debnath)

At the end, there was Open House session where everyone participated and did fruitful discussion. All attendees also got Fedora 21 live CD which they will try at home.

      

Overall, event was great, organizers did very good job, everyone enjoyed Fedora 21 release party. Looking forward to be part of other Fedora events in future.

During Akademy 2014

I came back from Akademy last week and would love to share my experience with you all 🙂 This year also Akademy was great with lots of fun, shared/gained information, met old  friends and made some new.

Pre-registration

This year, pre-registration was at the shiny new Red Hat office in Brno on 5th September. Most of my friends whom I know and going to attend Akademy were present there. It was very pleasant and happy feeling to meet everyone after an year.

       

The Talks

Akademy was two days of main conference which were on 6th and 7th september.  This year our keynotes speakers were Sascha Meinrath and Cornelius Schumacher .

    

Sascha Meinrath                                                        Cornelius Schumacher

This year there were lot of fast track (10 minutes) talks on different areas around KDE. All of them were quite interesting, some of them are:

  •  Bruno Coudoin talked about how and why GCompris moved to QtQuick with the support of KDE. What all challenges project faced while moving from GTK to Qt.
  •  Paniel Vrátil talked about his one year journey with Akonadi
  •  Martin Gräßlin gave  an overview of current state of Kwin in adding Wayland support and future plans.
  •  Kevin Ottens talked about KDE craftsmen where analysis was on the way we handle our software production, how can we make our software even better.
  •  Kai Uwe Broulik  talked about current status of  Qt port on Android and iOS. Currently, 3 iOS apps in Apple store and 8 Android apps in Google play since December 2013.

Among all long duration talks, an interesting talk which I attended was A Tale on ELFs and DWARFs by Volker Krause . He explained about:

  •  How to understand linker errors which we come across while compiling an application
  •  How to debug weird runtime behaviours which may occur while running application
  •  Way symbols are mangled for C++ created binaries on different platforms like windows, iOS, linux
  •  Tools which can help us to read and understand binaries file like readelf, objdump, nm from binutils on Linux, otool on Mac and Dependency walker on Windows
  •  gcc options like -g[0-3] to add level of  debug information into binaries which can be further used to solve program issues using tools like gdb.

Akademy conference ended with sponsors presentation followed by Akademy 2014 awards

   

GCompris talk by Bruno Coudoin                           Akademy awards

Workshops

I loved attending workshop on visual design and QML by Andrew Lake .  I have already seen awesome mockup design which Andrew created for Plasma Media Center. It was fun to be in his workshop and learning the way mockups can be created using QML. You can also try that by following this wiki.

I say “send email” and kmail opens mail compose for me, interesting right? This is what  Peter Grasch did in speech recognition workshop. He showed how easily you can configure rules in simon to make your application voice controlled.

BoFs

BoF is one of the the main part of every Akademy which continues for  5 days after main conference gets over. Anything which needs discussion, help or feedback gets sorted out by scheduling a BoF for that particular topic.

     

Plasma Media Center BoF                                          KDE edu BoF

(Image CC by Sujith Haridasan)                                  (Image CC by Sujith Haridasan)

  •  Plasma Media Center BoF:  Every year PMC team schedules a  BoF which helps us to get feedback on how application looks currently, what should be done next to make it more better.  This year we discussed on
    •  Vision of Plasma Media Center which we finalized to “To offer an immersive, rich and easy-to-use media experience crafted by KDE for you”.
    •  We discussed on PMC integration workflow with plasma 5
    •  Repository structure i.e whether to split  PMC into libs and backends as two separate repository or keep it in same repo. Finally, we agreed on keeping into single repository.
  •  KDE Edu use in India : This BoF was about FOSS community in Hyderabad, India which  have started to use KDE Edu apps for teaching children in government schools with the help of ThoughtWorks. They are creating an interesting app called Human-atlas which will help children to learn about body parts in interesting way and can take Quiz to test what they already know.
    •  KDE India Future Plans: This BoF was to give an overview of  what all KDE events happened in India, what problems organizers faced, what all fruitful results came out of various events. Suggestions on how we can improve to attract more people to attend conference and bringing them to FOSS world.
  •  KDE Windows: This BoF was for asking questions and help regarding KDE on windows. I attended this because I was curious to know what all KDE apps work on KDE windows and if Plasma Media Center could be run on windows. It was great to see efforts KDE Windows team have done to compile various KF5 modules. Kudos to them from my side!

Fun!

Being around with KDE  people is always fun. I also find fun in collecting different FOSS related goodies. Oh, yes! This year too I collected some of them from different sponsors booth including Red Hat.

        

Lots of goodies                                                  KDE logo by 3D printer @ Red Hat booth

Akademy day trip is always fun intended. This year we went to see Brno Reservoir. We explored surrounding for sometime and further we went for Ferry ride which was amazing. Through Ferry, we reached to Veveří Castle . After seeing castle, to re-energize we took some rest and light snack/drink. After that we returned back to reservoir via bus and further headed to restaurant for dinner.

    

While writing this blog, I felt like I revisited Akademy. These are awesome moments which will get remembered throughout life. You can find some awesome pictures taken during Akademy here . Thanks to KDE eV for sponsoring my travel and accommodation. Also many thanks to all sponsors and volunteers with the help of which this year also  Akademy was superb.

Cheers!

I am going to Akademy 2014

Akademy is one of the awesome conference which I always love to attend. This year, it will take place in Brno, Czech Republic from 6th to 12th of September. Schedule for conference is already available, which consists of 2 days of talks followed by workshops and BoFs.

Similar to previous years Akademy, I am pretty sure it will be rocking this year as well.  It gives us chance to meet lots of kool, awesome, geeky, friendly and lovely people. You will find folks from different countries from all over continents with experience in different areas like development, usability, testing, user interface, marketing and yes users who love using KDE.

Akademy is always very useful for Plasma Media Center project as we organize BoF and discuss about project status, take feedback and discuss about its future. This year also, we have scheduled PMC BoF on 9th September. Usability discussion thread for PMC next UI is already in progress on KDE usability forum . Be there for BoF, if you have  feedback and want to help us in making Plasma Media Center more awesome and reachable to more larger mass.
Looking forward to meet you all awesome people during Akademy!

Plasma Media Center 1.3 beta release!

We are pleased to announce Plasma Media Center 1.3 beta release!
Whats new?
  • Support for fetching media from Baloo. As a result, your media will load almost instantly!
  •  A conflict between GStreamer0.10 and GStreamer1.0 in some distros will no longer break playback (Launchpad Bug)
  • More details in All Music mode
  • MPRIS support – so that you can control PMC from your favorite MPRIS controller
  • (Experimental) support for a simple filesystem based media scanner – when you don’t have Nepomuk or Baloo installed
  • Replaced side panel with full-screen panel
  • For the source code, we now have tests for the PMC core libs
  • Numerous bug fixes and UI polish
Screenshots
              
      MPRIS in action                                                        Videos time duration
https://lh3.googleusercontent.com/-XX4kr5PPUMA/U4y67P0KyzI/AAAAAAAACKQ/ySlucC5x61A/s800/YnLYH9W.jpg      https://lh6.googleusercontent.com/-TCA4EhZQUXU/U6COGfrIpFI/AAAAAAAACO4/OWxD6qQV8U8/s800/All_music.jpg
       Picasa login screen                                              Detailed Music information
Install
Follow instructions to install Plasma Media Center on your machine.
Wiki
To know more about Plasma Media Center, check out the wiki http://community.kde.org/Plasma/Plasma_Media_Center
Bugs
 Found any bug in PMC or want to have your favourite feature included in future release? file a bug to  https://bugs.kde.org/enter_bug.cgi?product=plasma-mediacenter&format=guided
Cheers!