Sep 15, 2015

Sri Lanka’s Google Wi-Fi


As a fastest growing of IT industry and IT education, Sri Lanka has considerable internet accessibility in day to day business needs and social requirements. Recently, people who tired with low quality internet accessibility due to distance and interruption has heard ever blessing headline from Google.

 “Sri Lanka is the first country in the world to have Internet access covering the whole country”- Mike Cassidy, Google Vice President and Project Leader on GoogleX Project Loon.

This is not the first time Sri Lanka is experience a new technology as the first South Asian country. It is also the first South Asian country, was imported first cellular phone in 1989, the first 3G facilitated country in 2004 and the first 4G facilitated country in 2013.

The Technology of Loon

Project Loon is a research and development project being developed by Google with the mission of providing Internet access to rural and remote areas. A network of balloons is travelling on the edge of space to provide internet access all over the country.

Loon Importance as Sri Lankans

People get internet facilitated by telecom operators and mobile operated companies. As the nature of geography and climate in Sri Lanka, they would not provide to the most remote areas in the country due to commercial non-feasibility. Mobile operators also have least consideration of uninterruptible service in outstations. They have much priority on high quality service on business centralized areas in capital Colombo, western province. Therefore, almost 6 million internet users and 2.8 millions of mobile users are facing internet access issues with low satisfaction. Loon will help fill in coverage gaps and bring people back online.

Current Status of Sri Lanka’s Google Loon

Sri Lanka’s government and Google signed an agreement to cover the Island with 3G internet under ‘Google Loon project’ on July 28, 2015. The project is handled by the Managing Director of the Information and Communication Technology Agency (ICTA), Muhunthan Canagey.

The agreement is not for testing but for live commercial deployment. Once Google is done with the successful rolling out of the 13 balloons are completed by March 2016.
Those are expected to provide connectivity across the entire country will trigger a drastic reduction in both data and voice call charges whilst Sri Lanka will benefit from a doubling of broadband speeds, where a minimum download speed of 10 Megabytes per second could be expected.

There are wake of some rumors that Sri Lanka will benefit from free wi-fi due to section of government representatives. However, the provision of wi-fi internet services through Google’s Project Loon is not going to be afforded to consumers ‘free of charge’.      

Jul 27, 2015

GIT basic commands

  • Get initial clone ->  git clone
  • git push origin master
Git Merge
  • Do you changes in a different branch "my_dev"
  • After completing the work there commit all the changes on that branch "my_dev"
  • Checkout to master and get rebase. -> git checkout dev -> git pull --rebase dev.
  • Now rebase "my_dev" with dev -> git checkout my_dev-> git rebase  dev.
  • See for conflict
  • Checkout to master -> git checkout dev
  • Merge your branch -> git merge my_dev
  • See for conflicts, push otherwise. -> git push 

Jul 14, 2015

GIT problem again ..!..! [ git reflog and reset ]

Accidentally, I have lost my iRobot creation project changes, very important. I will show you the mistake happen and how to avoid same situations. Also best practices we can consider while working with GIT with large user contribution.

This is my old git repo.

  • What went wrong and the reason? 
I was working on my local 'dev' branch which is link with remote repo. I keep on commit my changes at a time so that I can understand RCA in case of an exception. As I have already committed my changes I checkout for 'origin/dev'. (It has happen for whatever the reason)

I noted all of my changes has been reverted. 'God, what went wrong? I totally lost.' The reason is that I have converge dev with origin/dev, which is lost my local changes even I have commited. 
  • After checkout origin/dev

  • Recovering commits with "git reflog" and reset
Thanks to "git reflog" tool, I able to recover my lost commits.

  • Retrieving a branch of an earlier state.
Now, see the history and the mistake I have done. "git reflog" gives you a good history about what has been done to head of your branches. In this case, head is reset to origin/dev at "8d29594". I need to rest head to the commit "09a3f2a" which is my last commit of the changes. 

Here we go !!!! I pointed head to the correct commit. Also note that I need checkout the branch since I am on the right branch "dev". If history shows different checkout branch, you need to checkout to the right branch first. 

Ok. Finally here my local settings look like after pushing.

Also, keep in mind an impotent thing. If you have heavily RnD oriented thing do it in different branch then merge it with "dev". This makes less complicated other to track the changes. In above example consecutive commits are recorded in remote repo after pushing which may hard to track others of your changes.  

May 16, 2015

Useful GIT commands

Install GIT on your PC.
First thing you need to do is customize git environment.

$ git config --global "Dasun"
$ git config --global
Now it is the time for your first commit...
Create a file called main.cpp. On the same directory do basic commands using Git bash.
$ git status
$ git add main.cpp
$ git commit -m "First commit"
Now I modify main.cpp content and do a commit over same branch. Still this is master.
$ git status
$ git add main.cpp
$ git commit -m "changed in main.cpp"

Now we need to do certain changes in main.cpp but we are not sure about these changes. Hence I create different branch and do my testing there.
$ git branch dev
$ git checkout dev

Suppose, I do several commits on this branch. Now I am confident that my testing was fine. Hence I need to merge these changes with original and I did my change liner. This is what we called fast forwarding. 

Now we need to do certain changes in main.cpp but we are not sure about these changes. Hence I create differen

May 15, 2015

Lat's Play with OpenGL - 1

OpenGL Introduction

OpenGL is graphic library for cross platform 3D graphics. This is same as Direct3D in directx library. There are many tutorials and example videos to learn OpenGL. In this post I am trying to make a short note to cover up most import points, I have learnt. 


Glut is tool for creating windows and handling inputs. Use FreeGlut pre build libs for your projects. 


This is openGL extension manager and lat us easily call openGL extensions without having declare DLL entry points.

May 10, 2015

Problem with Visual Studio Immediate Exit ?


I have faced this problem many times. Specially in visual C++ programming.
Here, few things we can to avoid this issue.

  1. Simple, cool way is press CTRL + F5. This is also known Debug-> Start without debugging.
  2. Add  system("pause"); at the end of your code.
  3. This is also mentioned in many places over the web. Somehow I tested this on my Visual C++ console application and it wasn't work for me. I am leaving this to you for trying out...            
properties -> configuration proprieties -> linker -> system
select CONSOLE(/SUBSYSTEM:CONSOLE) in subsystem option.

Also I have seen added logically correct coding tips end of the code. But according to me those looks like unprofessional !

while(1) { }
for(;;) ;