Saturday, September 8, 2012

Group Keying & Rekeying

Some InPainting algorithms

Quick List of *HOT* software technologies

Listing some software technologies that are *hot* these days. I have touched upon them in the past in some senses. Just bringing it all together.

Web frameworks for Web services: Goal is to pushing pages and delighting users[1]
  1. Node.js: Event driven server side javascript based "server", to deal with sysadmin capabilities and low level routing [1]
  2. Ruby on Rails: A web framework based on the Ruby Language
  3. Ajax: Method to render only small sections of the page as necessary from the user/client perspective by talking to the server side framework. (Some Ajax frameworks are even embedded as a part of larger frameworks. For example, the jQuery JavaScript Library is included in Ruby on Rails.[Wikipedia])
Clouds & Virtualization Infrastructure:
  1. Amazon's EC2 cloud:  A web service interface that allows one to obtain and configure capacity in the cloud managed by Amazon, where new server instances can be boot up in minutes allowing to quickly scale capacity, both up and down, as your computing requirements change. Amazon EC2 changes the economics of computing by allowing you to pay only for capacity that you actually use. Amazon EC2 provides developers the tools to build failure resilient applications and isolate themselves from common failure scenarios. Here is the marketplace for the applications written based on the EC2 cloud. Here is a link to AWS developer community resources. This internally leverages virtualization technologies and Big-data technologies. 
  2. See this Virtualization Journal for advances

Big Data: Technologies to solve problems in distributed systems and to deal with large data.
  1. Apache Hadoop Project: Java based technology that helps to leverage multiple commodity hardware to deal with big data (however typically for performance, this "commodity hardware" is really high end machines). Hadoop is an java-based open source implementation of the Google MapReduce model (which in turn bears similarities with the MPI Map-Reduce model). Google is thought to implement the map-reduce in C++. 
OpenFlow and SDN:
  1. Openflow is a layer-2 protocol to talk to a switch or router so as to get access to the switch or router's forwarding plane and tell the switch to take certain decisions. Openflow is considered to be an enabler of SDN (of course one can always do SDN by SNMP or by CLI. See a past blog)
Android and Apple App development:

Sunday, September 2, 2012

Copy Constructor

http://www.velocityreviews.com/forums/t283016-question-on-copy-constructor.html as to why the argument of the copy constructor needs to be pass-by-reference

(note that there are 2 ways of passing arguments in C++, one is by value (copy constructor is involved), and one is by reference)

See Wikipedia for examples