Kushal Das

FOSS and life. Kushal Das talks here.

kushal76uaid62oup5774umh654scnu5dwzh4u2534qxhcbi4wbab3ad.onion

dgplug summer training 2014 registrations

This year we used a Google form to do the registration for dgplug summer training. We did much better marketing of the event over different mailing lists. Though we never looked for huge number of participants but few dedicated participants, this year's registration information is showing some interesting information.

Note: We really do not know how much of the below are correct information from the participants. Internet is a strange place.

Countries

The participants were asked to enter their country name in a textbox. From the resultset we can see the following countries has 1 participant.

  • Australia
  • Brazil
  • China
  • Finland
  • France
  • Hong Kong
  • Indonesia
  • Ireland
  • Jamaica
  • Kenya
  • Lithuania
  • Mozambique
  • Nepal
  • Pakistan
  • Romania
  • Russia
  • Singapore
  • Sweden
  • Tanzania
  • UAE
  • Uruguay
  • Zimbabwe

The following countries has 2 participants.

  • Israel
  • Italy
  • Nigeria
  • United Kingdom

Philippines has 3 participants and Canada has 4. USA is the second largest country from the registration sheet, with 37 participants.

India has the highest number of participants as anyone can guess, around 473. There are some spelling mistakes too, like, Iindia, Inda, Indua :) One particular person also thinks that Pune is a country.

Age of the participants

This number is also looks good.

13-18 years: 42

19-25 years: 424

26-30 years: 34

Above 30 years: 50

In one particular instance, someone wrote that she is interested in doing this training with her daughter, which is awesome to see.

The training will start from this Sunday, 6:30pm IST on #dgplug channel in freenode. Hoping to make many new friends over next three months during the training.

Btw, I forgot to tell everyone that we will be teaching Python3 this year :)

Upcoming dgplug summer training

So by the end of this month the 7th edition of dgplug summer training will start. Last year we had around 60 registered students and around 30-40 were attending the sessions on IRC regularly.

This year we made the registration even simpler, with a simple google form and did more publicity around it. Community members and students from previous years spread the news as soon as I announced. The response is huge. We already have 400+ registrations. We are hoping to see at least 50% of them to be online in the sessions on IRC.

But this big number also means we will have to be more organized. Last year we introduced many news automation systems within the course which worked well. This year we are going to add a few more into it.

As this course happens on IRC and mailing list is the primary medium of communication, we spend a lot of time in teaching about these mediums. The first few sessions will go slower but it should pick up speed after 2-3 sessions.

Shonku, a static blogging tool

I moved my blog into a static blog more than a year back using Nikola. It was a good move, writing was simple again. I spend more time in writing my blogs than thinking about formating or themes. But someplace back in my mind I was still looking for something even simpler. May be a minimalistic Nikola.

Just before PyCon US I started writing a new tool with this approach. I named it after Professor Shonku, my childhood hero. His logs from his diary was the source of the all stories :)

Shonku is written in golang, still many issues needs to be fixed but it can be used. I moved my blog into shonku few weeks back and things seems to be normal.

  • Posts in Markdown
  • Can have themes

The above two are the initial features I kept in mind while developing it. You can see a different theme here, the source of the theme can be found here.

The documentation will require more love. I am working on it slowly. The building/installation instructions work nicely, if you find any issue or want to make any feature request, please file an issue in github.

To try it out you can download a binary or build it from the source.

$ sha256sum shonku.bin

82476d8e4006da88bf09e1333597f8c0c1a31b3ddf2281aae54ee51e4eb43469 shonku.bin

Gigabyte 970ADS3P and Fedora

My desktop's motherboard died few days back. I could not find any suitable replacement and had to get a complete new processor and new motherboard, gigabyte 970ADS3P.

I never searched enough about this board before and after coming back home I figured out that the none of the USB2 ports are working. The onboard NIC was also not working. After a lot searching I found a simple solution, passing iommu=soft using grub configuration. Everything started working fine after that.

Dgplug summer training 2014

So another year and another summer training is going to start. This is the 7th year of the training. Last year we saw a huge increase in the number of the students, almost 3 times of the previous years.

This year we doing the registration using a google form and the number of people already registered is above 300.

What we teach in this training?

The training is not about learning a few tools or meeting few people. The goal of the training is to get more contributors out of these students. Most of the people who joined this training in previous years are complete newbies. But they spend time and worked hard to become upstream contributors in many different projects including Fedora, KDE, Transifex, Waartaa.

A basic outline of the training modules:

  • Communication guidelines
  • Basic command line tools
  • Text editors
  • Documentation
  • Source code management tools
  • Programming using Python
  • Project work

This year during FOSSASIA I was in a presentation from Cat Allman about GSoC's past present and future. I was very happy to see as teaching students mailing list guidelines was a point in that presentation. We make sure that the students learn the few basic but important skillset like this first.

