Planet dgplug

April 21, 2017

Kushal Das

Event report: FOSSASIA 2017

FOSSASIA 2017 reminded me of After a long time, finally, a conference which has the similar aspects. Similar kind of tight organizing team, the presence of upstream communities from different locations. The participation from the local Singapore tech community along with Hackerspace Singapore is a serious boost. This was my 4th FOSSASIA conference, and also 3rd time in Singapore. I should thank Mario, Hong, and rest of the organizers to make this event a very pleasant experience.

This time Sayan booked an Airbnb for Anwesha and me. Saptak + Medo + Siddhesh + Praveen Patil, and Pooja Yadav, & Pravin Kumar were also staying in the same Airbnb in the Chinatown. The conference venue was the Singapore Science Center just like last year. Having the conference in the same place helps as the MRT route is very easy to reach there on time.

The day before the conference we had a speakers meetup in the Singapore Microsoft office. We also received a tour of the office, the person in-charge also explained about how are managing an office without permanent seating positions.

Day one

The conference started at 9:24AM (as Hong asked us to remember the time). I attended the talks from Harish Pillay and Chan Cheow Hoe. The idea of having the CIO of the country coming to the conference and giving a talk on Open Source is a great feeling. In 2015 we had Minister for Foreign Affairs, Mr. Vivian Balakrishnan giving a keynote (and talking about the NodeJS code he wrote). The way govt. is taking part in the local community events is something other countries should try to learn. Of course, Singapore has the benefit of being small in size.

Though the day was full of talks related to AI and machine learning, there were two talks I was waiting to attend. After lunch, the first one was from Bunnie Huang, where he spoke about making technology more inclusive. He talked about Chibitronics. Before I traveled to Singapore, I actually asked him to get a copy of his new book, The Hardware Hacker. I got my copy signed by him after his talk :) (I already finished the book while coming back to India, more on that later in a separate blog post). I also met Xobs and found a Chibtronics Love-to-Code board in his pocket :)

Later in the day, Frank Karlitschek gave his keynote titled Protecting privacy with free software. He brought up the original idea of the Internet being decentralized. The last talk of the day was a panel discussion on Artificial Intelligence.

Day 2 & Day 3

I spent most of the time in the Python track, and in between jumping around different floors of the venue meeting people. I personally had a two-hour workshop on MicroPython and NodeMCU. Anwesha was busy in the PyLadies table along with Pooja. I forgot to show the poster of PyCon APAC in the Python track :( But you can still submit talks and attend the conference. Sadly this will clash with another conference for me.

Anwesha had her talk on day 3, and her laptop’s display decided to crash just before the talk. But finally the slides came back :) I also attended the SELinux workshop from Jason Zaman. He and few BSD friends convinced me to try out ZFS, and then build a new home storage with FreeNAS.

Now I have to wait for the next edition of FOSSASIA. It is a great place where I can meet my friends from different parts of the world, and share ideas :)

by Kushal Das at April 21, 2017 07:46 AM

April 10, 2017

Jaysinh Shukla

goyo-doc: Vim helpfile for goyo.vim plugin


What is Goyo?

Goyo is the vim plugin which allows writers to focus on their writing while they are writing. The plugin deactivates not required fancy windows which are not useful at the time of using vim for writing. It provides certain customizations too.

What is missing in Goyo?

The main problem with Goyo plugin is that it carries very weak vim specific helpfile. A vimmer is habituated to find help at vim specific helpfile first. After few attempts, I have decided to write a good helpfile for the Goyo plugin. I am happy to maintain the documentation I have started with the ongoing development of the plugin until the author of Goyo is providing any concise helpfile for it. The goyo-doc is not carrying any source of Goyo plugin, but only contains documentation for the plugin. I am inviting you to propose improvements if you find any.

Why I decided to write a separate plugin for documentation?

“Documentation is essential. There needs to be something for people to read, even if it’s rudimentary and incomplete.”

K.Fogel, Producing Open source software

I believe the documentation is the most important part of any software. While I was using Goyo plugin, I found it is missing the vim specific helpfile. I discussed this issue with the author and offered the help for improving on this. You can read further about early discussions here. I didn’t get any positive response from the author so I decided to write and launch vim specific helpfile for this plugin. With this plugin, I am expecting to provide the solution to those users who are more familiar with vim specific helpfile than a Github wiki or README file of any project. Below are the links for downloading and using the plugin.

Proofreader: Farhaan Bukhsh

by Jaysinh Shukla at April 10, 2017 12:21 PM

April 05, 2017

Shakthi Kannan

Pune GNU/Linux Users Group ClipArt Hackathon 2017

I had a chance to attend the Pune GNU/Linux Users Group (PLUG) ClipArt Hackathon on Sunday, March 12, 2017 at Bhaskaracharya Pratishthana. The hackathon was an initiative to start organizing different kinds of F/OSS events.

Gaurav (“dexter”) Pant started the day’s proceedings with a quick demo of Inkscape. He also provided the participants with an Inkscape quick reference sheet. The advantage of creating Scalable Vector Graphics (SVG) is that it can be used on a web page as well as enlarged for printing on posters and banners, without any distortion.

I took this time to create some illustrations. The first image was a logo with the letter “S”, whose shape was modified to fit into a boundary. The stick-figure-push SVG is already available in Openclipart. I modified it for a stick-figure-pull image. Few icons were then created for use in web pages. Finally, I completed an SVG of “The Common Man”.

S logo

Stick figure pull

Envelope icon

Monitor icon

Telephone icon

The Common Man

All the images are available in Creative Commons Attribution-Share Alike 4.0 International license at Wikimedia ( ).

The hackathon was a good initiative to encourage creative contributions to F/OSS. I was happy to see a number of excellent designers who were creating beautiful SVGs. Participants used both GIMP and Inkscape for their work. It was also good to have met the PLUG members.

Group photo
PC: Siddharth Subramaniam

Such events help grow the activities in a region, and also showcases the diversity in a F/OSS group.

April 05, 2017 10:45 PM

Saptak Sengupta

