What is SSH Tunnel? Where can it be used?

SSH is a Secure Shell.  Tunnel means forwarding the requests to a host on a specific tcp/ip port to  another host listening an another port.

Example: localhost’s port 1034  requests shall be forwarded to another host say 10.12.0.1 listening  port 928. i,e software application sending messages to localhost  on port 1034 will be redirected to 10.12.0.1  listening port 928.

SSH tunnel is secure, as the encrypted data only, flies between the two hosts over any media(internet/wireless). So it can be used between two servers that are located apart and means of communication between the two is on a public media.

Putty, the SSH client, has this tunneling feature built in and can be used for this purpose.

How to check SunRPC’s rpcgen service is running or not?

Check whether the service is running or not using rpcinfo.

$ rpcinfo -p

rpcgen
If the service is not running,  you have to start with rpcbind.

If there is any rpcbind error then do as below,
– stop the service,
sudo -i service portmap stop
– then,
sudo -i rpcbind -i -w
sudo -i service portmap start

here -i means insecure mode and so it allows any host to make RPCs to the registered programs. Normally rpcbind accepts request only from loopback interface in this mode for security reasons.

version info: rpcgen version 2.15

3 Level Lift Controller using Assembly Language Program, KEIL Assembler

The lift controller develpment is half way through, and it only contains code for,
– timer configurations, isr routines
–  pwm configurations, isr routines
– keyboard configurations, isr routines
– seven segment led configurations, 4 bit bcd
– module level multi file organisation

Files:
readme txt file – Readme
project zip file – lift_controller

Planned to complete this development, whenever time permits.

C++ Templates and Virtual Functions

GCC C++03

Can a class template can have virtual/ pure virtual functions inside it?

A template class can indeed contain virtual or pure virtual functions.

A template class is  not a class by itself. As the name says, its just a template, that is used by the compiler to create classes. Template class definition, as such, does not generate any code at all, including the virtual table.

When we actually instantiate the template class, e.g. CData<bool>,  only then the compiler needs to build the virtual table for that one selected type, so it’s not any different than a virtual function or a pure virtual function of a non-templated class.

 

C++ Template Instantiation

GCC C++03

The entire template definition must be visible, when the template is instantiated. It means that,  you should not put the template definitions in some separate .cpp file,  If you do so, you’ll get a linker error.  Typically it should be in the same header as the class definition.

Extern templates are different from this, Its a new standard in C++1X.

GCC version 4.6.3 and its compliance to C++ standards

sourcery-i686-pc-linux-gnu (Sourcery CodeBench Lite 2012.03-27) uses GCC version 4.6.3

http://gcc.gnu.org/onlinedocs/gcc-4.6.3/gcc/Standards.html#Standards

GCC version 4.6.3 supports the ISO C++ standard (1998) and contains experimental support for the ISO C++ standard (200x).  GCC  version 4.6.3 implements the majority of C++98 (export is a notable exception) and most of the changes in C++03.

Latest GCC Release Series is GCC 4.8.2 (changes) released [2013-10-16]  http://gcc.gnu.org/

How to enable C11 on GCC ?

-std=c11 is the option to do so, but it is not available in GCC 4.6.3.
With GCC 4.7.x -std=c1x experimental support for C11 is available.

Standardization

http://en.wikipedia.org/wiki/C%2B%2B#Standardization
Year           C++ Standard                                       Informal name
1998         ISO/IEC 14882:1998[18]             C++98
2003         ISO/IEC 14882:2003[19]             C++03
2007        ISO/IEC TR 19768:2007[20]      C++TR1
2011        ISO/IEC 14882:2011[21]              C++11

To purchase standards documents-> http://webstore.ansi.org/