7 reasons how Nepal can take their foot out of this darkness

1. Start a street addressing system. We have about 530 civil engineers graduating every year from Universities in Nepal. Some of the senior engineer should start this project of naming all the streets, and number each house in each district of Nepal. The government would never do it, it’s our job to do it.

2. Start a house based cleanliness program. Each flat of a house will be donated a garbage bin. All the garbage during the week will be thrashed onto these bins. These bins are collected by a garbage van every week. There will be no container alongside a river any more.

3. Start a high speed railway track in mid-hilly reason of Nepal. Very ambitious, but if we can reach from mechi in mahakali in a day, and only run bus service from hilly reason to the train station in mid-hilly regions. Then we can reach anywhere in the country within a day without taking flight.

4. Forget Kathmandu. Forget Pokhara. Forget Dharan or Biratnagar. Start planning and building new cities from scratch. Take an example of any city with small population, and start building it. People would eventually come to live there if you can provide the facility. It will be a very good opportunity for people who are looking to invest.

5. Define the warehouse. All the tools required to make a house should be sold at a place, and that warehouse should be there in the distance of half an hour. Similarly with food, clothes etc.

6. 1100 Primary schools, 840 Higher secondary School and 7 University is enough to make all the nepalese people well educated. These numbers are based on the population of people under specific age group and the size of the learning center.

7. Social turmoil, racial discrimination, careless behaviors and may of these social problems would never end in Nepal. The only solution to this problem is to send the majority of these population having social barriers to western country and allow them to stay there for few years. The way that people lives in this country will help them to understand the need to respect human in general.

 

Life is all about making people around you happy

People get frustrated by the way their life is moving along. And they always have somebody else to blame than themselves. I was one of them. But the day when I saw all my dreams crushing and felt like my career would break like a Windows 7 professional (for closed-minded people, take it as, tsunami ), I told myself stop blaming somebody else. Stop blaming your University because the Professor is not good, you are struggling in that course because you spent thrusday night drinking at Unibar rather than finishing that assignment. Stop blaming your mom for cooking that salty vegetables, you should be doing that for her, not vice versa. Stop blaming your girl friend for all that miscommunication!!! It may be always you who make rash decision. The focal point of all these pressure situation is, take control over your life. It’s not the world who will change or act the way you want it to be. But it’s you, who have to change/act the way that makes you happy.

However, in day to day life, it’s really hard to define the word “happy”. For me, I am happy when friends and family around me are happy, and when I can actually do something for them. Or, when they call me just to say how frustration or exciting day they had. For other, a trip to the hard rock cafe would make them happy!!! or for someone listening to same Pink Floyd song for hours would be ultimate happiness!!

CNN Hero: Anuradha Koirala

Tech Talk: Linus Torvalds on git

Maintanence of a crapy project

When a crap of web application is built, we can often hear WTF around office a lot. Generally, a web application does not end with a web developer, rather it start with him/her and will be used by bunch of user who does not care how it should work. To avoid these users to destroy a badly coded web application, CEOs came up with an idea of Code Review.

Code review, to a certain extend increases the quality of web application, but these reviews definitely test the patience of Software architect. And the below image would suggest, the number of WTF during this phase of implementation. I came across similar crap of the project few months back, where the code were all messed up, and so called MVC was MMVVVC.  And its not easy to maintain and enhance these projects. And at this stage, we have to make a decision of completely replacing it or enhancing it to the level we can. I would always prefer the first option, but the project manager would always prefer the later one. And the result is, one big mistake at the start of web application cost you double to maintain it and more than 400% to enhance anything on it.

 

Reference: http://wtfcode.net/post/187085474/the-obligatory-image-c-2008-focus-shift-osnews

Randy Pausch Last Lecture: Achieving Your Childhood Dreams

Project 60: A step towards nation’s development

In the field of formal education, ICT is increasingly used as tools to extend the learner’s capacity to perceive, understand and communicate, as seen in the use of the computer as a learning support tool in the classroom. “One e-library per school” in Nepal is the motto put forward by Dr. Shiva Gautam. In order to best use the ICT in education to support learning objectives, this project has been put forward in 10 different schools from Kathmandu Valley.
This project has been funded by Non-residential Nepali with the technical assistance by Project60 team
from Kathmandu University Open Source Community. This project is under the supervision of ILPRL,
Kathmandu University.

In the field of formal education, ICT is increasingly used as tools to extend the learner’s capacity to perceive, understand and communicate, as seen in the use of the computer as a learning support tool inthe classroom. “One e-library per school” in Nepal is the motto put forward by Dr. Shiva Gautam. Inorder to best use the ICT in education to support learning objectives, this project has been put forwardin 10 different schools from Kathmandu Valley.This project has been funded by Non-residential Nepali with the technical assistance by Project60 team from Kathmandu University Open Source Community. This project is under the supervision of ILPRL,Kathmandu University.

Java API for Grid Computing

