My Tech notes
Subscribe

Unix Documentation

Free Online Unix Training Materials

Lists many links to free Unix training materials.

Pointers and Arrays Materials

Pointers and Arrays materials Explained for C beginners

C FAQ and General Questions C Interview Questions

Powered By

Free XML Skins for Blogger

Powered by Blogger

Saturday, November 7, 2009

Mastering Iptable Command Line Usage Linux Networking

Some of the most useful commands related to iptable,


  1. To display filter table rules.
  2. #iptables -t filter -L

  3. To display nat table rules.
  4. #iptables -t nat -L

  5. To display raw table rules
  6. #iptables -t raw -L

  7. To display mangle table rules.
  8. #iptables -t mangle -L


    To delete all rules in the filter,nat,raw and mangle table.
    #iptables -t filter -D
    #iptables -t nat -D
    #iptables -t raw -D
    #iptables -t mangle -D

    Set up IP FORWARDing and Masquerading
    # iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
    The above rule will do source nating.
    ( It will set eth0 IP address as source address for all outgoing packets on interface eth0.)
    # iptables --append FORWARD --in-interface eth1 -j ACCEPT

Port forwading
# iptables -t nat -A PREROUTING -i eth0 -d --dport -j DNAT --to
The above rule will change the destinationIP:portnumber of the incoming packet to private.IP:portnum
Enabing the packet forward in the kernel with proc entry.
#echo 1 > /proc/sys/net/ipv4/ip_forward


iptables is a user space application program that allows a system administrator to configure the tables provided by the Linux kernel firewall (implemented as different Netfilter modules) and the chains and rules it stores. Different kernel modules and programs are currently used for different protocols; iptables applies to IPv4, ip6tables to IPv6, arptables to ARP, and ebtables as a special for Ethernet frames.
source


Saturday, October 24, 2009

Dotnet, .Net 3.5, 2.0, C# Interview Questions

Few questions on dotnet, C# 2.0, 3.5
On Object oriented concepts

1)What is inheritance with e.g
2)What is polymorphism
-function overloading
-Function overriding
-virtual keyword use
-Static keyword and use
-Abstract classes
-Interface
-Object

3)What is threading and how do we use in realtime application(cognizant)
4)What is threadpooling, lock, monitor(write code sample)
5)Architecture of current project
6)Session state, diffrent types of state management.
7)What is Application_Start, how it works.
8)Type of authentication in asp.net
9)How to configure ASP.NET application.
10) What is Impersonation.
11) What is WebService, WSDL, UDDI, Discovery, asmx files.
12) How to implement WebService and use it.
13) When to use WebServices.
14) WPF, how to implement(BOA)
15) Testing concvepts.
16) Test attributes
17) Flow of Automation Test Method execution
18) Features of dotnet 3.5
19) CLR, garbage collection
20) Finally block
21) Manifest, Metadata, MSIL
22) Assemblies, Type of assemblies, strong name
23) GAC, gacutil, shared assemblies, path of GAC
24) Extended properties, propertyInfo
25) Better choice between WinForm and WPF
26) XAML, primitive
27) C# 3.0 features

Many are their will keep updating

Answers will be provided as per the need. Please feel free to query.

Tags: OOP, C#, framewrok, Dotnet, .Net, 2.0, 3.0, 3.5

Thursday, October 22, 2009

Virtual Table *_vptr , VTBL, C++

VTBL or VPTR nothing but virtual table and virtual pointer in C++.

It gets created when we create function with virtual keyword. As soon as we create the virtual function in a class A table gets created behind the code.

BaseClass
{
virtual void function1(){...}
}

ChildClass : public BaseClass
{
virtual void function1(){...}// method overridden.
}

When we override method that is create another version of function in derived class ChildClass in above case then the *_vptrvirtual void function1(){...}// method overridden. gets created for BaseClass.

So VTBL Of Base Class has entry for function1 and Child class will be pointing to that function. *_vptr is nothing but the pointer to function.

Note: ones the virtual keyword is introduced all the upcoming functions are considered as virtual.

ChildClass: public BaseClass
{
virtual void function1(){...}// method overridden.
void function2(){}
}

In above case function2 also considered as virtual.

BaseClass will not be pointing to any of Child Class functions and ChildClass will be pointing to all the virtual functions whose entry is in VTBL of baseclass as soon as the object of the base class instantiated or the method is overridden.

Tags : pointer, virtual, C++, function pointer,VTBL, VPTR, Function overriding , polymorphism

Tuesday, September 15, 2009

How to unzip .torrent files on Windows PC?

how to unzip .torrent files?
You do not need to decompress .torrent files. The .torrent will disappear from the end of the file once the file has finished downloading onto your computer.

Then you can use the file as you see fit. It may be a .mp3 file, a .zip file, etc
to use bittorent, you need a client. then open the .torrent file in azureus and you will download the file that the torrent is for. the .torrent isnt the file itself, it just tells the client where to get the file.
Here are some popular torrent clients for windows.
Download Azureus at Azureus
Azureus - now called Vuze - Bittorrent Client

Requires Java for Windows; if you are first time installing
http://java.com/en/download/inc/windows_new_xpi.jsp

