GitHub: How to Share your GitHub Gists on Medium?

Are you a writer at Medium? Are you a programmer who writes blog about your favorite programming language, tools and framework? And have you ever had difficulties on displaying your code snippets on any website? 

If you've faced any of the above mentioned problems, then this blog will be helpful to you all. In order to embed your code snippets in your blog there are many alternatives similar to that of codepen. But, if you all are well aware about  GitHub Gist, it provides you a link which you can embed it to your code.


Following steps will illustrate how to easily add Gist in your medium
  • Create a Github Gist from this url: gist.github.com
  • After you create the public gist. Copy the url of the gist from your browser's url bar.
  • Remember not the embeded link but the Url on top of your browser.
  • Paste it on your medium article and hit Enter.
  • You can now automatically see your code snippet from GitHub Gist.

PLURALSIGHT: FREE UNLIMITED COURSES FOR SIX MONTHS

Pluralsight is a privately held online education company that offers a variety of video training courses for software developers, IT administrators, and creative professionals through its website.[1] The company was founded by Aaron Skonnard (current CEO), Keith Brown, Fritz Onion, and Bill Williams in 2004. The company's headquarters is situated in Farmington, Utah. From the data of 2014, it is known that it uses more than 600 subject-matter experts as course authors,[3] offers close to 4,000 courses in its catalog,[4] has more than 750,000 individual subscribers and more than 6,000 corporate clients.[5].


I've tried almost a dozen of Pluralsight's courses and some of them are Object Oriented Programming with C++, Automation Testing with Selenium, Angular2 Fundamentals, Foundation Course to Powershell, Introduction to Liunx and Shell Scripting, Object Oriented Programming with JavaScript EcmaScript5, Electron Fundamentals, Foundation of Machine Learning, MongoDB Administration, etc. 

You might be thinking I definitely had to spent hundred of dollars to enroll in all these courses, right? 
 Not at all. I learnt all those courses free in last three month. Do you know how?

Miscrsoft Visual Studio Program

Are you aware about Microsoft Visual Studio program, a free platform for developers to test a complete realtime developmeent, testing, CI/CD scenario? Well this is a free platform all you need is a Microsoft account. Login to the Microsoft Visual Studio Program and you can gain free membership to the PluralSight library for free for next 6 months. No credit card required or neither any coupons required.

Follow steps below and you can get it done:
  1. Create a new Microsoft Account here: outlook.com. Or if you already have one skip to next step. 
  2. Now login to Microsoft Visual Studio Program here: my.visualstudio.com with your Microsoft Accout.
  3. You will be redirected to the Visual Studio Dev Essentials page. In this page you can see many benefits that you are provided with.
  4. Choose Pluralsight and click Activate.

  5. Finally you are there at the Pluralsight website, activate and redeem your six months free subscription. I still have my free subscription for next three months and I am gonna take full advantage of this free offering. Will you?
Related Articles:

ElectronJs: Native Desktop Application with Web Technologies(JavaScript, CSS and HTML)

Today's blog will be about developing a Hello World Application with ElectronJs. We will build a Countdown Timer Native Desktop App with ElectronJs. ElectronJs is a framework which lets you build cross platform Native desktop Application with JavaScript, CSS and HTML. So all those web developers who have been working for a long time with JS, HTML and CSS, it's a good news for you all. Building desktop app is now made easy. Now if you can build a web app then you can easily create a desktop app. Electron comes with all features and API to make your desktop application development easy.

Prerequisites

In order to build a Desktop application with Electron you will need following tools/libraries installed:
1. NodeJs is necessary :)
2. A Text Editor of your choice. I prefer Visual Studio Code
3. Electronjs npm install electron

Countdown Timer

I'll try to walk you step by step towards the development of a countdown timer.

Initialize Project: package.json

4. First Initialize your project with npm.
Follow this article for associating your project with GitHub. Or simply initialize project with this command: npm init -y


5. Edit main to src/main.js
6. Define start command as "electron ."

Install Electron

7. Now install electron from node package manager: npm install electron

Create main.js