Abstract. With the evolution of digital world, the amount of data produced every instance is very large. Large amount of data require huge amount of computation time. Furthermore, a big portion of this data remains idle most of the time. Therefore, processing of data sequentially one after another takes unusually long time.

Realizing this, the concept of grid Computing was implemented in projects such as SETI@home, CERN etc., where huge amount of data were generated every instance. These projects were successful in implementation of Grid Computing. But their API design does not support other grid-enabled applications. Java API for Grid Computing is a generic framework for programming in Grid Computing Technology that helps programmers who wants to develop a grid-enable application in Java. It provides a set of java classes which is useful to make a sophisticated grid computing application. This framework is limited to Java. As Java being one of the strongest programming languages for distributed computing specially through Java RMI. We wish to develop a small application for prime number computation as application demonstration.

Index Terms: Grid Computing, Java API, Computation, Distributed system programming

1 Introduction

“You can tell how far we have to go, when FORTRAN is the language of supercomputers.” says Steven Feiner when he talked about standalone supercomputers. The amount of computation that has to be done is growing rapidly and standalone supercomputers were just not enough to manipulate all the data generated. Thus, the introduction of distributed computing system is inevitable. Distributed computing system is a collection of processors that do not share memory or a clock. In such a system, the nodes working asynchronously share the entire workload. It is usually thought that distributed computing involves seamless and transparent process movement between processors and the entire cluster of processors essentially behaves as a single processor. Therefore, the user is not aware of the individual processor that executed the process. However this is just a single form of distributed computing.

Solving a problem within the confines of a single host is trivial, and can be done by any one. However, as the size of data grows, processing of that data takes more and more time. At one point, though the processing algorithm is not too complicated, time required to process a huge volume of data takes exceptionally long time. Many-a-times, the time requirement could have been shortened by splitting data set into a number of smaller data sets and processing them separately in different hosts. Although this sounds trivial, it is not so easy to perform these tasks automatically. One has to consider the facts that synchronizing the task across heterogeneous computers are not trivial and will become a major hurdle for any programmer whose primary target is to get his data processed. A framework for Distributed Computing in this case helps him in the way that he only needs to write the code for processing algorithm and some additional code to split data. Then he can simply rely on the framework to solve the problem in a quick and efficient manner using the distributed system

2 Grid Computing and Java Framework

One of the common forms of distributed computing is grid computing. A grid uses the resources of many separate computers, loosely connected by a network (usually the Internet), to solve large-scale computation problems. Public grids may use idle time on many thousands of computers throughout the world. Such arrangements permit handling of data that would otherwise require the power of expensive supercomputer or would have been impossible to analyze.

In a grid computing environment, computationally large data is split into a number of smaller, and therefore more manageable, work units. Each work-unit is then sent to one member of the grid. That member completes processing of that work-unit in its own and sends back the result. In this architecture, there needs to be at least one host that performs the task of assigning work-units, and then sending them, to a remote processor, as well as receive the results from remote processors. In addition to this assigning, sending and receiving the work-units and results, there also is the need for a host that splits tasks into work-units and assimilates the received work units. However, for small data volumes, all these tasks can be done by a single processor.

Hereby, this project aims to create a framework in Java that assist in such task distribution and processing. With this framework, a number of hosts play the role of work unit processor, while one operates as the controller. Controller host is responsible for task splitting, distribution, result reception as well as assimilating result. In addition to that, it is also responsible for distributing data-processing module to all the remote processors. As a part of this project, Java modules shall be created that will handle distributing work-units, and receiving results. A framework shall be created so that any user may create data processing module in Java and use the framework to distribute the work load across the grid. The user shall also create modules that will split data and then assimilate result. Furthermore, an agent will also be created that runs in the client members of the grid that shall be responsible for all communications with the controlling host.

The following figure depicts the procedure:


On the server end, user has to write a program for processing module, splitter and assimilator. Each client has an agent running in it. Once a client is online and in communication with server, the server sends the processing module to the client. The splitter splits data into smaller work units. Scheduler then sends this individual work unit to client. After that, the agent in client starts up its local processing module to start processing the work unit. Once processing of work unit is complete, it returns the result back to server. The server send received result to assimilator which combines results from all clients for further processing.

3 Grid Computing modules

A number of modules shall be created that handle the task of distribution of work-units and receiving results.

  1. It is not very difficult to write modules that will distribute data and receive results, nor is it difficult to create modules that will split, process and assimilate data. To shape all these modules into a well defined and standard API for a framework will require considerable time and hence shall be the first priority for the project.
  2. Once a set of modules for process and data distribution is complete, it is necessary to test it. In order to test it, a small test module shall be created which will solve a simple problem for a very large set of data. One example of such a module is finding prime number among a very large set of integers.
  3. Not all members of a grid perform uniformly. Some of the client may be faster than others, and hence can process more data than slower clients in same amount of time. In such a heterogeneous environment it is more prudent to design a scheduling algorithm that, rather than distributing uniform numbers of work units across the grid, sends more work units to faster clients and less work units to slower clients.

