Flock 2016 & my talk on ABI checking in Fedora

Flock is the annual Fedora conference where you can find Fedora contributors as the main audience. This year the conference was held at the beautiful city Kraków, Poland from 2nd to 5th August. Being a schedule of 4 days, it was split into first 2 days of talks and later on workshops. Majority of talks were enriched with various Fedora related topics.

Main Talks

Since I have recently started to contribute to Fedora, I decided to attend only couple of talks and spent rest of time talking to more Fedora contributors. Some of the talks which I attended includes keynote by Matthew Miller on State of Fedora 2016, keynote by Radek about modern and open way of education among kids, modularity in Fedora talk by Langdon White and status of Pagure by Pierre-Yves Chibon.

28737950212_939a0dff2a_m          28558622010_c73a65833c_m

Most of talks have been recorded and  has been uploaded on YouTube. Link to recordings and slides for talk can be found at Fedora wiki.


With my interest to have patches in Kernel, I attended workshop on Building the Fedora Kernel by Laura Abbott. During this workshop I successfully built Fedora Kernel locally in fast mode using ./scripts/fast-build.sh x86_64 kernel_srpm. Also, learned building upstream kernel with enabling/disabling desired modules during build using command make menuconfig (Need to try out!)

I am not usually a design person but still went to try out my chances in Fedora badges workshop organized by Maria Leonova and Marie Nordin🙂 To design badges you need to have inkscape software (dnf is our friend) installed. To use Fedora specific color, copy palettes files (*.gpl) into ~/.config/inkscape/palettes/ and get one of badges templates. Now pick up new open ticket and you are ready to go. I tried working on an opened ticket which was to create a badge for “You helped get NodeJS 4 into Fedora”. So far, it seemed easy but seriously placing NodeJs logo in the right way in Fedora template was not so easy. I tried some ways and thought it’s better I stay away from it otherwise Fedora might get some ugly badges😉


Our (I and Dodji Seketeli) talk on Ensuring ABI stability in Fedora

Our main goal to have this talk in Flock was to make more people aware of the concept of Application Binary Interface and how one can ensure that application which they are writing/maintaining are ABI compatible across various releases. Slides and recording of our talk are also available to view.

During this talk, Dodji covered:

  • What ABI in C/C++ applications means
  • Artifacts which may lead to ABI changes like:
    • File format – right now we support only ELF file format
    • Target architecture for which binary has been compiled
    • Calling convention
    • Addition/Removal of functions and variables in source code
    • Change in type(s) of existing functions
  • Among found ABI changes in application, only some of them are incompatible changes such as: removal of existing functions or variables, incompatible layout changes in types.


Later on, I continued the talk and explained:

  • Automatic ABI checking performed in package updates shipped in Fedora koji using abicheck task integrated with taskotron.
  • Depending upon abicheck result, status message (PASSED, FAILED or NEED_INSPECTON) with log is sent to package maintainer(s) ( whoever has subscribed) for review. This is already running in production which you can view anytime.
  • Other than abicheck task run, libabigail provides tools which can be used by package maintainers (fedabipkgdiff, abipkgdiff) and developers (abidif, abipkgdiff) during development phase to avoid releasing ABI incompatible applications.
  • Verifying ABI changes log with live example taken from abicheck task run on gpgme package.
  • Various future improvements in our tooling like reducing memory consumption during ABI check run, extending ABI check run to all koji packages(right now runs only on packages mentioned in critpath), running ABI checks in rawhide on two distinct packages.


Talk was well taken by attendees and they had various curious questions (which have been recorded in our talk video).


During this conference, We managed to talk to some taskotron maintainers (Tim Flink and Kamil Páral) and got their feedback on existing status of abicheck task run. They seem pretty ok with its current status. We also discussed on following future works which needs to be done to improve ABI checking experience in Fedora:

  • Running abicheck task on all koji packages – We are already running ABI checks on important userspace packages with few exceptions due to memory constraints (kdelibs, firefox, thunderbird). Existing runs are stable now and it is time to extend to run on all packages and we all agreed in favor of. A task has already been created on phabricator which will get done soon.
  • Compare abicheck on two distinct builds in rawhide update – Currently, when abicheck run on rawhide packages, it ends up comparing between same nvr which is not very useful. This is because there is no tags like update-testing which we have in Fedora branches. In rawhide, latest build become the greatest. We thought of multiple solutions to fix it but for now we agreed to go on easily doable solution. We will compare latest build in rawhide with second immediate latest one. More details is getting tracked on phabriactor.
  • Run abicheck task only if package has Shared library – Right now abicheck task is only relevant if run on C/C++ shared libraries. Lot of packages in Fedora are non c/C++ and without shared libraries. So, it doesn’t make sense to waste resources by running on all packages. We have a task created in phabricator which will look into rpm package content first and look for shared libraries. Regex which we will use to find out shared libraries files are \.so[0-9.]*$’. If a package has at least one shared library then only perform abicheck run on it.

