Wednesday, March 07, 2012

BitTorrent Search Engine/Site Survey

We are conducting an academic research study on use of BitTorrent search engines/sites. Please help us by:
  * Completing the survey
   * Sharing survey link with your friends on Facebook, Google+, Twitter, blogs, e-mails, etc. for wider participation

Link - http://www.cnrl.colostate.edu/Projects/CP2P/BTSurvey/
Time - ~3 minutes

This survey is conducted by the Computer Networking Research Laboratory (CNRL) of the Colorado State University, USA.

Friday, February 24, 2012

OverSim vs. Overlay Weaver

Quick comparison on OverSim & Overlay Weaver
OverSimOverlay Weaver
SimulatorEmulator
OMNet++ basedStand alone package
C++ based. Some parts of the code is expected to be use for productionJava based. Code is expected to be use for production
GUI for demonstrations - more featuresGUI for demonstrations
No documentation - High learning curveNo documentation - High learning curve
Statistics, visualizing tools, vectors (time series)Some statistics
Many built in overlays - Chord, Pastry, Bamboo, Koorde, Broose, Kademlia, GIA, NICE, NTree, Quon, Vast, & Publish-SubscribeBuilt in overlays - Chord, Kademlia, Koorde, Pastry, Tapestry & FRT-Chord
Built in routing modes - Recursive, iterative, semi-recursiv, exhaustive-iterativeeBuilt in routing modes - Recursive, iterative
Built in applications - DHT, i3, scribe, P2PNS, KBRTestApp, DHTTestApp, & SimpleGameClientDHT & multicast
Relatively Fast - Up to 100,000 nodesSeveral thousand.
Underlay - simple & INETUnderlay. UDP & TCP on IPv4/IPV6Suppose to be work on a real network
Churn - Lifetime & ParetoNo information
GNU GPLApache License
No demosOnline demonstration of a DHT using PlanetLab. Some videos

Thursday, February 09, 2012

Discrete Event Engine - Python

Attached Python Discrete Event Engine (DES) can be use to build many discrete event simulators. It supports any data type or object and is capable of handling large event lists (use binary search to sort events). See source code for details.

Download

Usage:
from DES import Event

events = DES()

#Add set of events
#event time, event type, node/customer/server ID, data
events.addEvent(5.5, 'Type1', 1, 'Test data 1')
events.addEvent(3.3, 'Type2', 2, [1, 2, 3, 4])
events.addEvent(1.5, 'Type3', 3, 567890)
events.addEvent(9.9, 'Type4')
events.addEvent(8.6, 'Type3', 1, 'Test data 5')

#remove event
#Provide at least event time & type
events.removeEvent(3.3, 'Type2', 2)

#Get remaining events in chronological order
event = events.getNextEvent()
print event.startTime, event.eventType
event = events.getNextEvent()
print event.startTime, event.eventType
event = events.getNextEvent()
print event.startTime, event.eventType

#Current simulation time
print 'Current time', events.now

event = events.getNextEvent()
print event.startTime, event.eventType
event = events.getNextEvent()
print event #No more events
 
Returns:
1.5 Type3
5.5 Type1
8.6 Type3
Current time 8.6
9.9 Type4
None

Wednesday, February 01, 2012

Yes, I hail starting private universities. But! - A Lecturer's Perspective

We are proud and privileged to teach the cream of the crop. We cherish when those students succeed in their endeavors. Most of us continue to stay in public universities mainly because of the intellectual challenges that these students present even at the expense of many monitory benefits. We hail them not only for their academic success but also for their all round abilities. This is about to change and what can we do about it?

I personally believe expansion of either public or private higher education is a must for any country. Anyone should be able to get the education they desire regardless of their performance in school, work, age differences, geographic location, economic, or ethnic background. Technological advancements are breaking these barriers and enabling everyone to learn at their own phase. Like it or not, it is the way forward. I see far more benefits in starting private universities in Sri Lanka.
If a private institution can offer an undergraduate degree under Rs. 2 Million, it will open doors to many middle-class individuals to attain their educational goals (student loans will become norm). This could also divert the cream of the crop to such private institutions. Why?
  1. Private universities may initially provide scholarships to attract best students.
  2. In programs such as Engineering, public universities do not provide any grantees on what program(s) can a student follow. There is no concept of minors or double majors. It all depends on 1st year performance. This is a huge risk for a good student.
  3. No grantee that a student will graduate in 4 years due to strikes at all levels of the university system.
  4. Most degree programs are not internationally recognized which can hinder immediate employment and further education opportunities.
  5. In most cases, education system as a whole is outdated. 
  6. In a superficial level, students may also feel they can better improve their communication and social skills at such an institution.
Though private institutions cannot provide the atmosphere of a residential university environment that really shapes and makes an individual, most students do not understand the value of such a culture unless they step into a real university. They may not value it even if they know it, as Generation Y/Z students are happy to text to the friend sitting next to him/her rather than talk. Therefore, it is a low-risk, high-rewarding option for a well rounded and/or academically high achiever who want to move on.

We really need those well rounded students (who may not have island ranks) to keep our classes engaged and fun, set the trends and phase, and to keep the student body functioning. If not, we will lose our only reason to stay in the public university system. We can do 3 things.

First, we can join the rallies against private universities. However, it would be foolish and selfish to support a cause that is not founded on any valid claims. Junior students do not know why they are even fighting while senior ones are worried that they cannot compete with well-rounded individuals that may come out of private universities. In reality, public universities are better equipped to produce a well educated and rounded citizen. Instead of fighting against government, those students should fight to overcome their limitations and inabilities. We have witnessed the devastation that small minority of shallow-minded students can cause. If the cream of the crop leaves, their void will be filled by many more shallow-minded students. How fun would that be? By the way, this does not mean that we can ignore those students. It is our moral responsibility to reach them and guide them to see the world as it is and to develop high-minded individuals. Therefore, rather than joining such a cause, we should strive to educate younger students about what is the correct approach.

