101

Sponsored Links
Sponsored Links

101

No.
Title
Catelory
Price
License
Expand All
1
Miscellaneous -> Documentation
FDL GNU Free Documentation License
This preparation guide from Linux Holdings will help you to prepare for the LPI 101 exam.

Preparation guides LPI 101 0.90 is not a study guide but rather a summary for the exam.

Linux Holdings is a linux and Open Source training company, training Linux Administration as the core focus.

These are not the only Open Source courses we offer, but the most popular.

Training info

Linux Holdings offer a full spectrum of Linux and open source courses. These start from basic low-level courses to the very advanced administration courses.

All our administration courses are based on the international LPI certification. Our trainers are the best available in South Africa. They are not just excellent Linux administrators with many years experience; they are also the best trainers in the industry. Good administrators are not necessarily good trainers; we give you the best of both sides.

Our entry-level and intermediate courses include the ICDL for OpenOffice.org. We have a full marketing and development department constantly developing and updating courses. Linux Holdings invests huge amounts of time and resources in development, testing and research to give the best training available today.

Our quality department ensures that all students are trained to the highest standard possible. It is also the quality departments duty to ensure that students start with the right course so the learning gradient is not to high or to low. Speak to us so that we can suggest the proper courses for your IT experience.

2
Miscellaneous -> Documentation
FDL GNU Free Documentation License
This study guide from Linux Holdings will help you to train for the Linux LPI 101 exam.

Linux Holdings is a linux and Open Source training company, training Linux Administration as the core focus.

These are not the only Open Source courses we offer, but the most popular.

Training info

Linux Holdings offer a full spectrum of Linux and open source courses. These start from basic low-level courses to the very advanced administration courses.

All our administration courses are based on the international LPI certification. Our trainers are the best available in South Africa. They are not just excellent Linux administrators with many years experience; they are also the best trainers in the industry. Good administrators are not necessarily good trainers; we give you the best of both sides.

Our entry-level and intermediate courses include the ICDL for OpenOffice.org. We have a full marketing and development department constantly developing and updating courses. Linux Holdings invests huge amounts of time and resources in development, testing and research to give the best training available today.

Our quality department ensures that all students are trained to the highest standard possible. It is also the quality departments duty to ensure that students start with the right course so the learning gradient is not to high or to low. Speak to us so that we can suggest the proper courses for your IT experience.

3
Database -> Database-APIs
GPL GNU General Public License
MySQL Pack for QNAP TS-101/TS-201 was created to install MySQL on the QNAP NAS server, TS-101/TS-201. It contains a pre-compiled MySQL server and install programs. The php module supporting MySQL client will be also included if its necessary. The Pack also contains simple webpages for start/stop mysql.

Installation:

Create a share folder named MySQL. You may directly create Network Shares named MySQL on TS-101 Administration page. Please make sure both the real folder name and share volume name be MySQL.
Upload and unzip the package file (e.g. MySQL-4.1.21-TS-101-v0.2.tar) to the share folder created in the step 1. Here, using administrator to access the share folder is recommanded.
login in your TS-101 through Telnet Refer to http://scratchpad.wikia.com/wiki/Open_Turbostation:TS101, or find a TS-101 firmware with telnet enabled (You may find it on http://tech.groups.yahoo.com/group/OpenTurbostation/)
Run install.sh to install MySQL > /share/MySQL/install.sh /share/MySQL/mysql-4.1.21-TS-101.tgz /share/MySQL
Run mysqld.sh to start/stop MySQL > /usr/local/mysql/mysqld.sh start > /usr/local/mysql/mysqld.sh stop
Try to connect MySQL If you could connect MySQL with the following command, it means that your MySQL works. > /usr/local/mysql/bin/mysql mysql -u root --password=admin
After installation finished, MySQL will automatically start while booting. You may also run sys_initialize.sh to re-initialize MySQL. sys_initialize.sh wont remove the existed MySQL Pack and your database. > /share/MySQL/sys_initialize.sh /share/MySQL

Whats New in This Release:

· PHP supports sockets.
· gd-jpeg errors that occurred in PHP have been fixed.

4
Internet -> HTTP
GPL GNU General Public License
5
Database -> Administrative-frontents
Freeware
6
System -> System-Administration
GPL GNU General Public License
7
Miscellaneous -> Education
Free for noncommercial use
Glpi_1 is a Linux Professional Institute test Level-1 (101 and 102 exams) for Gnome/GTK+.

Glpi_1 software is written in Free Pascal Compiler (FPC).