Another major point in the training is documentation. Through the training we spend a lot time in reading and writing documentation. It is the primary means of communication to the users for all projects and we make sure that it becomes a second habit for the student. We use Sphinx for most of the documentation.

Home work system

Last year we also introduced a new homework submission system. Through which the students submitted back the solutions to the homeworks in different modules of the course. This solution is written using few lines of Python code and Nikola project for publishing.

Guest Lectures

One of the major attraction and crucial part of the training is the guest lectures where different upstream contributors come down to the IRC channel and interact with the students. They talk about their own story or different technical things including documentation, licenses, art work. Nick Coghlan did the first guest lecture last year. This year there wil be couple of big surprises in those lectures. But you will have to wait for them :)

How to register

Just fill out this form. Please also remember to register to our mailing list for more updates.

Do you want to try the latest Eucalyptus Cloud?

Do you want to try out the latest Eucalyptus Cloud? What you need is an extra system with CentOS 6.5 or RHEL6.5 installed. In that sysyem as root just run the following command. It will install all required packages and setup a cloud in a box environment for you.

bash <(curl -s https://raw.githubusercontent.com/eucalyptus/eucalyptus-cookbook/master/faststart/cloud-in-a-box.sh)

After the installation is done, you can use latest euca2ools (written in Python) toolchain to control the cloud.

If you have any suggestion please comment in this post.

Using golang with Eucalyptus

Here is an example code to start a new instance in your Eucalyptus cloud using golang. We are using goamz library.

package main

import (
	"fmt"
	"github.com/mitchellh/goamz/aws"
	"github.com/mitchellh/goamz/ec2"
	"net/http"
)

func main() {
	DefaultClient := &http.Client{
		Transport: &http.Transport{
			Proxy: http.ProxyFromEnvironment,
		},
	}

	auth := aws.Auth{"AKI98", "5KZb4GbQ", ""}
	mec2 := ec2.NewWithClient(
		auth,
		aws.Region{EC2Endpoint: "http://euca-ip:8773/services/Eucalyptus"},
		DefaultClient,
	)

	options := ec2.RunInstances{
		ImageId:      "emi-F5433303",
		InstanceType: "m1.xlarge",
		KeyName:      "foo",
	}
	resp, _ := mec2.RunInstances(&options)

	fmt.Println(resp)

}

Notes from Python Language summit

The day started with introductions. Guido introduced himself as its all his fault.

Release management discussion

Larry Hastings started the day with discussion on 3.5 release. 3.4 release was actually in 16 months. He wanted a feedback on the next release, if we want it in a smaller release cycle than the usual 18 months. Guido mentioned to stay with the 18 month cycle.

Larry also asked about opinions on state of the SCM after release candidate 1, should we create 3.5 branch and if yes then should we allow people to commit there or not? Default should point to 3.5.1 or 3.6 at that time? There can be another scenario where we do not create the 3.5 branch and keep the default as 3.5 release itself. The discussion will continue in the mailing list.

Next topic in the agenda was reports from different implementations.

PyPy

Alex Gaynor gave us the current status of PyPy project. There will be a second fund raiser on STM. The next release is targeting 2.7.6, there were a million downloads. While discussing about Python 3 branch he explained that it it only 3 bugs away from shipping and it is based on 3.2.

There was a small discussion about state of CFFI for standard library inclusion. Alex and David Beazley are supposed to work on cleaning PLY for the same. General opinion was that it should not be hidden as a private part of the standard lib.

Ironpython

Dino Viehland talked about the status of Ironpython project. Development is going on both 2.7 and 3.x series. 2.7.4 was released last year. Many new contributors came into the project which is a good news.

Jython

The developers sent a detailed report to Micheal Foord and he will forward it to the python-dev list. The takeaways from the mail are

  • Small number of contributors is a big problem.
  • 2.7.beta2 is tagged which used Java7.
  • Buffer protocol work is done (foundation to Python3 support).
  • They are also working on PyPi tooling.
  • There is also hope for releasing CFFI backend for Jython during Europycon sprints.

No standard library as module

When it was asked that if the other implementations want the standard library as a separate module to be resused, all agreed as 'No'.

Packaging

It was the longest discussion which made hungry developers really hungry :) Jokes aside, Nick Coghlan gave a detailed report on the advancement of the packaging world. Most of the development/design discussions are now happening on the distutils sig and in pypi mailing lists. He managed to put the use cases a very broader audience now, so we can except better feedbacks. On the development side, Warehouse is now implementing all old API(s), you may want to try it out at https://warehouse.python.org/.

3.4 has pip included, one usecase was to help people who downloads binary installers from our site. They can now install Django or other projects in wheel format.