Overall, the conference was productive to me both technical and community wise. I met a lot of people in person to whom I have only talked over IRC channel/mailing lists. Also met some new people from the community. Thanks to all the organizers who did a great job with the organization. Everything was so great including venue, arrangements and evening events (sadly I couldn’t attend walking tour to city). I captured some pictures during my Flock trip which can be found at flickr.


Would love to visit Flock again with more contribution in Fedora🙂

Devconf – Amazing place for a developer

As a fresh start of 2016, I got a chance to be part of Devconf – an annual conference which takes place in the beautiful Brno city of Czech Republic. From past three years, its been happening in February month’s first Friday to Sunday and hence this year it was from 5th to 7th February.


This conference attracts not only developers but also Testers, System Administrators, Product Security groups, Packagers,  DevOps, and many more from different technologies and communities e.g. OpenShift, OpenStack, Container, SELinux, Fedora, Gluster, Kernel ,  JBoss, etc. If you don’t believe me, check out this year’s Devconf schedule yourself :)  I am sure that after looking into the schedule, you want to see interesting recorded talk’s videos.  No worries, Devconf organizers and volunteers did amazing job in uploading videos quickly on youtube. You can also find couple of photos taken by me during conference on flickr.

In this blog, instead of going into any kind of technical details of a talk, I will be doing a small walk-through of the conference from my perspective. In case you are looking for technical details, I recommend to look for schedule and recorded talks🙂

At the beginning of conference, every participant was welcomed with a conference schedule booklet and pen! It was very handy to have the schedule in hand during conference. Later on,  Radek Vokál welcomed everyone to enjoy this year conference and insisted to be at conference till the end to win some interesting prizes😉

The conference began with two parallel keynotes among which I went for Tim Burke ‘s talk on  Rock Star Recipe . He was previously a programmer and now vice president for Software Engineering at Red Hat. With his own experience, in 10 slides he explained beautifully how an engineer or a normal person can become a rock star. I am sure, everyone wants to be a rockstar. So, don’t forget to watch his talk😀

24442073143_f5e00fc8ae_m1        24950812002_dfcfd720ae_m

In chilly Czech weather, I felt that Containers were the hottest topic of discussion for this year’s Devconf.  Very first day, talks in the main conference room were either directly about containers or integration with containers. To be honest, with my limited working experience with container technology I really like it!  To improve my knowledge about these, I mostly attended containers related talks on the first day. It’s good to see rapid growth and seriousness among people about docker containers. Lot of people are either trying or already running their applications in containers. Since there is discussion of containers, it is also good to keep track of project atomic – Create, deploy and manage containerized applications on a proven and trusted platform.

25065895736_6950efa694_z1   25042622406_b0d7b7566b_z

I love to know and learn about different Open Source projects, their communities and most important interacting with people. So, I spent the rest of the conference attending workshops, talks on Networking tools, POWER, QML, Product Security and Fedora community. Among lot of workshops, I managed to attend only two – Advanced packaging by Miroslav Suchý and Creating Automated Jobs to Run Against Fedora by Tim Flink. Packaging workshop improved my packaging skills and I hope to (c0)maintain some more packages. My love towards Libabigail project drew me to Tim Flink’s workshop. I wanted to understand and later implement a Taskotron task  which triggers ABI checks when a package is pushed for update in bodhi. I managed to understand some bits and soon will work on it!



Other than talks, there were multiple fascinating booths outside the main conference hall. Some of booths were about Red Hat, RDO, OpenShift, Foreman, Project Atomic, Fedora. I loved going to every booth and interacting with them to understand what’s new happening there. I also got awesome goodies from them (thanks for that!).

25042585956_54259bf885_m    24701311939_7a459e77f7_m

Conference ended with grand finale where winners got some interesting prizes like Yubikey, Raspberry Pi, Devconf T-shirts.

If you are interested in knowing precise information (data taken from Devconf site), there were total 3 Keynotes, 203 talks + workshops and 22 lightning talks :O Other than that, one organized city tour (which I missed) and one networking party at Starobrno brewery pub. I must say the conference was rich with variety of talks. There were 8 parallel tracks running for 3 days comprising around 1600 attendees. To keep everyone alive during conference, there were even sponsored beverages and food! And to manage everything, there were 110 awesome volunteers (Kudos to all of them!).

Thanks to all volunteers, organizers, sponsors, speakers, etc for this awesome Devconf. I hope to see you all again in next Devconf😀

24975564931_0ee837f0cd_m          Cheers!


My first presence in Fedora Conference with FUDCon, Pune 2015

