Aug 2, 2018

File IO Performance

[Drafted Note]

Original question was to keep one file pointer globally(1) or open/close in each call,(2)

  • Seems (1) is better:
  • Good conversation for (1) but out of the topic
  • Don't open them until you want to write to or read from them. They do NOT need to be open all the time, and in fact, this is a dangerous design flaw.
Additional topics:

  • (yourFile.flush();?)
  • Log4net

Apr 12, 2016

ඉර හඳ යට

තුති ගීතිකාවක බැතිය මවන පවනේ කිතියෙන්
මේ නෙත් උළෙලට එන්න...
ඇතුල් හිතේ තියෙන රෝස කැකුළු වර්ෂා අස්සෙන් එන්න.. එන්න..
අහසේ පැල් බැඳ සදා බලා හිඳිනා,,

මේ ඉර හඳ යටදීම, ආදරේ විඳින්න
ජීවිතේ විඳින්න//  ♪ ♪ ♪ 

ආවේ කොහෙන්ද ඉන්නේ කොතැනද
මෙහි කවුරුවත් නෑ අහන්න,
නොසිතූ මොහොතක මියයන්නට පෙර, මේ හමු වීමම කොයි තරම්ම උතුම්ද
තෙත් සමනල් පෙලපාළේ එන්න..

මේ ඉර හඳ යටදීම, ආදරේ කරන්න
ජීවිතේ දකින්න//  ♪ ♪ ♪

ආවේ තනියම, යන්නේ තනියම
එනමුදු තනි කවුරුන්ද..
සුසුමට වැඩියෙන් සමීප වන්නට, මේ ලංවීමේ වෙන් වීමක් කොහින්ද..
මේ මානව සුවඳේ පිනෙන්ම,,,

මේ ඉර හඳ යටදීම, ආදරේ කියන්න 
ජීවිතේ හොයන්න// ♪ ♪ ♪
♪ ♪ ♪♪ ♪ ♪♪ ♪ ♪♪ ♪ ♪♪ ♪ ♪♪ ♪ ♪

- This song is dedicated to all people in SL Army and to my loving Chuti

Jan 20, 2016

Stepping into 3D social networking

Hi Bloggers,

Today I experience you a special peace of 3D world which is innovated over the digital universe for years. Technically we called it as virtual worlds. 3D reproduction of real world has been engaged a lots of research studies in past years but it is commercial and end user stage now. More specialized versions of 3D worlds are famous as same as the well-known social media platforms such as Facebook, Twitter. Those social platforms are limited see news updates, voice or textual commutation, etc.  Same features are available in virtual worlds but it also allows user to become immersed in a 3D simulated world. That is the major motivation behind3D virtual worlds.
Virtual Seminar in Second Life

There are large growth of 3D virtual worlds for social networking suchas Active World, OsGrid and Second Life.Second Life is the massively growing online virtual among others. It is used as a platform forday today needs of human being. 

SL interactive environment

When comparing active user statics of second life, it has over 1 million where Facebook has over 1.8 billion users. One of biggest barrier for having such gap is that users still need more resources and specific software installation to experience virtual social networking. Usually users need a good Graphic card in computer to simulate graphics. And users are required to install 3rd party viewers like, Second Life client or Hippo OpenSim viewer. 3D scene has much data overhead than viewing a webpage so that good internet connectivity is also required. Second Life is propriety platform so that many features are on demand for payments. 

You will have your 3D representation which is called ‘Avatar’ in the simulation. Due to this fascinating interactive environment users can do their imaginary thinking. It is also created a business platform over 3D interactive virtual worlds.  

Users can dress up avatars, visiting world famous cities, do adventures, education, shopping, interacting with people from different cultures and make relationships. Therefore users are also called residence in virtual worlds. This is one of the reasons that organizations and business communities tend to recreate their business presence in Second Life.

Fantacy in SL

Usage of virtual worlds as developers

There are open source platforms for creating virtual worlds yourself and populated it online. OpenSim is the best free and open source server platform for hosting virtual worlds.If you are new to OpenSim it is better to understand the simulation process in standalone mode first. When you are using OpenSim as a simulation engine you will have a good community support with strong documentation. Meantime you can reuse huge number of virtual objects and regions which are already created by developers. Here are the steps of configure OpenSim in Windows.
First you have to solve certain dependencies which OpenSim requires. Latest .NET Framework 3.5 is required for windows.

·         Download the latest OpenSim simulator distribution.
·         Unzip the package and go to /bin.
·         In bin folder you will find OpenSim launcher.   (32-bit version of Windows: OpenSim.exe and 64-bit version of Windows: OpenSim.32BitLaunch.exe)
·         As you are running the OpenSim for first time you have to set up a region and a user account. Give the proper answerer in the command prompt. These settings are written in to /bin/Region/Reagons.ini file.
1.      New region name – This is the name for your region.
2.      Region UUID – Unique ID of your region. You can keep the default value.
3.      Region Location – This is the location of your region in the grid. You can safely leave these as the default (1000, 1000).
4.      Internal IP address / Port – IP address and Port to connect to your region.
5.      One here onwards you can leave other parameters as default. But if you are using OpenSim 0.7 or later you need to create an estate manager account. In standalone mode you will ask to create an state manage account.  Don’t forget the account of the master avatar (in 0.6.9) or the estate manager (in 0.7 and later). These user accounts allow you to configure the in-world settings for your region and you can use the account to perform your initial login test. In addition to that you can create a user with ‘create user’ command other than an estate manager.

There are many 3rd party viewers to connect with OpenSim and view your region. Install one of them on your pc and lunch the viewer program. Before connecting make sure the server ‘OpenSim.exe’ is up and running. Enter first name, last name and password of the user account.

Congratulations..!!! You just successfully log on to your own world. Now you can build up your own imaginations of your virtual arena. 

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.