You can see we have imported ./countdown in line no 2.
8. Create a countdown.js file
9. Note that countdown.js and main.js should be inside src folder. Because in package.json file we have defined main file as src/main.js
10. At countdown.js we will write code to create a countdown timer which will be displayed in the app.
11. Create a html file where your countdown timer will be displayed. "countdown.html"
12. At line 11 you see <script>require('./renderer')</script> Which means there is one more JavaScript we need to create. This renderer.js is the one which  works as a mediator. A renderer script keeps proper account of HTML elements and actions which it to be performed to the application or to be returned back from the applicaiton. In our case our renderer file looks like this:
At line 3 see a constant ipc instantiated for electron ipcRenderer. IPC means inter process communication which handles communication between ipcMain anc renderer processes. ipc.send listens to the request performed by user via Html elements: buttons and forms submit evets. To know more about ipcRenderer view the link: ipcMain
13. Now that we have defined ipc.on and ipc.send in the renderer script file, we need to have ipcMain somewhere in the main file which responds to those requests.
14. On your main.js file you need to do some modification  and perform actions to respond the ipc events.
Now you can see: ipcMain instantiated as constant ipc in the code.const ipc = electron.ipcMain
Accordingly you can see a method which starts the countdown timer after the renderer sends a signal to the main file saying that countdown-start is initiated.
15. This is how your file folder structure should look like:
16.  Now open your command prompt or terminal and start the project: npm start
17. If you have followed above steps correctly, you shouldn'y see any issue and a desktop application's interface will be displayed like one shown below:
18. Electron builds native application which also means the application is portable and runs on Linux, Windows and MacOS. I started building this application on Windows and also tested the same code at my ubuntu. All you need is to do npm install electron.

Kathmandu Living Labs To Host STATE OF THE MAP ASIA 2017 Conference


A two days conference on State of Open Map Data  is going to be organized here at Nepal, this September 23-24,2017. This is the Third State of the Map Conference which is happening in ASIA specifically in Nepal. Last year the STATE OF THE MAP was conducted at Brussels, Belgium. This year Kathmandu Living Labs, an emerging Tech Organization which works rigorously on Geographical Data, Maps and various areas of Open Data is hosting the event. Along with Kathmandu Living Labs OSM Community of Nepal is also a Co-Host of this event.

Rob Savoye, a pioneering Open Source Contributor since the very beginning of Open Source Movement will be conducting workshop on Mapping via Open Street Map. State of the Map Asia is an event for all mappers and OpenStreetMap users. Enjoy two days in Nepal with talks, discussions, workshops, and networking all around the free and open map of the world. 

Please go through the details about the Conference here at STATE OF THE MAP ASIA 2017

Open Source Project "MEDICAL DATA INSIGHT". Open Call for Technical/Non Technical Collaboration

Nepal Medical Data Visualization( NMDV)

Back in 2015 me with my teammates Shradha, Rizu and Bishwas decided to do a project which will focus on Health Sector of Nepal. This was the last semester project that we would be doing back then. So we named our project as "Nepal Medical Data Visualization". Project was supervised by Dr. Rabindra Bista. Project was developed usign PHP, JavaScript, JQuery, HTML and CSS. I committed the code on github and didn't even look back for a long time.

Last year, I joined Verscend Technologies via Internship program. Verscend  is a company that works on Health Care Information/Data of the United States. My semester project was a key which get me through the internship Program. All credit goes to Rabindra Sir. While working on a Healthcare Informatics Company I always wanted to rewrite my Project and make it meaningful. I wanted to make it open source and wanted to see it implemented in the community someday in future. This is when Medical Data Insight happened.

The Project Title

NMDV this title was suitable and descriptive but it had Nepal with it. I thought let's not bound Open Source Project within a geographical boundary and removed word Nepal. Now it was Medical Data Visualization, but still I was not satisfied with the name specially the word 'Visualization'. The word 'Insight' was in my mind and I found it more promising and attractive than Visualization. Because as per my understanding Visualizing something was just focusing on the data representation. But Insight was something vast. It not only meant focusing on the represented data but also unfold the hidden Information/insight among the data. Being insightful also means understanding a subject from diverse analysis and trying to find meaning of unanswered logic . This was how the Project got it's Title "MEDICAL DATA INSIGHT"   


Open Sourcing Medical Data Insight