8
Communications -> Telephony
BSD License
OSP Toolkit project is a client side implementation of the ETSI OSP VoIP Peering protocol (ETSI TS 101 321).

The OSP Toolkit project was begun in 1998 and the code has been incorporated into many commercial and open source VoIP products.
9
Desktop-Environment -> Window-Managers
MITX Consortium License
CTWM is a highly-configurable window manager based on the classic TWM window manager. It supports xpms, multiple workspaces, advanced icon managment, animated icons and backgrounds, 3D titles and borders, etc. It offers rudimentary Gnome support and is backwards-compatible with TWM.

As you probably know, CTWM is a highly configurable window manager. Spending hours configuring CTWM is among the most fun one can have, if you ask me. But its always nice to have something to start from. Thus, this section contains "themes" from CTWM.

Themes are a well-known concept with most window managers, but not really with CTWM. What I refer to as a theme in this section is the following: a .ctwmrc-file (of course), an .xinitrc-file (if needed to make the right impression) and the pixmaps one might need to get the right look. If you supply a theme for this site, you should also supply a screenshot in jpeg-or png-format.

(Instead of the rudimentary theme-system introduced below, you might want to use the "CTWM Themes System" by Reivax. Follow the link in the links-section.)

A good idea if you want to use many different themes on your computer is to make ctwm-themes a subdirectory of your $HOME and to put your themes in subdirectories according to their name. Put all relevant files in there. Example:

ctwm-themes/win98:
totalt 79
drwxr-xr-x 2 dali 101 1024 Sep 6 09:05 .
drwxr-xr-x 4 dali 101 1024 Sep 6 07:49 ..
-rw-r--r-- 1 dali 101 24747 Sep 6 09:01 .ctwmrc
-rwxr-xr-x 1 dali 101 1549 Sep 3 13:00 .xinitrc
-rw-r--r-- 1 dali 101 44972 Sep 6 09:05 blue4.xpm
-rw-r--r-- 1 dali 101 478 Sep 6 09:00 kill.xpm
-rw-r--r-- 1 dali 101 485 Sep 6 09:00 winmaximize.xpm
-rw-r--r-- 1 dali 101 485 Sep 6 09:00 winminimize.xpm
-rw-r--r-- 1 dali 101 475 Sep 6 09:00 x.xpm

Theme install script

To avoid having to move and link to the right .ctwmrc and .xinitrc every time you want to change theme, put this script in your path (suggested name ctwmtheme):

#!/bin/bash
mv .ctwmrc .ctwmrc.old
mv .xinitrc .xinitrc.old
ln -s ctwm-themes/$1/.ctwmrc .
ln -s ctwm-themes/$1/.xinitrc .

The script takes a theme name as its only argument. Example:
# ctwmtheme win98

(this would make win98 become the theme next time I start ctwm.)
10
Programming -> Libraries
Perl Artistic License
Wx::ActiveX provides the ActiveX interface.

It loads ActiveX controls for wxWindows.

SYNOPSIS

use Wx::ActiveX ;
my $activex = Wx::ActiveX->new( $this , "ShockwaveFlash.ShockwaveFlash" , 101 , wxDefaultPosition , wxDefaultSize ) ;

$activex->Invoke("LoadMovie",0,"file:///F:/swf/test.swf") ;

$activex->PropSet("Quality",Best) ;

my $frames_n = $activex->PropVal("TotalFrames") ;

$activex->Invoke("Play") ;

... or ...

$activex->Play ;

11
Communications -> Email
GPL GNU General Public License
KBPack a package for installing pre-compiled utilities, libraries, services, etc. and extending some functionality on QNAP TS-101/TS-201. The application contains a Web UI to manage the services/functions (see below) supported by itself.

Function/Service Supported:

Apache HTTPd
- Max Connections limitation
- Bandwidth limitation
MySQL (need MySQL Pack v0.3.4 or higher installed)
- Enable/Disable TCP/IP Networking
- Set Port Number
- Change root Password
MTA (Message Transfer Agent, sendmail like utility - using sSMTP)
- Support PHP mail() function
- Set SMTP Server Name
- SMTP Authentication
- Send Test Message

How to install:

Upload KBPack tar file to a share folder (e.g. /share/KBPack) via SAMBA/FTP.
Here, using the user ID, administrator to access the share folder is recommanded.

Login in your TS-101/TS-201 via Telnet

TS-101 Firmware Telnet Version can be downloaded on http://www.qnap.com.tw/download.asp

Use tar to unpack/extract KBPack-v0.1.tar.

# cd /share/KBPack
# tar -xf ./KBPack-v0.1.tar

