Friday, August 24, 2012

How To Restore MySQL database

Restore a database

In this example, to restore the sugarcrm database, execute mysql with < as shown below. When you are restoring the dumpfilename.sql on a remote database, make sure to create the sugarcrm database before you can perform the restore.
# mysql -u root -ptmppassword

mysql> create database sugarcrm;
Query OK, 1 row affected (0.02 sec)

# mysql -u root -ptmppassword sugarcrm < /tmp/sugarcrm.sql

# mysql -u root -p[root_password] [database_name] < dumpfilename.sql

2. Backup a local database and restore to remote server using single command:

This is a sleek option, if you want to keep a read-only database on the remote-server, which is a copy of the master database on local-server. The example below will backup the sugarcrm database on the local-server and restore it as sugarcrm1 database on the remote-server. Please note that you should first create the sugarcrm1 database on the remote-server before executing the following command.

Backup and Restore MySQL Database Using mysqldump

Backup a single database:

This example takes a backup of sugarcrm database and dumps the output to sugarcrm.sql

# mysqldump -u root -ptmppassword sugarcrm > sugarcrm.sql

# mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
 
The sugarcrm.sql will contain drop table, create table and insert command for all the tables in the sugarcrm database. Following is a partial output of sugarcrm.sql, showing the dump information of accounts_contacts table:



Backup multiple databases:

If you want to backup multiple databases, first identify the databases that you want to backup using the show databases as shown below:
# mysql -u root -ptmppassword

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bugs               |
| mysql              |
| sugarcr            |
+--------------------+
4 rows in set (0.00 sec)
For example, if you want to take backup of both sugarcrm and bugs database, execute the mysqldump as shown below:


# mysqldump -u root -ptmppassword --databases bugs sugarcrm > bugs_sugarcrm.sql
Verify the bugs_sugarcrm.sql dumpfile contains both the database backup.

# grep -i "Current database:" /tmp/bugs_sugarcrm.sql
-- Current Database: `mysql`
-- Current Database: `sugarcrm`

3. Backup all the databases:

The following example takes a backup of  all the database of the MySQL instance.
# mysqldump -u root -ptmppassword --all-databases > /tmp/all-database.sql


Backup a specific table:

In this example, we backup only the accounts_contacts table from sugarcrm database.
# mysqldump -u root -ptmppassword sugarcrm accounts_contacts \
      > /tmp/sugarcrm_accounts_contacts.sql
 

4. Different mysqldump group options:

  • –opt is a group option, which is same as –add-drop-table, –add-locks, –create-options, –quick, –extended-insert, –lock-tables, –set-charset, and –disable-keys. opt is enabled by default, disable with –skip-opt.
  • –compact is a group option, which gives less verbose output (useful for debugging). Disables structure comments and header/footer constructs. Enables options –skip-add-drop-table –no-set-names –skip-disable-keys –skip-add-locks


Wednesday, August 15, 2012

Oracle Database Control

Oracle Database Control
When Oracle starts it goes through 3 stages which are
Startup (nomount) Oracle first reads the parameter file (pfile or spfile) and obtains all memory parameters in order to configure the SGA, memory allocatations take place and the necessary background processes are started. Remember the Memory allocation with the background processes is called the INSTANCE.
Mount At this stage Oracle opens and reads the controlfile and obtains the location of the datafiles but it does not open them.
Open The last stage is to open the datafiles (also called the DATABASE) for reading and writing, Oracle makes sure that the datafiles are consistent.
Startup
Nomount Mode startup nomount;

Note: The INSTANCE is born, memory allocated and background processes started but the controlfile has not been read and the datafiles are not open for reading or writing
Mount Mode startup mount;
Note: The controlfile has been read at this stage but the datafiles are not open for reading or writing.
Read Only Mode startup open read only
Note: the database files are open for reading only
Open Mode startup
startup open
Note: database files will be open for reading and writing, this is the normal mode of operation.
Force mode startup force;
Note: this performs a 'shutdown abort' followed by a 'startup'
Restricted Mode startup restrict;
# To change into restricted mode
alter system enable restricted session;
alter system disable restricted session;