In Our Open Source Community we talk about open sourcing not only the Product but also the process. So this was a golden opportunity for this project to Open Source it's process as well as the source code as product. Being in its initial phase, open sourcing the process helps contributors across the globe to:
  • Understand the Product/
  • Familiarize with the Cross Culture Working Environment of a Open Source Project 
  • Contribute in Projects Core Architecture.
  • Comment on the designs of overall interface.
  • and many more...
I started breaking the branches of huge tree and started to make a pack of small sticks. Tree, branches, sticks sounds funny, isn't it?. Actually I started breaking the concept of the project into small peaces. And peace by peace, from creating a large feature to User stories I created number of small tasks. Having good experience of Agile Software Development from Verscend, I implemented it by creating a Board at Waffle to maintain all those issues, features, bugs, pull requests, and everything that comes during software development.
And this is how the Userstory, Tasks, Features and Bugs are listed here at Waffle.
Waffle: MDI

In addition to the userstories and a Waffle Board I've created Milestones in GitHub which looks like this:
GitHub Milestones: Medical Data Insight


Current Status of Project

Currently This project is in it's beginner level. After I deprecated the OLD PHP CODE and created a tag, those PHP code base are cleaned from the master branch. Many things are still to be done regarding this projects.

Interesting thing about this Project is that I researched a lot of frameworks and languages in order to decide one for formally moving ahead. Currently AngularJs and ElectronJs are two such promising Fronend Frameworks which I prefer for this Project. So there are always room for improvements are everyone are welcome to contribute, comment and collaborate. 

  • Many things like the Backend Development Language, Database, Design, are yet to be decided.
  • A team of core contributors and maintainers are yet to be decided.

Final Words

I want to do a open source project to have an experience of working with cross-cultural expertise across the globe and finally contribute/give back to the community.

If anybody out there is interested in contributing a couple of hours every week for a right cause, please send me an email at: [email protected] or [email protected]. Or you can also join our Slack Channel: medicaldatainsight.slack.com Walking a long road all alone is hard and sometimes not motivating So I'm optimistic about getting huge response from all of you open minded People.
 Also if you think that your friend might get interested  to contribute , please share this request to him/her.

Project Moderator, Medical Data Insight

GITHUB: HOW TO CREATE A WEBSITE WITH GITHUB PAGES?


Many of us have created sub pages from domains who let us host some space for free like .me, .wordpress.com, .blogspot.com. We used such domains for displaying our profile online. Back in 2008, Github announced GitHub Pages. GitHub Pages allow you to publish web content to a github.com subdomain named after your username. We don't need to worry about the database and many other tedious process of hosting and having it available 24*7. 


CREATING GITHUB PAGES

You don't need any technical expertise to publish your web content. You can create a GitHub page following few steps which I'll be explaining in today's blog. Before that I will be explaining different ways of publishing a page at GitHub. 

First way of publishing GitHub page is easy one. You can create a page from settings of your repository.
Second way of publishing a GitHub page is directly adding content to the repository. These contents within your repository will point to the github page.
Third way is by using Jekyll framework which helps you to create a blog like website just by pushing the content to your repository.

In this blog I'll explain first two ways of publishing GitHub pages. Using Jekyll Framework is not that hard. I've tried building GitHub pages with Jekyll Framework, but I'm not prepared right now to demonstrate. I'll be writing another blog to explain how to use Jekyll framework for building Blogs with Jekyll Frameworks. 

First Method
  • Create a repository and keep the repository name exactly the same which is something like: your-username.github.io
  • This is the default GitHub page that will be displayed. In case you want to create a repository page for any of your project. You need to keep it in mind that Url for your repository's page will be appended to your main github page
  • Make sure your repository has any of these two files: README.md or index.html
  • This tells GitHub Pages that the repository contains web contents that needs to be hosted.
  • Go to Settings of your Repository. Scroll down and you will see this GitHub Pages:
  • Choose a theme. There are a number of themes available for creating the Github Pages:
  • Select one of the theme and save the changes and you can see the github page build already.
  • Browse it whose url is: your-username.github.io

