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 14 March 2017

    Unknown

    Aero India 2017

    Aero India is a very popular biennial air show and aviation exhibition. I was a part of Aero India 2017 that happened on 14-18 February 2017.
    This blog is about the same :)
    GRIPEN E (JAS 39)

    We (Abir, Harsh, Sanchit and I) got an opportunity to be a part of Saab group as technical demonstrators for Gripen. YES! Gripen!! the fighter jet. We were provided everything we needed, from transportation to food. We also got a very good amount of money as a stipend.
    In this show, there were as many as 270 companies from India and 279 from abroad including Sweden, United States, France, Germany, United Kingdom, Singapore, UAE, Australia, Spain, South Korea, Canada and more! Of course, I was representing the Swedish brand Saab. 
    More than 200,000 people registered to visit the show. It was at Yelahanka Air Force Base. In simplest words, It was huge. Saab's stall was in hall C and its stall was the most beautiful of all (Not because I worked for them, it really was :D).


    Mr. Khunger talking about make in India campaign

    On the very first day, after meeting our mentors (Mr. Pierre & Mr. Pontus) and other members (Johannes, Kaj, Fredrik and others), it was time to inspect the cockpit. The mentors taught us about various parts, displays, sensors and technologies in Gripen.
    For the next 5 days, we were going to explain the same to dignitaries (Air force, Navy and media personnel) and to the general public. 
    Our job also involved the usage of Virtual Reality as well as Augmented Reality technology, in describing a  number of products that Saab had brought to Aero India 2017. My favorite part was working at the FSR display.  

    This creepy smile :/ <3 cockpit



    Every day, there used to be 2 shows starting from Tejas, followed by different fighter jets, taildraggers, helicopters doing all kinds of stunts and maneuvers. Usually, Surya Kiran helicopter display team used to end the show.
    I found my love in fighter jets' thunder clapping in the sky. It's roar felt better than music ^.^ .
    Besides this, I also loved ground-based air defense systems. I shot a jet entering in our area and I did it one try (on a Simulator of course!). Learning how to use it was great. I also tried their different defense weapons.



     I visited all the stalls and loved each and everything. Those 5 days ended pretty fast. Although my skin got sunburnt (I was too lazy and careless to apply sunscreen more than once), I would love to do it again. It was pure fun working with Swedish people. The love and guidance they provided, was great.
    The team



    FSR team

    last day picture


    In the end, THANK YOU HARSH! :D :p
    Read More

    Tuesday 15 November 2016

    Unknown

    Basics of GitHub

    This post can be referenced by the students of I BCA A/B (Christ University)  who will be addressed by Prakash and me regarding GitHub and VM.

    If you know how to use GitHub, This is not for you.


    GitHub may sound complicated but once we understand it, it turns out to be no more than a simple social network. It is not very different from Facebook and Google plus. You sign up, sign in, upload projects, download projects, follow other users and many more things that make it very similar to a social network.

    What is Git & GitHub?
    Let's understand Git first. Linus Torvalds, the man himself created Git, the software that is same for GitHub as a kernel is for an OS. 
    • Git is a version control software. This is self-explanatory. It manages all the versions of a project. When we modify a piece of code, we usually over write it and thus, lose a working model. In case the new code breaks, rolling back is often very difficult.  
    • Let's assume a team is working on a project and everyone is editing the same file. If you are familiar with the race condition in OS, you can understand what I mean. When two or more member of the team try to modify a file at the same time, conflict occurs. If they are doing it at a different time, one may overwrite the code and thus deletes his part of code. git is the solution for the mentioned problem.
    Now GitHub. The only problem with Git is that you have to everything by using the command line (terminal / console / konsole). Here comes GitHub. GitHub provides a visual interface to help and manage the project. You can create an account here and it gives more of a social network feel. You can browse through users' profile, check their projects, download a copy of it to your profile or computer or alter it. No data will be lost.

    GitHub can be used without command line but there is a difference between using and understanding it. In this post, we will be working with git and GitHub using the command line.

    Terms to know:
    1. Repository : A directory where we can store our project.
    2. Version control: A solution to losing the track of modifications without creating multiple copies.
    3. Clone : downloading (cloning) any project to your local system.
    4. Fork : A copy of a repository. Allows to modify / edit code without affecting the original project.

    Steps to success:

    1. Create an account. It is same as creating any social network account. Throw in a valid user name, email id and a password to start.


    2. Install Git. if you are going to work in your computer with git, you need to install it. Use one of the following commands to install git.

    Fedora users
    $ sudo dnf install git-all

    Other Red Hat based Linux users
    $ sudo yum install git-all

    Debian based Linux users
    $sudo apt-get install git-all

    3. Configure your system to git. As we have already installed git in our system, to configure, just type
    $ git config --global user.name "your user name here"
    This is the user name git will use to credit commits. Now the email id that was just used to create GitHub account.
    $ git config --global user.email "your full email id  here"
    4. Create a repository. A repository is  also called "repo" in short. To create a new repository in your account, go to the '+' sign beside your username / profile picture in right-hand side upper corner. On clicking on the sign, from the drop down menu, select new repository.

    Now, It will prompt for a repository name. Fill it up. Just below that, add a bit of description about the repository or project (Optional).
    Further down to that, select public repository if you want to keep it public and free, or private if you want to keep it a secret (Paid).
    Just below that, don't forget to tick that check box that says initialize this repository with a README. Readme is just a text file that is used to store basic information about the project like About, collaborators, dependencies etc. Click "create repository" to proceed.

    As this is first-time hands on GitHub, I don't want to confuse everyone with making a local repository. We shall understand those concepts in next workshop.

    As of now, lets clone the repository so that we can modify it on our computer and then we will put it on the GitHub using the command line.

    Before cloning it, first, go to the directory where you want to clone your repository. Then go the repository you want to clone, and copy the link you get in [Clone or download section].

     To clone, use the link as given below
    $ git clone copied_link

     Here is an example of the commands mentioned above

    Now, in go in the directory, you will see the cloned repo. Now change the code, README.md etc in whatever way you want. 
    Let's say you want to add a text file in the repo, type $touch data.txt  and you have successfully added a file. you can modify it using any text editor and save it. What ever changes you have done, can be seen by typing
    $git status

    and it will show you all the modifications done.
    To add it to the repo as a part of it, type
    $git add .

    here [dot] means everything that has been changed. You can also mention just the file name you want to add. In our case, &git add data.txt
    Now time to save the changes. If you know even basic SQL, you know how to save (commit). Type
    $git commit -m "any comment"

    commit is the keyword that saves and -m passes the comment parameter that will be seen in time line when having an eagle eye on the versions of the project. 
    Now you have saved the file, lets merge it to our repo that is on GitHub. Type
    $git push

    It will prompt you to enter username and password, fill it and your files are up.
    You can go to your repo and check it.

    I have tried to keep the post as simple as i could. This is for students who have never heard / used git or GitHub. If you are interested in learning more, leave a comment.
    You can also visit this link to learn more about it.
    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

    Wednesday 19 October 2016

    Unknown

    Fosswave @ CMRIT

    CMR Institute of technology[1]
    Before talking about the event, I would like to thank a few people whose presence made this event a huge success. I would like to thank
    • Anirban Ghosh and Arun Teja for organizing the event at CMRIT.
    • All the attendees who came in huge number and made this event a grand success.
    • Sumantro Mukherjee for being an amazing mentor and guiding us through the event.
    The event started at 01:00 pm in the MBA AV Hall of the institute. We were four speakers who talked at the event
    1. Vipul Siddharth (Me)
    2. Kanika Murarka
    3. Prakash Mishra
    4. Sumantro Mukherjee

    A Collage of Speakers, the institute and it's tech club

    Introducing FOSS and explaining it's importance

    I started the talk with discussing FOSS, its philosophy, ethics, and importance. The talk covered various important aspects of FOSS such as
    1. What is FOSS?
    2. How FOSS works.
    3. Why should you contribute to FOSS?
    4. Areas of contribution.
    5. How and where to get started with FOSS contributions.
    FOSS talk

    Introducing the Fedora Project

    Coming up next, we had an intriguing talk by Prakash Mishra, who covered a wide range of topics about the Fedora Project and how to contribute. His talk included
    1. How to start with Fedora contributions
    2. Where to contribute? – Testing, Documentation, Packaging, CommOps, etc.
    3. Creating a FAS account, joining a mailing list, and how mailing lists work.
    4. Using IRC to connect with the community
    5. Fedora Apps 
    Prakash giving his talk on Fedora

     

    Design Principle and importance of women in Foss

    Kanika Murarka took the stage next and delivered a stirring talk on Women in FOSS and technology. She shared her own journey so far with FOSS and what motivated her to take the FOSS way. She also showed how prominent women, time and time again, have gone against all stereotypes and changed the landscape of technology in history and the present alike.

    Then she explained how one can contribute in non-technical part and design principle.

    Kanika explaining Design principles

    Git and VR

    In the end, we had Sumantro who gave a talk on version control systems, git, and GitHub. This also included a hands-on demo of git and how to use it to contribute to a repository on GitHub. The talk covered some basics of git and GitHub such as…
    • What is version control?
    • Need for a version control system
    • Methods of version control
    • What is the git, who developed it, and why you should use it?
    • What is GitHub and why you should use it?
    • Setting up and configuring git
    • Stages of file tracking
    • Creating a new organization and repository on GitHub
    • Basic git commands: git status, git clone, git diff, git add, git commit, git push, etc.
    • Hosting a static website on GitHub
    • forking a repository and the concept of 'pull requests'
    • how open source contribution to GitHub repositories works. 
    • How web VR works.

    Git session

    Wrapping up

    The response by the audience was wonderful and they listened to the sessions with rapt attention. They also raised a few awesome questions to have their doubts cleared. The organizers, looking at the response, also discussed with us the probability of conducting more such events in the future. If plans go as expected, we might have another workshop again in the succeeding months.
    We wrapped up the session by 5:00pm in the evening.

    TIME AND VENUE

    Date : 18 October 2016
    Time : 01:00 pm - 05:00 pm
    Venue: MBA AV Hall, CMRIT

    Sources:
    [1] CMRIT logo: https://www.google.co.in/search?q=Cmrit&source=lnms&tbm=isch&sa=X&ved=0ahUKEwio6PXdhufPAhXBLo8KHTUlC9IQ_AUICSgC&biw=1366&bih=633#tbm=isch&q=cmrit+logo&imgrc=xFtKr1cRdm6uiM%3A



    Fedora stickers for attendees
    Tokens of Appreciation for the speakers  (Pen drives and bouquet)
    Read More

    Sunday 28 August 2016

    Unknown

    Lock an application in Linux


    All of us need some privacy. For security purpose or some personal reason, we just don't want few application to be accessed by everyone. Especially when we are not around! One way of doing so is by not giving our PC to others, but it doesn't work all the times. The other option is more convenient. LOCK THE APPLICATION. Let's say you don't want someone to access nautilus (Default file manager in fedora) or Firefox(web browser), just lock the application so that it asks for root authentication when prompt to open.
    * I am using Fedora 24 here, but it can be done in any Red Hat or Debian based OS.

    We are going to change '.desktop' file of the particular application in order to lock it. Every application has its own '.desktop'f ile.

    In GNOME, an application gets registered into the desktop's menu through a desktop entry, which is a text file with .desktop extension. This desktop file contains a listing of the configurations for your application.

    .Desktop file is located in directory:  /usr/share/applications

    We will change the permission using the same file.


    How to do that?

    1. Open the terminal and go to the directory mentioned above.


       $ cd /usr/share/applications
     

    List of my .desktop files









    2. Select the application that you want to lock. For example, I will lock Firefox.


    Open firefox.desktop file using any text editor. As I am in love with vim, I will use the same.


    $ sudo firefox.desktop

    Text file 'firefox.desktop'
    3. We are going to change Exec=firefox %u to Exec=gksudo -k -u root firefox %u

    Here we are changing the file permission when executed.

    So search Exec=firefox in the text file.

    To search in vim, press ':' followed my a '/' and the characters that you want to search.


    searching :/Exec=firefox %u
    Result
    4. Now change it using Insert mode (i), to Exec=gksudo -k -u root firefox %u.

    Cheers, we are done!

    If you have any doubt, let me know in the comment or message me through contact form.
    Read More

    Sunday 21 August 2016

    Unknown

    FOSS and Fedora #Labyrinth

    Last day (20 August '16), organized the first workshop in my college on topic 'FOSS and Fedora'. It was a great success.

    Shivam with 'Fedora Badge'

    I have been planning to do this for more than 2 months but we didn't have any Computer Science club in my college. If it was just for one event, we could have done it directly but I wanted to organize multiple workshops (Open-Source, App development, Website making, Competitions, Robotics etc) and thus we needed a proper platform where we could easily organize the events without bothering too many people. So I put the idea to open a club and inaugurate it. Later we came to know that there was already an existing club named Labyrinth. This club was inactive for more than 18 months. No one was aware of it, except 4-5 teachers. The teacher whom we approached to help us in initiating a new club, even he had no idea about it. After talking to the management, he let us know the same. Starting a whole new club would have taken too much time, so we reopened Labyrinth and yesterday we had our first workshop in it.
    Poster for workshop

    Before talking about the workshop, I must thank few people without whom this wouldn't have been possible.
    1. Vinay M: He is the professor who has been supporting us in everything. From the idea to open a new club to organizing the mentioned workshop. He has helped us a lot. Thank you, sir!
    2. Karthik and Prakash: These are my friends and were there all the time with me.
    3. Sumantro Mukherjee and Kanika Murarka: For giving  a talk on the topic.
    and last but not the least,  all the participants for coming and being a part of it.

    So, FOSS and Fedora! For those who don't know what FOSS is, it stands for Free and Open Source software (Please search for it and read about it). We got a Panel room to conduct this workshop which was perfect for organizing a workshop with 50-100 participants. The workshop was just for 1 hour and 30 minutes. I invited Sumantro Mukherjee (My mentor in Red Hat) and Kanika Murarka (Red hat Intern) to give a talk.

    Sumantro covered the following topics during the time.
    1. FOSS and Feodora.
        1.1  What is FOSS?
        1.2  Why FOSS?
        1.3  Getting Industry ready.
    2.Discussions around the diversity and contribution spectrum.
        2.1 All Foss projects are open sourced  so contribute anywhere.
        2.2 All contributors need not code, can be designers or can help in documenting.
    3.How to start with FOS
        3.1 Introduce yourself: let the world know who you are: Mailinglist
        3.2 Every project has identity: Fedora has FAS
        3.3 What if you run into an issue, IRC!
    4.Fedora and contribution pathways
        4.1 start.fedoraproject.org
        4.2 https://apps.fedoraproject.org/
        4.3 Fedora Docs
        4.4 Packaging[Bodhi]
        4.5 Magazine
        4.6 Recognition Model : Badges
    5.Creating Accounts (FAS,mailing list)
        5.1 admin.fedoraproject.org
        5.2 if its Fedora QA, all the people to be redirected to ML.
        5.2 if it's not FedQA,shoot a mail to respective mailing list
        5.3 Freenode IRC web [https://webchat.freenode.net/?channels#fedora-qa]
    Sumantro speaking about FOSS

    Kanika talked about the importance of Women in FOSS.
    Kanika talking about women in FOSS
    I introduced the Club and spoke about its vision and how it can help others to be industry ready. Then I talked about my journey in FOSS and how I started to contribute to Fedora. Very briefly, I talked about the things I do in Red Hat and how contribution can help everyone in future.
    Me introducing and explaining Labyrinth.

    As we had very little time to introduce a big topic, we kept things brief.
    We realized that people are more interested in getting hands-on experience than sitting and listening to some person speaking about their future.
    We got some very good responses from the participants and I have already received a dozen of suggestion emails. Thank you, for being there, being a part of this club and the feedbacks. Looking at their interests, Most probably, next workshop will be on Git. By the end of next workshop, everyone should be able to host their own website on GitHub. They shall also learn how can they contribute to big projects on GitHub and how others can contribute in theirs.
    I am really looking forward to organizing next workshop.
    I am always open for feedbacks and suggestions.
    Email me on siddharthvipul1@gmail.com
    Thank-you :)

    Here are some more pictures of the workshop.
    Coz Prakash wanted a selfie :p


    Token of appreciation for Kanika



    Token of appreciation for Sumantro


    Read More