Everyone also agreed that having the buildsystem inside the language is a bad idea. The buildsystem should be able to do cross-version builds.

Nick also pointed us to http://packaging.python.org/ which is the documentation for the whole echosystem. We all agreed that the Python echosystem is bigger than the core interpreter.

Glyph wants a PSF fund to a usability study on Python. There were a few other suggestion on PSF support for tooling development.

Pyston

Kevin Modzelewski explained how they are rebuilding a complete vm which is targeted to Python, this also means too much work but one can customize. It is targeting Python2.7 as Dropbox runs on it.

At this time of discussion Nick pointed us to http://speed.python.org/, target is to have a common set of tests to benchmark different implementations. He asked if any of the implementations wants to maintain it. We need more volunteers for that. A common set of cross-implementation benchmarks stays at http://hg.python.org/benchmarks and the mailing list for discussion is at https://mail.python.org/mailman/listinfo/speed.

Mypy project

Jukka Lehtosalo gave a talk on his mypy project which uses Python3 function annotations. Greg P Smith pointed us to a similar kind of Google project, https://github.com/google/pytypedecl.

Notes from teaching and outreach

Selena Deckelmann talked about few pain points from teaching and outreach.

  • Website is confusing. (Should I go for Python2 or Python3?)
  • Packaging and installer problem
  • So many different bug tracking system is also confusing
  • OPW program for Cpython, this is the first year we are participating.
  • Jessica McKellar will write "brand new coder tutorials".

Mercurial

Matt Mackall talked about Mercurial's painpoints for Python3. It currently works for 2.4-2.7, though he might drop 2.4 support in near future. It will be on 2.7 till RHEL7 is not EOL. He also said startup time is concern for him. Only big positive point he can see in Python3 is SNI. That feature allows you to do HTTPS to non ip based virtual hosts. Porting whole Mercurial to Python 3 is still a very big work. They had two gsoc students in last two years.

From here the talks suddenly moved into mythical Python 2.8 which we will not have, nope, sorry :) Guido wants a feature list from the people who are asking for 2.8 to understand better. We also want to help developers to make a single source for Python 2 and Python 3 release less painful.

Python 2.7 is alive and in good health and support will continue on the same.

Few points were talked about from 3.5, like byte formatting, unicode surrogate, binary mode cleans for bytes etc.

FOSSASIA 2014 (Event Report)

This was my first FOSSASIA. The event was in Phonm Penh, Cambodia. We reached the city one day before the event. The night before the event there was a pre-event meetup with the speakers and volunteers. There were 71 speakers from 21 different countries. Met few old friends after long time and made some new friends.

I spent the most of the night in room 317 with Praveen and Gnokii preparing the demo during my talk.

Day one started with a packed house. We all were in the top hall. Mario and Dang Hong Phuc gave an introduction about the whole event. After that there were many talks from the projects. I want to mention two talks from there. In one talk the Swedish Ambassador Anna Maj Hultgård talked about ideas Sweden stand for and all the freedom aspects in life. It is great to see her on twitter.

Cat Allman from Google talked about past, present and future of GSOC. "Teaching mailing list etiquettes to students" is very important and her slides proved that again. You can share Mbuf's presentation on the same to the new people.

Kate Chapman's talk on OSM was also important for the students. Later in her workshops and talks she demoed lot of things in full details.

Fedora team had a room at the end of hallway and we started our talks there. Gnokii gave some nice introduction to Fedora project, Tunta's talk was also in the same pace. My talk was about testing Fedora cloud images in Eucalyptus cloud. You can find the slides online.

If you want to see the actual steps and output, download and install this tool in your Fedora 20 system. You can use this tarball and install it or install playitagainsam using pip tool.

Then download this json file and run the tool like below.

$ pias play fedora_eucalyptus.json

Press any key and see the magic. You have to press enter for real life enter events though :D

On second day I gave my talk on "Document your code", slides are here.

Spent many hours talking with other speakers, talks continued to the after event parties, one such was in a boat on the river. It was good to see that many speakers already tried previous versions of Eucalyptus. I talked more about current features of Eucalyptus.

Last day of the event was in Open Institute. We had a Fedora workshop sessions there. People were introduced to the different parts of the project. We found our first ambassadors from Cambodia. From India 3 people also started their journey with Fedora. I introduced gpg and ssh to the people and we had a small key signing party in the same place.

The total experience of FOSSASIA is good, it was meant to be a place to meet fellow developers and discuss and hack on new things. I was happy to meet Praveen Patil in this event. He will be become a good contributor in Fedora Project just like Sarup started doing these days. I also learned a few things from him about Expeyes project.

I should thank Mario and Hong Phuc and all other volunteers of the event to make it a grand one. You can find all the photos from the event in my flickr set.