SECOND METHOD
Well second method came in the middle of first step because this has something to do with the first Image above i.e. the GitHub Pages Section.
    • Github pages are disabled by default. Click None and you will see three options


      In your master branch if you are going to display the README file as the default information. Choose Master Branch.
      If all your web pages are hosted in the master branch and your index.html is hosted in aster Choose Master Branch.
      If you have an ongoing project codes in the repository and you plann to separate the project's Wiki that will be displayed as github page in a separate folder, name that folder as docs. Then select the second option.master branch /docs folder.
    These are two easy methods of hosting your github Pages. The third One i.e. using Jekyll Framework, I'll soon be writing a blog post about it and explain steps by steps how to use it for creating a GitHub Pages.
    RELATED ARTICLES:

    UBUNTU 16.04: How to Completely Reset Wifi Settings?

    I was struggling with this Wifi issue for three days now and I almost gave up. But then a single command saved my ass! I was about to reinstall Ubuntu again. But I survived the frustration.

    PROBLEM:

    • My Wifi was On but it was not lisiting any Wifi so that I can connect
    • I could surf internet via LAN Connection
    • The wifi status is enabled and I checked for available connection via terminal using this command: sudo nmcli conn  but didn't see any connection. 
    • Networking connectivity is full, I can check it via my terminal with this command:
      nmcli networking connectivity check
      full
    • I turned down all netowrk interfaces with ifdown  and upagain with ifup  but it didn't work
    Today's blog is a quick solution to hard reset your Wifi Settings. As a quick note it is necessary to know that Linux based OS(Ubuntu in my case) saves its network lists i.e. all connections in this . location: /etc/NetworkManager/system-connections/ 
    You can find all your Wifi connections ssid  listed inside this folder. Whenever you have issue with your wifi like case similar to mine, perform two steps:
    • Remove all system connections from the system-connection folder:
      sudo rm-f /etc/NetworkManager/system-connections/*
    • Then kill the signal which is running the process NetworkManager
      sudo pkill -9 NetworkManager -9 means SIGKILL to kill a signal that is ignoring or is hidden.
    This remover all the connections, resets Network Manager, restarts your wifi connection. Now the issue is solved. You can connect to your wifi signal and browse the internet.

    FOSS COMMUNITY KAVRE INITIATION DURING SOFTWARE FREEDOM DAY 2017 CELEBRATION

    This SOFTWARE FREEDOM DAY, Free and Open Source Volunteers from Kavre initiated FOSS COMMUNITY KAVRE during the SFD2017 Celebration event organized by Kathmandu University Open Source Community. FOSS KAVRE was initiated to decentralize the FOSS related activities from Valley to remote areas of Kavre. Free and Open Source Software Community Kavre is one out of thousands Open Source Community which works on sharing Open Source Philosophy. It's a group of Open Source Enthusiast from Kavre who want to spread Open Knowledge to the Community.

    Following are the objectives behind initiating Open Source Community here at Kavre:
    • Provide Training, Workshops and Tutorials.
    • Interact with new People, Participate in Events organized by other Communities, help solve problems, Bring Openness among Volunteers.
    • Organize MeetUp, Open Source Conference, Linux Talks.
    • Make Massive Use of Open Source Technologies in every possible areas of Kavre (Health, Education, Business, Governmental Organizations)
    • Publish Magazine, Blogs Articles about Open Source Technologies to make the citizens aware about FOSS and its impact in community.
    • Explore resources to make the Community Sustain economically in a long run.

    Logo Designed: Ishan Dongol

    Ongoing Projects

    1. ReWrite: A running web application for Conducting Conferences built using Angular Framework( A JavaScript Framework . This can be helpful while exploring your semester projects ideas and tools.
    2. Medical Data Insight: Back then a Semester Project "Nepal Medical Data Visualization" of one of the volunteer Sanjog Sigdel supervised by Dr. Rabindra Bista is now known as "Medical Data Visualization". It is an ongoing project which aims to develop a Full Framework/Platform for Adding Medical records and also built insight from the data.

    Training

    1. How to build static GitHub Pages?
      This training was provided on a workshop during the very day of initiation at Kathmandu University.
    2. Software Development and Project Development with GitHub
      This was also planned to be conducted on Software Freedom Day. But considering the knowledge base of participants on basic git functionalities being very low this workshop is postponed for some other time. We are planning to conduct some git Workshop and make them familiar with the Git Operations. Then we will conduct further training.

    FOSS KAVRE and other FOSS Communities

    As both communities belong from same place, FOSS KAVRE and KUOSC will support eachother in conducting events. FOSS KAVRE will seek technical expertise from KUOSC for workshops. KUOSC will seek new areas to spread open source activities in the local community with the help of FOSS KAVRE. We are Open Source Communities so we will not only be sharing and seeking expertise as well as resource from KUOSC. But we will seek help and also help others from all around the globe.

    What's Next?

    More Training and workshop to fulfill the Objectives as well as make an impact in the community at the same time. Fill more boxes below with events that we will conduct soon.

    SOFTWARE FREEDOM DAY 2017 CELEBRATION IN NEPAL BY KATHMANDU UNIVERSITY OPEN SOURCE COMMUNITY

    Kathmandu University Open Source Community an autonomous wing of Kathmandu University Computer Club (KUCC), Department of Computer Science and Engineering, Kathmandu University(KU) celebrated Software Freedom Day (SFD) at Kathmandu University. The celebration of SFD eve was also held in Kathmandu University, on 15th September, 2017.

    This Software Freedom Day is important to the Volunteers of KUOSC and also to University too because it is first ever SOFTWARE FREEDOM DAY organized here at KU. On top of that Chief Guest Mr. Rob Savoye a self-employed consultant & contractor with massive experience in designing, programming from Colorado U.S.A added charm to the event. Rob develops and manages engineering projects, especially GNU/Linux projects, embedded systems and every imaginable Open Source Software. Rob talked about his massive contribution in open source. It was an honor to have such a legend of Open Source Movement, who carry a long history way back to the foundation of open source society. He has been contributing to the society for more than 40 years.

    Whole event was hosted by Master of Ceremony Ms. Rajshree Rai, Vice President, Kathmandu University Computer Club(2017-18) Program began with talk program  on FOSS MOVEMENT in NEPAL by Sanjog Sigdel. He highlighted current activities of Open Source Projects and open communities existing in Nepal. Mr. Sigdel an Open Source Activist from Kavre did the Initiation of FOSS COMMUNITY KAVRE. 
    Free and Open Source Software Community Kavre is one out of thousands Open Source Community which works on sharing Open Source Philosophy. We are a group of Open Source Enthusiast from Kavre who want to spread Open Knowledge to the Community.You can find more about FOSS KAVRE here.

    Mr. Sushil Shrestha, Assistant Professor, working on Massive Online Open Course (MOOC) and Digital Research Lab of Kathmandu University talked about the importance and the success story of MOOC. Mr. Manoj Shakya, Assistant Professor of Kathmandu University honored Rob representing Kathmandu University and KUOSC. Continued with the appreciation to the distinguished guest Mr. Shakya shared his experience on Open Source Software and highlighted importance of Open Data.

    Nikesh Balami, Open Source Activist from Open Knowledge Nepal shared his words and experience in open knowledge and open data. Moreover, he expressed the present scenario of open data in Nepal, projects that Open Knowledge Nepal has been doing to improve the status of Open Data in Nepal. He also presented Open Data handbook localized in Nepali Version to the audience.

    Program continued  further with Wikipedia Editathon where volunteers and participants edited/created Nepali Articles in Wikipedia dashboard. Mr. Saroj Dhakal from Wikipedia Nepal shared his words about editathon and Wikipedia. Sajog Sigdel conducted a workshop on Creating Static Github Pages and Basics Git functionalities.

    Similarly, Shubham Josh, Coordinator of Kathmandu University Open Source Community talked about open source and FOSS Nepal. Pratit Raj Giri conducted a workshop on Open Street Mapping. He highlighted the importance and advantages of Open Data Mapping with Open Street Mapping. Different open source related stickers were distributed and the environment there was OPEN. 

    Program had a total participants of 45 individuals. Participants included students, teachers, Open Source Practitioners, Software Engineers, Network Security Enthusiasts. Program included other interactive activities like Porter Presentation, Survey and Questionnaires, Photo Sessions. Volunteers were excited to have successfully organized SOFTWARE FREEDOM DAY FOR THE FIRST TIME IN NEPAL. And are more dedicated/excited to conduct same event next year with many exciting speakers and workshops.