Few more popular bittorrent clients for windows
  1. http://www.utorrent.com
  2. BitTorrent | BitTorrent

Check out Comparison of BitTorrent clients - from Wikipedia, the free encyclopedia
BitTorrent is the name of a peer-to-peer (P2P) file distribution protocol, and is the name of a free software implementation of that protocol.

Friday, August 21, 2009

Creating & Working On a CVS Branch Example Usage

Example usage OF Creating & Working On a CVS Branch
Tried working hard on CVs commands, here is simple example for working in branch using CVS, CVS is becoming nomore use with everyone opting for SVN, still CVS usages is wide as it is old,
Lets start with CVS commands to create a branch
This is done with two commands,
  • cvs tag -b release-1 //create branch
  • cvs update -j release-1 //merge the changes in main tot
Lets see with simple example
Creating and working on a branch for the existing kernel source.
#cvs co kernel/linux-2.6.26
#cd kernel/linux-2.6.26/
#cvs tag -b release-1

First we created a branch to the kernel source, as we are doing first release.
Continue your development work for second release.
After some time, reported a problem in the first release.
So you need to Get the kernel source code of first release.
#cvs co -r release-1 kernel/linux-2.6.24
and fix the problems
Now If you want to merge these changes in to main trunk.
#cvs update -j release-1
And you are done with usage OF Creating & Working On a CVS Branch

Tuesday, August 11, 2009

Linux SMB write performance With Simple Tips

SMB write performance can be increased by Tuning the buffer cache.
The secret to good performance is to keep as much of the data in memory for as long as is possible. Writing to the disk is the slowest part of any filesystem. If you know that the filesystem will be heavily used, then you can tune this process for Linux Samba.

writing out dirty blocks to the disk until the filesystem buffer cache is 80 percent full (80). default is 40%, source = http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap29sec287.html

by writing
echo 80 > /proc/sys/vm/dirty_ratio

I am getting around 2MB increase while write operation, tested in Xp.

I have tried with this single option, as the ref source is for linux 2.2 and we are using 2.6 kernel.
we can try out Linux General Optimization suggested at http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/gen-optim.html

Tried with smb.conf, I am getting around 1MB gain while read and write.

socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE
oplocks = yes
dead time = 15
read size = 32768

TCP socket options can be tested at run time using -O option of SMBD
/usr/local/samba/bin/smbd -O socket optios = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE

source.
http://us1.samba.org/samba/docs/man/Samba3-HOWTO/speed.html

socket level perf improvement also suggests for TCP_NODELAY
ref: http://www.ibm.com/developerworks/linux/library/l-hisock.html

http://www.stuartcheshire.org/papers/NagleDelayedAck/

SAMBA perf tuning ref.

http://oreilly.com/catalog/samba/chapter/book/appb.pdf

Wednesday, July 29, 2009

CROSS COMPILING X11 FOR ARM Board

STEPS FOR CROSS COMPILING X11 FOR ARM
Go to /usr/X11R6/lib in my linux PC.

1) install ARM toolchain, If not installed
2) Get x11 source from http://www.x.org/
3) extract all the tar files, using tar -xvzf
4) edit cross.def and host.def files, in cross.def set the paths
of tool chain in host.def file set crossCompile to YES and
DoLoadableServer to NO
5) make shadow directory "build" and link to xc "lndir ../xc"
6) run Make World


error: linux_vm86.c 281 impossible constraint in 'asm'
268 res might be used uninitialized in this function.
fix:comment line 281,
set res=0


error: implicit decleration of function 'SET_FLAG'
fix: comment line 111 in
programs/Xserver/hw/xfree86/os-support/linux/int10/helper_exec.c


error:Undefined reference to XF86VidModeQueryVersion in glxinfo
And glxgears
Undefined reference to XF86VidModeQueryVersion in xdriinfo
fix:download libXxf86vm.so.1.0 into our armtoolchain lib path
and make softlinks

ln -s libXxf86vm.so.1.0 libXxf86vm.so
ln -s libXxf86vm.so.1.0 libXxf86vm.so.1

error:X_cursor.cfg command not found.
fix:

copied all the binaries from cvs in our
arm-tools-chain bin folder...didnt work

copied libXcursor.so.1.0.2 from cvs in our arm-tools-chain
and made links

ln -s libXcursor.so.1.0.2 libXcursor.so.1
ln -s libXcursor.so.1.0.2 libXcursor.so
...still didnt work

copied xcursor.pc in pkgconfig of toolchain.

looks like xcursorgen is missing .
got it from debian.still didnt work.

copied xcursorgen from programs/xcursorgen/ to tool chain
still didnt work.

export XCURSORGEN=/usr/X11R6/bin/xcursorgen
!!! WORKED !!!


Total compilation time with "Make World" is 20 minutes.

after compilation it prints a message:
"Full build of Release 6.8 complete."

error: while doing make install got the error in fonts:
"/bin/sh -b: command not found"

workaround:
removed "models" folder from Makefile at
"programs/Xserver/XpConfig/C/print/Makefile
fix:Open the makefile in Xserver/XpConfig/C/print/models/XXX/fonts/Makefile
and then set MKFONTSCALE=$(XBINDIR)/mkfontscale below XBINDIR on line
no around 389.