Second, we can sit back and relax until it becomes a norm for cream of the crop to go to private institutions. Then we can join them to regaining our pleasure of teaching them while gaining much better monitory benefits. This could work for many faculties, but not to the ones that are interested in research. It is unlikely that private universities will engage in any meaningful research (if they do at all) for several more decades as teaching can bring in high turnover with low investment (tuition classes are good examples).

Finally, I believe we can compete with private institutions. We teach free, we have the best teachers with PhDs from all around the world, we have a proven track record, we do research (though can be vastly improved), and most importantly we are here because we love what we do. We can attack all 6 aforementioned points:
  1. We provide the best free, college education in the world with no strings attached.
  2. We can reduce uncertainty in program selection, offer more options, and if we really try it is possible to admit students directly to programs (not sure whether this is the best approach). 
  3. If we set good examples, educate our students beyond technical matters, and engage with them, we can prevent unnecessary rifts. I believe a university should continue irrespective of individual interests.
  4. Both the industry (hiring our graduates) and academia have shown our competitiveness internationally. Let us continue and strengthen these efforts. If required, let us get accredited. 
  5. It is not hard to teach what matter and relevant using state of the art techniques and tools. It does not cost much to acquire new teaching skills and tools. There are plenty of public domain teaching tips and free and open source tools. Sri Lanka being the largest per-capita open source contributor in the world, we already have the capacity to develop world class teaching tools ( someday the whole world may appreciate those tools).
  6. A public university has everything that is needed. Where can students get a full size ground (we should encourage them to use it), opportunity to experiment new ideas without risk, organize cultural events, interact with  diverse social, ethnic, and religious groups, and engage with community? We need to stress importance of communication and soft skills by enforcing writing-across the curriculum, presentations, etc.
I do not see any further support from government to improve 15 public universities in Sri Lanka. Employers and government is already pointing fingers at us saying we do not produce what the country need (which I do not fully agree). If private universities address these concerns, we are irreverent. If we can show that we are an important force then they cannot neglect us and we gain bargaining power. Not much is needed to compete at highest level. We already have a name. Moratuwa is known for Engineering, Colombo for Medicine, Jayawardanapura for Commerce, and so on. We just need to retain our name and strengthen it by engaging in meaningful activities that are helpful to our own people. We also need to do minor administrative changes within our control. If we stand up, incapable individuals will drop out as they know they cannot compete. Alumni are another resource that we have completely neglected. This is doable but are we willing to do it?

Comments are welcome.

Friday, December 09, 2011

I Don't Understand What Anyone Is Saying Anymore

I Don't Understand What Anyone Is Saying Anymore by Dan Pallotta - Harvard Business Review
Reminder of way we communicate not just in business but also in science & engineering. Just had first hand experience at Globecom 2011. Bit of though can overcome these & significantly enhance what we want to convey.

Wednesday, October 05, 2011

Qiqqa - Best (free) document management tool for researches

I have being trying Qiqqa for few days & loving it. Even the free version has so many unique features that makes managing PDF-based articles easy & fun. It's probably the best (free) document management tool for researches.
Want to try, go to http://www.qiqqa.com

Thursday, September 29, 2011

Framework, Architecture, vs. Solution

I always struggle to figure out whether to use the word framework, architecture, or solution while trying describe what we developed/designed. Here's the difference among those terms based on several sources:
Framework
  1. Underlying set of ideas: a set of ideas, principles, agreements, or rules that provides the basis or outline for something intended to be more fully developed at a later stage - Encarta World English Dictionary
  2. Context: the general background to, or context for, a particular action or event, e.g., legal framework - Encarta World English Dictionary
  3. System of interconnecting bars: a structure of connected horizontal and vertical bars with spaces between them, especially one that forms the skeleton of another structure - Encarta World English Dictionary
  4. A set of theories widely accepted enough to serve as the guiding principles of research within a particular discipline - Wikipedia
Architecture
  1. Building design: the art and science of designing and constructing buildings - Encarta World English Dictionary
  2. building style: a style or fashion of building, especially one that is typical of a period of history or of a particular place - Encarta World English Dictionary
  3. Structure of computer system: the design, structure, and behavior of a computer system, microprocessor, or system program, including the characteristics of individual components and how they interact, e.g., network architecture - Encarta World English Dictionary
  4. Both the process and product of planning, designing and construction - Wikipedia
Solution (source Encarta World English Dictionary)
  1. Answer to puzzle: the answer to a puzzle or question
  2. Ending of something: the act of ending, breaking, or separating something
Thus, it seems framework is concerned with defining the underlying ideas and framing the work (defining boundaries). For example, a software framework defines a set of classes and how they are interrelated. They may also define methods/functions without specifying how to implement them. According to 3rd definition, framework is also used to refer to underlying solution that can be used to build other things on top of it, e.g., .NET framework or OMNet++ simulation framework. Therefore, a framework is generic enough or extensible to be applicable under different scenarios.
Whereas an architecture is concerned with both the design and how to execute them. For example, computer architecture is the practical art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals and the formal modeling of those systems (source - Wikipedia).
Solution is the ultimate outcome when a framework is translated into an architecture, and when that architecture becomes a reality.
Therefore, if we are referring to something conceptual (e.g., block diagram) we can consider it to be a framework. If we further extend the block diagram and talk about specific details of each block (e.g., what algorithms to use) and how to integrate them, then it's an architecture. If we go further and develop it, it becomes a specific solution. Framework is generic while solution is specific.

Still confused - you are not the only one, e.g., see Define “Framework”