After executing the preceding commands, you can find a folder named KBPack in /share/KBPack.

Run install.sh to install KBPack

# cd KBPack
# ./install.sh

Use KBPack with your browser (Firefox or IE)

http://IP_OF_YOUR_NAS_SERVER:6000/KBPack/ or http://IP_OF_YOUR_NAS_SERVER:6000/cgi-bin/KBPack/

*Note: Please disable Recycle Bin before installing KBPack.

How to un-install:

Login in your TS-101/TS-201 via Telnet
Run uninstall.sh to un-install KBPack

# cd /share/KBPack/KBPack
# ./uninstall.sh

12
Programming -> Libraries
Perl Artistic License
Math::BaseCalc is a Perl module that can convert numbers between various bases.

SYNOPSIS

use Math::BaseCalc;

my $calc = new Math::BaseCalc(digits => [0,1]); #Binary
my $bin_string = $calc->to_base(465); # Convert 465 to binary

$calc->digits(oct); # Octal
my $number = $calc->from_base(1574); # Convert octal 1574 to decimal

This module facilitates the conversion of numbers between various number bases. You may define your own digit sets, or use any of several predefined digit sets.

The to_base() and from_base() methods convert between Perl numbers and strings which represent these numbers in other bases. For instance, if youre using the binary digit set [0,1], $calc->to_base(5) will return the string "101". $calc->from_base("101") will return the number 5.
To convert between, say, base 7 and base 36, use the 2-step process of first converting to a Perl number, then to the desired base for the result:

