text:
GENtle/Databases

The GENtle database management dialog is where sequences are stored and retrieved. DNA and amino acid sequences, primers, alignments, and projects all go to databases, which can be local (for one computer only) or shared (used by the whole work group, institute, etc.).

Management
The "Management" tab can be reached through the File menu, the Tools/Manage database menu, the Ctrl-O and Ctrl-S keys ("open" and "save", respectively), or the appropriate buttons in the toolbar. The tab consists of two or three parts:

Filter
The filter section allows to filter the database entries so the list(s) below show only the matching entries.

The filter text box limits the shown sequences to those whose name (or description or sequence, depending on the checkboxes) contain that text. Multiple search words are separated by a space (" ") and work as a logical AND. Thus, entering "pgex igf" in the filter text box shows only those sequences whose name (or description) contain both the word "pgex" and "igf". The search in not case-sensitive, so searching for "igf" or "IGF" will make no difference.

The checkboxes on the right limit the display to any combination of DNA, protein (amino acid sequences), and primers. If non of these is selected, all types of entries are shown, including alignments. As already described, search for text can be extended beyond the sequence name to description and the sequence itself through two other checkboxes, where description search is enabled as default.

Lists
One or two lists are shown, depending on the appropriate checkbox above the left list. The database(s) to search/display can be selected via the drop-down box(es). One list with full width is good for an overview of a single database, whereas two lists are needed for moving and copying entries between databases; also, a search will be run on both databases simultaneously.

Entries will be sorted alphabetically. Every entry has a small icon associated with its type. There are icons for DNA, amino acid sequences, primers, and alignments. There is also a project icon, but these will only be shown when opening/saving a project.

A single entry can be selected by clicking with the left mouse button. When opening a file, a double click or pressing RETURN on a selected entry will open it. Multiple entries can be selected by dragging a rectangle with the mouse, or by holding down the SHIFT and/or CTRL keys. A multiple selection can be opened via RETURN.

Grabbing selected entries with the left mouse button and dragging them into the other list will move these entries to that database. To copy these entries, hold down the CTRL key when releasing the left mouse button over the target list.

Selected entries can be opened, renamed, and deleted via their context menu.

Save
If you save an entry to a database, there will be an additional line below the lists. It consists of a drop-down box with the database to save the entry to, and a text box for the name. The name of the database is remembered if you originally opened that entry from a database, otherwise the standard database is the default.

Saving an entry to a database where an entry with that name already exists will lead to the following:
 * If the sequence of the entry in the database is exactly the same as the sequence of the entry you're trying to save, a message box will ask you if you really want to overwrite that entry.
 * If the sequence of the entry in the database differs from the sequence of the entry you're trying to save, a message box will tell you that this action was prevented. This will avoid accidental overwriting of an entry with a different sequence. If you are very certain you want to replace that entry, you will have to delete the entry in the database manually via the context menu, as described above.

Databases
Currently, GENtle supports sqlite and MySQL databases, both of them freely available. Each has different advantages and disadvantages, though both are integrated seamlessly into GENtle. Once set up, all functions are available on all databases, no matter the type.

The "Databases" tab keeps a list of all the databases that can be accessed. New databases can be created, and existing can be added to or removed from that list. The exception is the local database, which is essential for the functioning of GENtle and therefore can not be removed. Removal of a database will not delete the database itself, only the entry in the list.

One of the databases in the list is the default database. The default database can be set by selecting its entry in the list, then clicking the As Default button. The default database can carry shared enzyme groups.

Sqlite
Sqlite is already integrated in GENtle, so no separate installation or setup of any kind is required. A sqlite database consists of a single file with the ending ".db". For each GENtle installation, a database ("local.db") is automatically created. New sqlite databases can be created, or existing ones added to GENtle, on the "Databases" tab in the dialog. To take such a database with you (e.g., for use at home or on a laptop), just copy the ".db" file. While sqlite databases are easy to set up and maintain, sharing them across a network tends to be slow, depending on the size of the database.

MySQL
MySQL is a professional client/server database system that will reliably store and serve millions of entries. It is ideal for shared databases, as even a huge number of stored sequences will not slow it down significantly, even across a network. Hovever, there are some steps required to use MySQL databases with GENtle: Once the MySQL setup is complete, MySQL databases can be created (by one) and added to all the GENtle clients that should have access.
 * A "server" computer on your network, that is, a computer that is running most of the time, and preferably is not used for direct work. If the server is not running, or disconnected from the network, no one will be able to access the MySQL database and the sequences stored in it!
 * The MySQL server software (4.1 works fine, other versions will likely do as well), which available for free here.
 * Someone to configure the MySQL server (not as complicated as it sounds)

title: GENtle/Databases


text: Template:GENtle/Main bar

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Template:GENtle/Main bar


text:
Talk:Introduction to Philosophy/What is Political Philosophy

I just went through and wrote a few things out. I'll try to go back soon and create subsections and leave the top page as a broader definition of political philosophy. I'll also expand the top two paragraphs to a better definition. I obviously left so much out of this. 10:47, 7 October 2004 s.rice

 * Hey, cool! Thanks for doing this.  I was beginning to think I was the only philosopher on the planet.  I'm writing the logic bit.    I'll leave the political philosophy to you, as I know very little about it. --publunch 11:39, 9 Nov 2004 (UTC)

 * BTW, we need someone to write a few paragraphs about John Locke's political philosophy on the wikipedia John Locke page. When I tried editing the John Locke page, I found quite quickly that my knowledge of the man and his work is rather patchy.--publunch 11:49, 15 Nov 2004 (UTC)