Note: Users with restricted access can access the system only (normally DBA's)
Alter operation mode # You must be in mount mode to alter the database, if not then shutdown the database first
alter database open;
alter database open read only;
alter database restricted;
Display operation mode # Display instance state in nomount mode v$database is unavailable.
# MODES:
#   started (nomount mode)
#   mounted (mount mode)
#   open (open mode)

select status from v$instance;
# Obtain the database operation mode, the database must be in mounted or open mode to access v$database
# MODES:
#   mounted (mount mode)
#   read write (open mode)
#   read only (open mode)

select open_mode from v$database;
# Is restricted session enabled
select logins from v$instance;
Parameter File
As stated in the Oracle structure web page, Oracle can access two types of parameter file pfile (text based) or spfile (binary based), you can specify which parameter you want to start the database with
pfile startup pfile='c:\oracle\pfiles\initD10.ora'
spfile # There is no option to specify a spfile but you can use the pfile option and in the pfile # point to the spfile
Display the parameter file in use select name, value from v$parameter where name = 'spfile';
show parameter spfile;
For more information on Oracle's parameter file see Oracle Structure.
Shutdown
Oracle has a number of options to shutdown the database, there are four to choose from
Normal No new connections
Will wait until all users have disconnected
Note: you could be waiting a long time, not normally used
Transactional No new connections or transactions
Once all transactions have finished disconnect the client
Note: again you could be waiting a long time
Immediate No new connections
Uncommitted transactins will be rolled back then disconnect the client

Note: normal shutdown command used
Abort No new connections
Disconnect client immediately (no rolling back any transactions)
Note: last resort shutdown command, a automatic recovery will take place when you start the database
Shutdown Commands
Shutdown commands shutdown normal;
shutdown transactional;
shutdown immediate;
shutdown abort;

startup force;
Note: 'startup force' will run a 'shutdown abort' immediately followed by a 'startup'
Display if shutdown is in progress select shutdown_pending from v$instance;
Restricted and Quiesce Modes
When you have problems on an Oracle database sometimes you would like the database fully running but allow only privilege users access (normally DBA's), Oracle offers two modes
Restricted In this mode any users without the restricted privilege will not be allowed to connect to the database, however any users that are still connected will be allowed to use any DML/DDL.
Note: make sure all users are disconnected (need to kill their sessions) before changing the mode into restricted.
Quiesce In this mode all users transactions are allowed to complete, once completed the user is unable to perform any DML/DDL commands (their sessions appear to freeze) but remain connected to the database. Users will be allowed to login but the session will again appear to freeze.
DBA's can perform any DML/DDL as normal, their sessions are unaffected, this also applies to users with the restricted session privilege.
Useful Commands
Restricted alter system enable restricted session;
alter system disable restricted session;

select logins from v$instance;
Grant restricted privilege grant restricted session to <user>;
Quiesce alter system quiesce restricted;
alter system unquiesce;

select active_state from v$instance;
Basic Database Information
To obtain general database information the following can be used
Display Parameter file select name, value from v$parameter where name = 'spfile';
show parameter spfile;
Parameter settings select name, value, isdefault, isses_modifiable, issys_modifiable from v$parameter;
Instance state select status from v$instance;
Database operation mode select open_mode from v$database;
Shutdown pending select shutdown_pending from v$instance;
Restricted Session Mode select logins from v$instance;
Quiesce Mode select active_state from v$instance;
Oracle version select * from v$version;
select * from product_component_version;
Log Mode select log_mode from v$database;
archive log list;
License info select * from v$license;
Database options select * from v$option;
Memory Info show sga
select * from v$sga;
select * from v$sgainfo;
select * from v$ssgastat;
Display controlfiles select * from v$controlfile;
select * from v$controlfile_record_section;
Display Oracle processes select * from v$bgprocesses;
Log file locations # display background (alert.log destination), core and user destinations
show parameter dump_dest;
 
 

Thursday, July 26, 2012

Check Tablespace in Oracle

select df.tablespace_name "Tablespace",
totalusedspace "Used MB",
(df.totalspace - tu.totalusedspace) "Free MB",
df.totalspace "Total MB",
round(100 * ( (df.totalspace - tu.totalusedspace)/ df.totalspace))
"Pct. Free"
from
(select tablespace_name,
round(sum(bytes) / 1048576) TotalSpace
from dba_data_files
group by tablespace_name) df,
(select round(sum(bytes)/(1024*1024)) totalusedspace, tablespace_name
from dba_segments
group by tablespace_name) tu
where df.tablespace_name = tu.tablespace_name ;

Wednesday, July 25, 2012

Oracle Database 11g Release 1 (11.1) Installation

Download Software

Download the following software.

Unpack Files

Unzip the files.
unzip linux_11gR1_database.zip
You should now have a single directory called "database" containing installation files.

Hosts File

The "/etc/hosts" file must contain a fully qualified name for the server.
    

Set Kernel Parameters

Oracle recommend the following minimum parameter settings.
kernel.shmall = 2097152
kernel.shmmax = 2147483648 # Smallest of -> (Half the size of the physical memory) or (4GB - 1 byte)
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536 # 512 * PROCESSES
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=262144
The current values can be tested using the following command.
/sbin/sysctl -a | grep 
For Enterprise Linux 4.5, the following lines should be appended to the "/etc/sysctl.conf" file.
kernel.shmall = 2097152
kernel.shmmax = 2147483648 # Smallest of -> (Half the size of the physical memory) or (4GB - 1 byte)
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=262144
For Enterprise Linux 5.0, the following lines should be appended to the "/etc/sysctl.conf" file.
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=262144
Run the following command to change the current kernel parameters.
/sbin/sysctl -p
Add the following lines to the /etc/security/limits.conf file.
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536
Add the following line to the "/etc/pam.d/login" file, if it does not already exist.
session    required     pam_limits.so
Disable secure linux by editing the "/etc/selinux/config" file, making sure the SELINUX flag is set as follows.
SELINUX=disabled
Alternatively, this alteration can be done using the GUI tool (Applications > System Settings > Security Level). Click on the SELinux tab and disable the feature. If SELinux is disabled after installation, the server will need a reboot for the change to take effect.

Setup

Install the following packages for Enterprise Linux 4.5.
# From Enterprise Linux 4 Disk 1
cd /media/cdrom/Enterprise/RPMS
rpm -Uvh binutils-2.*
rpm -Uvh elfutils-libelf-0.*
rpm -Uvh glibc-2.*
rpm -Uvh glibc-common-2.*
rpm -Uvh libgcc-3.*
rpm -Uvh libstdc++-3.*
rpm -Uvh compat-libstdc++-33*
rpm -Uvh make-3.*
rpm -Uvh unixODBC-2.*
cd /
eject

# From Enterprise Linux 4 Disk 2
cd /media/cdrom/Enterprise/RPMS
rpm -Uvh glibc-devel-2.*
rpm -Uvh gcc-3.*
rpm -Uvh gcc-c++-3.*
rpm -Uvh libstdc++-devel-3.*
cd /
eject

# From Enterprise Linux 4 Disk 3
cd /media/cdrom/Enterprise/RPMS
rpm -Uvh libaio-0.*
rpm -Uvh libaio-devel-0.*
rpm -Uvh sysstat-5.*
cd /
eject

# From Enterprise Linux 4 Disk 4
cd /media/cdrom/Enterprise/RPMS
rpm -Uvh elfutils-libelf-devel-0.*
rpm -Uvh unixODBC-devel-2.*
cd /
eject
Install the following packages for Enterprise Linux 5.0.
# From Enterprise Linux 5 Disk 1
cd /media/cdrom/Server
rpm -Uvh binutils-2.*
rpm -Uvh elfutils-libelf-0.*
rpm -Uvh glibc-2.*
rpm -Uvh glibc-common-2.*
rpm -Uvh libaio-0.*
rpm -Uvh libgcc-4.*
rpm -Uvh libstdc++-4.*
rpm -Uvh make-3.*
cd /
eject

# From Enterprise Linux 5 Disk 2
cd /media/cdrom/Server
rpm -Uvh compat-libstdc++-33*
rpm -Uvh elfutils-libelf-devel-0.*
rpm -Uvh glibc-devel-2.*
rpm -Uvh gcc-4.*
rpm -Uvh gcc-c++-4.*
rpm -Uvh libaio-devel-0.*
rpm -Uvh libstdc++-devel-4.*
rpm -Uvh unixODBC-2.*
rpm -Uvh unixODBC-devel-2.*
cd /
eject

# From Enterprise Linux 5 Disk 3
cd /media/cdrom/Server
rpm -Uvh sysstat-7.*
cd /
eject
Create the new groups and users.
groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin

useradd -g oinstall -G dba,oper,asmadmin oracle
passwd oracle
Note. We are not going to use the "asmadmin" group, since this installation will not use ASM.
Create the directories in which the Oracle software will be installed.
mkdir -p /u01/app/oracle/product/11.1.0/db_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01
Login as root and issue the following command.
xhost +
Login as the oracle user and add the following lines at the end of the ".bash_profile" file.
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=oel45.localdomain; export ORACLE_HOSTNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1; export ORACLE_HOME
ORACLE_SID=DB11G; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi

Installation

Log into the oracle user. If you are using X emulation then set the DISPLAY environmental variable.
DISPLAY=:0.0; export DISPLAY
Start the Oracle Universal Installer (OUI) by issuing the following command in the database directory.
./runInstaller

Sunday, September 25, 2011

Application Components

Application components are the essential building blocks of an Android application. Each component is a different point through which the system can enter your application. Not all components are actual entry points for the user and some depend on each other, but each one exists as its own entity and plays a specific role—each one is a unique building block that helps define your application's overall behavior.

There are four different types of application components. Each type serves a distinct purpose and has a distinct lifecycle that defines how the component is created and destroyed.

Here are the four types of application components:

Activities
An activity represents a single screen with a user interface. For example, an email application might have one activity that shows a list of new emails, another activity to compose an email, and another activity for reading emails. Although the activities work together to form a cohesive user experience in the email application, each one is independent of the others. As such, a different application can start any one of these activities (if the email application allows it). For example, a camera application can start the activity in the email application that composes new mail, in order for the user to share a picture.

An activity is implemented as a subclass of Activity and you can learn more about it in the Activities developer guide.
Services
A service is a component that runs in the background to perform long-running operations or to perform work for remote processes. A service does not provide a user interface. For example, a service might play music in the background while the user is in a different application, or it might fetch data over the network without blocking user interaction with an activity. Another component, such as an activity, can start the service and let it run or bind to it in order to interact with it.

A service is implemented as a subclass of Service and you can learn more about it in the Services developer guide.
Content providers
A content provider manages a shared set of application data. You can store the data in the file system, an SQLite database, on the web, or any other persistent storage location your application can access. Through the content provider, other applications can query or even modify the data (if the content provider allows it). For example, the Android system provides a content provider that manages the user's contact information. As such, any application with the proper permissions can query part of the content provider (such as ContactsContract.Data) to read and write information about a particular person.

Content providers are also useful for reading and writing data that is private to your application and not shared. For example, the Note Pad sample application uses a content provider to save notes.

A content provider is implemented as a subclass of ContentProvider and must implement a standard set of APIs that enable other applications to perform transactions. For more information, see the Content Providers developer guide.
Broadcast receivers
A broadcast receiver is a component that responds to system-wide broadcast announcements. Many broadcasts originate from the system—for example, a broadcast announcing that the screen has turned off, the battery is low, or a picture was captured. Applications can also initiate broadcasts—for example, to let other applications know that some data has been downloaded to the device and is available for them to use. Although broadcast receivers don't display a user interface, they may create a status bar notification to alert the user when a broadcast event occurs. More commonly, though, a broadcast receiver is just a "gateway" to other components and is intended to do a very minimal amount of work. For instance, it might initiate a service to perform some work based on the event.

A broadcast receiver is implemented as a subclass of BroadcastReceiver and each broadcast is delivered as an Intent object. For more information, see the BroadcastReceiver class.

A unique aspect of the Android system design is that any application can start another application’s component. For example, if you want the user to capture a photo with the device camera, there's probably another application that does that and your application can use it, instead of developing an activity to capture a photo yourself. You don't need to incorporate or even link to the code from the camera application. Instead, you can simply start the activity in the camera application that captures a photo. When complete, the photo is even returned to your application so you can use it. To the user, it seems as if the camera is actually a part of your application.

When the system starts a component, it starts the process for that application (if it's not already running) and instantiates the classes needed for the component. For example, if your application starts the activity in the camera application that captures a photo, that activity runs in the process that belongs to the camera application, not in your application's process. Therefore, unlike applications on most other systems, Android applications don't have a single entry point (there's no main() function, for example).

Because the system runs each application in a separate process with file permissions that restrict access to other applications, your application cannot directly activate a component from another application. The Android system, however, can. So, to activate a component in another application, you must deliver a message to the system that specifies your intent to start a particular component. The system then activates the component for you.

Application Fundamentals

Android applications are written in the Java programming language. The Android SDK tools compile the code—along with any data and resource files—into an Android package, an archive file with an .apk suffix. All the code in a single .apk file is considered to be one application and is the file that Android-powered devices use to install the application.

Once installed on a device, each Android application lives in its own security sandbox:

The Android operating system is a multi-user Linux system in which each application is a different user.
By default, the system assigns each application a unique Linux user ID (the ID is used only by the system and is unknown to the application). The system sets permissions for all the files in an application so that only the user ID assigned to that application can access them.
Each process has its own virtual machine (VM), so an application's code runs in isolation from other applications.
By default, every application runs in its own Linux process. Android starts the process when any of the application's components need to be executed, then shuts down the process when it's no longer needed or when the system must recover memory for other applications.


In this way, the Android system implements the principle of least privilege. That is, each application, by default, has access only to the components that it requires to do its work and no more. This creates a very secure environment in which an application cannot access parts of the system for which it is not given permission.

However, there are ways for an application to share data with other applications and for an application to access system services:

It's possible to arrange for two applications to share the same Linux user ID, in which case they are able to access each other's files. To conserve system resources, applications with the same user ID can also arrange to run in the same Linux process and share the same VM (the applications must also be signed with the same certificate).
An application can request permission to access device data such as the user's contacts, SMS messages, the mountable storage (SD card), camera, Bluetooth, and more. All application permissions must be granted by the user at install time.

That covers the basics regarding how an Android application exists within the system. The rest of this document introduces you to:

The core framework components that define your application.
The manifest file in which you declare components and required device features for your application.
Resources that are separate from the application code and allow your application to gracefully optimize its behavior for a variety of device configurations.

Features Of Android

Application framework enabling reuse and replacement of components
Dalvik virtual machine optimized for mobile devices
Integrated browser based on the open source WebKit engine
Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
SQLite for structured data storage
Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
GSM Telephony (hardware dependent)
Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
Camera, GPS, compass, and accelerometer (hardware dependent)
Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE

What is Android

Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.

Friday, May 27, 2011

what are init 0 init 1 init 2 init 3 init 4 init 5 init 6 init s init S init metc

The best solution to know about these init levels is to understand the " man init " command output on Unix.
There are basically 8 runlevels in unix. I will briefly tell some thing about the different init levels and their use.
Run Level: At any given time, the system is in one of eight possible run levels. A run level is a software configuration under which only a selected group of processes exists. Processes spawned by init for each of these run levels are defined in /etc/inittab. init can be in one of eight run levels, 0-6 and S or s (S and s are identical). The run level changes when a privileged user runs /sbin/init.


init 0 : Shutdown (goes thru the /etc/rc0.d/* scripts then halts)
init 1 : Single user mode or emergency mode means no network no multitasking is present in this mode only root has access in this runlevel
init 2 : No network but multitasking support is present .
init 3 : Network is present multitasking is present but with out GUI .
init 4 : It is similar to runlevel 3; It is reserved for other purposes in research.
init 5 : Network is present multitasking and GUI is present with sound etc.
init 6 : This runlevel is defined to system restart.
init s : Tells the init command to enter the maintenance mode. When the
system enters maintenance mode from another run level, only the system console
is used as the terminal.
init S : Same as init s.
init m : Same as init s and init S.
init M : Same as init s or init S or init m.


We can take it from above that 4 options(S,s,M,m) are synonymous.

Sunday, December 26, 2010

Cntlm Authentication Proxy

About Cntlm proxy

Cntlm is an NTLM / NTLM Session Response / NTLMv2 authenticating HTTP proxy intended to help you break free from the chains of Microsoft proprietary world. You can use a free OS and honor our noble idea, but you can't hide. Once you're behind those cold steel bars of a corporate proxy server requiring NTLM authentication, you're done with. The same even applies to 3rd party Windows applications, which don't support NTLM natively.

Here comes Cntlm. It stands between your applications and the corporate proxy, adding NTLM authentication on-the-fly. You can specify several "parent" proxies and Cntlm will try one after another until one works. All auth'd connections are cached and reused to achieve high efficiency. Just point your apps proxy settings at Cntlm, fill in cntlm.conf (cntlm.ini) and you're ready to do. This is useful on Windows, but essential for non-Microsoft OS's.

Cntlm integrates TCP/IP port forwarding (HTTP tunneling), SOCKS5 proxy mode, standalone proxy allowing you to browse intranet as well as Internet and to access corporate web servers with NTLM protection. There are many advanced features like NTLMv2 support, password protection, password hashing, completely mutliplatform code (running on just about every architecture and OS out there) and so much more. Cntlm eats up so little resources it can be used on embedded platforms as well - it's written in plain C without any external dependencies.

Cntlm has been tested against various ISA servers, WinGate, NetCache, Squid and Tinyproxy with and without NTLM auth.

Memory management audits and profiling are inherent part of the development process. Each change in the code is audited using Valgrind, which acts as a virtual CPU and checks behaviour of each instruction of the application being profiled. Using this marvelous tool, you can uncloak any imbalance in malloc/free calls (double free's or leaks), operations with uninitialized memory, access outside of properly allocated memory and oh so much more.

News

[2010-04-20] Testing version 0.91rc5 available. There are still some planned features missing, but this version is mainly a fixpack release. Whoever is using these RC's, please do upgrade for your own sake. Cheers.

[2010-03-30] Testing version 0.91rc2 available. Features remaining to be implemented: optional limit of max auth tries (account protection); in case of failed auth return proxy error, but translate NTLM to basic; run-time switching between normal mode (work) and full direct mode (home). Apart from fixes, this testing version includes:

  • Allow empty domain, username, password
  • Updated NTLM autodetection mode

[2010-03-20] A new testing version has been released in DEB, RPM and Windows packages. I'm sure it's ready for prime time, but I'll wait a bit for it to get tested before releasing official stable packages. Apart from a huge rewrite, Cntlm has some news for you:

  • Standalone proxy. Cntlm has been reworked in a way that allows you either to use it like before, with a parent proxy, or as an independent proxy altogether (think Squid, Tinyproxy, etc). The most common configuration, however, will probably be a combination of the two. Use the new NoProxy option to specify which URL's should go through the parent proxy and which URL's should Cntlm process directly, via direct ("intranet") connections. This allows you to set Cntlm permanently in your applications and use it for all links within your company and on the Internet.
  • WWW authentication. Another important feature is support for NTLM web server authentication. This for example means you'll be able to access even those protected sites you had to use Windows + IE for in the past. This is probably the most useful outcome of the rewrite. Before then, I was occassionally forced to use a virtualized IE to access some parts of the intranet. Not any more. Everything works transparently on my Linux notebook with plain Firefox.
  • Windows installer. The new version sports a brand new automated installer based on InnoSetup software - Start Menu integration, uninstaller and on-line resource links are among the most noticeable new features. Starting and stopping is much easier now for the regular guy.
  • Source compilation. Regular people just don't need to know the particularities of all the different packaging systems out there. Users can use simple "make deb", "make rpm" or "make win" to build a complete installation package for their system.
  • GFI WebMonitor / ISA scanner Plugin. Updated scanner module to work with the latest version.

[2010-02-26] SVN repository has been updated with a collection of fixes and other changes request by people during the last year. I'm sorry for being a bit slow on the uptake, but I'm very busy. Everything I knew about has been implemented. I won't make a new release today, though. I hope you people test the new code in the meantime and let me know if you find any bugs! :)

[2007-11-02] New version 0.35 is here. The code was refactored to facilitate future support of multiple profiles and other planned extensions. I have added one symbol definition in the Makefile to make newer socket API constants visible on FreeBSD, which is now supported. Cntlm has finally made it into Debian, which is great! This means other deb-based distributions can use ready-made official packages. On Ubuntu, we're confirmed running since 0.35 (older versions have dash(1) incompatible init script). There was a bug preventing Cntlm from working on some proxies, when they didn't require any authentication; this was reported for the Wingate proxy, which is now confirmed working. There was a sinister typo in the tunneling routine and it made tunnels kinda unstable under certain circumstances (e.g. SSH over HTTPS). It's fixed now, so you should update. The new big shiny feature is:

  • Builtin SOCKS5 proxy server, which allows almost any TCP/IP application to use a proxy and not be aware of it. You can use tsocks(1) wrapper for this, just make it connect to Cntlm's SOCKS port. DNS and IPv4 based connections are supported. If you don't have external DNS access, your application will have to resolve via SOCKS remotely or use IP addresses. The former can be forced on some applications (Firefox has network.proxy.socks_remote_dns configuration key accessible via "about:config" URI). This allows proxy- and auth-unaware apps to work, but the policy of your proxy is still the limiting factor here, there's no magical proxy-hacking going on. You will be granted connects only to CONNECT-able (or "SSL") ports. The SOCKS5 proxy can be setup open to everyone or to require authentication. Several accounts (username:password combinations) can be defined.

[2007-08-26] New version 0.34(.1) is finally here. Since I was busy at work, I took my time to spit it out, but I've implemented most of the stuff I could think of. :) There are also three useful bug fixes and many new features. The major ones being:

  • Implementation of the the rest of NTLM authentications, tested against both Windows/ISA and Samba/Squid: full featured NTLMv2 with its new strong password hash and NTLM2 Session Response (NTLMv1.5) offering better network security than NTLM/LM in non-NTLMv2 environments. With these two new algorithms, Cntlm is THE ultimate auth proxy :) supporting every NTLM flavour invented. If you use Cntlm's autodetection, your password is probably better protected than it would be with native Windows. :o)
  • Magic NTLM autodetection mode. It tries all algorithms with known working presets and tells you how to setup Cntlm to use best available security (you can copy&paste the result).
  • Configuration using password hashes in place of the actual password (plus hash-and-print mode -H)
  • Interactive password prompt to eliminate any form of password storage
  • Plaintext password (if used) is hashed at startup and its traces are removed from the process memory to prevent dumping it (useful in untrusted environment)
  • Complete control over NTLM auth (preset+manual Flags option, allowing exotic settings for weird/old proxies)
  • Trans-isa-scan: a plugin for automatic and transparent handling of GFI WebMonitor for ISA Server, which breaks all automatic downloaders and system updates - in the true spirit of Microsoft-like ignorance, it returns a dynamic HTML page showing downloading and scanning progress instead of the requested file. When a button appears, it has to be clicked to get the actual file from ISA's cache. Cntlm can now do this transparently for you, depending on the size of the download or application's User-Agent header. This allows e.g. Apt, Wget or Yum to do their job, while having the scanner page displayed in the browser.
  • Workstation name autodetection
  • "Access denied" page for ACL rejects
  • Detailed debug logging with NTLM dumps, tracefile creation
  • Easier compilation, autoconf-like feature test macros
  • RedHat and SuSE rpm packaging support
  • Windows installer doesn't overwrite old INI file

[2007-07-17] New version 0.33 switches automatically and temporarily to NTLM-to-basic if config file credentials fail. The most changes happened around packaging, though. The debian directory has been moved outside of the distribution package. This was suggested by David Watson, a Debian maintainer, who was so kind as to offer sponsorship for Cntlm. In other words, Cntlm is going to be included as part of the Debian GNU/Linux, my favourite distro since 1998. :) This however changes what you have to do to build debs from sources. Follow the new "Debian sources" link in the "Downloads" section. There's a small HOWTO as well. Cntlm has also been ported to the Windows platform, where it runs as a service. See Win32 downloads below and the included README.

[2007-07-12] New version 0.32 adds support for multiple users per one Cntlm instance, which has been requested on the feature suggestion tracker (and implemented the following day:). This feature is called NTLM-to-basic and allows passing credentials using the standard "basic" proxy authentication scheme (e.g. via browser's popup dialog or proxy settings in other applications). This implementation detects failed authentication attempts and makes it possible for you to keep trying (until you get it right or give up) by informing the client (browser) about the actual result. Other proxies don't do any verification, always accept your first try and therefore the client remembers it; if you made a mistake, you'd get "access denied" page for any URL and would have to restart your browser to try again.

[2007-07-09] New version 0.31.1 adds full chunked encoding support, including extensions and trailers.

[2007-07-02] The first version 0.31 fixes ftp:// access, which might not work on some exotic ISAs and adds support for the chunked transfer-encoding. Chunked support is a major benefit over other NTLM proxies. If you use HTTP/1.1 clients (all modern browsers in the default configuration) and your proxy doesn't automatically decode it behind the scenes (e.g. new ISA server I have to use ATM), you are unlikey to be able to browse most of the dynamic sites (timeouts, partially rendered pages, etc). There are some other compatibility fixes for new misbehaving ISA servers.

WARNING: please understand that any unannounced versions on the FTP are for internal/development purposes only, usually beta testing. Until properly advertised on the official homepage, http://cntlm.sf.net, and uploaded to sourceforge.net archives, it is to be considered highly unstable and ought to be replaced by the final build when available.

Configuration hints

After installation, you have to locate the configuration file. The default for Linux packages is /etc/cntlm.conf, for locally compiled source distribution ("./configure; make; make install") it's /usr/local/etc/cntlm.conf and for Windows installer it's %PROGRAMFILES%\Cntlm\cntlm.ini (usually X:\Program Files\Cntlm\cntlm.ini, where X is your system drive).

When you have found it, fire up your favourite editor (not a word processor) and open the file. First a few rules, though - lines beginning with a hash, #, are comments: completely ignored. There is no required formatting and option names are case insensitive. Option values are parsed literally: a quote means a quote and is taken as part of the string, so do not quote, escape, etc. Anyway, you need to set these core options:

  • Username - your domain/proxy account name
  • Domain - the actual domain name
  • Workstation - NetBIOS name of your workstation; Cntlm tries to autodetect it, but you might want to set it explicitly should dialect detection fail (see below)
  • Proxy - IP address (or ping-able hostname) of your proxy; if you use several alternative proxies or know of backup ones, use this option multiple times; if one stops working, Cntlm will move on to the next
  • Listen - local port number which Cntlm should bind to; the default is OK, but remember you can't have more than one application per port; you can use netstat to list used up ports (lines with LISTEN)

Next, we need to find out which NTLM dialect your proxy understands. It's a jungle out there and it can be quite challenging (i.e. boooring) to find a working NTLM setup - thank Bill. Good thing Cntlm has this magic switch to do it for you - thank me. :) Save the configuration and run the following command; when asked, enter your proxy access password:

$ cntlm -I -M http://test.com
Config profile 1/11... OK (HTTP code: 200)
Config profile 2/11... OK (HTTP code: 200)
Config profile 3/11... OK (HTTP code: 200)
Config profile 4/11... OK (HTTP code: 200)
Config profile 5/11... OK (HTTP code: 200)
Config profile 6/11... Credentials rejected
Config profile 7/11... Credentials rejected
Config profile 8/11... OK (HTTP code: 200)
Config profile 9/11... OK (HTTP code: 200)
Config profile 10/11... OK (HTTP code: 200)
Config profile 11/11... OK (HTTP code: 200)
----------------------------[ Profile 0 ]------
Auth NTLMv2
PassNTLMv2 4AC6525378DF8C69CF6B6234532943AC
------------------------------------------------
You see, NTLMv2 - I told you to use it, now it's official. :) BTW, here you can see all tests running - it's just for demonstration purposes. Normal version finishes when it finds the first (i.e. most secure) working setup.

When you get your options (might be more than just Auth and Pass* here), remove all previous password settings and paste the profile into the configuration file and save it. (Re)start Cntlm and it should work. To use it in your applications, replace the old proxy settings with "localhost", port same as you chose for Listen.

This was just a simple 101 lesson to help you kick-start the proxy. You should still RTFM. ;)

Troubleshooting

If you have problems, you can see what's going on in the system logger (Linux: daemon.log, messages or syslog in /var/log/; on Windows using Control Panels - Administration - Logging) or run Cntlm from the command line with -v -f (debug mode). If that doesn't give you a hint, look at our wiki for troubleshooting tips and also check out the Help Forum and the Bug Tracker to see if somebody else didn't have a similar problem. When you are out of your wits and none of this helped, read the last chapter of our wiki and see how to request support.

System requirements

Cntlm has no dependencies, but you'll obviously need compiler runtime libraries and, depending on your distribution, package build tools. Cntlm uses ISO C99 and POSIX.1-2001 interface (i.e. SUSv3 / UNIX 03), but will compile with older C/POSIX standards as well (incl. other threading libraries). Compilation should succeed on any UNIX-like system (both little and big endian; GCC and IBM XL C/C++ compilers being officially supported) having sane libc and POSIX threads. You don't need any bloated interpreter like Python or Perl and fight modules or libraries - one binary does it all. Compiles and runs on Linux, FreeBSD, MacOS X, AIX, Solaris and Windows (other platforms probably too, just not confirmed yet).

Roadmap

At the beginning, Cntlm aimed for HTTP/1.0 and 1.1 compliance and addressed the problems users had with other proxies (poor response time; CPU/RAM hogging; breaking HTTP, Subversion, instant messaging, tunneling; failed requests; timeouts; you know what I mean if you had to use them). Now that this stuff has been taken care of, I'll move on to implementing extra features like multiple profiles and multiplatform GUI for easy switching of preconfigured profiles depending on your location. Feel free to suggest new features yourself.

SSH login without password

Your aim

You want to use Linux and OpenSSH to automize your tasks. Therefore you need an automatic login from host A / user a to Host B / user b. You don't want to enter any passwords, because you want to call ssh from a within a shell script.

How to do it

First log in on A as user a and generate a pair of authentication keys. Do not enter a passphrase:

a@A:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa):
Created directory '/home/a/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/id_rsa.pub.
The key fingerprint is:
3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A

Now use ssh to create a directory ~/.ssh as user b on B. (The directory may already exist, which is fine):

a@A:~> ssh b@B mkdir -p .ssh
b@B's password:

Finally append a's new public key to b@B:.ssh/authorized_keys and enter b's password one last time:

a@A:~> cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B's password:

From now on you can log into B as b from A as a without password:

a@A:~> ssh b@B hostname
B

A note from one of our readers: Depending on your version of SSH you might also have to do the following changes:

  • Put the public key in .ssh/authorized_keys2
  • Change the permissions of .ssh to 700
  • Change the permissions of .ssh/authorized_keys2 to 640

Saturday, October 23, 2010

SHAREPOINT



Capabilities & Benefits What is SharePoint?
​ Microsoft SharePoint 2010 makes it easier for people to work together. Using SharePoint 2010, your people can set up Web sites to share information with others, manage documents from start to finish, and publish reports to help everyone make better decisions. Learn more about SharePoint Capabilities
Why Use SharePoint?
The capabilities of SharePoint 2010 work together to help your company quickly respond to changing business needs. Using SharePoint 2010, your people can share ideas and expertise, create custom solutions for specific needs, and find the right business information to make better decisions. For IT, SharePoint 2010 helps you cut training and maintenance costs, save time and effort, and focus on higher business priorities.​
Benefits for: IT Professionals l Developers l End Users
Microsoft Solutions for Internet Sites
​ Discover how to expand your reach, increase customer retention, and drive revenue. Use solutions powered by Microsoft SharePoint Server for Internet Sites and Microsoft FAST Search Server for Internet Sites. Learn more about SharePoint Solutions for Internet Sites




Wednesday, May 19, 2010

Oracle

What is Oracle Database 10g Express Edition?



Oracle Database 10g Express Edition (Oracle Database XE) is a free, downloadable version of the world's most capable relational database.

Oracle Database XE is easy to install and easy to manage. With Oracle Database XE, you use the Database Home Page, an intuitive browser-based interface, to administer the database; create tables, views, and other schema objects; import, export, and view table data; run queries and SQL scripts; and generate reports.

Oracle Database XE includes Oracle HTML DB 2.1, a declarative, graphical development environment for creating database-centric Web applications. In addition to HTML DB 2.1, you can use popular Oracle and third-party languages and tools to develop your Oracle Database XE applications.

Thursday, January 21, 2010

Advantages of Using Oracle

Oracle has many advantages and features that makes it popular and thereby makes it as the world's largest enterprise software company. Oracle comes with new versions with new features implemented in new version while the features of earlier versions still being maintained. One important aspect is Oracle databases tend to be backwards compatible. Also when Oracle releases a new version, their documentation contains a list of all the features new to that version thus makes it user friendly for one to learn thenew features.

Oracle takes a lead role because of some of the following reasons:

Oracle is used for almost all large application and one of the main applications in which oracle takes its major presence is banking. In fact ten of the world’s top 10 banks run Oracle applications this is because oracle offers a powerful combination of technology and comprehensive, pre-integrated business applications, including key functionality built specifically for banks.

Some similar databases like Sybase, SQL-Server one have facilities for using loops, conditions, arrays and so on in a program and also facilities like cursors and temp tables but all this would be used in a convoluted fashion which are very slow and resource consuming operations. The operations are not implemented as inOracle which is efficient enough.

Also with the features available in oracle with the earlier versions in market the oracle company keeps upgrading and releasing new products into market, new versions releases which serves better than the earlier versions and thus the performance is improved much in later versions and thereby retaining the market growth and thus proves greater satisfaction to the customers using this technology. Thus the advantage of a higher version is that one would have more features and better capabilities.

For instance oracle 8i version has many new features which helped users namely like with oracle 8i one could run Java in the database, had features like new features on partitioning to support large database and so on. With the next version 9i oracle had these facilities maintained and had more new facilities added to it namely like new features added to help the DBA to handle change database configuration and so on.

Oracle is a database that responds very well with excellent performance in demanding environments. Oracle is a major database which along with its added features passes the ACID test, which is important in insuring the integrity of data. This is very important because data is the heart of any system in organization. A reliable and adequate database system has the following properties:


Atomicity:
That is Results of a transaction's execution are either all committed or all rolled back.


Consistency:
The database is transformed from one valid state to another valid state. Illegal transactions aren't allowed and, if an integrity constraint can't be satisfied then the transaction is rolled back.


Isolation:
The results of a transaction are invisible to other transactions until the transaction is complete thus increasing the security on data.

Durability:
Once committed (completed), the results of a transaction are permanent and survive future system and media failures and thus ensuring maintenance and protection of data.


All the above are well maintained by Oracle database.

The latest version oracle 10g has many features and one new feature is the introduction of recycle bin. This option when enabled could be used by users just like Windows recycle bin or Mac Trash. Dropped tables go "into" the recycle bin, and can be restored from the recycle bin.

One of the main advantage of oracle over other databases is in its recent version oracle has the concept of Flashback technology. That is we all know that data is the heart of any application or organization and thus this requires careful maintenance. But sometimes application outage can occur and mostly DBA claim the reasons for this as hardware failure and apart from this the reason would be human errors like accidental deletion of valuable data, deleting the wrong data, or dropping the wrong table. So it is very essential to take care of such situation and this is done in oracle's latest technology called flash introduced in its latest version. By Flash technology it helps in recovery by working just on the changed data. Thus Flashback provides an


  • Efficient recovery from human errors
  • Faster database recovery
  • Helps in simplifying the management and administration processes

and so on.



යුනිකෝඩ් වනාහි …


යුනිකෝඩ්

පරිගණක පද්ධතියෙන් ස්වායක්තව,
පරිගණක වැඩසටහනෙන් ස්වායක්තව,
හා භාෂාවෙන් ස්වායක්තව
සෑම අක්‍ෂරයකටම ඊටම අනන්‍ය වූ අංකයක් ලබා දේ.

පරිගණක මූලිකව අංක මගින් එහි කටයුතු සිදු කරයි. ඒවා වචන හා අක්‍ෂරවලට නොයෙකුත් අංක නියම කොට ඒ අංක ගබඩා කිරීම මගින් වචන හා අකුරුද ගබඩා කර ගනී. යුනිකෝඩ් ක්‍රමය සොයා ගැනීමට පෙර මෙසේ අකුරුවලට අංක නියම කිරීමට කේතන පද්ධති ඉතා විශාල ගණනක් පැවතුනි. උදාහරණයක් ලෙස යුරෝපීය සංගමයට පමණක් ඔවුන්ගේ භාෂා කේතන ක්‍රම රාශියක් අවශ්‍ය විය. එසේම එක් භාෂාවක් වන ඉංග්‍රීසි භාෂාව සඳහා එහි සියලු අක්‍ෂර, විරාම ලකුණු සහ තාක්‍ෂණික සංකේත සඳහා එක් කේතන ක්‍රමයක් නොසෑහුනි. තවද මෙම කේනත ක්‍රම එකිනෙක හා ගැටුනි. එනම් වෙනස් කේතන ක්‍රම 2කට එකම අංකය වෙනස් අක්‍ෂර දෙකකට හෝ වෙනස් අංක දෙකක් එකම අක්‍ෂරයකට යෙදිය හැක. වෙනස් කේතන ක්‍රම භාවිතයේදී ඕනෑම පරිගණකයක් (විශේෂයෙන්ම සර්වර් පරිගණක) වෙනස් කේතන ක්‍රම කීපයක් සමග ක්‍රියා කළ යුතු වේ; එහෙයින් දත්ත වෙනස් කේතන ක්‍රම හෝ පරිගණක පද්ධති හරහා ගමන් ගැනීමේදී කේතන ක්‍රමවල වෙනස හේතුවෙන් එමදත්ත විනාශ වීමට හෝ අපවිත්‍ර වීමට ඉඩ ඇත.

යුනිකෝඩ් ක්‍රමය මේ සියල්ල දැන් වෙනස් ‍කරමින් පවතී!


යුනිකෝඩ් ක්‍රමය පරිගණක පද්ධතියෙන් ස්වායක්තව, පරිගණක වැඩසටහනෙන් ස්වායක්තව හා භාෂාවෙන් ස්වායක්තව සෑම අක්‍ෂරකයකටම ඊටම අනන්‍ය වූ අංකයක් ලබා දේ. තොරතුරු හා සන්නිවේදන තාක්‍ෂණ කර්මාන්තයේ පතාක යෝදයින් වන Apple, HP, IBM , Just System, Microsoft, Oracle, SAP, Sun, Sybase, Unisys සහ තවත් බොහෝ අය විසින් යුනිකෝඩ් ප්‍රමිතිය යොදා ගෙන ඇත. තවද නවීන ප්‍රමිතීන් වන XML, Java, ECMAScript (Java Script), LDAP, CORBA 3.0, WML ආදිය ක්‍රියාත්මක කිරීම සඳහා යුනිකෝඩ් අවශ්‍ය වේ. එසේම ISO/IEC 10646 ප්‍රමිතිය හෙවත් විශ්ව අක්‍ෂර පද්ධතිය සඳහා වූ ප්‍රමිතිය ක්‍රියාත්මක කිරීමට යුනිකෝඩ් ක්‍රමය නිල ක්‍රමවේදය ලෙස යොදා ගැනේ බොහෝ පරිගණක මෙහෙයුම් පද්ධතිවල සියලුම නවීන වෙබ් බ්‍රවුසර සහ වෙනත් පරිගණක නිපැයුම් රාශියක් යුනිකෝඩ් ක්‍රමය හා අනුකූල වේ. යුනිකෝඩ් ප්‍රමිතිය භාවිතය සහ එයට සහාය වන මෙවලම් ඇතිවීම මෑතකදී ඇති වූ ගෝලීය මෘදුකාංග තාක්‍ෂණ ප්‍රවණතා අතුරින් වඩාත්ම කැපී පෙනෙන විකාශනයකි. පැරණි පද්ධතිවලින් උරුම වූ සම්ප්‍රදායික අක්‍ෂර පද්ධති වෙනුවට සේවාදායක - සේවාලාභී (client – server) පරිගණක පද්ධති සඳහා හෝ බහු-ස්ථර (multi-tiered) යෙදුම් හෝ වෙබ් අඩවි සඳහා යුනිකෝඩ් අක්‍ෂර ක්‍රමය යොදා ගැනීම සැලකිය යුතු මුල්‍ය ඉතිරි කිරීමක් උදා කරයි. තනි මෘදුකාංග නිපැයුමක් හෝ තනි වෙබ් අඩවියක් ප්‍රතිනිර්මාණයෙන් තොරව බහු පරිගණක පද්ධති (වේදිකා) බහු භාෂා සහ රටවල් හරහා ඉලක්ක කොට ගලා යාමේ හැකියාව යුනිකෝඩ් විසින් ලබා දේ. එය එකිනෙකට වෙනස් වූ බොහෝ පරිගණක පද්ධති හරහා දත්ත විනාශ වීමකින් හෝ අපවිත්‍ර වීමකින් තොර ව දත්ත ප්‍රවාහනය කිරීමේ හැකියාව සපයයි. මෙය http://www.unicode.org/standard/WhatIsUnicode.html වෙබ් පිටුවේ දැක්වෙන අන්තර්ගතයෙහි පරිවර්තනයකි

Friday, December 4, 2009

Recent Developments

The past few years have seen many new developments in the computer industry. As the years have progressed, computers have become smaller and smaller. Laptops and handheld computers have slowly evolved. Weighing anywhere between 4 ounces and 6 pounds, these laptops and handhelds are the very essence of the computer world today. Have fun exploring some of the new innovations found throughout the world today!


DVD

Although not an extremely new invention, the DVD player has just been coming into popularity recently as more and more movies are coming out in DVD and as more and more of the general public are buying DVD players. Also, it is just recently that DVD players have been being built into computers.

DVD, which stands for Digital Video Disc (or Digital Versatile Disc) is similar to a CD, but it is much faster and bigger (not in physical size, but in storage space and capacity). It can play movies just like the movies seen at the showcase cinemas and at the movie theaters. The movies are played with sharp images and great sounds! The DVD has a realistic picture and it plays on a 16 X 9 Enhanced Cinemascope Panoramic Deluxe Ana orphic Wide screen. In English, this means that the DVD player can play movies on a 16 X 9 screen. This creates an effect similar to the one found at the movie theater! Furthermore, the DVD player can hold computer data. It strives to create a single digital format for all home entertainment systems and computers.

The concept of a DVD player was first developed in 1995. The present-day DVD format is formed as a result of a combination of two DVD proposals. Sony, Phillips, as well as other companies made the first, while the second was made by Toshiba, Matsushita, Time Warner, and various others. With the emergence of the new DVD format, it is now officially decided that the DVD was developed by ten companies: Hitachi, UVC, Matsushita, Mitsubishi, Philips, Pioneer, Sony, Thomson, Time Warner, and Toshiba. Now, DVDs are not only played on the television screen, but they are also played on computers. Computers built by companies like Apple, IBM, Compaq, and Dell have built-in DVD players while companies such as Intel and Microsoft provide DVD playback hardware and software!


Pentium 4 Processor

Microprocessors (also known as the central processing unit or CPU) are the very heart of computers. It is up to the microprocessors to interpret and execute instructions and to perform operations. Throughout the years, scientists have found ways to compress more and more information onto the small silicon chip we call a microprocessor. The Pentium 4, developed by Intel, is a new super-fast processor. It is the successor to Intel's other famous processors, the Pentium 1, 2, and 3. Intel's Pentium microprocessors are found in nearly all personal computers! The Pentium 4 is a new microprocessor with amazing capabilities! It can operate at speeds of up to 1.80 GHz, which is extremely fast! It can also convert MP3s extremely fast, and with an enhanced multimedia support, it can additionally encode videos at high speeds. The Pentium 4 allows for realistic 3D affects and smooth animation in computer games. With time, the Pentium 4 will replace the Pentium 1s, 2s, and 3s in personal computers. Computers will be operating at amazing heights!


Intel Wireless Series

The company, Intel, has developed a series of wireless peripherals for computers. All of these allow for easy and comfortable computer usage.

Base Station

The Base Station is at the very heart of the Intel Wireless Series. All the wireless peripherals connect to the computer via the Base Station. This product allows for the connection of up to eight other wireless products to a personal computer and to the Internet.

Wireless Keypad

The Wireless Keypad is a keypad that does not need to be connected to the computer via wires! It can operate anywhere within a 3 meter radius of the Base Station, and it even includes a folding palm rest! The Wireless Keyboard is designed for as much comfort to the user as possible. It allows for more movement and can be placed at a comfortable location. This keyboard also includes special multimedia keys and it connects to the computer via a PS/2 or USB connection.

Wireless Mouse

The Wireless Mouse, like the Wireless Keyboard is specifically designed for comfort and mobility. It can be positioned anywhere within a 3 meter radius of the Base Station. This maximizes the comfort of the user. In addition, the mouse contains a scrolling wheel and three programmable buttons.

Game Pad

The Game Pad consists of controllers that are specially designed for various computer games. Like the mouse and keyboard, it, too, works anywhere within a 3 meter radius of the Base Station and is designed for comfort. Its sleek design and customizable controls allow for the greatest comfort for its users and its target precision and character profile sharing make it easy to use. In addition, the Game Pad allows for multiple players!


Call-Waiting Modem

Have you ever been annoyed by the fact that whenever you go online, you can't receive phone calls? Well, Actiontec Electronics, Inc. designed a call-waiting feature on modems. This feature screens incoming phone calls while you are online. You can either choose to ignore the call if you feel that it is un-important, or you can choose to pick up the phone and talk with whoever is calling. Choosing to pick up the phone will not drop the Internet connection! Previously, there had been a feature on modems that would put the modem on hold. This means that all Internet activity would be paused while you talk with a friend, your parents, your boss, etc. However, with the new call-waiting feature, the Internet connection would not be interrupted at all!


Mac OS X

The Mac OS X is an easy-to-use operating system developed by Apple, Inc. It is fast and has an easy navigation system. It has an interface that includes a custom toolbar, which gives users many options and choices. This allows the user to choose what best suits his or her taste! The Mac OS X also has a UNIX-based foundation called Darwin. Using Darwin, the memory architecture is protected. This means that separate applications have separate areas in the memory, and thus if one application gets messed up, the computer does not need to restart in order to work properly. This makes it easy for multi-tasking.


iTunes, iMovie 2, and iDVD

Apple, Inc. recently designed the new software, iTunes, iMovie 2, and iDVD. These maximize computer experiences by allowing for all sorts of easy-to-use functions and operations. They are the very essence of computers today!

iTunes

iTunes is a software used to operate with all sorts of MP3 functions. It can import music from CDs to MP3s and it can also create libraries of MP3s. It can be used to burn CDs with music specifically designed by the user, and it can also be used to browse radio stations. Using iTunes, the user can listen to radio stations broadcasting anything from country to pop to jazz to classical! Most importantly, iTunes plays all the music smoothly and with a great effect!

iMovies

iMovies is a software used to make desktop movies. Users can make their own movies, and then they can add special visual and sound effects. Once finished, they can share their awesome creations with friends and family!

iDVD

iDVD allows users to make their own DVDs. The DVDs created are not some poor-quality products, but actually have many of the same features as Hollywood created DVDs! The general public can now create their very own high-quality movies!


iMac

The iMac is a user-friendly Macintosh developed by Apple, Inc. It is appealing to the general public because of its availability in spiffy colors, such as Indigo, Flower Power, Blue Dalmatian, and Graphite. In addition, it has some of Apple's software, iTunes and iMovies 2, installed. It also uses Apple's famous operating system, Mac OS X and the Apple Pro Mouse and Apple Pro Keyboard. The Apple Pro Keyboard has 108 keys, some of which include special keys that when pressed, can adjust the audio volume, can mute the speakers, and can eject CDs from the drive. In addition, the keyboard contains a flip-out foot that allows for it to be placed at a comfortable angle. The iMac also comes with a built-in 56K modem.


iBook

The iBook is one of Apple, Inc.'s newest laptop computers! Weighing only 4.9 pounds, it is two pounds lighter than any of Apple's previous laptops! The iBook is also smaller than previous laptops. It is only 11.2 inches wide, 9.1 inches deep, and 1.35 inches thick. The iBook is equipped with three of Apple's new software, iTunes, iMovie, and iTools, and because of this, it brings new dimensions to MP3 players, to CDs, and to digital cameras. The iBook is also extremely powerful with its 500 MHz Power PC processor and with its 256 K on-chip cache. In addition, this laptop has a 1024 X 768 pixel resolution and is on the market for $1,299.


Power Mac G4

The Power Mac G4, designed by Apple, Inc. is one of Apple's most powerful computers. It can operate at speeds of up to 733 MHz and it has an improved system architecture. This laptop has a new 133 MHz system bus that can move data at extremely high speeds-1 gigabyte per second, to be exact. Finally, it has a built-in Gigabit Ethernet. This is used to transport large files across the LAN, or local area network, quickly. Local area networks are groups of personal computers that are connected together so they can share files. With the Gigabit Ethernet, these shares files can be transported from one PC to another quickly.


Powerbook G4

The Powerbook G4 is a small, compact, lightweight laptop. It is only 1 in. thick and weighs a mere 5.3 pounds. It is the first notebook computer to be made of 99.5% commercially pure titanium. It has a built-in DVD player and can operate at speeds of up to 500 MHz. It has 30 gigabytes of RAM and built-in microphone and stereo sound output. In addition, its 15.2 wide screen and 1152 X 768 pixel resolution optimizes video, graphics, and multimedia applications.


IBM ThinkPad

The IBM ThinkPad is an extremely light and portable laptops. It clocks in at only 3.1 pounds and is only 1 inch thick. It is wireless and allows for cable-free Internet connectivity! This laptop computer demonstrates the modern ideology of light and portable personal computers.


Handheld Computers

With more and more information being compressed into one small silicon chip, the only place for computers to go is down-that is, down in size; down in size from the large room-sized computers of the early 1900s to the smaller desktop computers to the portable laptop computers. However, there are still even smaller computers being developed today! These tiny computers are known as handheld computers. They are pocket-sized and can fit in your palm! Most of these tiny products contain many of the same features as desktop computers, but they do not contain all of them. They can be used to check e-mail and to write documents. Some good examples of these computers are the Dell Visor Deluxe, which contain 8 MB RAM for storage and which have great organizational skills, and the IBM Work Pad, which have an advanced monochrome display and 8 MB of storage.


Fourth Generation Computers (1971-Present)

The 4th generation computers are marked by the usage of integrated circuits and microprocessors. As the years passed, computers became smaller and smaller, and their prices became lower and lower. Millions of components could be placed onto a single silicon chip. Computers became more efficient and more reliable, and they could perform more and more operations. They began to catch the eye of the general public, and soon more sophisticated software and equipment were designed. Networks became commonplace, and the whole world was connected by the Internet and by the World Wide Web.


1971: Intel 4004

The Intel 4004 is a 4-bit microprocessor. Microprocessors are integrated circuits that contain thousands and millions of transistors. The Intel 4004 is the essence of a general-purpose computer. It performed many input and output operations and was also able to read and respond to instructions stored in its memory. The microprocessor was able to group all the components of a computer, including the CPU, or central processing unit, the memory, and the input and output controls on a single chip. The Intel 4004 was first used on March 2, 1972 in the Pioneer 10 space probe.


1972: Intel 8008

In November of 1972, Intel came out with a new 8-bit processor, known as the Intel 8008.


1974: Intel 8080

The Intel 8080 is a re-engineered version of the Intel 8008. It had a larger and more versatile instruction set.


1975: Altair 8800

The Altair 8800 is often called the first personal computer. It was developed by Micro Instrumentation Telemetry Systems (MITS), a small company centered in Albuquerque, New Mexico. The Altair 8800 was sold as an electronic hobbyist kit for only $397. The Altair computers were of blue box-shaped machines with dimensions of 17 inches by 18 inches by 7 inches. They were very simple, and so in complex that they did not even have a keyboard or display. These computers did not even have enough memory to perform any useful tasks. The Altair 8800 used an Intel 8080 microprocessor and had switches on the front panel for input and rows of neon light bulbs for the output. These lights were known as light-emitting diodes, or LEDs. It is hard to believe, but it is the in-complexity of the Altair 8800 that helped to establish the personal computer industry. Because of its limitations, the Altair allowed for other companies to refine the computer and do develop more software.


One such example of software developed for the Altair 8800 is the development of a version of the programming language, BASIC, for this computer. BASIC was a popular programming language used by many minicomputers and other machines. It was simple and easy to develop. The BASIC programming language designed for the Altair was developed by Bill Gates and Paul Allen, the cofounders of the software giant, Microsoft.

Microsoft was not the only company to develop programs and software for the Altair. In fact, more and more companies began entering the software business by developing software and peripherals for the Altair 8800. The personal computer soon became a business machine.


1976: CP/M

Developed in 1976 by Gary Kildall of the company Digital Research, CP/M was a popular operating system that made it possible for one version of a program to run on a variety of computers.


1976: Apple II

Apple Computer was started by Stephen G. Wozniak and Steven P. Jobs. In 1976, the company introduced the Apple II to the personal computer market. The Apple II was appealing to consumers, because of its abundance of appealing software and with its well-written manuals. The computer also was able to be plugged into a standard household outlet.


1979: VisiCalc

VisiCalc, standing for Visible Calculator, is the first personal computer financial analysis tool. This software was developed by Harvard business graduate Dan Bricklin and programmer Bob Frankston. VisiCalc was able to give immediate responses to "what if" questions. It turned personal computers like the Apple II into business machines and was an overnight success.


1981: Osborne I

Invented by Adam Osborne, the Osborne I was the world's first portable computer. By today's standards, it wouldn't exactly be portable because of the fact that it weighed a whopping 24 pounds. The computer had a 5-inch display, 64 kilobytes of memory, a modem, and two 5-¼ floppy disk drives. It sold for $1,795.

1981: DN100

The DN100 was the first workstation. It was developed by Apollo Computers, and it had much more power than some of the minicomputers around at the time. It was also available for a comparatively low price.


1983: Lisa

The Lisa, invented by Apple Computer, was the first PC to use graphical user interface. It had one MB of RAM and had a 12 inch black and white monitor. The Lisa had two 5-¼ floppy disk drives, 5 MB of profile hard drive, and it used a Motorola 680000 microprocessor. Unfortunately, Lisa was never successful because of its high price and slowness.


1983: Microsoft Word

The powerful word processor used in nearly every household today, Microsoft Word, makes its debut as "Multi-Tool Word" in 1983. Microsoft Word can be used for all sorts of word-processing tasks and for creating all sorts of text documents. It is now widely used and widely distributed. Two years after introducing Word to the general public, the company, Microsoft, then introduces its now-famous Microsoft Windows.


1983: Compaq Computer Corporation

In 1983, Compaq Computer Corporation built a portable computer, a clone of the IBM PC. Looking like a sewing machine, Compaq's computer weighed 38 pounds (13 kg). Amazingly, this was considered lightweight at the time! The Compaq personal computer was compatible with the IBM personal computer, and could use software designed for IBM computers. It was an immediate success, bringing in $110 million in its first year of sales.


1984: Apple Macintosh

The Apple Macintosh was designed by Apple Computer and had many of the same features as the Lisa computer, also designed by Apple. The main goal of the Macintosh was to create a computer that would accommodate as many as Lisa's features as possible at a much lower price. It slimmed down on Lisa's high-level languages, and it also used the minimum number of chips and circuit boards needed to operate efficiently. It had graphical user interface and a user-friendly design. The computer contained software in which users could point and click with a mouse. For example, there was MacPaint and MacWrite. The Apple Macintosh used a 32-bit Motorola 68000 central processing unit and had a 9 inch black and white screen. It was first sold for $2,500.

Courtesy of the Computer Museum of America
1985: Microsoft Windows Operating System

Microsoft makes its debut with its first windows operating system. The new Apple Macintosh had shadowed the personal computers, and now the Microsoft Windows Operating System gives PC compatibles the same capacities as the Macintosh. In future years, Microsoft continued to improve its operating system, and the company soon became the dominating software company for PC compatibles.


1985: C++ Programming Language

C++ is a general-purpose programming language that was derived from the C programming language. It had many of the C's capabilities, such as the ability to efficiently deal with objects such as bits, bytes, and words and the ability to efficiently implement user-defined type.


1989: SimCity

In 1989, the popular computer game, SimCity, was developed by Will Wright and Jeff Braun. SimCity was a video game that used simulators. The player starts with a plot of land, and he or she must build houses, buildings, roads, and other objects to ensure the survival of the city. The player must provide health care, education, and public services for the inhabitants of his or her city, and periodically, challenges presented themselves in the forms of natural disasters or monster attacks. The player was forced to make decisions that would best benefit their city.


1990: Windows 3.0

In 1990, the software giant Microsoft released a new version of Windows. Windows 3.0 was the first successful version of the software. It was user-friendly and it sported a new interface with new designs that allowed personal computers to support many images and other graphical applications. Windows 3.0 included programs such as Microsoft Word and Microsoft Excel, and it also allowed for many of these programs to be run simultaneously. It ran on an Intel 80386 microprocessor.


1996: Deep Blue

In 1996, IBM invents a supercomputer named "Deep Blue." Able to compute more than 100 million chess positions per second, Deep Blue challenged the reigning world chess champion Garry Kasparov to a chess match. Kasparov wins the match, with 3 wins, 2 ties, and 1 loss. This was the first time ever that a computer has beaten a reigning world chess champion. It brings up the question: will computers soon surpass humans in chess playing and in other aspects of intelligence?