PyCon Pune : Contributions, DevSprints and So Much More (The Web Developer's POV)

Pycon Pune Homepage
PyCon Pune was held on 16th to 19th February but my association with PyCon Pune started long time back. The heart and soul of PyCon Pune 2017, Sayan Chowdhury was looking after the website development as well. After the first draft of the website was ready, he shared the website with me and asked whether I wanted to contribute. I was more than happy, was rather honored. First PyCon Pune, one of the web developers... Awesome experience.... After that slowly I started getting involved into deployments,  talk selection, scheduling and many more. I and Kushal even went on to website updating and other stuff in my vacation.By now, PyCon Pune was not one of "their" conference, it was more like "our" conference for me. So though it was just my second proper conference, I was super excited...

Unlike most others my main work related with the conferences was much before the conference. In fact most of the work was completed more than a month ago. Firstly, the entire website was made using staticjinja. It was my first experience with staticjinja but having worked with flask, it wasn't very difficult. As one after the other keynote speakers got confirmed, I was to add there pictures and details in the website. Then after few days, I got a call from Sayan saying we need to make a registration page. I was to implement a 3 column UI with all the details. As including bootstrap only for getting it's grid help would be too much, I wrote the grid system in CSS from scratch. Which might not be a big deal for most but since it was my first time writing a grid system from scratch, I felt great when it worked.

Static Jinja Codes for the Website

Then, apart from that was looking into the responsive UI of the website. Since no front-end framework was used, so responsiveness was also something I wrote a sketch. Yes, another happy moment for me. Then we started getting few contributors as well helping us with some of the components. So the next thing was to review and merge pull requests. Thanks to the already written grid structure, it was not much pain to make the other pages. And, obviously deploying the code to the server. It was a really great experience to be involved in the web development team of a PyCon.

Conferences for me was one of the ways of spending my GSoC stipend. This time we, a group of 4 friends decided we go together, book a proper airbnb apartment and have some awesome time along with the conference. So it was also an outing for us from the college days.

Conferences as I learned from PyCon India was not only for learning stuffs and listening to talks. It was more about meeting awesome people and getting to connect with them and to grow and help grow the community. So, PyCon Pune also I was eager to meet a lot of new people and to reunite with a lot of people I met before. Also, being a volunteer I had work to do.

So the first day started of by work in registration desk. I was late ( as usual ). But anyhow got busy with work, distributing ID cards, figuring out names, meeting people whom I have met only over IRC. Soon after, the keynote started which was followed by some pretty interesting talks. There were different booths where you could learn about some exciting and cool new tech stuff and communities. The venue was awesome... And so was the food (yes, I have to tell about food)... After the day ended with some awesome talks and meeting some awesome people, it was time for the speaker and volunteers meet. Got to talk with many speakers. And again I can't keep myself from saying, the food was delicious...

Second day was a special day because one my best friends, my ex-roommate, my project partner, Vivek Anand was going to speak for the first time in a conference about his project, Pagure with Fedora, along with Farhaan Buksh. I was super excited (and he was super nervous, I guess). And it was really good. Well, most of the things he said in talk he had already told me before but his talk didn't make me fall asleep (that's the best I can manage). After that the day was filled with sticker collection, tshirt collection, tshirt distribution, group photo and all the cool stuff associated with conferences. At the end it was all bidding goodbyes with promises to meet again on internet and in some different conference in some different place.

After that, we four friends - me, Vivek, Shubham(Bhendi) and Medozonuo decided to go for a movie. Well after all The Lego Batman has hit the theaters. I know this has nothing to do with PyCon Pune but after all It's Batman. So can't help but mention.

Medozonuo conducting Dev Sprint on Open Event with me

Next 2 days were devsprint. Few people were presenting their own projects. Others were contributing. I was presenting the Open Event Organizer Server project along with Medozonuo Suohu. The devsprint was at Redhat office in Pune. We got some 3-4 contributors who were really excited to know about and contribute to the project. We were ourselves solving some of the bugs that we were supposed to solve while debugging installation problem on Macs (yes, we need to improve the documentation). We managed to get 2-3 Pull Requests as well which was really good because we were getting new contributors which we really needed. There were many other projects including CPython itself which got a lot of attraction. I also sat there for sometime knowing about the codebase and scopes of contribution. Sadly, I couldn't contribute to it till now. Also, there were hardware devsprints which I was interested in but also couldn't participate.

Sadly, the second day of devsprint i was really really sick and couldn't make it to the devsprint. Had to spend the rest of the day in apartment. This was a little sad for me but after all the remaining conference was awesome. Meeting people I had met in PyCon India and SHD Belgaum again, connecting more with them, talking more than just tech stuff... Maybe Nokia and Conferences are synonymous - Connecting People. Waiting for PyCon Pune 2018... Hoping to start working in the Web Team again...