Wow... I haven't looked at this page in over seven years. I think that I need to come back and contribute. Unfortunately, not much work has been done on it at all? Is Wikibooks just floundering as a project? Or is it just certain topics, like this one? As this is an introductory page, I'd like to divide it up into "moments" of political philosophy; perhaps it could be first divided up into something like "eras" of political philosophy which would start — ostensibly — with Plato; then move to the Romans (perhaps including the stoics — I'm not sure about this); then I'm not sure about who to put in before Machiavelli and Hobbes...; after that, obviously, there is a strong tradition in political philosophy itself, but, my next question is: where do we draw the line in political philosophy and different disciplines? While Marx, Weber, and Durkheim are political philosophers, they are usually considered sociologists (see, here my categories don't actually hold up), one could read Descartes as a political philosopher, but, that would imply looking at the political implicates of the "cogito," which are many and varied. Obviously, Kant could come into play as could Nietzsche. Perhaps, the better question that I should pose is: how do we categorize this book? Or, at least, this introduction? There are a few other chapters (do we call them chapters?) in this Wikibook, but how should we organize it? Chronologically? Thematically (i.e. utilitarians, deontologists, social contract theorists, ...). The way that MediaWiki is coded requires some structure in order to render things readable, so, any advice? 8:02, 14 April 2011 s.rice

Question, The concept of human right is political idea, but in real sense there no human right and universe, comment.
Question, The concept of human right is political idea, but in real sense there no human right and universe, comment.


text:
GENtle/Tools and Dialogs

There are several tools and dialogs within GENtle:
 * Ligation
 * Options
 * Databases (Open/save/manage)
 * Import
 * Enter sequence
 * Sequence editor
 * Restriction Assistant
 * Projects
 * Edit primer dialog
 * PCR troubleshoot dialog
 * Proteolysis assistant
 * Printing
 * Enzyme management
 * Sequencing Primers
 * Silent Mutagenesis
 * Automatic annotation
 * Alignment Appearance Dialog
 * Find dialog
 * Sequencing Assistant Dialog

title: GENtle/Tools and Dialogs


text: Template:GENtle/TaD bar

title: Template:GENtle/TaD bar


text:
GENtle/Sequence editor

The sequence editor holds the key to several properties of a sequence. It consists of several tabs, depending on the type of sequence, which can be DNA or amino acid.

Properties
Here, the title and description of the sequence can be altered. As for feature descriptions, the sequence description will make http references clickable.

For DNA sequences, sticky ends can be entered.

Features
This tab shows a list of all features of the sequence. Features can be added, edited, and deleted. Most of the settings should be self-explanatory.
 * The setting reading frame is only available when the type is set to "CDS" ("coding sequence").
 * A leading sequence is read 5'→3'; leading unchecked, 3'→5'
 * Edit feature will invoke an additional "Edit feature" dialog

Edit feature
The list box below contains original data from GenBank format import.
 * Fill color is the color of the feature; it will invoke a color choice dialog
 * Type in sequence display determines how that feature is drawn in the sequence map
 * Use offset sets the numbering for the first amino acid of the feature; useful if the feature marks a part of a protein

Restriction enzymes
When editing a DNA sequence, two tabs with settings for restriction enzymes are available. The first one is identical to the enzyme management dialog. The second one is identical to the global enzyme settings tab, but contains the settings for this sequence alone. By default, its options are disabled, and the global options are used. By activation the options here, global settings are overridden.

Proteases
This tab holds a list of available proteases. Potential cleavage sites for selected (checked) proteases are shown in the sequence ( not in the ../DNA map/).

New proteases can be added similar to the following examples:
 * Example : "Thermolysin"
 * Sequence for this protease : "!DE|AFILMV"
 * Explanation: "Not D or E", "cut", "then A, F, I, L, M, or V"
 * Example: Proline-endopeptidase
 * Sequence for this protease : "HKR,P|!P"
 * Explanation : "H, K, or R", "then P", "cut", "then not P"

title: GENtle/Sequence editor


text: Template:LPI Linux Certification/LPIC102


text:
LPI Linux Certification/LPIC1 Exam 102/Detailed Objectives

The following material is directly from the Linux Professional Institute at Objectives 102 reprinted with their permission. Note that their inclusion in this book in no way signifies endorsement on the part of LPI.

This is a required exam for LPI certification Level 1. It covers basic system administration skills that are common across all distributions of Linux.

Each objective is assigned a weighting value. The weights range roughly from 1 to 10, and indicate the relative importance of each objective. Objectives with higher weights will be covered in the exam with more questions.

1.105.1 Manage/Query kernel and kernel modules at runtime

 * Weight: 4

Description: ''Candidates should be able to manage and/or query a kernel and kernel loadable modules. This objective includes using command-line utilities to get information about the currently running kernel and kernel modules. It also includes manually loading and unloading modules as appropriate. It also includes being able to determine when modules can be unloaded and what parameters a module accepts. Candidates should be able to configure the system to load modules by names other than their file name.''

Key files, terms, and utilities include:
 * /lib/modules/kernel-version/modules.dep
 * /etc/modules.conf & /etc/conf.modules
 * depmod
 * insmod
 * lsmod
 * rmmod
 * modinfo
 * modprobe
 * uname

1.105.2 Reconfigure, build, and install a custom kernel and kernel modules

 * Weight: 3

Description: ''Candidates should be able to customize, build, and install a kernel and kernel loadable modules from source This objective includes customizing the current kernel configuration, building a new kernel, and building kernel modules as appropriate. It also includes installing the new kernel as well as any modules, and ensuring that the boot manager can locate the new kernel and associated files (generally located under /boot, see objective 1.102.2 for more details about boot manager configuration).''

Key files, terms, and utilities include: /usr/src/linux/* /usr/src/linux/.config /lib/modules/kernel-version/* /boot/* make make targets: config, menuconfig, xconfig, oldconfig, modules, install, modules_install, depmod

1.106.1 Boot the system

 * Weight: 3

Description: ''Candidates should be able to guide the system through the booting process. This includes giving commands to the boot loader and giving options to the kernel at boot time, and checking the events in the log files.''

Key files, terms, and utilities include: /var/log/messages /etc/conf.modules or /etc/modules.conf dmesg LILO GRUB

1.106.2 Change runlevels and shutdown or reboot system

 * Weight: 3

Description: ''Candidates should be able to manage the runlevel of the system. This objective includes changing to single user mode, shutdown or rebooting the system. Candidates should be able to alert users before switching runlevel, and properly terminate processes. This objective also includes setting the default runlevel.''

Key files, terms, and utilities include: /etc/inittab shutdown init

1.107.2 Manage printers and print queues

 * Weight: 1

Description: ''Candidates should be able to manage print queues and user print jobs. This objective includes monitoring print server and user print queues and troubleshooting general printing problems.''

Key files, terms, and utilities include: /etc/printcap lpc lpq lprm lp

1.107.3 Print files

 * Weight:1

Description: ''Candidates should be able to manage print queues and manipulate print jobs. This objective includes adding and removing jobs from configured printer queues and converting text files to postscript for printing.''

Key files, terms, and utilities include: lpr lpq mpage

1.107.4 Install and configure local and remote printers

 * Weight: 1

Description: ''Candidate should be able to install a printer daemon, install and configure a print filter (e.g.: apsfilter, magicfilter). This objective includes making local and remote printers accessible for a Linux system, including postscript, non-postscript, and Samba printers.''

Key files, terms, and utilities include: /etc/printcap /etc/apsfilter/* /var/lib/apsfilter/*/ /etc/magicfilter/*/ /var/spool/lpd/*/ lpd

1.108.1 Use and manage local system documentation

 * Weight: 4

Description: ''Candidates should be able to use and administer the man facility and the material in /usr/share/doc/. This objective includes finding relevant man pages, searching man page sections, finding commands and man pages related to them, and configuring access to man sources and the man system. It also includes using system documentation stored in /usr/share/doc/ and determining what documentation to keep in /usr/share/doc/.''

Key files, terms, and utilities include: MANPATH man apropos whatis

1.108.2 Find Linux documentation on the Internet

 * Weight: 3

Description: ''Candidates should be able to find and use Linux documentation. This objective includes using Linux documentation at sources such as the Linux Documentation Project (LDP), vendor and third-party websites, newsgroups, newsgroup archives, and mailing lists.''

Key files, terms, and <tt>utilities</tt> include: not applicable

1.108.5 Notify users on system-related issues

 * Weight: 1

Description: ''Candidates should be able to notify the users about current issues related to the system. This objective includes automating the communication process, e.g. through logon messages.''

Key files, terms, and <tt>utilities</tt> include: /etc/issue /etc/issue.net /etc/motd

1.109.1 Customize and use the shell environment

 * Weight: 5

Description: ''Candidate should be able to customize shell environments to meet users' needs. This objective includes setting environment variables (e.g. PATH) at login or when spawning a new shell. It also includes writing bash functions for frequently used sequences of commands.''

Key files, terms, and <tt>utilities</tt> include: ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc ~/.bash_logout ~/.inputrc function (Bash built-in command) export env set (Bash built-in command) unset (Bash built-in command)

1.109.2 Customize or write simple scripts

 * Weight: 3

Description: ''Candidate should be able to customize existing scripts, or write simple new (ba)sh scripts. This objective includes using standard sh syntax (loops, tests), using command substitution, testing command return values, testing of file status, and conditional mailing to the superuser. This objective also includes making sure the correct interpreter is called on the first (#!) line of scripts. This objective also includes managing location, ownership, execution and suid-rights of scripts.''

Key files, terms, and <tt>utilities</tt> include: while for test chmod

1.111.1 Manage users and group accounts and related system files

 * Weight: 4

Description: ''Candidate should be able to add, remove, suspend and change user accounts. Tasks include to add and remove groups, to change user/group info in passwd/group databases. The objective also includes creating special purpose and limited accounts.''

Key files, terms, and <tt>utilities</tt> include: /etc/passwd /etc/shadow /etc/group /etc/gshadow chage gpasswd groupadd groupdel groupmod grpconv grpunconv passwd pwconv pwunconv useradd userdel usermod

1.111.2 Tune the user environment and system environment variables

 * Weight: 3

Description: ''Candidate should be able to modify global and user profiles. This includes setting environment variables, maintaining skel directories for new user accounts and setting command search path with the proper directory.''

Key files, terms, and <tt>utilities</tt> include: /etc/profile /etc/skel env export set unset

1.111.3 Configure and use system log files to meet administrative and security needs

 * Weight: 3

Description: ''Candidate should be able to configure system logs. This objective includes managing the type and level of information logged, manually scanning log files for notable activity, monitoring log files, arranging for automatic rotation and archiving of logs and tracking down problems noted in logs.''

Key files, terms, and <tt>utilities</tt> include: /etc/syslog.conf /var/log/* logrotate tail -f

1.111.4 Automate system administration tasks by scheduling jobs to run in the future

 * Weight: 4

Description: ''Candidate should be able to use cron or anacron to run jobs at regular intervals and to use at to run jobs at a specific time. Task include managing cron and at jobs and configuring user access to cron and at services.''

Key files, terms, and <tt>utilities</tt> include: /etc/anacrontab /etc/at.deny /etc/at.allow /etc/crontab /etc/cron.allow /etc/cron.deny /var/spool/cron/* at atq atrm crontab

1.111.5 Maintain an effective data backup strategy

 * Weight: 3 Description:

Description: ''Candidate should be able to plan a backup strategy and backup filesystems automatically to various media. Tasks include dumping a raw device to a file or vice versa, performing partial and manual backups, verifying the integrity of backup files and partially or fully restoring backups.''

Key files, terms, and <tt>utilities</tt> include: cpio dd dump restore tar

1.111.6 Maintain system time

 * Weight: 4

Description: Candidate should be able to properly maintain the system time and synchronize the clock over NTP. Tasks include setting the system date and time, setting the BIOS clock to the correct time in UTC, configuring the correct timezone for the system and configuring the system to correct clock drift to match NTP clock.

Key files, terms, and <tt>utilities</tt> include: /usr/share/zoneinfo /etc/timezone /etc/localtime /etc/ntp.conf /etc/ntp.drift date hwclock ntpd ntpdate

1.112.1 Fundamentals of TCP/IP

 * Weight: 4

Description: ''Candidates should demonstrate a proper understanding of network fundamentals. This objective includes the understanding of IP-addresses, network masks and what they mean (i.e. determine a network and broadcast address for a host based on its subnet mask in "dotted quad" or abbreviated notation or determine the network address, broadcast address and netmask when given an IP-address and number of bits). It also covers the understanding of the network classes and classless subnets (CIDR) and the reserved addresses for private network use. It includes the understanding of the function and application of a default route. It also includes the understanding of basic Internet protocols (IP, ICMP, TCP, UDP) and the more common TCP and UDP ports (20, 21, 23, 25, 53, 80, 110, 119, 139, 143, 161).''

Key files, terms, and <tt>utilities</tt> include: /etc/services ftp telnet host ping dig traceroute whois

1.112.3 TCP/IP configuration and troubleshooting

 * Weight: 7

Description: ''Candidates should be able to view, change and verify configuration settings and operational status for various network interfaces. This objective includes manual and automatic configuration of interfaces and routing tables. This especially means to add, start, stop, restart, delete or reconfigure network interfaces. It also means to change, view or configure the routing table and to correct an improperly set default route manually. Candidates should be able to configure Linux as a DHCP client and a TCP/IP host and to debug problems associated with the network configuration.''

Key files, terms, and <tt>utilities</tt> include: /etc/HOSTNAME or /etc/hostname /etc/hosts /etc/networks /etc/host.conf /etc/resolv.conf /etc/nsswitch.conf ifconfig route dhcpcd, dhcpclient, pump host hostname (domainname, dnsdomainname) netstat ping traceroute tcpdump the network scripts run during system initialization.

1.112.4 Configure Linux as a PPP client

 * Weight: 3

Description: ''Candidates should understand the basics of the PPP protocol and be able to configure and use PPP for outbound connections. This objective includes the definition of the chat sequence to connect (given a login example) and the setup commands to be run automatically when a PPP connection is made. It also includes initialisation and termination of a PPP connection, with a modem, ISDN or ADSL and setting PPP to automatically reconnect if disconnected.''

Key files, terms, and <tt>utilities</tt> include: /etc/ppp/options.* /etc/ppp/peers/* /etc/wvdial.conf /etc/ppp/ip-up /etc/ppp/ip-down wvdial pppd

1.113.1 Configure and manage inetd, xinetd, and related services

 * Weight: 4

Description: ''Candidates should be able to configure which services are available through inetd, use tcpwrappers to allow or deny services on a host-by-host basis, manually start, stop, and restart Internet services, configure basic network services including telnet and ftp. Set a service to run as another user instead of the default in inetd.conf.''

Key files, terms, and <tt>utilities</tt> include: /etc/inetd.conf /etc/hosts.allow /etc/hosts.deny /etc/services /etc/xinetd.conf /etc/xinetd.log

1.113.2 Operate and perform basic configuration of sendmail

 * Weight: 4

Description: ''Candidate should be able to modify simple parameters in sendmail configuration files (including the "Smart Host" parameter, if necessary), create mail aliases, manage the mail queue, start and stop sendmail, configure mail forwarding and perform basic troubleshooting of sendmail. The objective includes checking for and closing open relay on the mailserver. It does not include advanced custom configuration of Sendmail.''

Key files, terms, and <tt>utilities</tt> include: /etc/aliases or /etc/mail/aliases /etc/mail/* ~/.forward mailq sendmail newaliases

1.113.3 Operate and perform basic configuration of Apache

 * Weight: 4

Description: ''Candidates should be able to modify simple parameters in Apache configuration files, start, stop, and restart httpd, arrange for automatic restarting of httpd upon boot. Does not include advanced custom configuration of Apache.''

Key files, terms, and <tt>utilities</tt> include: httpd.conf apachectl httpd

1.113.4 Properly manage the NFS, smb, and nmb daemons

 * Weight: 4

Description: ''Candidate should know how to mount remote filesystems using NFS, configure NFS for exporting local filesystems, start, stop, and restart the NFS server. Install and configure Samba using the included GUI tools or direct edit of the /etc/smb.conf file (Note: this deliberately excludes advanced NT domain issues but includes simple sharing of home directories and printers, as well as correctly setting the nmbd as a WINS client).''

Key files, terms, and <tt>utilities</tt> include: /etc/exports /etc/fstab /etc/smb.conf mount umount

1.113.5 Setup and configure basic DNS services

 * Weight: 4

Description: ''Candidate should be able to configure hostname lookups and troubleshoot problems with local caching-only name server. Requires an understanding of the domain registration and DNS translation process. Requires understanding key differences in configuration files for bind 4 and bind 8.''

Key files, terms, and <tt>utilities</tt> include: /etc/hosts /etc/resolv.conf /etc/nsswitch.conf /etc/named.boot (v.4) or /etc/named.conf (v.8) named

1.113.7 Set up secure shell (OpenSSH)

 * Weight: 4

Description: ''The candidate should be able to obtain and configure OpenSSH. This objective includes basic OpenSSH installation and troubleshooting, as well as configuring sshd to start at system boot.''

Key files, terms, and <tt>utilities</tt> include: /etc/hosts.allow /etc/hosts.deny /etc/nologin /etc/ssh/sshd_config /etc/ssh_known_hosts /etc/sshrc sshd ssh-keygen

1.114.1 Perform security administration tasks

 * Weight: 4

Description: ''Candidates should know how to review system configuration to ensure host security in accordance with local security policies. This objective includes how to configure TCP wrappers, find files with SUID/SGID bit set, verify packages, set or change user passwords and password aging information, update binaries as recommended by CERT, BUGTRAQ, and/or distribution's security alerts. Includes basic knowledge of ipchains and iptables.''

Key files, terms, and <tt>utilities</tt> include: /proc/net/ip_fwchains /proc/net/ip_fwnames /proc/net/ip_masquerade find ipchains passwd socket iptables

1.114.2 Setup host security

 * Weight: 3

Description: ''Candidate should know how to set up a basic level of host security. Tasks include syslog configuration, shadowed passwords, set up of a mail alias for root's mail and turning of all network services not in use.''

Key files, terms, and <tt>utilities</tt> include: /etc/inetd.conf or /etc/inet.d/* /etc/nologin /etc/passwd /etc/shadow /etc/syslog.conf

1.114.3 Setup user level security

 * Weight: 1

Description: ''Candidate should be able to configure user level security. Tasks include limits on user logins, processes, and memory usage.''

Key files, terms, and <tt>utilities</tt> include: quota usermod

Objectifs_détaillés_(LPIC102)


text: LPI Linux Certification/LPIC1 Exam 102/Exercises results


text:
Cookbook:Giblet Soup

| Meat Recipes

Ingredients

 * 4 pounds (1.8 kg) gravy beef
 * 2 pounds (910 g) mutton scrag (neck)
 * 2 lb veal scrag
 * 2 gallons (7.6 L / 32 cups) water
 * 2 pairs of giblets, scaled
 * Butter
 * Flour
 * Finely-chopped parsley
 * Chives
 * Pennyroyal
 * Sweet marjoram
 * Madeira wine
 * Salt
 * Cayenne pepper

Procedure

 * 1) Boil the beef, mutton, and veal in the water. Stew the meat gently until the broth begins to taste well.
 * 2) Remove the meat and let the broth stand until cold. Skim off all the fat.
 * 3) Add the giblets to the broth, and simmer them until they are very tender. Take them out and strain the soup through a cloth.
 * 4) Put a piece of butter rolled in flour into a pan with the parsley, chives, pennyroyal, and sweet marjoram.
 * 5) Place the soup over a slow fire. Add the giblets, fried butter, herbs, a little Madeira wine, some salt, and cayenne pepper.
 * 6) When the herbs are tender, serve the soup. This makes a very savory dish.

title: Cookbook:Giblet Soup


text:
Cookbook talk:Giblet Soup

This recipe was copied from Wikipedia on 10/7/04. Following is the history of the page. * (cur) (last) 17:45, 6 Oct 2004 Poccil * (cur) (last) 11:05, 18 Sep 2004 Anthony DiPierro * (cur) (last) 15:13, 31 Jul 2003 Malcolm Farmer m (see Wikipedia Cookbook) * (cur) (last) 23:42, 27 Mar 2002 62.98.249.56 m

title: Cookbook talk:Giblet Soup


text:
LPI Linux Certification/LPIC2 Exam 201/Detailed Objectives

The following material is directly from the Linux Professional Institute at Objectives 201 reprinted with their permission. Note that their inclusion in this book in no way signifies endorsement on the part of LPI.

This is a required exam for LPI certification Level 2. It covers advanced system administration skills that are common across all distributions of Linux.

Each objective is assigned a weighting value. The weights range roughly from 1 to 10, and indicate the relative importance of each objective. Objectives with higher weights will be covered in the exam with more questions.

2.201.1 Kernel Components

 * Weight: 1

Description: ''Candidates should be able to utilize kernel components that are necessary to specific hardware, hardware drivers, system resources and requirements. This objective includes implementing different types of kernel images, identifying stable and development kernels and patches, as well as using kernel modules.''

Key files, terms, and utilities include: zImage bzImage

2.201.2 Compiling a kernel

 * Weight: 1

Description: ''Candidates should be able to properly compile a kernel to include or disable specific features of the Linux kernel as necessary. This objective includes compiling and recompiling the Linux kernel as needed, implementing updates and noting changes in a new kernel, creating a system initrd image, and installing new kernels.''

Key files, terms, and utilities include: /usr/src/linux/ /etc/lilo.conf make options (config, xconfig, menuconfig, oldconfig, mrproper zImage, bzImage, modules, modules_install) mkinitrd (both Red Hat and Debian based) make

2.201.3 Patching a kernel

 * Weight: 2

Description: ''Candidates should be able to properly patch a kernel for various purposes including to implement kernel updates, to implement bug fixes, and to add support for new hardware. This objective also includes being able to properly remove kernel patches from existing production kernels.''

Key files, terms, and utilities include: Makefile patch gzip bzip

2.201.4 Customizing a kernel

 * Weight: 1

Description: ''Candidates should be able to customize a kernel for specific system requirements by patching, compiling, and editing configuration files as required. This objective includes being able to assess requirements for a kernel compile versus a kernel patch as well as build and configure kernel modules.''

Key files, terms, and utilities include: /usr/src/linux /proc/sys/kernel/ /etc/conf.modules, /etc/modules.conf patch make modprobe insmod, lsmod kerneld kmod

2.202.1 Customizing system startup and boot processes

 * Weight: 2

Description: ''Candidates should be able to edit appropriate system startup scripts to customize standard system run levels and boot processes. This objective includes interacting with run levels and creating custom initrd images as needed.''

Key files, terms, and utilities include: /etc/iddddnit.d/ /etc/inittab /etc/rc.d/ mkinitrd (both Red Hat and Debian scripts)

2.203.1 Operating the Linux filesystem

 * Weight: 3

Description: ''Candidates should be able to properly configure and navigate the standard Linux filesystem. This objective includes configuring and mounting various filesystem types. Also included, is manipulating filesystems to adjust for disk space requirements or device additions.''

Key files, terms, and utilities include: /etc/fstab /etc/mtab /proc/mounts mount and umount sync swapon swapoff

2.203.2 Maintaining a Linux filesystem

 * Weight: 4

Description: ''Candidates should be able to properly maintain a Linux filesystem using system utilities. This objective includes manipulating a standard ext2 filesystem.''

Key files, terms, and utilities include: fsck (fsck.ext2) badblocks mke2fs dumpe2fs debuge2fs tune2fs

2.203.3 Creating and configuring filesystem options

 * Weight: 3

Description: ''Candidates should be able to configure automount filesystems. This objective includes configuring automount for network and device filesystems. Also included is creating non ext2 filesystems for devices such as CD-ROMs.''

Key files, terms, and utilities include: /etc/auto.master /etc/auto.[dir] mkisofs dd mke2fs

2.204.1 Configuring RAID

 * Weight: 2

Description: ''Candidates should be able to configure and implement software RAID. This objective includes using mkraid tools and configuring RAID 0, 1, and 5.''

Key files, terms, and <tt>utilities</tt> include: /etc/raidtab mkraid

2.204.2 Adding new hardware

 * Weight: 3

Description: Candidates should be able to configure internal and external devices for a system including new hard disks, dumb terminal devices, serial UPS devices, multi-port serial cards, and LCD panels.

Key files, terms, and <tt>utilities</tt> include: /proc/bus/usb XFree86 modprobe lsmod lsdev lspci setserial usbview

2.204.3 Software and kernel configuration

 * Weight: 2

Description: ''Candidates should be able to configure kernel options to support various hardware devices including UDMA66 drives and IDE CD burners. This objective includes using LVM (Logical Volume Manager) to manage hard disk drives and partitions as well as software tools to interact with hard disk settings.''

Key files, terms, and <tt>utilities</tt> include: /proc/interrupts hdparm tune2fs sysctl

2.204.4 Configuring PCMCIA devices

 * Weight: 1

Description: ''Candidates should be able to configure a Linux installation to include PCMCIA support. This objective includes configuring PCMCIA devices, such as ethernet adapters, to autodetect when inserted.''

Key files, terms, and <tt>utilities</tt> include: /etc/pcmcia/ *.opts cardctl cardmgr

2.209.1 Configuring a samba server

 * Weight: 5

Description: ''The candidate should be able to set up a Samba server for various clients. This objective includes setting up a login script for Samba clients, and setting up an nmbd WINS server. Also included is to change the workgroup in which a server participates, define a shared directory in smb.conf, define a shared printer in smb.conf, use nmblookup to test WINS server functionality, and use the smbmount command to mount an SMB share on a Linux client.''

Key files, terms, and <tt>utilities</tt> include: smbd, nmbd smbstatus, smbtestparm, smbpasswd, nmblookup smb.conf, lmhosts

2.209.2 Configuring an NFS server

 * Weight: 3

Description: ''The candidate should be able to create an exports file and specify filesystems to be exported. This objective includes editing exports file entries to restrict access to certain hosts, subnets or netgroups. Also included is to specify mount options in the exports file, configure user ID mapping, mount an NFS filesystem on a client, using mount options to specify soft or hard and background retries, signal handling, locking, and block size. The candidate should also be able to configure tcpwrappers to further secure NFS.''

Key files, terms, and <tt>utilities</tt> include: /etc/exports exportfs showmount nfsstat

2.211.1 System logging

 * Weight: 1

Description: The candidate should be able to configure syslogd to act as a central network log server. This objective also includes configuring syslogd to send log output to a central log server, logging remote connections, and using grep and other text utils to automate log analysis.

Key files, terms, and <tt>utilities</tt> include: syslog.conf /etc/hosts sysklogd

2.211.2 Packaging software

 * Weight: 1

Description: ''The candidate should be able to build a package. This objective includes building (or rebuilding) both RPM and DEB packaged software.''

Key files, terms, and <tt>utilities</tt> include: /debian/rules SPEC file format rpm

2.211.3 Backup operations

 * Weight: 2

Description: The candidate should be able to create an offsite backup storage plan.

2.213.1 Automating tasks using scripts

 * Weight: 3

Description: ''The candidate should be able to write simple Perl scripts that make use of modules where appropriate, use the Perl taint mode to secure data, and install Perl modules from CPAN. This objective includes using sed and awk in scripts, and using scripts to check for process execution and generate alerts by email or pager if a process dies. Candidates should be able to write and schedule automatic execution of scripts to parse logs for alerts and email them to administrators, synchronize files across machines using rsync, monitor files for changes and generate email alerts, and write a script that notifies administrators when specified users log in or out.''

Key files, terms, and <tt>utilities</tt> include: perl -MCPAN -e shell bash, awk, sed crontab at

2.214.2 Creating recovery disks

 * Weight: 1

Description: Candidate should be able to: create both a standard bootdisk for system entrance, and a recovery disk for system repair.

Key files, terms, and <tt>utilities</tt> include: /etc/fstab /etc/inittab Any standard editor Familiarity with the location and contents of the LDP Bootdisk-HOWTO /usr/sbin/rdev /bin/cat /bin/mount (includes -o loop switch) /sbin/lilo /bin/dd /sbin/mke2fs /usr/sbin/chroot

2.214.3 Identifying boot stages

 * Weight: 1

Description: Candidate should be able to: determine, from bootup text, the 4 stages of boot sequence and distinguish between each.

Key files, terms, and <tt>utilities</tt> include: boot loader start and hand off to kernel kernel loading hardware initialization and setup daemon initialization and setup

2.214.4 Troubleshooting LILO

 * Weight: 1

Description: Candidate should be able to determine specific stage failures and corrective techniques.

Key files, terms, and <tt>utilities</tt> include: /boot/boot.b Know meaning of L, LI, LIL, LILO, and scrolling 010101 errrors Know the different LILO install locations, MBR, /dev/fd0, or primary/extended partition. Know significance of /boot/boot.### files

2.214.5 General troubleshooting

 * Weight: 1

Description: ''A candidate should be able to recognize and identify boot loader and kernel specific stages and utilize kernel boot messages to diagnose kernel errors. This objective includes being able to identify and correct common hardware issues, and be able to determine if the problem is hardware or software.''

Key files, terms, and <tt>utilities</tt> include: /proc filesystem Various system and daemon log files in /var/log/ /, /boot, and /lib/modules screen output during bootup kernel syslog entries in system logs (if entry is able to be gained) location of system kernel and attending modules dmesg /sbin/lspci /usr/bin/lsdev /sbin/lsmod /sbin/modprobe /sbin/insmod /bin/uname strace strings ltrace lsof

2.214.6 Troubleshooting system resources

 * Weight: 1

Description: A candidate should be able to identify, diagnose and repair local system environment.

Key files, terms, and <tt>utilities</tt> include: /etc/profile && /etc/profile.d/ /etc/init.d/  /etc/rc.* /etc/sysctl.conf /etc/bashrc /etc/ld.so.conf (or other appropriate global shell configuration files) Core system variables Any standard editor /bin/ln /bin/rm /sbin/ldconfig /sbin/sysctl

2.214.8 Troubleshooting environment configurations

 * Weight: 1

Description: A candidate should be able to identify common local system and user environment configuration issues and common repair techniques.

Key files, terms, and <tt>utilities</tt> include: /etc/inittab /etc/rc.local /etc/rc.boot /var/spool/cron/crontabs/ /etc/`shell_name`.conf /etc/login.defs /etc/syslog.conf /etc/passwd /etc/shadow /etc/group /etc/profile /sbin/init /usr/sbin/cron /usr/bin/crontab

Objectifs_détaillés_(LPIC201)


text:
Talk:Robotics/Design Basics

This goal is too simple. The ideal "robot" to traverse a powered track is not a robot at all, but an automaton: namely an electric train. A simple electric train may be purchased for less than the cost of an electrical engineering textbook.

 * Well what's the difference? One uses sensors and feedback decision-making to stay on the track, and the other uses mechanical forces (feedback) to stay on the track?  Where does one end and the other begin? - Omegatron 14:16, 8 Oct 2004 (UTC)

The difference is how it acts when something goes "wrong". Let's say someone puts a big box on the robots track. Can it addapt? If it just bumps into it, it's an automaton. Otherwise if it looks for a way around then it could be called a robot. But that's my oppinion. The border between the 2 is very fuzzy. --Patrik 13:35, 16 Dec 2004 (UTC)

I agree that this particular goal can be fulfilled (and at lower cost) by simple electric train, rather than a robot. However, I think this book needs some "simple" goals before working towards more complicated goals. Simple goals are good.
 * The lowest-cost "program" to display the words "Hello, world" is to simply write them on paper with a pencil.
 * But writing a program to display those words is still an excellent early goal while learning a programming language.
 * The lowest-cost hardware to blink an LED certainly does not include a microprocessor.
 * But programming a microprocessor to blink an LED is still an excellent early goal while learning embedded Systems.

Would an even simpler goal (simpler than "follow a powered track") be even better? --DavidCary 05:13, 12 June 2007 (UTC)

title: Talk:Robotics/Design Basics


text:
LPI Linux Certification/LPIC2 Exam 202/Detailed Objectives

The following material is directly from the Linux Professional Institute at Objectives 202 reprinted with their permission. Note that their inclusion in this book in no way signifies endorsement on the part of LPI.

This is a required exam for LPI certification Level 2. It covers advanced system administration skills that are common across all distributions of Linux.

Each objective is assigned a weighting value. The weights range roughly from 1 to 10, and indicate the relative importance of each objective. Objectives with higher weights will be covered in the exam with more questions.

2.205.1 Basic networking configuration

 * Weight: 5

Description: ''The candidate should be able to configure a network device to be able to connect to a local network and a wide-area network. This objective includes being able to communicate between various subnets within a single network, configure dialup access using mgetty, configure dialup access using a modem or ISDN, configure authentication protocols such as PAP and CHAP, and configure TCP/IP logging.''

Key files, terms, and utilities include:

/sbin/route /sbin/ifconfig /sbin/arp /usr/sbin/arpwatch /etc/

2.205.2 Advanced Network Configuration and Troubleshooting
Modified: 2001-August-24 Maintainer: Kara Pritchard Weight: 3

Description: ''The candidate should be able to configure a network device to implement various network authentication schemes. This objective includes configuring a multi-homed network device, configuring a virtual private network and resolving networking and communication problems.''

Key files, terms, and utilities include:

/sbin/route /sbin/route /sbin/ifconfig /bin/netstat /bin/ping /sbin/arp /usr/sbin/tcpdump /usr/sbin/lsof /usr/bin/nc

2.206.1 Configuring mailing lists

 * Weight: 1

Description: ''Install and maintain mailing lists using majordomo. Monitor majordomo problems by viewing majordomo logs.''

Key files, terms, and utilities include:

Majordomo2

2.206.2 Using Sendmail

 * Weight: 4

Description: ''Candidates should be able to manage a Sendmail configuration including email aliases, mail quotas, and virtual mail domains. This objective includes configuring internal mail relays and monitoring SMTP servers.''

Key files, terms, and utilities include:

/etc/aliases sendmail.cw virtusertable genericstable

2.206.3 Managing Mail Traffic

 * Weight: 3

Description: ''Candidates should be able to implement client mail management software to filter, sort, and monitor incoming user mail. This objective includes using software such as procmail on both server and client side.''

Key files, terms, and utilities include:

procmail

2.206.4 Serving news

 * Weight: 1

Description: ''Candidates should be able to install and configure news servers using inn. This objective includes customizing and monitoring served newsgroups.''

Key files, terms, and utilities include:

innd

2.207.1 Basic BIND 8 configuration

 * Weight: 2

Description: ''The candidate should be able to configure BIND to function as a caching-only DNS server. This objective includes the ability to convert a BIND 4.9 named.boot file to the BIND 8.x named.conf format, and reload the DNS by using kill or ndc. This objective also includes configuring logging and options such as directory location for zone files.''

Key files, terms, and utilities include:

/etc/named.conf /usr/sbin/ndc /usr/sbin/named-bootconf kill

2.207.2 Create and maintain DNS zones

 * Weight: 3

Description: ''The candidate should be able to create a zone file for a forward or reverse zone or root level server. This objective includes setting appropriate values for the SOA resource record, NS records, and MX records. Also included is adding hosts with A resource records and CNAME records as appropriate, adding hosts to reverse zones with PTR records, and adding the zone to the /etc/named.conf file using the zone statement with appropriate type, file and masters values. A candidate should also be able to delegate a zone to another DNS server.''

Key files, terms, and utilities include:

contents of /var/named zone file syntax resource record formats dig nslookup host

2.207.3 Securing a DNS server

 * Weight: 3

Description: ''The candidate should be able to configure BIND to run as a non-root user, and configure BIND to run in a chroot jail. This objective includes configuring DNSSEC statements such as key and trusted-keys to prevent domain spoofing. Also included is the ability to configure a split DNS configuration using the forwarders statement, and specifying a non-standard version number string in response to queries.''

Key files, terms, and <tt>utilities</tt> include:

SysV init files or rc.local /etc/named.conf /etc/passwd dnskeygen

2.208.1 Implementing a web server

 * Weight: 3

Description: ''Candidates should be able to install and configure a web server. This objective includes monitoring the server's load and performance, restricting client user access, configuring support for scripting languages as modules and setting up client user authentication. Also included is configuring server options to restrict usage of resources.''

Key files, terms, and <tt>utilities</tt> include:

access logs and error logs .htaccess httpd.conf mod_auth htpasswd htgroup apache2ctl httpd

2.208.2 Maintaining a web server

 * Weight: 2

Description: ''Candidates should be able to configure Apache to use virtual hosts for websites without dedicated IP addresses. This objective also includes creating an SSL certification for Apache and defining SSL definitions in configuration files using OpenSSL. Also included is customizing file access by implementing redirect statements in Apache's configuration files.''

Key files, terms, and <tt>utilities</tt> include:

httpd.conf

2.208.3 Implementing a proxy server

 * Weight: 2

Description: ''Candidates should be able to install and configure a proxy server using Squid. This objective includes implementing access policies, setting up authentication, and utilizing memory usage.''

Key files, terms, and <tt>utilities</tt> include:

squid.conf acl http_access

2.210.1 DHCP configuration

 * Weight: 2

Description: ''The candidate should be able to configure a DHCP server and set default options, create a subnet, and create a dynamically-allocated range. This objective includes adding a static host, setting options for a single host, and adding bootp hosts. Also included is to configure a DHCP relay agent, and reload the DHCP server after making changes.''

Key files, terms, and <tt>utilities</tt> include:

dhcpd.conf dhcpd.leases

2.210.2 NIS configuration

 * Weight: 1

Description: ''The candidate should be able to configure an NIS server and create NIS maps for major configuration files. This objective includes configuring a system as a NIS client, setting up an NIS slave server, and configuring ability to search local files, DNS, NIS, etc. in nsswitch.conf.''

Key files, terms, and <tt>utilities</tt> include:

nisupdate, ypbind, ypcat, ypmatch, ypserv, ypswitch, yppasswd, yppoll, yppush, ypwhich, rpcinfo nis.conf, nsswitch.conf, ypserv.conf Contents of /etc/nis/: netgroup, nicknames, securenets Makefile

2.210.3 LDAP client usage

 * Weight: 2

Description: ''The candidate should be able to configure an LDAP server. This objective includes configuring a directory hierarchy, adding group, hosts, services and other data to the hierarchy. Also included is importing items from LDIF files and add items with a management tool, as well as adding users to the directory and change their passwords.''

Key files, terms, and <tt>utilities</tt> include:

slapd slapd.conf

2.210.4 PAM authentication

 * Weight: 2

Description: The candidate should be able to configure PAM to support authentication via traditional /etc/passwd, shadow passwords, NIS, or LDAP.

Key files, terms, and <tt>utilities</tt> include:

/etc/pam.d pam.conf

2.212.2 Configuring a router

 * Weight: 2

Description: ''The candidate should be able to configure ipchains and iptables to perform IP masquerading, and state the significance of Network Address Translation and Private Network Addresses in protecting a network. This objective includes configuring port redirection, listing filtering rules, and writing rules that accept or block datagrams based upon source or destination protocol, port and address. Also included is saving and reloading filtering configurations, using settings in /proc/sys/net/ipv4 to respond to DOS attacks, using /proc/sys/net/ipv4/ip_forward to turn IP forwarding on and off, and usingtools such as PortSentry to block port scans and vulnerability probes.''

Key files, terms, and <tt>utilities</tt> include:

/proc/sys/net/ipv4 /etc/services ipchains iptables routed

2.212.3 Securing FTP servers

 * Weight: 2

Description: ''The candidate should be able to configure an anonymous download FTP server. This objective includes configuring an FTP server to allow anonymous uploads, listing additional precautions to be taken if anonymous uploads are permitted, configuring guest users and groups with chroot jail, and configuring ftpaccess to deny access to named users or groups.''

Key files, terms, and <tt>utilities</tt> include:

ftpaccess, ftpusers, ftpgroups /etc/passwd chroot

2.212.4 Secure shell (OpenSSH)

 * Weight: 2

Description: ''The candidate should be able to configure sshd to allow or deny root logins, enable or disable X forwarding. This objective includes generating server keys, generating a user's public/private key pair, adding a public key to a user's authorized_keys file, and configuring ssh-agent for all users. Candidates should also be able to configure port forwarding to tunnel an application protocol over ssh, configure ssh to support the ssh protocol versions 1 and 2, disable non-root logins during system maintenance, configure trusted clients for ssh logins without a password, and make multiple connections from multiple hosts to guard against loss of connection to remote host following configuration changes.''

Key files, terms, and <tt>utilities</tt> include:

ssh, sshd /etc/ssh/sshd_config ~/.ssh/identity.pub, ~/.ssh/identity ~/.ssh/authorized_keys .shosts, .rhosts, generate ssh keys

2.212.5 TCP_wrappers

 * Weight: 1

Description: The candidate should be able to configure tcpwrappers to allow connections to specified servers from only certain hosts or subnets.

Key files, terms, and <tt>utilities</tt> include:

inetd.conf, tcpd hosts.allow, hosts.deny xinetd

2.212.6 Security tasks

 * Weight: 3

Description: ''The candidate should be able to install and configure kerberos and perform basic security auditing of source code. This objective includes arranging to receive security alerts from Bugtraq, CERT, CIAC or other sources, being able to test for open mail relays and anonymous FTP servers, installing and configuring an intrusion detection system such as snort or Tripwire. Candidates should also be able to update the IDS configuration as new vulnerabilities are discovered and apply security patches and bugfixes.''

Key files, terms, and <tt>utilities</tt> include:

Tripwire telnet nmap

2.214.7 Troubleshooting network issues

 * Weight: 1

Description: The candidate should be able to identify and correct common network setup issues to include knowledge of locations for basic configuration files and commands.

Key files, terms, and <tt>utilities</tt> include:

/sbin/ifconfig /sbin/route /bin/netstat /etc/network || /etc/sysconfig/network-scripts/ system log files such as /var/log/syslog && /var/log/messages /bin/ping /etc/resolv.conf /etc/hosts /etc/hosts.allow && /etc/hosts.deny /etc/hostname || /etc/HOSTNAME /sbin/hostname /usr/sbin/traceroute /usr/bin/nslookup /usr/bin/dig /bin/dmesg host

Objectifs_détaillés_(LPIC201)


text:
User:Gkhan/Closest pair of points

Let's say that we have a number of points in a 2-dimensional plane with x-coordinates stored in array x and y-coordinates in the array y. How would one go about solving this problem? The obvious way is to compare all the points to all of the others. How would such an algorithm look? Something like this (it returns a 3-tuple with the two points and the distance between them):

function ClosestPair(x[], y[], numPoints) min := $$\infty$$ point1 := 0 point2 := 0 for i := 1 to numPoints-1 for j := i + 1 to numPoints if sqrt((x[i] - x[j])^2 + (y[i] - y[j])^2) < min: min := sqrt((x[i] - x[j])^2 + (y[i] - y[j])^2) point1 := i point2 := j fi repeat repeat return {p1, p2, min} end function

What is the running time of this algorithm. Since the number of iterations in the inner loop starts with p-1 and decresases by one each time until it reaches 1, in which case the main loop finishes. It is thus an arithmetic progression from one to p-1:
 * $$1+2+3+4+\ldots+(p-2)+(p-1) = {p(p-1) \over 2}$$

It is therfore an $$O(n^2)$$ algorithm were n is the number of points.

Can we do better? Yes we can! First what we do is divide the group of points into two groups of size $$\mathcal{b}{n / 2}\mathcal{c}$$ and $$\mathcal{d}{n / 2}\mathcal{e}$$ by drawing a line through the point number $$\mathcal{b}{n / 2}\mathcal{c}$$ counted from the left. ($$\mathcal{b}x\mathcal{c}$$ here represents the floor function and $$\mathcal{d}x\mathcal{e}$$ is the ceiling function). We then perform the perform the algorithm recursivly for the two groups. If the group size is 1 we return $$\infty$$ or if the size is 2 we return the distance between the two points.

We can now start making creating some code. Note that the points in x[] and y[] are sorted after their x-coordinate primarily and y-coordinate secondarily (i.e if their x-coordinate is the same).

function ClosestPair(x[], y[], startIndex, finishIndex) numPoints := finishIndex - startIndex + 1 min = $$\infty$$ if numPoints == 1 return $$\infty$$ else if numPoints == 2 return sqrt((x[startIndex] - x[finishIndex])^2 + (y[startIndex] - y[finishIndex])^2) else min = Min(ClosestPair(x[], y[], startIndex, startIndex + Floor(numPoints/2)),               ClosestPair(x[], y[], startIndex + Ceiling(numPoints/2)), finishIndex))   fi   ......... end function

This function obviously doesn't give the right results since none of the points in group 1 is compared to the points in group 2. What if the two closest points lie just left and right of the dividing line? We obviosly have to compare the groups with eachother.

Let's say that the distance between the closest pair of points in the groups is k (the variable min in the code) then if there exists a closer pair in different groups they must lie in a 2k wide strip over the dividing line.

title: User:Gkhan/Closest pair of points