Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

Friday, 28 July 2017

Unknown

FOSSWave event in Coimbatore

What is FOSSWave?

WE ARE BUILDING A STRONG COMMUNITY

It's a place where you can learn, teach, enrich and be part of FOSS revolution!
It is an initiative to 
  • spread FOSS knowledge
  • connect with FOSS minded people across the globe
  • help students contribute to FOSS projects, tools, and technologies
  • Help students become industry ready.
In addition to sharing knowledge, FOSSWave speakers also take part in organizing events and speaking in conferences across the Globe.
The FOSSWave Community consists of active contributors from across the globe. It includes both paid employees and volunteers who work towards the goals set forth in the FOSS Revolution.

Special thanks to (in no particular order)

  • Premananth S: for helping us to grow, touch more lives and connecting us to KGISL
  • Sudharsan Rajendran: For being a wonderful host and making sure that the event went ahead smoothly. He put in a lot of hard work.
  • Prakash Mishra: or being an amazing co-speaker and traveling with me.
  • Super enthusiastic participants for getting involved in our talk and discussing FOSS with us.

     About the event

    I had stopped writing about the events I speak in..but this was different.
    A few days ago, I was invited by Prem to NASSCOM to give a brief talk on FOSS and trending technologies.
    Prem is doing a great job there by putting his effort in helping students from Tier2 and Tier3 cities. Around 20 of very enthusiastic students were selected and invited to Bengaluru to take part in such events. Mine was one of them. I planned to conduct a GitHub session after Intro to FOSS and brief about Fedora project.
    The event was very successful with amazing feedback.
    Just a picture with GitHub stickers that we distributed

    We (Sumantro, Prakash, and Smit) introduced FOSSWave to Prem and he loved the initiative.
    After few days Prakash and I got an invite to address few more super enthusiastic student in Coimbatore, Tamil Nadu. This workshop was for 2 days.
    We had suggested not to have more than 35-40 participants as I always prefer an interactive session rather than a talk where everyone gets bored.
    20 students were selected from KGISL and rest 15 from different colleges from all over Coimbatore.
    Everything from traveling to accommodations was sponsored by KGISL.
    We arrived Coimbatore at around 11 pm and Sudarshan was there to receive us. We were taken to a studio apartment which was full of all the facilities.
    Because of some other important tasks, I never got time to make slides[1] so I decided to do that. It took more time than expected as I was trying to avoid putting too much of complex and complicated stuff. 
    We got up at 5:30 as the event was from 9:30 and breakfast for us were arranged at 8:00. 
    The moment I stepped out of the apartment, I could feel the fresh unpolluted air. The weather was same as of Bengaluru's but a cleaner version. 

    Just a picture of a very huge college

    In the first session, we started with FOSS and It's philosophies and soon moved to Fedora project and 'How to contribute to Fedora QA'

    We covered the following topics during the time:
    1. FOSS and Fedora
      1. What is FOSS?
      2. Why FOSS?
      3. Getting industry-ready
    2. Discussions around diversity and contribution spectrum
      1. All FOSS projects are open-sourced: so contribute anywhere
      2. All contributors do not have to code; can be designers or can help in documenting
    3. How to start with FOSS
      1. Introduce yourself: let the world know who you are on mailing lists
      2. Every project has identity methods: Fedora has the Fedora Account System (FAS)
      3. What if you run into an issue? Use IRC!
    4. Fedora and contribution pathways
    5. start.fedoraproject.org
    6. apps.fedoraproject.org
    7. Fedora Docs
    8. Packaging (and using Bodhi)
    9. Fedora Magazine
    10. Recognition Model: Fedora Badges
    11. Creating Accounts (FAS, mailing lists, etc.)
    12. admin.fedoraproject.org
    13. For Fedora QA: all the people redirected to the QA mailing list
    14. Otherwise, shoot a mail to respective mailing list
    15. Freenode IRC webchat
    After this, we  gave participants a lunch break for 30 minutes and then started with GitHub

    Our talk covered some basics of Git and GitHub such as…
    1. What is version control?
    2. Need for a version control system
    3. Methods of version control
    4. What is the git, who developed it, and why you should use it?
    5. What is GitHub and why you should use it?
    6. Setting up and configuring git
    7. Stages of file tracking
    8. Creating a new organization and repository on GitHub
    9. Basic git commands: git status, git clone, git diff, git add, git commit, git push, etc.
    10. Hosting a static website on GitHub
    11. Forking and Cloning a project
    12. How to send PRs
    13. How to solve merge conflicts
    The event was until 6 pm in the evening. My plan to roam around couldn't be successful as I had no sleep last night and was very tired.

    *freshen up* *Dinner* and *sleep*
    But wait, I had to make Ansible slides :p
    Hopefully, I had my slides ready (from other events')

    The next day we started with SSH and Ansible
    We explained (with demo)
    1. Different terminologies
    2. What is SSH?
    3. Establish a passwordless ssh connection
    4. Introduction to Ansible
    5. Inventory files
    6. Introduction to Virtual Machines
    7. Some common modules like ping, command etc
    8. What are playbooks
    9. How to write playbooks
    And then, after question answer round, we wrapped up our session.
    It was a great workshop with the great audience and at a great place.
    We enjoyed our stay there :)

    [1]Slides' links




    Some photos from our trip: (If interested, click here)


    Read More

    Tuesday, 8 November 2016

    Unknown

    Containers (Docker)


    Recently, I invited Mr. Ahmed to my college to give a talk on Containers and Docker. This blog is a synopsis of things I understood by attending his talk.

    What are Containers?

    Containers are a solution to the problem of how to get software to run reliably when moved from one computing environment to another. When a developer writes a package, he usually has the latest and greatest software configured in his system. He builds the package depending on that but when the same package is shipped to Customer or client, it doesn't work. The main reason behind are the dependencies.
    This can be easily explained with an example. let's say I built an application with Java JDK 1.8.0 but the client is still using JDK 1.7.0 . As it is obvious that if he upgrades the version, his other applications, that work on the previous version might show error. To solve this issue, containers are used. Container can be imagined just like real world containers on a dock. It doesn't matter what is inside them. All the containers can work on the same platform without any conflict. A container packages an entire environment i.e an application, plus all its dependencies, libraries and other binaries, and configuration files needed to run it.

    Power of Containers:

    1. Standard format everyone agrees on.
    2. Once you seal it, it gets shipped 'as is'.
    3.Separation of concerns.

        Building
        Packaging 
        Shipping

    Containers vs Virtual machines


    Virtual machines can also be used to solve this problem, but it uses a full Operating System. A container requires about 10-20 MB depending on the application size whereas an operating system will take memory in Gigs. In virtual machines, each operating system for a particular application will have its own kernel making it a very heavy task for system. Let's say there are two virtual machines running on a operating system. In total there are 3 kernels running in the case of containers, all the containers share the base OS' kernel making it very light and thus, servers can operate more applications than the case of VM's.

    Advantages of Containers:
        Only one kernel runs on a machine.
        Process Isolation and security
        Only the user space libraries are part of the container
        No hypervisor overhead
            Apps run directly on CPU
            Rack space & power & more free CPU cycle.

    Some users of containers
    Google :Borg
    twitter : Mesos
    etc


    What is Docker?

    Docker is a container engine. It wraps a piece of software in a complete file system that contains everything needed to run: code, runtime, system tools, system libraries – anything that can be installed on a server. This guarantees that the software will always run the same, regardless of its environment.[1]

     
    Docker, the container?

    Nowadays, people think docker as a synonym of container but container technology has been there for more than 10 years. It started in form of LXC and after that many other containers came. Docker is famous because it has been very successful in popularizing it but it is not alone in this market. One of the biggest alternative is RKT, a command line tool for running app containers produced by CoreOS.


    Is CONTAINER > VM?

    No! not yet. It is not as secure as a vm and it is not going to replace vms completely but it is growing rapidly.


    *Next I will be writing about 'How to run a simple container?'  (In next post)*


    Read More