$calc7 = new Math::BaseCalc(digits=>[0..6]);
$calc36 = new Math::BaseCalc(digits=>[0..9,a..z];

$in_base_36 = $calc36->to_base( $calc7->from_base(3506) );

If you just need to handle regular octal & hexdecimal strings, you probably dont need this module. See the sprintf(), oct(), and hex() Perl functions.

13
Programming -> Libraries
Perl Artistic License
WWW::YahooMaps is a Perl module which can create links to Yahoo! Maps.

SYNOPSIS

use WWW::YahooMaps;

#first method: PASSING ADDRESS BIT-BY-BIT
my %addr = (
"street" => "555 N Michigan Ave",
"city" => "Chicago, IL 60611",
"country" => "us",
);

if (my $url = WWW::YahooMaps::hashreftolink(%addr)){
print "url1 $urln";
}

#second method: ADDRESS INFO IN STRING
#separators can be ";" or newline "n"
#street should come before city
#pass an additional 1 at the end if you want to pass city first
if (my $url = WWW::YahooMaps::stringtolink("us","us","101 Morris Street; Sebastopol, CA 95472")){
print "url2 $urln";
}

#third method: CALL A FUNCTION WITH BIT-BY-BIT PARAMETERS
if (my $url = WWW::YahooMaps::stringtolink("us","us","Paris, TX; Main Street", 1)){
print "url3 $urln";
}

14
System -> Hardware
GPL GNU General Public License
sc101-nbd allows Linux to access a Netgear SC101 storage device as a block device, without requiring a new kernel module.

Netgear Storage Central 101 (sc101) is an IP based block storage device.

Netgear ships a clustered filesystem with the product (perhaps based on DataPlow SFS) which allows multiple Windows client machines to concurrently mount and read/write directly to the device; it is a SAN rather than a NAS device.

There is no protocol documentation provided, nor any driver support for operating systems other than Windows.

This software allows Linux to access the the sc101 as a block device, without requiring a new kernel module.

It achieves this by translating between the kernels existing NBD protocol and the reverse engineered protocol used by the sc101 (I call it PSAN, perhaps incorrectly).

On top of the NBD devices you can run RAID, LVM, and any existing filesystems (ext2/3, ocfs2, etc).

The resulting storage area is not interoperable with existing Windows clients.

It is unknown whether this software is compatible with the (unreleased) sc101t or other Zetera partnered devices.

Whats New in This Release:

· This has been tested on RHEL/CentOS 4.x and Ubuntu 7.04.

15
System -> Networking
GPL GNU General Public License
mpscan is a parallel network scanner that checks for open ports. It uses select() to increase its speed and was designed for rapidly scanning large networks, but could work with a single IP.

usage: mpscan [-V] | [-h] | [-v] [-t sec] [-p N] [-e N] IP
-V Prints Version
-h show this usage message
-v verbose, -vvv more verbose
-t timeout sec
-p first port
-e last port
IP: list or range

example: mpscan -p 22 192.168.1.1 - 192.168.1.10
mpscan -p 53 -e 101 127.0.0.1

mpscan -p 22 192.168.1.1 - 192.168.1.255
ip: 192.168.1.1 22 OK service:ssh protocol:tcp
ip: 192.168.1.5 22 OK service:ssh protocol:tcp
ip: 192.168.1.10 22 OK service:ssh protocol:tcp
mpscan -p 80 127.0.0.1
ip: 127.0.0.1 80 OK service:www protocol:tcp
mpscan -v -p 137 -e 139 127.0.0.1
ip: 127.0.0.1 137 FAIL service:netbios-ns protocol:tcp
ip: 127.0.0.1 139 FAIL service:netbios-ssn protocol:tcp
ip: 127.0.0.1 138 FAIL service:netbios-dgm protocol:tcp
16
System -> Monitoring
GPL GNU General Public License
xmbmon is a monitoring program for motherboards.

Recent motherboards have functionalities to monitor the CPU temperatures and the frequency of CPU cooling fans etc.

Although some programs utilizing these hardware monitoring facilities have been developed for the Microsoft Windows platforms, no programs seem to exist for PC-UNIX and the X Windows System platforms.

Thus, I have tried to make small programs. They have only least functionalities, the one "mbmon" used at the command line reports the temperatures, voltages and rpm (rounds per minute) of cooling fans, and the other "xmbmon" displays the three temperatures and a core voltage as simple curves.

The following hardware monitor chips are supported and the programs will work if your motherboard uses one of them or their compatible chip:

1. National Semiconductor co.
LM78/LM79, LM75, LM90, LM80, LM85

2. WinBond co.
W83781D, W83782D, W83783S, W83627HF, W83697HF built-in, W83L784R, W83L785R, W83L785TS-S, W83627THF

3. ASUSTek co.
AS99127F, ASB100 (Bach), ASM58 etc. (Mozart-2)

4. VIA Technology co.
VT82C686A/B built-in

5. Integrated Technology Express co.
IT8705F, IT8712F built-in

6. Genesys Logic
GL518SM, GL520SM

7. Analog Devices
ADM1024/1025/1027, ADT7463, ADM1020/1021/1023

8. Standard Microsystem co.
EMC6D100/101/102

Whats New in This Release:

· Bugs for detecting ALi chipset fixed.
· Further smoothing for plotting curves in xmbmon.
· SMBus accesses of VIA VT8237 and Intel ICH6 are supported.
· Problem related to select() system call fixed.
· The part of IO port read/write is unified into an gas in-line assembler code (so, gcc with x86-gas is assumed!).
· Changes to work on Solaris for x86 platform and others for cleaning up the codes.

17
Programming -> Libraries
Perl Artistic License
Cellular::Automata::Wolfram is a Perl module that implements one-dimensional non-totalistic cellular automata as described in Dr. Steven Wolframs, A New Kind of Science, ISBN:1-57955-008-8

SYNOPSIS

use Cellular::Automata::Wolfram;
my $png_file = shift;
my $caw =
new Cellular::Automata::Wolfram(
rule=>110,radius=>1,width=>80,num_of_gens=>100,random=>"",
colors=>[white,black]);
my $ar_gens = $caw->gens();
foreach my $gen (@{$ar_gens)) {
print "$genn"; # Prints the numeric values of each generation
# in the Cellular Automata.
} # foreach
$caw->draw($png_file); # This writes a png file out,
# $caw->draw() has a default name
# of "wolfram.png".

Dr. Steven Wolfram describes in his book, A New Kind of Science, ISBN:1-57955-008-8 his path-breaking experiment where he comprehensively explored a mathematical function which can be described (by me see the reference for a detailed explanation) as follows:

Given an 1d array of numbers A:

[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0]

Call this generation 1 (i.e. t).

Generation 2 (i.e. t+1) will be created by applying a rule to each number of the form A(i)(t+1) = rules(A(i-1)(t),A(i)(t),A(i+1)(t)), where A(i)(t) is the current value at position i for generation t in the array, and A(i)(t+1) is the next generations value of A(i).

For an array limited to 0 and 1 as possible values in each position the complete rules function can be described as follows:

Given array rule_input:

[111,110,101,100,011,010,001,000]

This is all the possible values that can be given as inputs to the rule function for an 0,1 array of numbers. The return for the rule function can be defined as follows:

[111,110,101,100,011,010,001,000] | | | | | | | | 0 1 1 0 1 1 1 0

This number 01101110 can be treated as a decimal number expressed as 110, as the result of the following standard binary to decimal formula. 0x128+1x64+1x32+0x16+1x8+1x4+1x2+0x1 = 110.

This number 110 can be used to define the entire rules function that is needed to determine the next generation.

Since all the possbile rules can be described from a eight digit binary number they run from 0 to 255 decimal, each number describes a different rules function and every possible rules function for an array limited to 0 and 1
and whose input is three values drawn from that array. The three values are chosen in the formula descibed above.

The choice of i-1, the left adjacent cell, and, i+1, the right adjacent cell, as the number of left and right ajacent cells to consider for the next generation can be defined as radius R. The number of values each cell can
take can be described as K (in drawing the number of colors). The examples short description is therefore (rule 110, K=2,R=1). This module allows you to explore every one dimensional cellular automata for any valid rule for a given K and R. The array wraps by default.

The result of rule 110 with K=2 [0,1] R=1 for 80 generations in an array of K values width 80 where the values wrap:

00000000000000000000000000000000000000010000000000000000000000000000000000000000 00000000000000000000000000000000000000110000000000000000000000000000000000000000 00000000000000000000000000000000000001110000000000000000000000000000000000000000 00000000000000000000000000000000000011010000000000000000000000000000000000000000 00000000000000000000000000000000000111110000000000000000000000000000000000000000 00000000000000000000000000000000001100010000000000000000000000000000000000000000 00000000000000000000000000000000011100110000000000000000000000000000000000000000 00000000000000000000000000000000110101110000000000000000000000000000000000000000 00000000000000000000000000000001111111010000000000000000000000000000000000000000 00000000000000000000000000000011000001110000000000000000000000000000000000000000 00000000000000000000000000000111000011010000000000000000000000000000000000000000 00000000000000000000000000001101000111110000000000000000000000000000000000000000 00000000000000000000000000011111001100010000000000000000000000000000000000000000 00000000000000000000000000110001011100110000000000000000000000000000000000000000 00000000000000000000000001110011110101110000000000000000000000000000000000000000 00000000000000000000000011010110011111010000000000000000000000000000000000000000 00000000000000000000000111111110110001110000000000000000000000000000000000000000 00000000000000000000001100000011110011010000000000000000000000000000000000000000 00000000000000000000011100000110010111110000000000000000000000000000000000000000 00000000000000000000110100001110111100010000000000000000000000000000000000000000 00000000000000000001111100011011100100110000000000000000000000000000000000000000 00000000000000000011000100111110101101110000000000000000000000000000000000000000 00000000000000000111001101100011111111010000000000000000000000000000000000000000 00000000000000001101011111100110000001110000000000000000000000000000000000000000 00000000000000011111110000101110000011010000000000000000000000000000000000000000 00000000000000110000010001111010000111110000000000000000000000000000000000000000 00000000000001110000110011001110001100010000000000000000000000000000000000000000 00000000000011010001110111011010011100110000000000000000000000000000000000000000 00000000000111110011011101111110110101110000000000000000000000000000000000000000 00000000001100010111110111000011111111010000000000000000000000000000000000000000 00000000011100111100011101000110000001110000000000000000000000000000000000000000 00000000110101100100110111001110000011010000000000000000000000000000000000000000 00000001111111101101111101011010000111110000000000000000000000000000000000000000 00000011000000111111000111111110001100010000000000000000000000000000000000000000 00000111000001100001001100000010011100110000000000000000000000000000000000000000 00001101000011100011011100000110110101110000000000000000000000000000000000000000 00011111000110100111110100001111111111010000000000000000000000000000000000000000 00110001001111101100011100011000000001110000000000000000000000000000000000000000 01110011011000111100110100111000000011010000000000000000000000000000000000000000 11010111111001100101111101101000000111110000000000000000000000000000000000000000 11111100001011101111000111111000001100010000000000000000000000000000000000000001 00000100011110111001001100001000011100110000000000000000000000000000000000000011 00001100110011101011011100011000110101110000000000000000000000000000000000000111 00011101110110111111110100111001111111010000000000000000000000000000000000001101 00110111011111100000011101101011000001110000000000000000000000000000000000011111 01111101110000100000110111111111000011010000000000000000000000000000000000110001 11000111010001100001111100000001000111110000000000000000000000000000000001110011 01001101110011100011000100000011001100010000000000000000000000000000000011010110 11011111010110100111001100000111011100110000000000000000000000000000000111111110 11110001111111101101011100001101110101110000000000000000000000000000001100000011 00010011000000111111110100011111011111010000000000000000000000000000011100000110 00110111000001100000011100110001110001110000000000000000000000000000110100001110 01111101000011100000110101110011010011010000000000000000000000000001111100011010 11000111000110100001111111010111110111110000000000000000000000000011000100111110 11001101001111100011000001111100011100010000000000000000000000000111001101100011 01011111011000100111000011000100110100110000000000000000000000001101011111100110 11110001111001101101000111001101111101110000000000000000000000011111110000101110 10010011001011111111001101011111000111010000000000000000000000110000010001111011 10110111011110000001011111110001001101110000000000000000000001110000110011001110 11111101110010000011110000010011011111010000000000000000000011010001110111011011 00000111010110000110010000110111110001110000000000000000000111110011011101111110 00001101111110001110110001111100010011010000000000000000001100010111110111000010 00011111000010011011110011000100110111110000000000000000011100111100011101000110 00110001000110111110010111001101111100010000000000000000110101100100110111001110 01110011001111100010111101011111000100110000000000000001111111101101111101011010 11010111011000100111100111110001001101110000000000000011000000111111000111111110 11111101111001101100101100010011011111010000000000000111000001100001001100000011 00000111001011111101111100110111110001110000000000001101000011100011011100000110 00001101011110000111000101111100010011010000000000011111000110100111110100001110 00011111110010001101001111000100110111110000000000110001001111101100011100011010 00110000010110011111011001001101111100010000000001110011011000111100110100111110 01110000111110110001111011011111000100110000000011010111111001100101111101100010 11010001100011110011001111110001001101110000000111111100001011101111000111100110 11110011100110010111011000010011011111010000001100000100011110111001001100101111 00010110101110111101111000110111110001110000011100001100110011101011011101111000 00111111111011100111001001111100010011010000110100011101110110111111110111001000 01100000001110101101011011000100110111110001111100110111011111100000011101011000 11100000011011111111111111001101111100010011000101111101110000100000110111111000 10100000111110000000000001011111000100110111001111000111010001100001111100001001 11100001100010000000000011110001001101111101011001001101110011100011000100011011 00100011100110000000000110010011011111000111111011011111010110100111001100111110 01100110101110000000001110110111110001001100001111110001111111101101011101100010

18
Programming -> Libraries
Perl Artistic License
GDS2 is a module for quickly creating programs to read and/or write GDS2 files.

Create Method

new - open gds2 file

usage:
my $gds2File = new GDS2(-fileName => "filename.gds2"); ## to read
my $gds2File2 = new GDS2(-fileName => ">filename.gds2"); ## to write

fileNum - file number...

usage:

close - close gds2 file

usage:

$gds2File -> close;
-or-
$gds2File -> close(-markEnd=>1); ## experimental -- some systems have trouble closing files
$gds2File -> close(-pad=>2048); ## experimental -- pad end with s till file size is a
## multiple of number. Note: old reel to reel tapes on Calma
## systems used 2048 byte blocks

High Level Write Methods

printInitLib() - Does all the things needed to start a library, writes HEADER,BGNLIB,LIBNAME,and UNITS records

The default is to create a library with a default unit of 1 micron that has a resolution of 1000. To get this set uUnit to 0.001 (1/1000) and the dbUnit to 1/1000th of a micron (1e-9). usage: $gds2File -> printInitLib(-name => "testlib", ## required -isoDate => 0|1 ## (optional) use ISO 4 digit date 2001 vs 101 -uUnit => real number ## (optional) default is 0.001 -dbUnit => real number ## (optional) default is 1e-9 );

## defaults to current date for library date

note:

remember to close library with printEndlib()
printBgnstr - Does all the things needed to start a structure definition

usage:

$gds2File -> printBgnstr(-name => "nand3" ## writes BGNSTR and STRNAME records
-isoDate => 1|0 ## (optional) use ISO 4 digit date 2001 vs 101
);

note:

remember to close with printEndstr()

printPath - prints a gds2 path
usage:
$gds2File -> printPath(
-layer=>#,
-dataType=>#, ##optional
-pathType=>#,
-width=>#.#,
-unitWidth=>#, ## (optional) directly specify width in data base units (vs -width which is multipled by resolution)
-xy=>@array, ## array of reals
-xyInt=>@array, ## array of internal ints (optional -wks better if you are modifying an existing GDS2 file)
);

note:
layer defaults to 0 if -layer not used
pathType defaults to 0 if -pathType not used
pathType 0 = square end
1 = round end
2 = square - extended 1/2 width
4 = custom plus variable path extension...
width defaults to 0.0 if -width not used
printBoundary - prints a gds2 boundary
usage:
$gds2File -> printBoundary(
-layer=>#,
-dataType=>#,
-xy=>@array, ## array of reals
-xyInt=>@array, ## array of internal ints (optional -wks better if you are modifying an existing GDS2 file)
);

note:
layer defaults to 0 if -layer not used
dataType defaults to 0 if -dataType not used
printSref - prints a gds2 Structure REFerence
usage:
$gds2File -> printSref(
-name=>string, ## Name of structure
-xy=>@array, ## array of reals
-xyInt=>@array, ## array of internal ints (optional -wks better than -xy if you are modifying an existing GDS2 file)
-angle=>#.#, ## (optional) Default is 0.0
-mag=>#.#, ## (optional) Default is 1.0
-reflect=>0|1 ## (optional)
);

note:
best not to specify angle or mag if not needed
printAref - prints a gds2 Array REFerence
usage:
$gds2File -> printAref(
-name=>string, ## Name of structure
-columns=>#, ## Default is 1
-rows=>#, ## Default is 1
-xy=>@array, ## array of reals
-xyInt=>@array, ## array of internal ints (optional -wks better if you are modifying an existing GDS2 file)
-angle=>#.#, ## (optional) Default is 0.0
-mag=>#.#, ## (optional) Default is 1.0
-reflect=>0|1 ## (optional)
);

note:
best not to specify angle or mag if not needed
printText - prints a gds2 Text
usage:
$gds2File -> printText(
-string=>string,
-layer=>#, ## Default is 0
-textType=>#, ## Default is 0
-font=>#, ## 0-3
-top, or -middle, -bottom, ##optional vertical presentation
-left, or -center, or -right, ##optional horizontal presentation
-xy=>@array, ## array of reals
-xyInt=>@array, ## array of internal ints (optional -wks better if you are modifying an existing GDS2 file)
-x=>#.#, ## optional way of passing in x value
-y=>#.#, ## optional way of passing in y value
-angle=>#.#, ## (optional) Default is 0.0
-mag=>#.#, ## (optional) Default is 1.0
-reflect=>#, ## (optional) Default is 0
);

note:

best not to specify reflect, angle or mag if not needed

19
Miscellaneous -> Security
GPL GNU General Public License
THC-Snooze is a framework for network traffic analysis. THC-Snooze project can be used as a sniffer or a network based intrusion detection system.

It will watch the network traffic and invoke small programs ("modules" or "protocol dissectors"), which are easily written in a script language, to gather information from the data.

The possible applications for THCsnooze range from simple and advanced sniffing to passive network auditing. It is possible to write modules that will track a connection until a successful login occured. Or you can check if a client application establishes with a ssl enabled server (insecure) SSLv2 connections.

Getting Started:

So, let us imagine you want to write a module for snooze and you dont know the protocol. (I will illustrate these steps on a well known protocol so its maybe easier to understand why we are doing these steps).

First we need some sample data to analyze. We make a copy of the dump_tcp.lua file and change the first line to match our needs:

"-- :xxx_no_proto:1:tcp:" to "-- :xxx_no_proto:21:tcp:"

We start snoozed:

# snoozed -i en0 -M modules/ -b -c t0 -D 10
THCsnoozed-0.0.6 by THC
DEBUG: loading modules ...
...

After we got one or two connections sniffed and stored we quit snooze. Now, we can use hxdmp to view the logs (well, you can use your favourite text editor to do that):

$ ./hxdmp -c t0/127.0.0.1_31231_127.0.0.1_21_0001.complete
hxdmp - THCsnooze hexdump by THC

00000000 32 32 30 20 6c 6f 63 61 6c 68 6f 73 74 20 46 54 | 220 loca lhost FT
00000010 50 20 73 65 72 76 65 72 20 28 74 6e 66 74 70 64 | P server (tnftpd
00000020 20 32 30 30 35 30 31 30 31 29 20 72 65 61 64 79 | 2005010 1) ready
00000030 2e 0d 0a 55 53 45 52 20 67 75 65 73 74 31 0d 0a | ...USER guest1..
00000040 33 33 31 20 50 61 73 73 77 6f 72 64 20 72 65 71 | 331 Pass word req
00000050 75 69 72 65 64 20 66 6f 72 20 67 75 65 73 74 31 | uired fo r guest1
00000060 2e 0d 0a 50 41 53 53 20 41 41 41 41 0d 0a 32 33 | ...PASS AAAA..23
00000070 30 2d 0d 0a 53 59 53 54 0d 0a 46 45 41 54 0d 0a | 0-..SYST ..FEAT..
00000080 50 57 44 0d 0a 20 20 20 20 57 65 6c 63 6f 6d 65 | PWD.. Welcome
00000090 20 74 6f 20 42 6f 78 30 30 31 21 0d 0a 32 33 30 | to Box0 01!..230
000000a0 20 55 73 65 72 20 67 75 65 73 74 31 20 6c 6f 67 | User gu est1 log
000000b0 67 65 64 20 69 6e 2e 0d 0a 32 31 35 20 55 4e 49 | ged in.. .215 UNI
000000c0 58 20 54 79 70 65 3a 20 4c 38 20 56 65 72 73 69 | X Type: L8 Versi
000000d0 6f 6e 3a 20 74 6e 66 74 70 64 20 32 30 30 35 30 | on: tnft pd 20050
000000e0 31 30 31 0d 0a 32 31 31 2d 46 65 61 74 75 72 65 | 101..211 -Feature
000000f0 73 20 73 75 70 70 6f 72 74 65 64 0d 0a 20 4d 44 | s suppor ted.. MD
00000100 54 4d 0d 0a 20 4d 4c 53 54 20 54 79 70 65 2a 3b | TM.. MLS T Type*;
00000110 53 69 7a 65 2a 3b 4d 6f 64 69 66 79 2a 3b 50 65 | Size*;Mo dify*;Pe
00000120 72 6d 2a 3b 55 6e 69 71 75 65 2a 3b 0d 0a 20 52 | rm*;Uniq ue*;.. R
00000130 45 53 54 20 53 54 52 45 41 4d 0d 0a 20 53 49 5a | EST STRE AM.. SIZ
00000140 45 0d 0a 20 54 56 46 53 0d 0a 32 31 31 20 45 6e | E.. TVFS ..211 En
00000150 64 0d 0a 32 35 37 20 22 2f 68 6f 6d 65 2f 67 75 | d..257 " /home/gu
00000160 65 73 74 31 22 20 69 73 20 74 68 65 20 63 75 72 | est1" is the cur
00000170 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e 0d | rent dir ectory..
00000180 0a | .

The red data is send from server to client; the green from client to server. We can see here that user guest1 is logging in with password AAAA. It is time to write a module that can extract this information from the logfile.
20
Programming -> Libraries
Perl Artistic License
Algorithm::Huffman is a Perl extension that implements the Huffman algorithm.

SYNOPSIS

use Algorithm::Huffman;

my %char_counting = map {$_ => int rand(100)} (a .. z, A .. Z);
# or better the real counting for your characters
# as the huffman algorithm doesnt work good with random data :-))

my $huff = Algorithm::Huffman->new(%char_counting);
my $encode_hash = $huff->encode_hash;
my $decode_hash = $huff->decode_hash;

my $encode_of_hello = $huff->encode_bitstring("Hello");

print "Look at the encoding bitstring of Hello: $encode_of_hellon";
print "The decoding of $encode_of_hello is ", $huff->decode_bitstring($encode_of_hello), "";

This modules implements the huffman algorithm. The aim is to create a good coding scheme for a given list of different characters (or even strings) and their occurence numbers.

ALGORITHM

Please have a look to a good data compression book for a detailed view. However, the algorithm is like every good algorithm very easy.

Assume we have a heap (keys are the characters/strings; values are their occurencies). In each step of the algorithm, the two rarest characters are looked at. Both get a suffix (one "0", the other "1"). They are joined together and will occur from that time as one "element" in the heap with their summed occurencies. The joining creates a tree growing on while the heap is reducing.
Lets take an example. Given are the characters and occurencies.

a (15) b(7) c(6) d(6) e(5)

In the first step e and d are the rarest characters, so we create this new heap and tree structure:

a(15) de(11) b(7) c(6)

de
/
"0"/ "1"
d e

Next Step:

a(15) bc(13) de(11)

de bc
/ /
"0"/ "1" "0"/ "1"
d e b c

Next Step:

a(15) bcde(24)

bcde
/
"0"/ "1"
/
de bc
/ /
"0"/ "1" "0"/ "1"
d e b c

Next Step unifies the rest:

Huffman-Table
/
"0"/ "1"
/
/
bcde a
/
"0"/ "1"
/
de bc
/ /
"0"/ "1" "0"/ "1"
d e b c

Finally this encoding table would be created:

a 1
b 010
c 011
d 000
e 001

Please note, that there is no rule defining what element in the tree is ordered to left or to right. So its also possible to get e.g. the coding scheme:

a 0
b 100
c 101
d 110
e 111

My Software
You have not saved any software. Click "Save" next to each software to save it to your software basket
Related Information
Sponsored Links
TOP POPULAR DOWNLOAD