My talk at August Pune Python Meetup

I gave a talk on 29.08.2015 in the August Pune Python Meetup. The talk focused on “How to get started with Fedora-Infra?“.

The Presentation from my talk can be found at the following links:
1. https://github.com/DhritiShikhar/August_pune_python
2. http://www.slideshare.net/DhritiShikhar/getting-started-with-fedora-infra-52205148

I covered the following topics:
1. What is Fedora-infra?
2. What can be some projects in fedora-infra for beginners to start contributing?
3. What is Pagure?
4. How to solve an issue and send a PR in Pagure?

Pagure is a lightweight forge of github. It belongs to Fedora-Infra. It is created and maintained by Pingou. Since it is in the making, it has a lot of easy fixes and thus it is perfect for new contributors to start contributing. My Pagure account is https://pagure.io/fork/dhrish20/pagure. I have sent bug fixes out of which some are merged and some need a few modifications.

Many questions were asked during my talk but the highlight were:
1. What is meant by “light-weight github forge”?
2. How is Pagure different than Github?
3. How to understand an issue?

I took an easy fix issue (https://pagure.io/pagure/issue/330). I fixed the issue and demonstrated how to send a PR.
I covered some git basics. I discussed following issues while demonstrating:
1. How to understand an issue?
2. How to understand that where exactly in the project repository are we supposed to make the changes?

Pune Python Meetup’s organiser Chandan Kumar always stresses on contributing to open source and focusing on a single Open Source project.

Contributing to an open source helped me in following ways:

1. It improves your coding skills.

2. When I submit a patch, maintainers and other contributors check my patch and provide input on how to optimize my code or how exactly code should be written.

Such information and knowledge which comes from experience senior developers is gold to any young programmer.

3. I am getting better at understanding other people’s code.

4. I gained insight on how senior developers such as Pingou write, maintain, test their code/project.

5. I have learnt and understood the git workflow by actually contributing to opensource.

6. It helped to interact with developers across the globe which has broaden my network

7. When you contribute to a single project. You start by solving easy fixes and work your way through difficult fixes. This helps you understand various aspects of the same project.

For Example: In Pagure, i started by an easy fix issue which just wanted me to swap the title. Currently, I am working on an issue which would provide Pagure with the support of multiple ssh keys.

My talk at August Pune Python Meetup

Software Container

Container

A component that contains other components.

Software Container

  • A skinny capsule which contains application.
  • It is OS-level virtualisation.
  • Containers share same kernel of host system.
  • Difference with Virtualization:
    • VM is slow and has significant performance overhead. Containers are fast with zero performance overhead.
    • In virtualisation, around 15-20% resources are wasted.
    • Hypervisor abstracts entire device whereas containers only abstract OS kernel.
    • Hypervisor provides full virtualisation. Container provides OS-level virtualisation.
    • Hypervisor provides a high level of isolation and security. In Software containers, isolation between host and container is not strong.
  • Advantages:
    • provides instant application portability
    • is fast
  • Disadvantages:
    • not secure enough
    • Type of container that can be installed on host, should work with kernel of the host. Example: you cannot run a Windows container on Linux host.
  • Types:
    • Application Containers
    • OS-level Containers

Application Containers

  • It is designed to package and run a single service.
  • It is useful when you want to create different containers for each component in your application.
  • Example: Docker, Rocket.

OS-level Containers

  • Virtual Environments that share kernel of host OS but provide user space isolation.
  • It is useful when you want to run many identical or different flavours of distros.
Software Container