by SaptakS ( at April 05, 2017 03:10 PM

March 31, 2017

Shakthi Kannan

GNU Emacs - Org Mode

[Published in Open Source For You (OSFY) magazine, May 2016 edition.]

Keeping notes, maintaining to-do lists, planning projects and author documents with a fast and effective plain-text system - that’s what Emacs Org mode helps you do. There’s even a mobile version available as FOSS so that your favourite note-taking tool remains with you always.

In this next article in the GNU Emacs series, let’s learn about Org mode.


Org-mode is an outline, major mode in GNU Emacs that can be used for taking notes, planning and documentation. It was written by Carsten Dominik in 2003. The Org file is written in plain text and markdown, and it can be exported into multiple output formats (TeX, HTML, PDF, etc.). Org-mode ships with GNU Emacs and this tutorial uses GNU Emacs 24.4.1 (M-x version) and Org mode version 8.2.10 (M-x org-version).


An Org file ends with the .org filename extension. The top-level headlines are marked using an asterisk (‘*’). For example, a college student may have the following high-level topics:

* College
* Home
* Recreation

You can create topics in the sub-section with more asterisks. For example:

* College
** Assignments
** Lab
** Exams
* Home
* Recreation

If you wish to hide the multiple asterisks at the sub-section level, you can add the following to your ~/.emacs:

(setq org-hide-leading-stars t)

The resultant Org file will look like what follows:

* College
 * Assignments
 * Lab
 * Exams
* Home
* Recreation

You can add unnumbered (use minus or plus symbols) or numbered lists as shown below:

* College
 * Assignments
 * Lab
   1. Compiler Design
   2. Programming Languages
 * Exams
   - Mathematics
   - Operating Systems
   - Databases
   - Compilers
* Home
* Recreation

You can cycle through the various levels in the Org file using the Tab and Shift-Tab keys.

A checkbox with a ‘/’ or a ‘%’ symbol can be used next to a topic name to indicate the completion status of the task. The lists under a topic can each have a checkbox too. Using C-c C-c will mark a checkbox for completion (‘X’) and will also update the statistics in the top-level checkbox. An example is shown below:

* College...
* Home [2/2]
  - [X] Read book
  - [X] Take print-out
* Recreation [50%]
  - [X] Read newspaper
  - [ ] Meditate

If a task is completed, you can move it out of the Org file using C-c C-x C-a. This will create an archive file with the completed items.


An Org mode file can be used as a planner. Each task can be marked with any of the following states - {TODO, DONE} using C-c C-t key combination. For example:

* TODO College...
* DONE Home [2/2]...
* Recreation [50%]...

You can also customize the TODO states depending on your workflow by setting org-todo-keywords in your Emacs startup file. For example:

(setq org-todo-keywords
  '((sequence "TODO(t)" "NEXT(n)" "STARTED(s)" "WAITING(w)" "|" "DONE(d)" "CANCELED(c)")))

The tasks can be scheduled using C-c C-s. A date is prompted for using the Calendar and is placed below the list entry. For example:

* TODO College
 * Assignments
 * Lab
   SCHEDULED: <2016-04-06 Wed>
   1. Compiler Design
   2. Programming Languages
 * Exams...

You can also add the time interval during which you intend to complete the task. The above example with a scheduled time is shown below:

* TODO College
 * Assignments
 * Lab
   SCHEDULED: <2016-04-06 Wed 14:00-16:00>
   1. Compiler Design
   2. Programming Languages
 * Exams...

A deadline can be added to a task using C-c C-d shortcut. An example is given below:

* TODO College
 * Assignments
 * Lab...
 * Exams
   DEADLINE: <2016-04-08 Fri>
   - Mathematics
   - Operating Systems
   - Databases
   - Compilers
* DONE Home [2/2]...
* Recreation [50%]...

You can have multiple Org files stored in your system, and you can instruct GNU Emacs where to find them by setting org-agenda-files in your Emacs start-up file as shown below:

(setq org-agenda-files (quote ("/tmp")))

Additionally, if you want an agenda view to see the scheduled items and deadlines, add the following to your GNU Emacs startup init file:

(define-key global-map "\C-ca" 'org-agenda)

In the Org file, when you press C-c a, the following agenda will show up in a new buffer:

Week-agenda (W14):
Monday      4 April 2016 W14
  test:       In   4 d.:  Exams
Tuesday     5 April 2016
Wednesday   6 April 2016
  test:       14:00-16:00 Scheduled:  Lab
Thursday    7 April 2016
Friday      8 April 2016
  test:       Deadline:   Exams
Saturday    9 April 2016
Sunday     10 April 2016


Org-mode has a built-in table editor which neatly aligns the column data. For example:

* TODO College...
* DONE Home [2/2]...
* Recreation [50%]
  - [X] Read newspaper
  - [ ] Meditate
  | Day       | Time | Status |
  | Monday    | 1.25 | Done   |
  | Tuesday   | 1.50 | Done   |
  | Wednesday |      |        |
  | Thursday  |      |        |
  | Friday    |      |        |
  | Saturday  |      |        |
  | Sunday    |      |        |

You can also use spreadsheet formula on these tables to perform calculations. For example:

* TODO College...
* DONE Home [2/2]...
* Recreation [50%]
  - [X] Read newspaper
  - [ ] Meditate
  | Day       | Time | Status |
  | Monday    | 1.25 | Done   |
  | Tuesday   | 1.50 | Done   |
  | Wednesday |      |        |
  | Thursday  |      |        |
  | Friday    |      |        |
  | Saturday  |      |        |
  | Sunday    |      |        |
  | Total     | 2.75 |        |
  #+TBLFM: @9$2=vsum(@2$2..@8$2)


The Org file can be exported to multiple output formats (TeX, HTML, ASCII, PDF, etc.). Using C-c C-e will produce a buffer with the ‘Org Export Dispatcher’ menu to select an exporter. This is shown in the following figure:

Org Export Dispatcher

You can also write your own backend customisations to suit your needs.

Literate programming

Donald Knuth coined the term ‘Literate Programming’ in 1984. To quote him:

"I believe that the time is ripe for significantly better documentation of programs, and that we can best achieve this by considering programs to be works of literature. Hence, my title: ‘Literate Programming’.

Let us change our traditional attitude to the construction of programs: Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do."

Org mode supports this style of programming using Babel. You need to activate the support for the programming languages in your GNU Emacs startup file. For example, the following code snippet helps to execute Bash shell scripts.

 '((sh . t)

Consider a shell command to find the disk usage. You can create an Org file, and enclose the command in a Babel code block as shown below:

  df -h

When you press C-c C-c on this code block, you will be prompted with the string “Evaluate this sh code block on your system? (yes/no).” If you input “yes”, the output is produced in a Results section as shown below:

| Filesystem | Size | Used | Avail | Use% | Mounted        | on |
| udev       | 1.9G | 0    | 1.9G  |   0% | /dev           |    |
| tmpfs      | 384M | 6.0M | 378M  |   2% | /run           |    |
| /dev/sda1  | 913G | 75G  | 792G  |   9% | /              |    |
| tmpfs      | 1.9G | 57M  | 1.9G  |   3% | /dev/shm       |    |
| tmpfs      | 5.0M | 4.0K | 5.0M  |   1% | /run/lock      |    |
| tmpfs      | 1.9G | 0    | 1.9G  |   0% | /sys/fs/cgroup |    |
| tmpfs      | 384M | 64K  | 384M  |   1% | /run/user/1000 |    |

You can learn more on Babel from their web page

A mobile version of Org mode is also available as Free and Open Source Software. You can use a third party service to sync your Org files between your mobile and system. Since the files are plain text, they can also be revision controlled using Git or any version control software.

Please refer to the Org reference manual at for more tips, customisation options and documentation.

March 31, 2017 10:00 PM

March 28, 2017

Saptak Sengupta

In The Heat of Code : A Mentor's POV

In The Heat of Code or CodeHeat, as it is famously known right now started when Mario Behling started a discussion with me about how to encourage continuous contribution to projects by FOSSASIA even after GSoC. The scenario was most of the time students or participants stopped contributing after Google Summer of Code ended because there wasn't much incentive or profit of their's in continuing with the projects. So we decided to give people a reason to continue. In fact why just continue? Why not get completely new contributors??? And without distinguishing whether they were in university or school or working professionals. So we got others in FOSSASIA team also to drafting the idea into a proper event. And thus began CodeHeat. The official announcement was made in September 20th. The coding started on September 25th. I was to be a mentor in the Open Event Organizer Server project. And the registrations started coming.

We had a huge number of registrations but sadly there were very few contributions in the Open Event Organizer Server project. Most of the participants were more interested and enthusiastic in contributing to android app development and our project got a little less attention. Nonetheless, I and Niranjan continued our own contributions and reviewed occassional pull requests we received. It was almost end of November and though CodeHeat was going great I wasn't very happy as a mentor since our project didn't get much contributors.

Then in the beginning of December few of my friends from college asked me about codeheat and said they were interested in Python. I was delighted and introduced them to Open Event Organizer Server project. Soon there were participants from other colleges as well. We started getting more and more contributions. Then there were 2 participants -  Shubham Padia and Medozonuo who were not only contributing but were almost competing with each other. The result of their competition was we got huge number of awesome code contributions from both of them in all areas from frontend to backend to even database improvements.

From implementing the entire discount and access code system to providing more options and making it more customizable for CFS to solving tons of frontend bugs and export functionality, I and Niranjan almost started having a hard time reviewing their PRs since there were tons of them. I was delighted. The project was nearing release more and more and it was reaching a stage where we can actually make an attempt to use it in production. I and Niranjan often discussed how we hoped these 2 make to the top ten in CodeHeat. It was almost like reliving GSoC from a mentor's perspective.

Finally it was result time. Though it would be wrong to say I was nervous but I surely was excited to know whether any of the contributors of open event organizer server project made it to the top ten. To my utter happiness not only did they make to top ten but Shubham Padia and Medozonuo made it to the top 3. I was really happy for them since they truly deserved it. I guess Niranjan would agree with me in saying that we truly loved mentoring them. It wasn't like they knew each and everything but they picked up stuff pretty quickly and showed their contribution in all aspects of the code. Also, we were later able to get their help in reviewing other's code which was really helpful for me and Niranjan.

It was a really wonderful experience, mentoring in CodeHeat, reviewing PRs day and night, sharing knowledge with others. I simply loved the experience. The icing on the cake was 2 of the top 3 were contributors to open event organizer project. A lot many mentoring experiences are on the queue and I am really looking forward to them.

by SaptakS ( at March 28, 2017 03:53 PM

March 27, 2017

Kushal Das

Building IoT enabled power-strip with MicroPython and NodeMCU

This was on my TODO list for a long time. But, never managed to time to start working on it, I was also kind of scared of doing the AC wiring without adult supervision :).

Items used

  • Power-strip
  • USB power plug (any standard mobile phone charger)
  • wires
  • NodeMCU Amica
  • Relay board
  • MicroPython
  • Mosquitto server on my home network

I ordered double relay boards (this one was marked for Arduino) from Amazon, and they were laying in the boxes in the Pune Hackerspace for a long time.

Yesterday, we had a Raspberry Pi workshop in the hackerspace as part of the Python Pune monthly meetup. Nikhil was present in the meetup, and I asked for help from him as he is a real hardware expert.

We took one of the existing power-strip from the hackerspace, and also a mobile phone charger. After taking out 2 of the power sockets we had enough space to plug-in the rest of the system inside of it. Of course, Nikhil did all the hard work of soldering the wires in the proper manner.

The relay board is connected to a NodeMCU Amica running MicroPython. It has a code like the following example:

import time
from machine import Pin
from umqtt.simple import MQTTClient

# Received messages from subscriptions will be delivered to this callback
def sub_cb(topic, msg):
    led1 = Pin(14,Pin.OUT)
    if msg == b"on_msg":
    elif msg == b"off_msg":

def main(server="SERVER_IP"):
    c = MQTTClient("umqtt_client", server)
    while True:

if __name__ == "__main__":

I will have to cover up the holes with something, and also push the code to a proper repository. Meanwhile this was the first usable thing I made with help from friends in the Hackerspace Pune. Come and join us to have more fun and build new things.

Btw, remember to have a password protected mosquitto server :)

by Kushal Das at March 27, 2017 03:20 PM

Trishna Guha

Customize Packages for Atomic Host : Ansible Automation

My earlier post automate-building-your-own-atomic-host describes how to Automate building Atomic Host with Ansible. But it is not capable of customizing packages for OSTree and build Atomic host based on it.

This post includes Ansible Automation for customizing packages of OSTree and build Atomic Host. Below are the improvements on this updated post :

  • Add packages to OSTree (It is suggested not to delete any pre-existing packages from the OSTree, that might break your Atomic host).
  • No need to create VM from the QCOW2 image will shell script anymore, It will be now all-in-one playbook.

If you do not know about Atomic host, please refer to


The requirements remain the same just like the earlier post. I will use Fedora distribution for the demo, but the same will be applicable for CentOS as well.

  • Make sure Ansible is installed on your system. If you are using Fedora workstation/any other platform, do not forget to install python2-dnf as well.
  • Download Atomic QCOW2 image: Fedora-Atomic.



$ git clone
$ cd build-atomic-host/

Environment Setup:

The following will install requirements on your system, initializes OSTree and starts HTTP server as daemon service. The OSTree is made available via web server at TCP port 35000. After running the playbook you may use ip addr to check the IP Address of your HTTP server.

$ ansible-playbook setup.yml --ask-sudo-pass


I am going to use variables applicable for Fedora. If you are using CentOS please modify the variables based on it.

  • Primary Variables.
# Variables for Atomic host
atomicname: my-atomic                          # OSTree name
basehost: fedora-atomic/25/x86_64/docker-host  # Basehost
httpserver:                      # IP Address of HTTP Server
  • Additional packages you would like to have in your OSTree.
# Variables for OSTree packages
branch: f25
repodir: fedora-atomic
abs_path: /workspace                                # The absolute path to the git repo.
custommanifest: customized-atomic-docker-host.json  # The manifest that goes into the custom host(ostree) content that we are going to build.
sourcemanifest: fedora-atomic-docker-host.json      # The manifest that goes into the actual Base Fedora host(ostree) content.
packages: '"vim-enhanced", "git"'                   # Packages you want to have in your Atomic host.

Add packages like above separate by comma.

  • Variables for the VM
# Variables for Creating VM
domain: atomic-node                        # Domain name
image: Fedora-Atomic-25-20170228.0.x86_64  # Image name
cpu: 1
mem: 1536
  variant: fedora23
path: /tmp                                 # Path to QCOW2 Image

Main Playbook:

Run the main Playbook which will create VM from QCOW2 image, compose OSTree and perform SSH-Setup and Rebase on OSTree:

$ ansible-playbook main.yml --ask-sudo-pass

Note: user-name: atomic-user, password: atomic are the credentials for the instance.
If you wish to change it, modify the cloud-init user-data.
We will have the credentials as variables/vault later.

To Check the IP Address of the VM running:

$ sudo virsh domifaddr atomic-node

Now SSH to the Atomic host and perform Reboot so that it will reboot in to custom OSTree.

$ ssh atomic-user@IP-ADDRESS-OF-VM
$ sudo systemctl reboot

SSH again and You will have your own OSTRee.

[atomic-user@atomic-node ~]$ sudo rpm-ostree status
State: idle
● my-atomic:fedora-atomic/25/x86_64/docker-host
       Version: 25.1 (2017-02-07 05:34:46)
        Commit: 15b70198b8ec7fd54271f9672578544ff03d1f61df8d7f0fa262ff7519438eb6
        OSName: fedora-atomic

       Version: 25.51 (2017-01-30 20:09:59)
        Commit: f294635a1dc62d9ae52151a5fa897085cac8eaa601c52e9a4bc376e9ecee11dd
        OSName: fedora-atomic
[atomic-user@atomic-node ~]$ rpm -q git vim-enhanced

If you find any bug/idea please open up issues here. Thanks.


by Trishna Guha at March 27, 2017 10:50 AM

March 24, 2017

Farhaan Bukhsh

The A/V guy’s take on PyCon Pune

“This is crazy!”, that was my reaction at some point in PyCon Pune. This is one of my first conference where I participated in a lot of things starting from the website to audio/video and of course being the speaker. I saw a lot of aspects of how a conference works and where what can go wrong. I met some amazing people, people who impacted my life , people who I will never forget. I received so much of love and affection that I can never express in words.  So before writing anything else I want to thank each and everyone of you , “Thank you!”.

My experience or association started the time when the PyCon Pune was being conceived Sayan asked me if I could volunteer for Droidcon so that I can learn how to handle A/V for PP,  and our friends at HasGeek were generous enough to let me do that. The experience at Droidcon was crazy, I met a lot of people and made crazy lot of friends. Basically me and Haseeb were volunteering to learn the A/V stuff and Karthik was patient enough to walk us through the whole complex set up, to be very honest I didn’t get the whole picture till now but I some how able to manage. I learned a thing or two about  manning the camera and how much work actually goes to record a conference.

Since I was anyhow going to the conference I thought why not to apply for a talk but somehow I knew I wasn’t going to make it reason being the talks got rejected in a lot of other conferences 😛 . But anyhow being my stubborn self I don’t give up on rejection I gathered all the courage and got Vivek involved and we decided to apply for the talk and to my surprise it got in. This was our first conference talk and it was on one of the projects that we really really love, Pagure.

Since these things happened over a large span of time, by the time conference dates came I have nearly got out of touch with the A/V setup I only have vague idea about what is happening. So Sayan who is a one man army stepped in and he assured me that he will help me with getting the setup ready and we turned again to our friends at HasGeek and they were really humble to help us out this time and also help us with the instruments. We literally had a suitcase full of wires in case things go wrong. We spend around 3 days to up skill ourselves to handle the setup but this time the setup was very simple.

After all this happened and Sayan and Chandan took all the instruments to Pune. I arrived at Pune somewhere around two days before the conference the bus that I took from Bangalore to Pune dropped me somewhere near Telegaun which is near to Mumbai than Pune and I somehow managed to get back to Pune and reached Sayan and Chandan’s house. We were bunking together and there were more people about to come. I took some rest and then we were out , first stop was Reserved Bit , oh I can’t forget this place.

It is a perfect place for geeks and I loved every aspect of it. There I met Siddhesh for the first time we have had conversations over IRC though and met Nisha too. Amazing people the whole experience to travel to Reserved Bit and way back was amazing. We went to the venue to checkout where the camera will be and verify various aspects of the venue. After we came back I started working on the setup and man it was very tough and tricky to gather live feed from the camera.

First of all I was little hesitant to use any proprietary software but then I had no option so we somehow found a windows laptop and tried configuring it but almost everytime either we got a “BLUE SCREEN” or “UPDATES” which annoyed me , the sole reason of using windows was because we had a piece of hardware called capture cards, and the driver for which were not available. After long struggle and a lot of digging done by Siddhesh we got driver for Epiphan capture card for Linux and this was around 12 in the night and we all were still there at Reserved Bit. This gave all of us new hope and then it started we kind of got our minimalistic set up and Siddhesh did a “Compiler talk by Angle Fish” , it was a lot of fun by the time we got it working it was somewhere around 4 in the morning. After all this Sayan and Me actually took a walk back home and picked up Subho on the way. The next day CuriousLearner arrived and then Haseeb , Amit and Gaurav.

We were around 10 people squeezed in a single room but without any discomfort we kind of enjoyed our stay with occasional leg pulling to deep intense tech discussion the whole experience was just terrific. Then comes the actual venue setup that was one crazy thing so the video setup was working with Linux , we had Epiphan capture card working on Kernel version below 4.9 and OBS studio as a recording software. I actually spent a good number of hours to install OBS and downgrading kernel to 4.6 so that Epiphan driver works on at least 6 laptops. When we tried the setup on site and it broke because we didn’t take into account the audio from the mic. All of us were stuck in a state of panic then we realized that we have a mixer with us, but its power cord was left at Reserved Bit . By this time this setup kind of became our conference hack and we wanted it to work so badly. We actually ran back to Reserved Bit spent sometime there since we had some work and then quickly came back to the venue, connected the mixer and after few trial and run it worked.

“YES IT WORKED ” our efforts paid off, we recorded the whole conference using this setup, some of the recordings were a little glitchy and one other hack that we added was we weren’t recording the slides from speaker’s laptop we were doing it manually on our laptops. That means one copy of slide was being played on our laptops and we were recording it accordingly.

Apart from this experience I actually got the opportunity to meet all the keynote speaker the first so I met Nick, Honza, Terri,  John, Steven and Praveen. This was another experience in itself to know them and talk to the Rockstars of the FOSS WORLD.

As a speaker Kushal introduced me as the Speaker who is also the Cameraman for the event and that was may be the first time in a tech conference. Vivek and I have been collaborating over the talk for a long time and we figured out the order in which we need to speak and we spoke accordingly we kind of covered all the things that we wanted to and got a great response from the audience. I attended most of the talks since I was The A/V GUY but I had a huge help from rtnpro he was always there humble and ready to help.

The conference came to an end where Nisha told all the people about the effort that was put in from every person and specially Sayan. After this we had two days of devsprint where we had amazing projects, Vivek and I were mentoring for Pagure and we got a lot of new contributors and quite a number of PRs ( 13 to be precise ), the devsprint was a run away success.

I also got chance to interact with mbuf and man I saw him smile and crack jokes for the first time and it was crazy fun ,  I think it was the dinner after the last day of the conference. One of the most amazing experience was to talk to Haris and yes his name is Haris not Harish. The whole experience was so lovely that I don’t think that it can be better than this.

PS: We fixed my Macbook too

PPS: Video of our talk at PyCon Pune

by fardroid23 at March 24, 2017 04:35 PM

March 17, 2017

Suraj Deshmukh

New place to this blog

The new version of this blog is at . All my new posts will be put in there now. Bye bye wordpress.

by surajssd009005 at March 17, 2017 10:03 AM

Trishna Guha

Contribute to Atomic Host Documentation

The post describes how you can contribute to Atomic Host Documentation. If you do not know what Atomic Host is, please refer to:

Atomic Host Documentation focuses on covering Docs required for Atomic Host Introduction, Installation, Cluster set up with Kuberenetes/Openshift etc to how to compose, manage and deploy Atomic Host and its various application.

Atomic Host Documentation will also support Fedora Atomic Documentation and CentOS Atomic Documentation within the same repository in near future as AsciiBinder has ability to build Docs with multiple distros and versions.


  • AsciiDoc markup language to write Docs.
  • Asciidoctor that acts as text processor to convert AsciiDoc content to HTML5, DocBook and others.
  • AsciiBinder that helps to build, maintain documentation in easier way.

Set up Development Environment:

The following creates development environment and installs required libraries/packages on your local system which are required in order to write/build Doc for Atomic Host.

$ sudo dnf install ansible
$ git clone
$ cd atomic-host-docs/
$ git checkout -b branchname
$ ansible-playbook setup.yml --ask-sudo-pass

How to Write Doc:

Atomic Host Documentation uses AsciiDoc markup language. You can have a look at the Reference for AsciiDoc Syntax.

The following procedure demonstrates how you can write and build Doc.

$ mkdir container
$ touch container/overview.adoc



= Container Overview

Container contains applications in a way to keep itself isolated from the host system that it runs on and
container allows developer to package an application with all of it parts, such as libraries and other packages
it needs to run and ship it all as one package.
I love Containers!!!


After the Doc is ready, we need to make entry in topic_map.yml file. This file tells AsciiBinder which topic groups and topics to generate.


Name: Tools
Dir: container
  - Name: Overview
    File: overview


Now go to the root directory of the repo. The following command will build the Documentation.

$ asciibinder


A new directory will be created named _preview. You will be able to browse Documentation from there that you just build.

This is how it will look like after the Doc is build:


Join and Help:

If you are looking forward to contribute to Atomic Host Docs, this URL contains the issues based on the topics that is required to be documented:

Mailing list:

IRC: #atomic on Freenode server.

by Trishna Guha at March 17, 2017 09:53 AM

March 14, 2017

Jaysinh Shukla

Pycon Pune 2017: A wonderful Python conference



The conference is worth attending if you are a student, programmer or a hobbyist. If you are a swag-hungry then don’t expect much as a swag from this conference. If you are a Devsprint lover, then this conference has the coolest Devsprint. A great number of keynote speakers are invited for this conference.

Detailed Experience

Because I was volunteering for this conference I reached Pune one day earlier than the conference days. The volunteer meeting was happening at Reserved-bit.



Reserved-bit is the best hackerspace I have ever come across. It has a large collection of programmable boards. You will find boards like Raspberry Pi, Bana Pi, Dragonboard, Bigalbon, BBC-microbit and the 3D printer. Furthermore, this space has a great collection of books on Compilers and Embedded programming. I managed to found few on open-source too. The owners are great hackers. You will love to interact with hacker Siddhesh Poyarekar. Hacker Nisha Poyarekar is volunteering the PyLadies community at Pune.

Pune to Mumbai

I spent my half day in this space. I got the responsibility of receiving one of the keynote speakers who was landing at Mumbai airport midnight. To be frank, estimation of Google Maps between Pune to Mumbai is wrong. It showed nearly 2 hours but it took almost 4.5 hours to reach Mumbai. It took few more minutes to reach the airport. The road is impressively smooth. You will encounter the beautiful mountains of Lonavla. The task of moving from Pune to Mumbai airport, receive Katie and come back to Pune was completed in almost 13 hours. I left from Pune around 4.30 PM and came back at nearly 5 AM next day early morning.

Illness during conference

Because I did a huge amount of traveling at that night, I was unable to get enough sleep. Such tiredness resulted in an eye infection. I managed to attend the first day of the conference, but I was not in a condition to attend the second day. Treatment from local doctor healed me in two days and then I was able to take part into Devsprint.


The conference was a total of 4 days where the initial two days were for the talks and the end was assigned for a Devsprint. It didn’t overwhelmed me with many tracks but gave the quality talks presented in a single track. The talks were set from 9 AM to 5 PM which was taken little lightly by the attendees.

I was pretty impressed with the keynote speakers of this conference.

Katie Cunningham

Katie is the O’Reilly author. Her book on Accessibility depicts her area of expertise. She is fun to talk to. She likes to listen about developer communities, writing and most importantly computer games. Her broad vision on product development is amazing. She is an avid reader. I enjoyed listening to her experience of being in India for the very first time.

Honza Kral

Honza is the dude who loves contributing to Django. He is a core contributor of Django too. He hacks on Python drivers at Elastic. I was impressed with his suggestions on a code design problem I was trying to solve from the past few months. His suggestions on code design are worth noticing. He is a vimmer and maintains little vim plugins as a part of his interest.

Stephen J. Turnbull

Stephen professes the Dismal Science of Economics. His knowledge is deep-rooted just like his beard. You will enjoy discussing computer science, books and his experience of programming. He is authoring few books written in the Japanese language. Stephen is Emacsite.


Terri Oda

Terri is a security nerd. She spent most of her time exploring tools at Intel. Terri knows how to hide from the spying of the U.S. Government. She is leading Google Summer of Code section from Python Software Foundation. Terri is PSF community service award winner. If you are a student and want to take part in GSoC choosing PSF as your organization then she is the right person to talk to.

Florian Fuchs

His knowledge on ReST API construction is the best. He is a Falcon nerd too. I enjoyed discussing various authentication mechanisms for ReST API with him. He is a Red Hatter.


Nick Coghlan

Nick listens more than he speaks. I will advise you to not disturb him if he is coding. He enjoys concentrating while coding. Getting his mentorship was a great experience. He has been contributing to Core Python for a decade now. You will enjoy discussing on interesting code compositions with him. He is a Red Hatter.

Praveen Patil

Unfortunately, I didn’t get much time to talk with Praveen during this conference. He is a math teacher who teaches concepts of mathematics using Python programming language. You should feel confident to speak with him on Python in education and mathematics with him.

John Hawley

John is the wittiest person that I know. His lines always end with humor. He hacks mostly on hardware and GNU/Linux. Micro Python and GNU/Linux should be considered as part of his interests.

I am sad to declare that I was unable to attend any keynote speeches because of the illness. Mostly I rested at the hotel or talked with people during the conference days.


Volunteer Party

If you are volunteering for this conference, then you will be invited to a volunteer dinner party. We enjoyed party colored disco lights dancing on the bits of the DJ. Punjabi food was served, and if you were above 25 than you were allowed to take a sip of a beer.


Devsprint happen at the Red Hat Headquarters, Pune. I found the building has tight security. You will find an individual pantry section dedicated to each department. We were instructed to hack at a huge cafeteria section. I myself contributed to Core Python. Nick Coghlan was mentoring for Core Python. I reviewed one PR, found one broken test case and wrote a fix of an existing issue with his help. Honza was leading the development of Django web framework. A team of Anand Chitipothu mentored for Web2py. Farhaan Bukhsh mentored for Pagure. John Hawley encouraged contributing to MicroPython. Terr Oda, Stephen Turnbull and Florian Fuchs mentored for GNU/Mailman.


Why attend this conference?

  • This conference has the coolest Devsprint. The organizers understand the value of the Devsprint in a conference. I have never observed such an importance of Devsprint at any other Python conference happening in India.

  • If you are a student, then this is a beginner friendly conference. Don’t be afraid to attend if you are a Python noob. You will receive a student concession for the tickets too.

  • If you are a developer, coming to this conference will inspire you to grow from your present level. You will meet core contributors, lead programmers, owners of startups and project managers. You will find a huge scope of opportunities to network with people.

  • The conference is single track event. This decision helped me to not miss the interesting talks. In my previous experience, parallel tracks forced me to choose between talks when I was interested in both, which killed me.

  • I have never seen such a huge amount of keynote speakers at any conference happening in India. Keynote speakers were the main attraction of this conference.

What was missing?

  • If you are a swag-hungry fellow than attending this conference won’t be worth it. The conference attendees have to be satisfied with the conference T-shirt.

  • I observed there were fewer corporate stalls than at other Python conferences. A stole from Reserved-bit, Red Hat and PSF community stall was there.

  • A workshop section was completely missing. In my opinion, the workshop helps the beginners to start. There were a few topics which can be better represented as workshop rather than a talk.

  • I was unable to observe any dedicated section for an open space discussion. This section is helpful for communities and contributors to discuss interesting problems and think together.

Proofreader: Benaiah Mischenko, Chameleon

by Jaysinh Shukla at March 14, 2017 12:48 PM

March 06, 2017

Anwesha Das

My bunnyuncle

PyCon Pune devs sprint hardware room

time 10 AM

The room was full with engineering students, professional engineers, hardware guys. And among them there was me, a lawyer and I do not understand a single bit of hardware.
I was cursing myself why am I here. In fact I have considered all the black cables, most of the hardware as UFO (Unknown Foul Object) creating mess in my house, courtesy: husband dear. And now I have to work on those.

I Want to ran away.
Wish I had a Tardis.

Unknown Foul Object == Known Cute Object

The first few good thing that made me comfortable were:

The object which we were suppose to work on was a bunny. Its cute. Its cool. I love it. Let me introduce you to bunny. It is a small bunny shaped board designed by Dr. Terri Oda and John Hawley. It has a ESP82866 on board. It is an open source project and the whole thing available in github

We had John as our mentor. A friend who gave me the freedom that I can interrupt him at any point which I do not understand. From scheduler to ARM, from scheduler to hardware licensing he explained to me all and most importantly the way a novice like me will understand. Thank you John, for making me fall into love with hardware.

The hesitant me started working. Initially what we were trying to code on micropython to lit LEDs up. We have actually made the circuit on breadboard. Initially one there, after multiple LEDs to it.

Working with bunny

After lunch I started working actually on bunny. John explained me different parts of it. Initially I tried to control the "magic button". Then I lit up the bunny's ears. Then playing with the LEDs. Lighting it in different random order and intensity.
Though the dev sprint is over but the fun is not I gave back home and took another step forward with the bunny. I named my project bunnyuncle.

The bunnyuncle

My idea was that the LEDs, specifically in the right ear of the bunny will lit up every time someone mentions me in the twitter. The schematic of py project looks like this:

With an object to give the project a shape I have divide the project into three parts:

I have written a by and through which I am fetching data, i.e the notifications (which mentions me as @anweshasrkr) from twitter to my server. I am using the Python tweepy module for getting notifications from twitter. I am keeping the authentication data in conf.toml.

For every notification I am publishing a message to Mosquitto. Mosquitto is message broker which uses MQTT Protocol. MQTT is a lightweight protocol for small sensors and mobile devices. Mosquitto can be installed in Fedora by using the dnf command.

The bunny is subscribed to the same topic in the Mosquitto. Therefore every time a message published to the Mosquitto in the specified topic, the bunny is receiving the message, and lighting up the right ear. The project is available in the github. contains the code that runs in ESP8266.

This is my second attempt to code in Micropython, first time it was with Microbit. Coding in hardware using micropython is fun. Try it yourself.

Wish I could go back to that time, in that hardware room.
Wish I had a Tardis.

by Anwesha Das at March 06, 2017 08:20 PM

February 11, 2017

Farhaan Bukhsh

Hacking on Pagure CI

“Ahaa!” I got a lot of ahaa moments when I was hacking on Pagure CI ,  Pagure CI’s initial draft was laid by lsedlar and I have blogged about it followed by me and Pingou. Pingou has done really amazing work with the flow and refactoring of code to making beautiful api calls.

I had great time hacking around it and got a bunch of learning. Few of the learning are :

  1. Try to do the minimal work in setting up the development environment mock everything that is available for testing.
  2. Think deeply about something when your mentor points it to you.

So the issue I was working on is a long pending one the issue was to attach build ID to all the Jenkins build Pagure was getting . Reason why attaching build id’s are necessary is to distinguish between different builds and to make the link to Jenkins a bit more specific for example if a build fail which was that build.

The first mistake I did was setting up Jenkins on my machine I had it previously but since my machine went under a kernel panic I lost all data related to Jenkins , now Fedora 25 has some packaging issue when installing  Jenkins directly. But anyhow from Jenkins site I got a way to set it up and it worked for me. In the mean while Pingou was pointing it out that I actually don’t need Jenkins instance but I was not able to get him on that and I really feel bad about it.

After setting up Jenkins the other task for me was to configure it , which was really easy because I have done it before and also because it was well documented. For setting up the documentation is fine but for hacking on the CI you need a little less work.

Step 1

Set up REDIS on your machine , you can do that with installing redis using sudo dnf install redis and enable the service using sudo systemctl enable redis and then start the service using sudo systemctl start redis. Along with this you need to add config for redis in or which ever config file you are giving to the server using --config. The configuration are well documented in pagure.cfg.sample.

Step 2

Now, copy the pagure-ci-server from pagure-ci directory into the parent directory. Now once you have done that , this step is necessary because this is the service that run for pagure-ci. Now you just have to run pagure-ci-server by python Once this started your service will be up and running.

Step 3

Now you just fire up your instance and make a project , have two branches and open a PR form once branch to other, if you get some authentication error that is most probably because you not done the right permission for users to use Jenkins, this is not recommended but you can entirely turn off the security of Jenkins just because you are testing something.

If you have done everything correct you will see the Jenkins flag being attached to the Pull Request.


All this could be saved if I have just used python-jenkins to fetch a job from Fedora Jenkins instance and send it as a flag to my PR. Thank you Pingou for telling me this hack.

Happy Hacking!

by fardroid23 at February 11, 2017 04:35 AM

February 08, 2017

Anwesha Das

A date with Microbit @ February meetup of PyLadies Pune

Pyladies Pune is 8 meetups old now, (after the rebooting). I missed last month's meetup, as Py was unwell. This month's meet up was special. It was the first time the PyLadies meetup took place in reserved-bit, the coolest place in Pune. Thank you reserved-bit for hosting us. The next thing was the fact that it was a session about microbit. A super huge thanks to ntoll for sending us the hardwares.
Microbits are one of our dearest possessions (me and Kushal. I am learning coding in this and I really wanted to share the experience, the fun with my fellow PyLadies.
I left home early leaving the instructor for the session alone with his daughter (and I was so happy about it). We are just two weeks away from PyCon Pune, and hence, decided our first agenda for the meetup would be to discuss our plan for PyCon. The girls came up with really nice ideas about the booth. We have also decided about what us PyLadeis wish to do during the devsprint.

Mummy v/s Daddy

The daddy-daughter duo arrived. Both of them were looking like they had just returned from the war front. Mommy to the rescue! Py was really excited to see her “bestest friend” Ira over there. With each passing meetup, our Pybabies are becoming increasingly comfortable about their mummies working. Barring a few exceptions, Py was at her best behaviour this time.

The Fun begins

Kushal started the session after his quick coffee break. He introduced the group to microbit, the tiny computer (a wave of "wow" blew over the room :). He asked us to download Mu editor from his local cache. We had decided each participant would get a chance to work with a microbit. And then came the twist in the tale. Kushal forgot to bring the microbits. (This happens when wife leaves home early.) After throwing him an angry glance, we requested Sayan to get it. Sayan readily agreed. Peace prevailed! Meanwhile, Kushal gave us a problem - to find out the groups of the current user in the Linux systems. Windows users were to share a group file.

The arrival of microbits

photo courtesy: Sayan Chowdhury

Finally the microbits arrived. Each participant got a microbit. We opened up the documentation for microbit. We got started with scrolling images with the typical "hello PyLadies" on the display board. Post lunch, we tried playing music, speech and other features. We plugged our earphones to the microbits with the alligator-chip cables. The last and the best part of the workshop was working with the radio module. We were sending various messages. It was such fun to see those on each other's device. Nisha and Siddhesh went out to actually check the range. It covers a large area.

photo courtesy: Kushal Das

Well after the session was formally over, people actually stayed back and continued working, trying things on their own (may be the little magic of being inside a hackerspace). We have decided to work on it during PyCon Pune devsprints. As Nisha said "It is the best PyLadies meetup we have ever had".

by Anwesha Das at February 08, 2017 08:39 AM