These three tasks shall be the major objectives. Apart from these, there shall be some minor objectives that the project shall try to incorporate.

  1. Although a rudimentary protocol for communication between client and server is sufficient, a more complex protocol may be need to be designed so as to incorporate various types of data that needs to be processed.
  2. A small statistical analysis may be performed to highlight the throughput of the system. It may be used to show the change in throughput as the number of clients changed.
  3. Although computers are very trust-worthy and rarely make mistakes, it does make computation error every once in a while. Therefore it is necessary to have a module that will verify that the results are correct. This could be part of the framework, or may be part of the testing module.
  4. While a client is processing some data, it may go offline. A method may be devised to identify if any of the clients goes offline and deal with the data sent to that host. One simple method would be to implement some variation of aging.
  5. As the number of clients increase, it is possible that the server becomes overwhelmed, and therefore may need to have several servers. Placing additional server will complicate all the issues and has to be handled accordingly.

Epilogue

Grid Enabled application can be very robust; with Java API for grid computing development of such application is made far easier.  Next generation technology would be distributed system where each hosts have similar power and responsibility in a network. As with grid enabled application this concept would be realistic.

References

  1. http://boinc.berkeley.edu/
  2. http://www.gridcafe.org/

Singapore: The finest city in the world

We were desperately trying to prepare a build in hudson and a mail popped up in my browser window, it was from Asia Open Source Software Community (AOSS). It said I was invited to speak on “Open Source Forensic Tools” at SIM University, Singapore. omg! I didn’t even know what that means or I have never ever used any of such computer forensic tools. Later I came to know that the mail was for a Srilankan guy, and we were asked to speak on Nirvikalpa, an open source OSS win CD. Also, we have a group discussion on ERP/CRM and Cloud Computing. God, I was so excited.

Now, If I tell you what happen in the airport and later in the airplane, I am sure all of you will be jealous. So let’s skip it, you can imagine something like a running scene in one of traditional Bollywood movie. So, let me directly take you to Singapore airport metro station. You might think how come a guy who have never been out of Nepal know about metro, you are right we didn’t knew about them, we were there searching for a taxi. Thank god! we met a friend mine who came to pick us up. We got a cab and payed it S$ 18.60 to reach our hotel. And as you can imagine with the increase in every cent, we’d convert it into Nepalese rupees. You might think what a sketchy guy I am. But it’s in our blood.

There were quite a few genius guys in the workshop, but it was really hard to remember their names. However, my name sound like Japanese so they tend to remember me. So to tell you more about them, there was this guy named red1 (redone) from Malaysia, he is a leader of an open source ERP software “Admpiere”, and he have also written a book on “Open Source ERP”. His session on Open Source ERP was really helpful, I promised to invited him to Nepal and show some old places in Kathmandu. I also had a short session with a guy from Japan, who was working in the field of grid and distributed computing. He actually did his bachelor’s in astrophysics, and his research was on simulation of the outward movements of the sun, the energy involved in this movements and… you see he had a very poor English, so it was really hard for me to communicate with him. So I hardly understood what he said, but he looked like a real geek to me. Than on second day of the workshop, there was this presentation from this big fat guy, he had a session on Kernel Security. The only thing I understood was the word “kernel”. Everything else was Chinese to me. And my eyes were on clock every minuted, by then a guy from red hat arrived. He brought some Fedora live CDs with him, and cool thing was he had no slides. His speech was really nice and interactive, and as you can imagine I was the one to ask him hell of a lot of questions. However, If you’d ask me best thing about the workshop, I’d say of course the lunch. We were served Chinese, Japanese, Malaysian and some Indian food. Also they used to serve ice plead tea and orange juice which was refreshing in extremely hot weather.

There are so many exciting things I need to tell you about Singapore. But I don’t want to make this blog a boring one to read. However, if you go to Singapore don’t miss Sentosa – an ultimate holiday destination, do go to Clarke if you are party guy but don’t forget to be in a formal dress code (You can take everything off once you get in), also Orchard road and City Hall for some shopping, don’t dare to miss the iconic Merlion by the CBD and Singapore flyer, do click a picture in front of Esplanade, it’s beautiful. I had a great time in Singapore, why don’t you guys pack your bags and run for a ultimate holiday destination.

RSSG WEB

I worked as a Java programmer and Configuration manager for a project “RSSG-WEB” at Verisk Health between September, 2009 and March, 2010. During this period, I worked around one of the latest technologies in Enterprise Software Development and I must tell you how much I enjoyed it. I was working under one of the most experienced Software Architect in the industry, and a guy who loves working around new and evolving technologies. We were trying to build a risk analysis predictive solution for healthcare in Germany. I would like to briefly introduce you the technology that we used in this project and how fascinating they are:

  • Spring Web MVC
  • JSP
  • SAML
  • Web Service
  • Apache Maven
  • MySQL
  • Tera Data
  • Hudson
  • JBOSS Application Server
  • Web based portal
< Previous Page