One of the popular Fedora conference called FUDCon which recently happened in beautiful campus of MIT College of Enginnering Pune. FUDCon stands for Fedora Users and Developers Conference and organized in different regions of world. After 2011, once again FUDCon APAC was organized in Pune from 27th to 29th June. I couldn’t attend FUDCon 2011 because I wasn’t involved in Fedora in any ways and sadly never came to know about it from any of my friends. Around 3 years back, when I heard about FUDCon, I decided that I will definitely go to this conference whenever and wherever it happens in India. In early months of 2015, I was thrilled when heard about FUDCon, Pune announcement. I also submitted a talk on ABI Compatibility with positive hope of getting it accepted (Yes! it got accepted as well🙂 . Talk selection committee did very good job in selecting talks and putting them in a very well organized schedule



It started with very early reaching to MITCoE around 8:30am. We soon rushed to main Auditorium to attend first day keynote by Dennis Gilmore on Delivering Fedora for everything and everyone. In his keynote, he talked about upcoming changes in future Fedora releases. I was surprised when I saw his last slide where it was written ausil. Reason of getting surprised was that, I have seen this name at lot of places in section “built by” in  koji web interface while browsing through packages. It was good to see ausil talking on stage upfront. Keynote was followed by traditional lamp lightning by MITCoE professors and Amit Shah.


Later, I rushed to the seminar room where I was supposed to give a talk on ABI Compatibility I kept my talks simple, basic and easy so that even students can understand as well. I started with API and how API changes in an application can affect all API consumers by demonstrating API change in C printf() function. Further, talked about how ABI of an application may change and can lead to wrong results or crashes in application. Also discussed how you can make use of tools like readelf, objdump, abidiff, abicompat to do ABI analysis on C and C++ binaries. Audience were interested in knowing if we can use these tools on application from other programming languages as well but sadly answer is No. Talk ended with showing demo about how Libabigail‘s abidiff tool detects ABI changes between two versions of a library. Talk was well accepted by attendees.

Next talk was presented by Samikshan Bairagya which was about ABI changes in Kernel. He talked about advantages and limitation of genkysyms tool which is currently being used in kernel for ABI checks. Later, he introduced us to new tool called Spartakus on which he is currently working on. Spartakus aims to solve limitations of genkysyms. He also welcomed new interested contributors to Spartkus.


After the talk, I had a brief talk with Suchakra who other than contributing to Fedora does research and study in areas like profiling, debugging, OS and other low level stuff which interests me as well. I planned to attend his talks and workshop which was schedule on Day 2.

Outside conference hall, there was Fedora booth as well from where we all attendees picked awesome Fedora swags like stickers, DVDs, badges. It was also a great place for different people to interact with each other and talk and ask for help if needed.

Day 2

Day2 started with keynote by Jiri Eishchmann on current status and upcoming features in Fedora workstation. Everyone was thrilled when Jiri told in his talk that MP3 patent is going to expire soon and we can use it for free to play mp3 media!  Further, I attended Suchakra’s morning talk on different tracing tools like LTTng, SystemTap, Dtrace which went very well. I also attended workshop on Kernel module development  where I learned creating your own network packet filtering kernel module. Sadly, module didn’t compiled on my machine because of mismatch of kernel sub-packages versions. Error got fixed next  day when I updated my whole system with new kernel sub-pacakges versions.


In between, we also had group photo session with all Fedorians


After end of Day 2 conference, all volunteers and speakers gathered for FUDPub in Blue O. It was way awesome than I thought, free drinks, free games and Fedora friends ! Most of the time I spent doing bowling because it was unlimited😀 Next day, I got reward of doing so much bowling by getting pain in hand😛

Day 3

I attended introductory Docker workshop in morning which was lead by Lalatendu and Aditya. They did very well set-up for distributing Fedora vm with docker images already available in it. This avoided hassle of waiting for college internet for downloading on demand. Whole session was hands-on and that’s why I liked it very much. Further session was on Kubernetes which I attended partly and then moved to AskFedora UX/UI hackfest. I didn’t actually hack on anything related to UI/UX there rather was listening and noticing to what improvements they made and planning to do in AskFedora web interface.


Day3 ended up with closing ceremony where Rupali expressed her thanks on behalf of all Fedora community to  each group of attendees. I was amazed to see the enthusiasm of organizers and volunteers throughput the conference. Both of them did a great job in making this FUDCon a grand success. I would personally like to thank Fedora for approving my travel sponsorship request and providing a great stay in Pune. Few pictures which I captured is available on flickr . Will update with FUDCon talks videos link once it is available.

In one sentence, “Another great conference” for me! Looking forward to be part of upcoming Fedora events and conferences.


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!



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.



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🙂


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.



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.