text:
Developing A Universal Religion/Present Day Religions/Common Features

Religions, in one form or another, have existed from prehistoric times and frequently include much of the old in their new formats. They share many characteristics, and some of these are listed (in no specific order) below.

Most religions, if not all, seem to have developed from the ideas of one thoughtful person, frequently one who desired to change people’s behaviour by educating them.

Religions and beliefs in a god or gods were once necessary to explain how the universe and life began, and why "mysterious" events such as eclipses and plagues occurred—roles now more skilfully performed by science (see ../../The Universe/ and ../../Life/).

Religions incorporate and adapt occurrences remembered from the distant past (such as the Flood), as well as myths taken from other religions (such as Creation, or the Garden of Eden), and give them some special significance.

Religions differ from place to place, with the majority of any population professing allegiance to the local creed. Periodically, differences of opinion arise that cause factions to split off and establish variants of the original belief.

People generally adopt the religion of their forefathers. However, individuals occasionally convert from their family religion to another, typically upon marriage to a person of another faith, or if pressing needs are not being met, if a compelling preacher attracts them, if converting brings financial or social benefits, or if practising their belief threatens their survival.

Religious groups build or select special places (such as churches, shrines or rivers) that are held to be significant in the conduct of that religion.

Religions develop formalized, hierarchically structured organizations that, whenever circumstances permit, grow larger, become more complex, and eventually build edifices of some magnificence.

Religions formulate ways to communicate with their god (such as meditation, the Eucharist, or prayer).

Religions develop rituals, life-cycle rites (such as baptisms, funerals and processions) and festivals to be conducted at particular times, on special days, or during certain seasons, when something of historical or seasonal significance is commemorated or celebrated.

Religions frequently teach by relating stories or parables crafted to illustrate virtues or values deemed to be worthy of emulation.

Religions prescribe how to behave (and, not infrequently, how to dress) and give reasons why this behaviour should be followed. They define procedures (such as confession, covering the head, or prostration) to be followed to achieve particular religious purposes, and they devise special behaviours (such as making the sign of a cross, undertaking pilgrimages, or genuflecting) that publicly demonstrate allegiance.

Religions integrate with and influence the society they service, affecting many of their laws, customs, traditions, institutions, and moral standards.

Religions hold faith and belief to be more important than facts or reason.

Religions centre upon some kind of unity, and state there is purpose to life. They give followers an identity and a morality, and provide solace and hope in times of trouble. Many religions hold that a heaven or paradise awaits all true believers after their death.

Above all, religions attempt to simplify moral decision making. (Perhaps this is why portions of religious texts are often cited as sanctioning actions taken, particularly by fundamentalists seeking to justify reprehensible acts).

This summary is in no way exhaustive—for instance, while followers receive many benefits from religions, few are listed here. Being able to provide so much for so many is probably the second most important reason to support religions’ continuance. (The primary function of any religion is to provide the purpose used in moral decision making.)

However, while we gain much comfort from the beliefs and practices religions foster, religions can also hinder our ability to think rationally and openly. This may never have been more evident than it is today, when we might arguably claim that religious differences are creating more discord in the world than any other single issue, yet this topic is seldom raised at international levels (such as the United Nations), presumably out of fear that the discussions would rapidly become unmanageable.

 * Return to Present Day Religions, Introduction
 * ../Summary/


text:
User:Ђорђе Д. Божовић~enwikibooks

Currently working on:
 * Serbian
 * Wikijunior:Languages/Serbian
 * Wikijunior:Languages/Quenya
 * False Friends of the Slavist
 * Old Church Slavonic

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

title: User:Ђорђе Д. Божовић~enwikibooks


text:
Developing A Universal Religion/Present Day Religions/Summary

Religions have been developed by the efforts of prophets and their followers, men and women who refined ideas and beliefs about how human life might be improved, and then conveyed these ideas in a convincing manner to others. For this to happen, divine intervention has never been required—everything that such prophets and their followers experienced, witnessed, undertook, or relayed, everything that happened then, and everything that has happened since, can be more realistically explained as being the result of other causes. Nevertheless, approximately five billion (or about 80%) of the world’s population state that they believe in a god, and most, presumably, try to obey what they have been told are their god’s wishes.

Today we have over a million religions, all vying for attention, with many of them, in one manner or another, decrying their competitors. Is there no way our moral thinking might be better ordered?

There is. A way that does not deny or attempt to replace any of the existing religions—that would be an insult to some of humanity’s greatest achievements and a nonsensical proposition. But it must be possible to unify beliefs under a banner that allows all to embrace both old and new. There must be at least one universal moral code that captures the essence of being human, that defines who we are, states what we stand for, and guides nations when there are difficult decisions to make. An integrated and forward-looking code that might one day constitute the backbone of a universal religion.

 * Return to Present Day Religions, Introduction
 * Conclusion


text:
Developing A Universal Religion/Conclusion to Part Two

Humans have learned much over the last two thousand years. In the past, we made incorrect guesses about the orbits of stars, today we build machinery that replicates their fusing atoms' behaviour; we used to speculate about the nature of blood, today we routinely replace failing organs; a thousand years ago men on horseback spread the news, today we employ the light-speed of electromagnetic waves.

All such progress depended, and will continue to depend, upon one thing—the ability to identify and root out faulty assumptions and replace them with facts. In other words, progress necessitates recognizing that the universe (and all that it contains and everything that happens) is rational. Once we do this, we realize that all situations can be analyzed and treated logically. Then, given enough time and effort, almost anything becomes possible—even by-passing emotionally-charged, long-standing, religious differences.

We have employed a rational approach in every field of human endeavour except religion. There, we fight new understandings, progress, and each other. No time has ever been more appropriate than the present to investigate alternative ways to meet our religious needs. Religions are not beyond betterment; they can incorporate new understandings, they can be redesigned. The rational approach can be used, even in the field of religious belief.

Science and religion have not always been strangers to one another. In Ancient Greece all speculative thought was considered to be philosophy; science and religion were (and often still are) speculative in nature. Both might profit from a tighter union for both address aspects of the same problem—our lack of knowledge. Most spiritual religions attempt to explain the creation of the universe and the planet’s organisms; many scientists work on exactly the same questions. However, religion and science operate at different ends of the knowledge gap. Religion starts at the “big end” with all the answers, usually declaring at the outset that a supreme being created all; science works at the “small end” and begins by asking questions, slowly building an understanding of the whole from a thorough examination of its parts.

Religion and science have another feature in common: both are founded upon a belief. While the belief held by religions is invariably made clear for everyone, the belief held by scientists is usually overlooked—however, it is just as fundamental and important.

Scientists, without exception, believe that all of the universe’s behaviour is rational, i.e., that effects follow causes which follow effects (the causality discussed in Thinking And The Universe). Religions, apparently sensing that some aspect of this belief counters theirs, invariably state (in one way or another) that some parts of the universe are not subject to rational inquiry.

Because science and religion are both based upon a belief, I suspect that unifying these beliefs would fully unify science and religion. Although not its intended purpose, the last half of this book seems to be showing how this might be brought about. Essentially, the belief that heads both disciplines is that which is used by each to make purposeful decisions. Religious beliefs regarding a judgement day and an afterlife influence behavioural decisions made by followers. Scientific beliefs that the universe is causal or rational determine the accuracy of solutions proposed by scientists. Both beliefs provide the “purpose” needed by the decision maker to make a choice about how to act—the religious in order to enter heaven, the scientist in order to have his or her findings accepted as valid.

To my mind, there is no reason for the purpose that heads scientific inquiry to be any different from the purpose that heads a religion. The problem is—how might such a joint purpose be stated? “To seek the truth,” might be accurate, but this is too simple a statement to have any practical utility. (The purpose proposed toward the end of What Purpose Can We Use? may be a more useful one.) I leave this as a problem that some readers might like to take up. What a foundation for future civilizations to build upon would be created, should scientific and religious purposes become one!

 * Postscript: Rationality In Science And Religion
 * Postscript: Creativity, Free Will, And A Revelation


text:
Zoph

Zoph (Zoph Organizes Photos) is a web based digital image presentation and management system. In other words, a photo album. It is built with PHP and MySQL. You can run it on your own server, but it's also compatible with most webhosting solutions.

Many people store their photos in the digital equivalent of a shoe box: lots of directories with names like 'Holiday 2008', 'January 2005' or even 'Photos034'. Like shoe boxes, this is a great way to put your photos away, but not such a great way to find them back or even look at them. Zoph can help you to store your photos and keep them organized.

While most photo album projects are primarily targeted at showing your photos to others, Zoph is primarily targeted at keeping your photos organized for yourself, giving you granular control over what you'd like to show to others, on a per-album or even a per-photo basis.

If you just want to generate a gallery of thumbnails from a bunch of images, you may want to try one of the other numerous photo album projects. But if you want to also store additional information about your photos, search them, or control access to them, take a look at Zoph.

Table of contents

 * 1) /Requirements/
 * 2) /Installation/
 * 3) Configuration
 * 4) config.inc.php
 * 5) zoph.ini
 * 6) /Upgrading/
 * 7) Using the Webinterface
 * 8) Importing photos
 * 9) /Using the commandline tools/
 * 10) Detailed overview of the zoph CLI client
 * 11) /Solving problems/
 * 12) Debug
 * 13) /Changelog/
 * 14) /Roadmap/

title: Zoph


text:
Developing A Universal Religion

Since the universe behaves in a reasonably predictable way, life forms able to correctly predict forthcoming events have a survival advantage. Sentient beings, able to plan ahead before acting, behave rationally when they predict a situation and make decisions that, when acted upon, help to achieve the chosen purpose.

As well as rational decisions, human beings also use instinct and emotion, a 'quick and dirty' decision process based on successful habits. According to the meta-science of evolutionary psychology, religion is a survival tool, an attempt to develop those 'feelings' that help us survive — dealing with our neighbours, accepting certain constraints, and holding certain opinions, working together for some purpose such as world peace, international justice, or the glory of God is as much an emotional response to things that we find life-threatening as it is a rational response to 'making the world better'.

We might decide that "supporting life's journey for humanity to become an omnipotent Being (oB)" is a worthy goal, and we could make it our "meta-purpose" to guide moral decision making. However, this is too loose a statement for many practical purposes. While it might convey some emotional desires or feelings, it is not precise enough to guide the moral (and therefore physical) behaviour of an entire civilization

A universal objective must be able to withstand all manner of challenges — legalistic, moralistic, religious, economic, scientific, rational, emotional, and many more. A clearly defined “universal purpose,” could turn wishful conjecture into tangible and beneficial practices. Moreover, if a “universal purpose” were to be derived from the concept of assisting the survival of our species, then a worthy but dry legal document such as the Universal Declaration of Human Rights can come to life by providing the vision empowering people to constructively criticise the powerful.

In eras past, religions took generations to develop, with emotions playing a large part. Nowadays a sound religion might be rationally grown in a decade or two, via electronic communications. As shown in the title of this book, the emphasis is upon the need to develop a universal religion, and where one might look, not upon actually doing so. Nevertheless, it seems appropriate to outline how such a fantasy might someday become a reality.

Preface To The Book

{| style="width:100%;"
 * style="width:50%; text-align:left; vertical-align:top;"|

Part One: Thinking And Moral Problems
Introduction

/Thinking/

 * 1) The Brain
 * 2) The Mind
 * 3) First- And Second-Level Thinking
 * 4) First-Level Thinking—Awareness
 * 5) Second-Level Thinking—Association
 * 6) Third-Level Thinking And Language
 * 7) Language And Uniqueness
 * 8) Thinking And The Universe
 * 9) Thinking And Intelligence
 * Summary

/Solving Problems/

 * 1) Mathematical Problems
 * 2) Scientific Problems
 * 3) Problem Environments
 * 4) Moral Problems
 * Summary

/Making Decisions/

 * 1) Practical Decisions
 * 2) Moral Decisions
 * Summary

Conclusion

Postscripts
 * 1) /Consciousness And Conscience/
 * 2) /Purpose And Meaning/

 * style="width:50%; text-align:left; vertical-align:top;"|

Part Two: Religions And Their Source
Introduction

/Religions' Origins/

 * 1) Assumptions
 * 2) Ancient Assumptions
 * 3) Life After Death
 * 4) The Existence Of Gods
 * 5) Beliefs
 * 6) Leaders
 * Summary

/Revelations And Conversions/

 * 1) Memory Linking
 * 2) Constructs
 * 3) Reformations, Conversions And Revelations
 * 4) Reformations
 * 5) Conversions
 * 6) Revelations
 * 7) The Source Of Revelations
 * Summary

/Present Day Religions/

 * 1) Some Major Religions
 * 2) Christianity
 * 3) Islam
 * 4) Hinduism
 * 5) Buddhism
 * 6) Judaism
 * 7) Atheists And Non-Believers
 * 8) Common Features
 * Summary

Conclusion

Postscripts
 * 1) /Rationality In Science And Religion/
 * 2) /Creativity, Free Will, And A Revelation/

 * style="width:50%; text-align:left; vertical-align:top;"|
 * style="width:50%; text-align:left; vertical-align:top;"|

Part Three: Purpose
Introduction

/The Universe/

 * 1) What We See In The Sky
 * 2) The Expanding Universe
 * 3) What Happened After The Big Bang
 * 4) The Life Of A Typical Star
 * 5) The Earth
 * 6) What Started It All?
 * Summary

/Life/

 * 1) Possible Origins Of Life On Earth
 * 2) Development Of Life On Earth
 * 3) Evolution
 * 4) The Probability That Life Exists Elsewhere
 * 5) Intelligent Life
 * Summary

/Looking For A Purpose/

 * 1) Can We Adopt The Universe's Purpose?
 * 2) Can We Use Life's Purpose?
 * 3) Learning And Purpose
 * 4) What Purpose Can We Use?
 * Summary

/Life And Exploiting/

 * 1) The Behaviour Of Living Things
 * 2) Energy And Life
 * 3) Life's Beginning
 * 4) Exploiting
 * 5) Complexity, Intelligence And Evolution
 * Summary

Conclusion

Postscripts
 * 1) /Gödel’s Theorem, General Systems Theory, and The Conservation Laws/
 * 2) /Origin Theory Modifications/

 * style="width:50%; text-align:left; vertical-align:top;"|

Part Four: Development
Introduction

/Why Bother?/

 * 1) Why Develop A Universal Purpose?
 * 2) Why Choose Life's Possible Endpoint?
 * 3) Why Do Anything?
 * Summary

/Possible Applications/

 * 1) World Problems
 * 2) Exploitive Excesses
 * 3) Globalization
 * 4) Genetics
 * Summary

/Determining Moral Behaviours/

 * 1) The Facts Of Life
 * 2) Behaviours Rewarded By Life
 * 3) Behaviours That Enhance Life
 * 4) Determining Moral Behaviour
 * 5) Killing
 * 6) Personal Freedom
 * 7) Genetic Manipulation
 * Summary

/A Universal Religion/

 * 1) Characteristics Of A Universal Religion
 * 2) Developing A Universal Religion
 * Summary

Conclusion

Postscripts
 * 1) /Multi-year Targets/

 * }

title: Developing A Universal Religion


text:
Zoph/Installation

Requirements
First, make sure you meet all the requirements in the previous chapter.

Unzip the .tar.gz file
You can unzip the tarball in a temporary directory. In this example we'll use /tmp and assume your downloaded Zoph version 0.9 into /home/user/Downloads $ cd /tmp $ cp /home/user/Downloads/zoph-0.9.tar.gz. $ tar -xvzf zoph-0.9.tar.gz $ cd zoph-0.9

Create a database and import the tables
$ mysql -u root -p -e "CREATE DATABASE zoph CHARACTER SET utf8 COLLATE utf8_general_ci" $ mysql -u root -p zoph < sql/zoph.sql

Create users for zoph
I created two users: zoph_rw is used by the application and zoph_admin is used when I work directly in mysql so I don't have to use root.

$ mysql -u root -p mysql> grant select, insert, update, delete on zoph.* to zoph_rw@localhost identified by 'PASSWORD';

mysql> grant all on zoph.* to zoph_admin identified by 'PASSWORD';

Pick a location to put Zoph
Create a zoph/ directory off the doc root of your web server, or create a Virtual Host with a new doc root.

$ mkdir /var/www/html/zoph

Copy the templates
$ cp -r php/* /var/www/html/zoph/

Set accessrights
For better security, you probably want to set accessrights on your Zoph files. (You may want to do this after testing whether Zoph works, in that case you know what caused it when it seizes working after this change)

First, you need to figure out which user Apache is running under. Usually this is apache for both user and group. To determine this, check httpd.conf or use ps -ef | grep httpd

You should probably make all files owned by the user apache and the group apache. You can do than with chown -R apache:apache /var/www/html/zoph

You can either make them only readable by this user/group (more security): 440, readable by all users: 444, or readable and writable by all users: 666. The last case means that you don't need root access to edit config.inc.php or to make changes to the other php files (such as upgrades to a new version). Keep in mind that giving write access to the .php files effectively gives control over Zoph. If you have other users on your system, you should choose the first option. Also, your mysql password is in /etc/zoph.ini, so if you've users on your system that are not allowed to know it, you should protect it against reading as well.The directories should have execute rights: 550 for max security or 777 for access for all users.

To do this, first go to the directory directly above your Zoph directory, in this example /var/www/html

cd /var/www/html chmod [dir] zoph cd zoph find -type f | xargs chmod [file] find -type d | xargs chmod [dir]

replace [dir] with the accesspattern you've chosen for directories above and replace [file] with the one for files.

Access rights for your photos
In many cases you can simply leave the access rights on you photo directories on default. However, if you use both the CLI and the webinterface to access your photos, you may want to change to a more advanced way of managing accessrights, using the setgid feature in Linux and most other POSIX Operating Systems.

groupadd photo useradd -g photo jeroen useradd -g photo apache chown jeroen:photo /data/images chmod 775 /data/images Now set 'setgid' on the dir, this causes new files and directories to be created with the group 'photo'. chmod g+s /data/images
 * Create a new Unix group (in example "photo")
 * Add all users that use the CLI and/or are allowed to modify the photos on disk to this group (in this example, the user is called 'jeroen')
 * Additionally, the apache user is added to this group, on my system, this user is called 'apache', but 'www-data' is also often used.
 * Change the ownership of the photo directory to your user and the group photo
 * Set the permissions on this directory as you wish, for example 775 (full rights for user and group, read rights for other) or 770 (full rights for user and group, no access for others).

Configure the PHP templates
Please see the chapter on configuration for details.

zoph.ini
You will need to create a <tt>zoph.ini</tt> file, usually in <tt>/etc/zoph.ini</tt> is where you define database settings. A simple example: [zoph] db_host = "localhost" db_name = "zoph" db_user = "zoph_rw" db_pass = "pass" db_prefix = "zoph_" php_location = /var/www/html/zoph

For more details, see zoph.ini.

Test it
Try hitting http://localhost/zoph/logon.php. You should be presented with the logon screen. Log in using "admin" for user and "admin" for password.

If you get a 404 error...
 * make sure the zoph/ folder and templates can be seen by the web server.

If you see a bunch of code... LoadModule php5_module /usr/lib/apache2/modules/libphp5.so AddType application/x-httpd-php .php If you see a MySQL access denied error...
 * make sure Apache is configured to handle PHP
 * The Apache configuration needs to contain this:
 * make sure the database user you specified in zoph.ini actually has access to the database. If your database is not on localhost, you will need to grant permissions to zoph_rw@hostname for that host.

title: Zoph/Installation


text:
Zoph/Upgrading

Upgrading Zoph is a relatively simple process; it consists of moving the php, javascript, language and image files into your web root (beware that you may want to keep your ) and running an SQL script that makes the database changes. More details about this process and special instructions per version are described below.

Zoph 0.9.6 to 0.9.7

 * If you want to upgrade from an older version, first follow the instructions to upgrade to 0.9.6. It is not necessary to install older versions first, you can just install the current version and follow the upgrade instructions below.

Copy files
Copy the contents of the php directory, including all subdirs, into your webroot. cp -a php/* /var/www/html/zoph

If you use the CLI client, you should copy it to a path that's in your $PATH cp cli/zoph /usr/bin

Database changes

 * There are no database changes in v0.9.7

Deprecated configuration
I will be removing the,   and   configuration option in a future release. Currently Zoph does not yet warn for this, but it will in the next version. If your setup requires setting these functions, please comment on issue#100

Zoph 0.9.5 to 0.9.6

 * If you want to upgrade from an older version, first follow the instructions to upgrade to 0.9.5. It is not necessary to install older versions first, you can just install the current version and follow the upgrade instructions below.

Copy files
Copy the contents of the php directory, including all subdirs, into your webroot. cp -a php/* /var/www/html/zoph

If you use the CLI client, you should copy it to a path that's in your $PATH cp cli/zoph /usr/bin

Database changes
mysql -u zoph_admin -p zoph < sql/zoph_update-0.9.6.sql
 * Execute zoph-update-0.9.6.sql:

Changes this script makes:
 * Give several timestamp fields a default value, because as of MySQL 5.7.4 "0000-00-00 00:00:00" is no longer a valid date in the default configuration (this was reverted in MySQL 5.7.8)
 * Set person_id in the zoph_users table to have a default of NULL instead of "0"
 * Drop the column contact_type from zoph_places, as it was not used as of Zoph 0.3.3 (!)

Zoph 0.9.4 to 0.9.5

 * If you want to upgrade from an older version, first follow the instructions to upgrade to 0.9.4. It is not necessary to install older versions first, you can just install the current version and follow the upgrade instructions below.

Copy files
Copy the contents of the php directory, including all subdirs, into your webroot. cp -a php/* /var/www/html/zoph

If you use the CLI client, you should copy it to a path that's in your $PATH cp cli/zoph /usr/bin

Database changes
There are no database changes in v0.9.5

Zoph 0.9.3 to 0.9.4

 * If you want to upgrade from an older version, first follow the instructions to upgrade to 0.9.3. It is not necessary to install older versions first, you can just install the current version and follow the upgrade instructions below.

Copy files
Copy the contents of the php directory, including all subdirs, into your webroot. cp -a php/* /var/www/html/zoph

Database changes
mysql -u zoph_admin -p zoph < sql/zoph_update-0.9.4.sql
 * Execute zoph-update-0.9.4.sql:

Changes this script makes:
 * Add a field that stores whether or not new subalbums should be automatically granted permission
 * Add new colour schemes

Zoph 0.9.2 to 0.9.3

 * If you want to upgrade from an older version, first follow the instructions to upgrade to 0.9.2. It is not necessary to install older versions first, you can just install the current version and follow the upgrade instructions below.

Copy files
Copy the contents of the php directory, including all subdirs, into your webroot. cp -a php/* /var/www/html/zoph

Database changes
mysql -u zoph_admin -p zoph < sql/zoph_update-0.9.3.sql
 * Execute zoph-update-0.9.3.sql:

Changes this script makes:
 * Resize the password field to allow store bigger hashes
 * Add fields to the user table to allow for new access rights
 * Add 'created by' fields to the albums, categories, places, people and circles tables

Zoph 0.9.1 to 0.9.2

 * If you want to upgrade from an older version, first follow the instructions to upgrade to 0.9.1. It is not necessary to install older versions first, you can just install the current version and follow the upgrade instructions below.
 * As of this version, the language files are in the php dir, and no longer need to be copied or moved separately

Copy files
Copy the contents of the php directory, including all subdirs, into your webroot. cp -a php/* /var/www/html/zoph

Database changes
mysql -u zoph_admin -p zoph < sql/zoph_update-0.9.2.sql
 * Execute zoph-update-0.9.2.sql:

Changes this script makes:
 * Add previously missing 'random' sortorder to preferences
 * Resize Last IP address field so IPv6 addresses can be stored
 * Database changes for 'circles' feature
 * Create a VIEW on the database to speed up queries for non-admin users

Older versions
For upgrades from an older version of Zoph: Zoph/Upgrading/Archive

title: Zoph/Upgrading


text:
Zoph/Using the Webinterface

This manual will describe how to start using Zoph. It assumes you have successfully installed all the components and are presented the logon screen when you visit http://localhost/zoph/logon.php.

Logging In For The First Time
An admin user was created when you loaded the database. You should be able to login as 'admin' using the password 'admin'. You will be presented with Zoph's home page where you will be greeted as 'Unknown Person'. There will be a blank square where a random photo would normally appear.

The first thing you should do is change the admin's password:

 * 1) Click on the 'prefs' tab.
 * 2) Click the 'change password' link.
 * 3) Enter a new password and click 'submit'.

Next, create a 'person' record for yourself:

 * 1) Click on the 'people' tab.
 * 2) Click on the [ new ] link on the right.
 * 3) Fill in your first name, last name and whatever other fields you wish.
 * 4) Click the 'Insert' button.

Now create a user for yourself:

 * 1) Click on the 'admin' tab.
 * 2) Click on the 'users' icon.
 * 3) Click on [ new ].
 * 4) Pick a username and password.
 * 5) Select yourself from the person pulldown.
 * 6) Change your class to Admin.
 * 7) Click the 'Insert' button.

An admin has permission to do anything so you don't need to grant the specific 'browse' or 'view details' permissions, nor grant permissions to individual albums.

Now that you have created a user:

 * 1) Click on the 'logout' tab.
 * 2) Login as your user.

Creating An Album, Category and Place
Before importing some images we'll create an album to put them in. Note that you do not need to assign photos to an album if you don't want to.

To create an album:

 * 1) Click on the 'albums' tab.
 * 2) Click on [ new ].
 * 3) Pick an album name. I'm using "Zoph Tutorial" for this example.
 * 4) Add an album description if you wish. This can be left blank.
 * 5) Click the 'Insert' button.

To create a category, click on the 'category' tab and do exactly as above. In creating this tutorial I took a picture of my hand so I created an "Appendages" category for it.

Both albums and categories are hierarchical in nature (each entry can have children entries as well). When you view photos in an album or category within Zoph you automatically see photos placed in that album or category's children as well.

To create a place:

 * 1) Click on the 'places' tab.
 * 2) Click on [ new ].
 * 3) Enter a title and city at minimum.
 * 4) Click the 'Insert' button.

Importing photos
Once you have your Zoph installation up and running, the next step is to add photos to it. There are 3 ways to import photos in Zoph:

 * 1) Uploading and importing them using the webinterface
 * 2) Placing the photos in the upload directory and importing them using the webinterface
 * 3) Importing the photos using the Command Line Interface (CLI) tool.

The first 2 are described in Using the webinterface to import photos, the last one is described in using the CLI.

Viewing Photos
Now that there are some photos in the database, I'll go over some features of the web interface. The UI is fairly self-explanatory so you probably don't really have to read this section.

Finding Photos
There are numerous ways to find the photos you just entered, a few of which are:

 * 1) Browse to the album you created and click [ view photos ].
 * 2) Browse to yourself in 'people' and click [ photos by ].
 * 3) Browse to the place you took of photo and click [ photos at ].
 * 4) Use the search form. Specifying no criteria will bring up all photos.
 * 5) Use the 'photos' tab and you can browse every photo in Zoph.

The Results Page
By default the results page will show thumbnails of up to 12 photos (you can change this from the 'prefs' page). On the prefs page you can also choose whether or not to display descriptions under the thumbnails.

From this page you can:

 * 1) Click on a thumbnail to go to the photo page.
 * 2) Click on [ Prev ] or [ Next ], or use the pager, to page through the photos (if your results span more than one page).
 * 3) Click on [ Slideshow ] to enter slideshow mode.
 * 4) Reorder the photos by choosing a field from the pulldown.
 * 5) Change the direction of ordering by clicking on one of the triangles. The white triangle/arrow represents the current direction.
 * 6) Change the number of rows and columns displayed.

The Photo Page
Here you'll see a mid sized version of the photo plus all the information about the photo available.

From this page you can:

 * 1) Click the name of the file or the image itself to bring up the full sized photo.
 * 2) Click on a person, place, album, category or date to take you to the corresponding pages.
 * 3) Click on [ Prev ] or [ Next ] to move through the photos as they appeared on the results page.
 * 4) Click on [ email ] to email the photo (if EMAIL_PHOTOS was set).
 * 5) Click on [ lightbox ] to add the photo to your lightbox (if you have one)
 * 6) Click on [ edit ] or [ delete ] (if you are an admin or have been given write permission on the album in which the photo appears).

If you set the auto edit pref, you will automatically be presented with fields to edit the info about a photo whenever you click on a thumbnail. Clicking [ return ] takes you back to the regular view.

Slideshows
The slideshow mode (entered from the results page) will cycle through the current set of photos by refreshing the browser window. The interval between refreshes can be set on the 'prefs' page.

From the slideshow page you can:

 * 1) Click on [ pause ] to pause the slideshow.
 * 2) Click on [ stop ] to return to the results page.
 * 3) Click on [ open ] to view the current photo on the normal photo page.

The Search Page
You can search for photos using multiple criteria on the search page. Note that when you select an album or category, all descendant albums or categories will also automatically be chosen.

By default all criteria are joined by "and". You can choose "or" instead from the pulldowns in the left most column. Since you can not specify groupings of the conditions, you might not get the results you want if you try to construct complex queries using different conjunctions.

Note that the album, category, location, person and photographer menus are pruned so that only those entries that actually appear in a photo that the user has access to are shown.

Random Photos
The thumbnail that appears on the 'home' page is randomly selected. I tend to like this photo to be somewhat good so I created a setting on the 'prefs' page that lets you specify the minimum rating to be used when selecting a random photo.

If you want to create a never ending slideshow of random photos, you can do this by clicking the "randomly chosen photo" link on the home page. If you then click the [ Slideshow ] link on the results page a new random photo will be chosen for each slide.

Lightboxes
Lightboxes give someone a place to gather and share their favorite photos. In Zoph, lightboxes are simply albums. When editing a user, an admin can declare a certain album to be the lightbox for that user. The admin must grant the user permission to view the lightbox album as well.

IMPORTANT: Don't give a user write permission on their lightbox album. The user could then add any photo to their lightbox and be able to edit it.

Whenever the user views a photo they can click a 'lightbox' link which will add that photo to their lightbox. When a user is viewing their lightbox, each photo will have an 'x' below it. Clicking this will remove that photo from the lightbox.

Lightboxes allow users to gather photos of interest to them without requiring the ability to edit a photo to place it in an album.

Lightboxes are only activated for a user by specifying a lightbox album. The setup I used was to create a "Lightbox" album, under which I created separate albums for each user's lightbox (e.g. "Jason's Lightbox").

To share a lightbox an admin must grant permission to that album to other users.

Managing Users, Groups & Restricting Access
One of the features of Zoph is its system of access privileges. You have already created an admin class user for yourself. If you desire, you can create other users as well.

Creating a new user account

 * 1) Log on with an admin account.
 * 2) Click "admin" in the menubar.
 * 3) Click "users".
 * 4) Click "new" in the right top of the screen.
 * 5) Specify a user name (e.g. first initial + last name).
 * 6) If the user is also represented by a "person" in your database (for example because he or she has taken photos or appears on them), specify a person, otherwise leave it on "Unknown Person".
 * 7) Specify a password
 * 8) Select a user class: an Admin can do anything at all. A User has restrictions. In that case, you can specify what a user can see, besides photos:
 * 9) *browse people: the user can view the 'people' page in which all the people stored in the database can be seen.
 * 10) *browse places: the user can view the 'places' page in which all the places stored in the database can be seen.
 * 11) *details of people: if "Yes" the user can see all information about any person. If "No" the user will only see a person's name.
 * 12) *details of places: if "Yes" the user can see all information about any place. If "No" the user will only see a place's title and city.
 * 13) *import: if "Yes" the user can import photos
 * 14) *download zipfiles: if "Yes", this user can download a set of photos (album, category, search result, etc.) as a zip file.
 * 15) *leave comments: if "Yes", this user can leave comments with photos.
 * 16) *rate photos: if "Yes", this user can rate photos.
 * 17) *rate photos multiple times: if "Yes", this user can rate the same photo more than once. Use this if you create an account that is used by multiple people. Each photo can be rated once per IP address.
 * 18) *lightbox: the user's lightbox album
 * 19) Click "insert"
 * 20) Add the user to one or more groups. See groups how to do that.

Modifying or deleting a user account

 * 1) Log on with an admin account.
 * 2) Click "admin" in the menubar.
 * 3) Click "users".
 * 4) Click the user you want to modify
 * 5) Click "edit" or "delete"
 * 6) Make the desired changes or confirm in case of a deletion.
 * 7) *For a description of the fields, see creating a new user account.

Groups
In order to give users access to photos, you must create one or more groups, you can then give accessrights to albums to those groups, you could for example create a group 'family', a group 'colleagues' and a group 'friends'. A user can be member of multiple groups and Zoph will combine the accessrights for all the groups.

Creating a group

 * 1) Log on with an admin account.
 * 2) Click "admin" in the menubar.
 * 3) Click "groups".
 * 4) Enter a group name
 * 5) If desired, enter a description.
 * 6) Click "insert"
 * 7) You will automatically be taken to the edit group screen. See Modifying a group for an explanation.

Modifying a group

 * 1) Log on with an admin account.
 * 2) Click "admin" in the menubar.
 * 3) Click "groups".
 * 4) Click on "display" next to the group name you wish to edit
 * 5) Click on "edit"
 * 6) You can change the group name or description and add or remove a member.
 * 7) *If you modify the group name, all the members will automatically change to the new group.
 * 8) *Select a user from the list to add them to the group
 * 9) *To remove a member from the group, tick the box in front of the username
 * 10) Click "update".
 * 11) *This screen has two "update" buttons, be sure to click the top one for these modifications.
 * 12) To add albums to the list this user can view, use the "grant access to all existing albums" or add a specific album.
 * 13) *For a more detailed explanation, see albums.
 * 14) Click "update".
 * 15) *This screen has two "update" buttons, be sure to click the bottom one for these modifications.
 * 16) *Be sure to modify either the top or the bottom half of this screen and not both.

Albums
For non-Admin users, permissions to view photos are granted on a per album basis. For each album you grant a group access to, you must specify:

 * 1) An access level
 * 2) A Watermark level (if you have enabled watermarking in config.inc.php: see WATERMARKING)
 * 3) Whether that album will be writable

Zoph determines whether a user has access to a photo checking two things:

 * 1) Is this photo in an album that at least one of the groups the user is member of has access to?
 * 2) If so, is the group's access level for that album greater than or equal to the level of the photo?

If both of these conditions are met, the user has access to the photo.

If a photo appears in more than one album, a user needs only to have permission on one of them to see the photo. If the user has access to multiple albums in which a photo is found, or the user has multiple groups that give access to the photo, the least restrictive (highest access level) permission is used.

The level of a photo (and therefore of access levels) can range from 0 to 10. The default access level is 5.

Zoph is designed so that these privileges should work transparently. It should appear to any user that they have access to all photos. There should be no reference to any album or photo (including photo counts) to which a user does not have access.

If an album is marked writable, members of the group may edit (but not delete) the photos that they have access to in that album.

If you want to grant a group access to all albums you can do this all at once and the access level and writable flag will apply to every album. This is handy if you want to let someone see everything but don't want them to change anything.

Note that when you create new albums you will have to grant permissions to any non-Admins before they will be able to see those album.

Comments
As of v0.6 users can leave comments, if ALLOW_COMMENTS is turned on.

As of v0.7.2 / v0.8 users can use (limited) markup in the comments, as well as smileys.

The following markup is supported: [u]underline[/u], [i]italics[/i] and [b]bold[/b], the various possible smileys are displayed with the comment input form:

Watermarking
You can let Zoph superimpose a watermark over the fullsize picture. You can use this feature if you want your users to be able to look at the high quality pictures, but not use them for publication. To use this feature, the IMAGE_SERVICE has to be enabled. Zoph will put a watermark on each photo that has a level higher than the watermark level.

Access levels
Say you create an account for your parents but you don't want them to see the photos in the "New Years Party" album. Simply don't grant them permission to that album.

However, say the photos in this album are mostly harmless, except for a few that you would like to keep hidden. In this case, change the level of those photos to 6 (or higher) and grant the user permission to the album with an access level of 5 (or less).

Watermarks
You have taken a couple of brilliant landscape images. You really want to show them to one of your regular customers, but you're affraid they will simply take your image and publish it, without paying for it. You put the photos in an album "Landscape" and set their level to 3.

After that, you give your customers account access level 5 and watermark level 2. They will now be able to watch the photo, but when they look at the fullsize image, a large copyright message will be superimposed over the photo. In this way, they will be able to judge the quality of the image, but it will be unusable to use in their productions.

After they have payed for the photo, you can put the image in an album that does allow them to see the photo without a watermark, change the level of the photo or change the watermark level. (keep in mind that the latter two will also influence other accounts or photos, respectively).

Defining a Default User
Starting with Zoph 0.2.1 a default user can be defined. This user is automatically logged in when a person first opens Zoph in their browser.

If you use Zoph locally you may want to make yourself the default user so that you never have to bother logging in. You may also want to use this feature to create a guest account with limited permissions.

To create a guest user, first create a person record to associate with the user (this could just be first name Guest, last name User). Then create a guest user, grant that user whatever permissions you want and set the user's preferences. Whichever user is defined as the default user is unable to modify their preferences while they are the default.

You will now need to find the user_id of your guest user. The simplest way is probably to look at the url when you are viewing the users's record in zoph (user.php?user_id=3).

The default user is defined in config.inc.php:

// set to the id of a non admin user or to 0 to disable // note that this is a user_id, not a person_id define(DEFAULT_USER, 3);

That's it. Now when you hit /zoph/zoph.php for the first time you'll be logged in as the guest user (if you are already logged in as someone you'll first have to log out). You can also log out when you are the guest user to be able to log back in as someone else.

What if a guest hits logout and wants to get back in but doesn't know the guest account info? Hitting submit on the logon page without specifying a user name or password will log you in as the default user.

Pages, Pagesets and ZophCode
By default, each album, category, place and person has a page that will show the basic data about this object. In some cases, you may want to customize this page. As of Zoph 0.7.2 it is possible to do so, using the ZophPages feature.

ZophCode
A ZophPage is written in ZophCode. ZophCode is very similar to bbCode or html and consist of tags in square brackets. Currently supported tags are:

It is possible to nest tags. For example: [h1]Holiday in [b]Spain[b][/h1] [i]more [u]emphasis[/u] by [b]combining[/b] tags[/i]. Click on this thumbnail to see the photo: [photo=123][thumb=123][/photo] Just make sure you open and close the tags in the right order: [b]This [i]will[/b] not[/i] work!

Finally, you can use smileys. See for an overview.

Pages
You can create a new page by going to the admin page and clicking on "Pages". Just type your text and tags and save. If you would like to spread the content over multiple pages, just save this one and create another page.

PageSets
The next step is to combine 1 or more pages into a pageset. Keep in mind that if you have only one page, you still have to put it into a pageset. Create a pageset from the admin page and add the pages you would like to have in this pageset to it. You can also define the order in which the pages appear in the pageset by clicking on "move up" and "move down".

You also have to decide what you would like to do with the original page Zoph automatically creates for each album, category, place and person. You can choose to never display it, to display it on the first page, the last page or on each page. You can also choose whether you would like to see you own page first or the auto-generated. Keep in mind that if you choose to never display the original page, you could restrict navigation for your users. For example, if you have an album with a few sub-albums, your users will be unable to navigate to these subalbums unless you provide links in your page to these subalbums (and add new links every time you have added a new sub-album).

Assigning a PageSet to an object
The final step in enabling the ZophPages feature, is assigning the pageset to and album, category, place or person. You can do that by editing the specific object and choose the pageset.

Preferences
A user can customize Zoph using the preferences page. Below are descriptions of a few of the prefs.

Breadcrumbs
Between the tabs and the title bar you'll see a list of breadcrumbs by default. On the prefs page You can specify the number of breadcrumbs to show or you can choose to disable the breadcrumbs completely.

One note about breadcrumbs: clicking on the small x to the right of the breadcrumbs will clear the list of crumbs.

Choosing a Language
The default value is 'Browser Default'. This means that Zoph will try to present itself in the language you can specify in your browser's settings. If no translations are present for any of the languages in your browser's list, English will be displayed by default.

If you specify a language on the prefs page instead of 'Browser Default' your setting will override whatever you have your browser set to.

The language files are stored in php/lang. Creating a new translation involves creating a file in this directory with the language's two letter code in lowercase. Use one of the existing (non English) language files as an example.

Other Prefs
Here are descriptions of a few of the other prefs:

 * days past for recent photos links: the home page has links to view photos taken or modified in the past X days, this pref sets the number of days.
 * display camera info: if set to No, when viewing the details of a photo, fields like camera make and model, focal length, exposure, etc. are not displayed.
 * automatically edit photos: if set to Yes, when an admin or a user with write permission views the details of a photo, they are immediately taken to the edit screen. This is handy for editing one photo after another.
 * color scheme: the color scheme to use. Admins can click on "color scheme" to add, edit and delete color schemes.

Backing Up Your Data
It's always a good idea to back up you photos. Periodically sync them to another machine or burn them to a cd. Zoph should never delete your photos, when you delete something from the ui only the database record is removed.

You should also periodically export the database. After you spend hours inserting and updating photos into Zoph, take two seconds and do the following:

> mysqldump -u zoph_admin -p zoph > zoph-`date +%Y%m%d`.sql

Integrating Zoph
In this section I thought I'd mention a couple of tips if you are interested in trying to integrate Zoph with other parts of your website. This is still a work in progress.

Looking Up People
Say you have a site that has its own person or user records and you would like to map between the two systems (you want to put a "photos of" link on the profile page of a user, for example). Though Zoph usually uses its own person_id field, you can pass a name instead:

http://www.zoph.org/demo/photos.php?person=Jason%20Geiger

will show you photos of a person. You also can use "photographer":

http://www.zoph.org/demo/photos.php?photographer=Jason%20Geiger

Or instead of jumping to the photos page you can hit the person page:

http://www.zoph.org/demo/person.php?person=Jason%20Geiger

Other Lookups
For albums, categories and locations these sorts of lookups don't exist at the moment. But they are fairly easy to incorporate if anyone is interested.

Of course it is easy to generate urls for the other photo fields (that don't require joins) like title or description. Just call photos.php?field=val. Any string that does not start with an underscore is assumed to be a field to search on.

title: Zoph/Using the Webinterface


text:
Zoph/Using the commandline tools before 0.8.2

Install the perl scripts
If you are using Zoph 0.8.2 or later, the Perl scripts have been replaced by PHP scripts. Please read CLI in 0.8.2 and later.

Check the path to perl
The perl scripts points to /usr/bin/perl. If your perl is in a different place, edit the first line of the script.

Configure the database variables
Edit zophrc.sample (in the bin directory of the Zoph tar.gz) so that the following variables match the values you put in config.inc.php: $db_host = 'localhost'; $db_name = 'zoph'; $db_user = 'zoph_rw'; $db_pass = 'pass'; $db_prefix = 'zoph_';

$image_dir = '/data/images/';

And then move this file to the home directory of the user you are planning on using to import photo's. Probably your own home directory. Save it under the name .zophrc.

You can also set some defaults in this file, in this way you do not need to always provide these commandline arguments:

$datedDirs = 0; $copy = 0; $hierarchical = 0; $verbose = 0; $resolveSymlinks = 0;

Make sure the file ends with 1; Because Perl does not like it when the last assignment of the file is negative.

Copy bin/zophImport.pl and bin/zophExport.pl to /usr/local/bin
Or some other directory in your PATH.

Install the man page
A man page for zophImport.pl is in the man/ directory. Copy this to somewhere in your manpath, /usr/local/man/man1 for example.

Loading Images
This section describes the command line Perl importer. The next one talks about the web based importer.

First get some images to load. Zoph was created to manage photos taken by digital cameras (which contain info in their exif headers) but you could use anything.

You should have defined an IMAGE_DIR variable in config.inc.php during installation. For this example, I have the image service disabled and my IMAGE_DIR set to a photos directory in my home directory. I have created a symbolic link from zoph/photos (off the web server's doc root) to this directory:

> ln -s $HOME/photos /var/www/zoph/photos

You can organize your photos under this directory in any way you choose. I'll provide examples of two possible systems. Read over these minimal examples before actually loading your photos.

Minimal Examples
Within my images directory I separate things by camera and by date. I have a Kodak DC280 so I created a dc280 directory:

> pwd /home/jgeiger/photos > ls dc280

Here is one way to import photos. I store photos to be imported in an incoming directory in my home directory.

> ls ~/incoming DCP_0155.JPG > zophImport.pl --path dc280 --datedDirs ~/incoming/*.JPG

The --path flag tells the importer I want the photos to be put in the dc280 directory. The --datedDirs flag means that the photo should be put in a subdirectory based on the date field found in the photos Exif header. After running the script:

> ls dc280 2002.03.14 > ls dc280/2002.03.14 DCP_0155.JPG mid thumb

The mid/ and thumb/ directories hold images scaled down to 120 and 480 pixels respectively. If you wonder why zophImport.pl takes so long to import photos it is because it is creating these two smaller images (using ImageMagick's convert utility).

What if you don't want to use dated directories to store your images? Here is an alternative way:

> pwd /home/jgeiger/photos > mkdir christmas_2001 > zophImport.pl --path christmas_2001 ~/incoming/*.JPG > ls christmas_2001 DCP_0155.JPG mid thumb

The same result could have been accomplished by:

> mkdir christmas_2001 > mv ~/incoming/*.JPG christmas_2001/ > zophImport.pl christmas_2001/*.JPG

By not specifying a path, the importer uses the path that the photos are currently in.

Whatever way you import photos, make sure you run the script from within your photos directory (as specified by IMAGE_DIR). The importer needs to be able to correctly extract the relative path to the photos from here to be stored in the database.

Detailed Example
It is best to set as much information about photos during import so you don't have to do it one photo at a time within Zoph. I often have a directory of images to import that were all taken at the same time which makes this easy to do.

Here is what I used to load the images I took for this tutorial:

> pwd /home/jgeiger/photos > zophImport.pl --path dc280 --datedDirs --photographer "Jason Geiger" --location "Jason's Apartment" --album "Zoph Tutorial" ~/incoming/*.JPG

To use the --photographer, --location and --album parameters, corresponding records must have been previously created in Zoph. So first create a person/place/album/category using the web interface, then import using them.

What if you made a mistake, or remembered a piece of information you want to add? Pass the --update parameter so that the photos will not be inserted again:

> zophImport.pl --update --field rating=5 --field description="This is part of the zoph tutorial" dc280/2002.03.14/*.JPG

This will set the rating and description for all the photos I just imported. To set any of the fields found in the photos table (such as rating, title, description, etc.), use the --field NAME=VALUE flag.

For more info and examples about the importer, see the section at the end of this document.

Broken Images
It is not uncommon to make a mistake while loading images so that when you view the ui you see a bunch of broken images. This most likely due to an invalid path. To check, edit one of the images in Zoph and click on "show additional attributes" at the bottom. Then you should be able to see the path info. It should always be the case that WEB_IMAGE_PATH (or IMAGE_PATH) + the photo's path field + the photo's name reflects the photo's location.

You can use the importer to correct the paths for broken images:

> zophImport.pl --update --path 'dc280/2002.03.14' dc280/2002.03.14/*.JPG

If you still see broken images, check the permissions on the files and directories.

Command Line Options
Here is a list of all the fields that can be set when importing:

 * --datedDirs (put photos in YYYY.MM.DD dirs)
 * --hierarchical (put photos in hierarchical dated dirs (YYYY/MM/DD) (>v0.5) you need to also specify the --datedDirs argument, otherwise this will not work.
 * --update (update existing photos)
 * --updateSize (update the photo's width, height and size. implies --update.)
 * --updateExif (reparse and load the exif headers. implied --update.)
 * --useIds (use photo_ids not file names to identify photos for update)
 * --noThumbnails (do not generate thumbnails)
 * --album ALBUM
 * --category CATEGORY
 * --photographer "FIRST_NAME LAST_NAME"
 * --location PLACE_TITLE
 * --people "FIRST_NAME LAST_NAME, FIRST_NAME LAST_NAME"
 * --path PATH (relative to IMAGE_DIR)
 * --field NAME=VALUE (use to set title, view, description, rating, level, etc.)
 * --verbose (give more information about what's going on) (>v0.5)
 * --copy (copy instead of move photos) (>v0.5)
 * --resolveSymlinks (resolve symlinks before importing) (>=0.7)

Photos can appear in multiple albums and categories, and multiple people can be in a photo. To handle this, you can either pass a comma separated list or set the flag multiple times. Actually, you can use a comma separated list for categories and people but not for albums (since I realized that I have many albums with commas in their names and have yet to build an escape mechanism).

EXIF Fields
The following fields will be set automatically if they can be extracted from the EXIF header. They can also be set manually, using the --field NAME=VALUE flag, if you wish. This is by no means an exhaustive list of possible EXIF headers but these are the ones that have been set by the cameras I have used or that have been reported to me. The resolution and size fields are ignored, this info being instead extracted by Image::Size in the importer.

 * date
 * time
 * camera_make
 * camera_model
 * flash_used
 * focal_length
 * exposure (Exposure and Exposure time headers)
 * compression (Jpeg process and JPG Quality headers)
 * aperture
 * iso_equiv
 * metering_mode
 * ccd_width
 * focus_dist
 * comment

Further Examples
Below are a couple more examples.

Adding a list of people to a photo (if there are many people it is often faster to do this using the importer rather than through the web ui):

> zophImport.pl --update --people "Jason Geiger, Virginia Wolfe" dc280/2002.03.14/DCP_0155.JPG

People should be listed left to right, front to back. These people must already be the database. If one of the names could not be found the importer will complain.

Updating all the photos in a directory:

> find dc280/ -iname "*.jpg" -maxdepth 2 | xargs zophImport.pl --updateSize

You may want to use the --updateSize option like above if you had rotated or resized a bunch of images and wanted to get the correct dimensions into zoph. Specifying a maxdepth prevents the thumbnails from being included.

Starting in version 0.3 of the importer you can also update photos based on their photo_ids rather than names. Say you notice couple sequences of your photos have an incorrect location. You can see the photo_id for a photos in the url and it may be simpler to update based on that rather than by passing the file names:

> zophImport.pl --update --useIds --location "Yuka's House" 1562-1571 1580-1585

As of version 0.7, you can influence the way zophImport.pl handles symbolic links.

For example, you have the following files IMG_0001.JPG, IMG_0002.JPG, both taken 01-01-2007 and LNK_0002.JPG, which is a symlink to IMG_0002.JPG.

If you would import these files with zophImport.pl --datedDirs IMG_0001.JPG LNK_0002.JPG

You would have two files in 2007.01.01: IMG_0001.JPG and LNK_0002.JPG - both will be "normal" files. You will also have IMG_0002.JPG, still in its old location.

If you would import these files with zophImport.pl --datedDirs --resolveSymlinks IMG_0001.JPG LNK_0002.JPG

You would have two files in 2007.01.01: IMG_0001.JPG and IMG_0002.JPG - both will be "normal" files. You will also have IMG_0002.JPG, still in its old location.

Reducing Thumbnail Size
Based on a suggestion from Alan Shutko, in version 0.3.1 of zophImport.pl I added +profile "*" to the calls to convert. (And in 0.3.3 I commented out this since for some users multiple thumbnails were being generated for an image. I did not see this problem, maybe it was a shell expansion issue. For most people it probably works so you may want to re-enable this feature.)

From http://www.imagemagick.org/www/convert.html:

"The '+profile "*"' removes any ICM, EXIF, IPTC, or other profiles that might be present in the input and aren't needed in the thumbnail."

This can result in a significant reduction in file sizes. If you do wish to preserve the profiles, remove this argument to convert.

Also, if you wish to regenerate your thumbnails after this change to save space, you can run a command like this from your image directory:

> find. -iname "*.jpg" -a -not -name "mid_*" -a -not -name "thumb_*" | xargs zophImport.pl --update --thumbnails

ZophExport.pl
Zoph is a dynamic sort of application tied closely to the database. But sometimes you want static html files of your photos to burn to a cd or whatnot. Zoph includes a perl script, zophExport.pl, that lets you easily create static galleries.

There are numerous programs whose focus is to generate these sorts of static photo albums. Though I included a very simple built-in static album generator, zophExport.pl is primarily intended to be used with other scripts. Currently two such programs are supported:

 * album (http://marginalhacks.com/Hacks/album/)
 * BINS (http://bins.sautret.org/)

Both of these are easy to use and provided customizable interfaces.

Before you run the exporter make sure you configure it to use your database settings and image directory as described in the install doc.

A Quick Example
Here is a command that creates an export for use with the album program:

> zophExport.pl --dir "~/Winter Pics" --format album --category Snow

After the exporter finishes it's up to you to run album. zophExport.pl prints out an example command to run album which you can copy and run as is or update with your own options.

In this simple example all photos placed in the Snow category are exported. Within the "Winter Pics" directory zophExport.pl will have created a directory structure mirroring the album structure in Zoph for the selected photos.

There are only two required arguments: the directory to export to (--dir) which will be created if it does not exist, and the format of the export (--format) which currently must be either "zoph", "album" or "bins".

Selecting Photos
Fields to search by are specified in the same was as in zophImport.pl. For example, you can say

> zophExport.pl --dir "~/My Album" --format album --album "Boston Trip" --photographer "Jason Geiger" --field rating=5

Only photos I took on my trip to Boston that I rated 5 or more would be exported. By default subalbums of an album are automatically included (so my "Duck Tour" subalbum is also exported). You can disable this by passing --nosubalbums. The same goes for categories (use --nosubcategories to disable). Most fields match using the equals operator. Two exceptions are rating (which defaults to >=) and description (which defaults to like).

You can probably do most things you want by using this system, especially since you can run zophExport.pl multiple times with different parameters, and even edit the results by hand if you wish, before you run album or bins to generate the galleries.

But if you have a particularly complicated query you want to run you can just pass it in directly using the --sql argument. Your query must select * from the photos table, other than that it can be anything. If you pass a sql statement any other constraint arguments are ignored. Make sure to only pass select statements, the script does no checking to make sure you aren't deleting all your data

Here's a tip if you run a complicated search within Zoph and then want to export only those photos. After you get to the results page open up config.inc.php and set DEBUG to 2. Then reload the results page and you should see two sql queries at the top of the page. Copy the first (the count query) and replace "count(distinct ph.photo_id)" with "ph.*", append "order by ph.date asc, ph.time asc" and pass this to zophExport.pl using the --sql argument.

Choosing What to Display
By default zophExport.pl will export everything about your photos except the last modified time, the rating and the albums or categories in which the photo appears.

To prevent the display of a particular field, use the --noshowFIELD argument. For example: --noshowlocation or --noshowdescription. Passing --noshowexif prevents any exif info from being shown. (Note, however, that the BINS program extracts exif info on its own).

The exporter can translate field labels using the same language files that Zoph uses. Pass --lang /path/to/php/lang/file to enable this option.

By default the exporter creates directories to mirror the structure of the albums in which the exported photos appear. To disable this and have all the photos appear directly under the export dir use the --noalbumdirs flag.

A Simple Export
The exporter contains the ability to generate a very simple static gallery. To use the simple exporter, pass --format zoph to zophExport.pl.

There are two advantages to this format. The first is that it requires no additional software. The second is speed. The simple format is much much faster simply because it uses the thumbnails already generated by Zoph whereas album and BINS generate their own. Someone could probably alter album or BINS so that they could reuse the thumbnails.

There's not really any elegant way to change the appearance of the gallery generated by this exporter. To do so you probably would want to edit zophExport.pl. It wouldn't be too difficult to add css support but I didn't. I only wanted to spend so much time reinventing the wheel.

Exporting to Album
album is written by David Ljung Madison. http://marginalhacks.com/Hacks/album/

album is a single perl script which requires nothing more than you already have from using Zoph (ImageMagick and Image::Size). A debian package is available.

To use album, specify --format album to zophExport.pl. The exporter will create a captions.txt file in each directory that contains images.

Album is themeable and a number of themes are available from the website. I'd recommend you download a different theme, or create your own, simply because the default theme displays all of the info about a photo on the thumbnails page which can be quite a bit if you include descriptions and exif data. You specify a theme by passing -theme /path/to/theme/dir to album.

Exporting to BINS
BINS is written by Jerome Sautret, based on SWIGS, written by Brendan McMahan, which was in turn based on IDS by John Moose. http://bins.sautret.org/

BINS consists of three perl scripts: an exporter and two image/album description editors. A debian package is available. BINS requires a number of perl modules which you can get from CPAN if you need to.

To use BINS, specify --format bins to zophExport.pl. The exporter will create an image.jpg.xml file for each photo and an album.xml file in each directory.

BINS takes a source directory and a target directory. zophExport.pl will create the target directory based on the --dir you specify. It will also append ".tmp" to the target directory name and create another directory to which it will copy the images from Zoph and which will act as the source dir for BINS. You can remove this temp dir after BINS finishes. You can set the source and target directory to the same dir in BINS but you can only run BINS against that directory once, after that it will start creating thumbnails of the thumbnails, etc.

You can create a config xml file for BINS to use. I found it useful to set the defaultSize parameter to 0 (default to small images).


text:
Cello Handbook

This book is all about the cello! It is meant as a reference text, and will hopefully progress to be the world's first 'encyclopedia'! As this book is still new, a list of potential topics has been placed in the Table of Contents below, covering the obvious basics. However, there is so much to say that this simple preliminary plan could not possibly address everything.

So, even if you do not have the time to contribute article text, if you do think of a topic area that will be of interest to cellists at any level, please do add it to the table of contents! It will only take a minute! Just click 'edit this page' at the top - the code syntax is dead easy (almost plain text) and is obvious from what is already there.

Now, we all know that the idea of 'correct technique' is often a bitter feud between various schools of cellists. This means it will be very tempting to erase what is already in an article and replace it with something entirely different. As an editing guideline - please do NOT do this. Instead please conform to the Wikipedia convention of neutrality by providing your method as an alternative.

For example, state clearly that "There are three different approaches to this bowstroke", segregating each explanation to its own paragraph or bullet point. If something is obviously incorrect such as, "The bow is held at the tip" then of course, go ahead and edit. If you are unsure about something, you can always use the 'discuss' link under each page, or the Internet Cello Society Forums.

A further editing guideline in regard to the warning box below. Although this is perhaps against the Wiki convention, if you are a beginner cellist, even though your input is of course still absolutely welcome and valued, it may be better to stay away from editing pages concerning technique for the minute. Technique on stringed instruments is very complex, and it takes many years before you know exactly what you are doing and why.

Even when you think you know exactly where you are heading, it is often the case that it is only an intermediary step, or a 'substitute technique', a stand-in that will do for now while you are working on something else. For this reason, it is suggested that the editing of technical chapters is left to more experienced players, in order to prevent the spread of ideas which may lead to injury.

Table of Contents

 * /Holding the Cello/

 * Left Arm
 * /Left Hand Basics/
 * /Shifting/
 * /Vibrato/
 * Scales

 * Right Arm
 * /Bow Hold/
 * /Bowing Basics/
 * /Legato Bowing/
 * /Sautille/
 * /Detaché/
 * /Martelé/
 * /Spiccato/
 * /Ricochet/
 * /Tremolo/

 * Standard Repertoire
 * /Solo Cello/
 * /Cello and Piano/
 * /Cello and Orchestra/
 * /Miscellaneous/
 * /Technical/

 * /Practice Technique/
 * /Getting More Advanced and Finding a Teacher/

 * Hardware and Maintenance
 * /Parts of the Cello/
 * /Cleaning/
 * /Buzzing/
 * /Repair/
 * /The Bow/
 * /The Bridge/
 * /Strings/
 * /Rosin/

 * Cello for Composers

title: Cello Handbook


text:
Chess Opening Theory/1. e4/1...e5/2. Qh5

1. e4 e5 2. Qh5
The Wayward Queen Attack or Kentucky Opening is a very aggressive move. It violates an opening principle by bringing the queen out early. However, Black has to be careful, as White’s queen is placed on an aggressive square. The main purpose of 2. Qh5 is actually the resulting pressure on f7 after White plays 3. Bc4; the f7-pawn is guarded only by Black's king and is considered Black’s weakest pawn at the beginning of the game.

The safest option for Black is to play 2…Nc6, which guards the e-pawn and prepares 3…g6.

Black can also try playing 2…Nf6!?, the Kiddie Countergambit. Black sacrifices the e-pawn for a lead in development and many tempi against White’s queen.

2…g6??, attacking the queen immediately, is not recommended: it simultaneously leaves the e-pawn undefended and opens up the h8-rook, and White can win that rook by playing 3. Qxe5+!, forking the king and rook.

Note that this opening allows White’s quickest possible mate if Black plays 2...Ke7?? (3. Qxe5#).

Theory table
.

'''1. e4 e5 2. Qh5'''


text:
Interlingua/Curso de conversation/Capitulo 5, Scenas 1 e 2 (interlingua)

SCENA 1: Paris, in un centro de conferentias: Petro parla a John Melville e le accusa de dishonestemente essayar finger esser un possibile cliente sue pro extraher ex ille informationes commercial confidential sur su compania. Petro deveni multo irate, e John Melville essaya calmar le, dicente que in le affaires tal practicas es commun. Gerardo Florette interveni e porta Petro via, suggerente que illes bibe alique e oblida le senior Melville.

Petro finalmente vade con Gerardo, ma non sin unes parolas menaciante a John Melville, qui pare surprendite e indignante e completemente sin regret pro lo que ille ha facite. Petro e Gerardo vade a un parve café in un area de Paris que Gerardo cognosce ben. Petro se calma e demonstra un certe placer in le bonhomia del vita in le cafés parisian. Illes parla sur le conferentia, e le duo es de accordo que illo es un perdita de tempore. Ni John ni Petro ha fame, ma illes vole haber un secunde bibita e continuar lor activitates in un altere parte de Paris, sin dubita pro continuar lor libationes.

Petro: Eh, senior Melville, io ha unes parolas a dicer vos.

Melville: Si, e ...

Petro: Vos ha un memoria de me?

Melville: Certemente. Illo nunc reveni a me. Un volo inter Strasbourg e Geneva.

Petro: Vos non me diceva que vos travaliava pro nostre competition.

Melville: Vos ha ration.

Petro: E vos ha essayate obtener de me unes informationes durante que vos fingeva esser un cliente.

Melville: Ascolta. Io vos lassava creder lo que vos voleva creder. Le commercio es un jungla, e il pare que vos non comprende su operationes.

Petro: Io debe dar a vos un bon colpo de pugno!

Gerardo: Vamos, Petro. Vamos.

Petro: Como vos dice, nos vive in un jungla. In tres annos vostre compania essera in bancarupta, e vos non habera ulle travalio.

Melville: Io crede que il essera vostre compania que perdera. Nos videra.

Gerardo: Vamos, Petro. Facer un scena hic non complira ullo. Vamos biber alique.

Petro: Sia multo caute con lo que vos facera in le futuro, Melville. Vos crede que vos es astute e intelligente, ma eventualmente vos habera grande problemas.

Gerardo: Vamos, Petro. Que nos bibe alique.

Melville: Qual es le problema que ille me offere? Io non le comprende. Io le cognosceva durante un viage in avion, e io ha demandate unes informationes sur su travalio. Illo es toto. Io non sape proque ille ha devenite tan irate.

Petro: Bon, Gerardo. Vos cognosce un bon loco ubi nos pote biber alique?

Gerardo: Si. Il ha un parve café tranquille multo vicin a iste loco, al fin del strata.

Petro: Vamos illac.

Gerardo: Ah, omne va multo melio. Tunc vos es contente de esser in Francia?

Petro: Si, il essera multo bon pro me biber alique in le terrassa de un café. Io non ha potite facer illo in Geneva.

Gerardo: Ah, bon. Ma qual esseva le problema?

Petro: Le tempore es troppo frigide. E sovente il pluve.

Gerardo: Si. Suissa es un pais curiose. E que pensa vos del conferentia?

Petro: Francamente, io es convincite que io perde mi tempore in illo.

Gerardo: Vos ha ration. Il non ha ulle nove que illes offere.

Petro: Si. Illo es un ver perdita de tempore.

Gerardo: Melville pareva espaventate. Io crede que vos vermente iva batter le.

Petro: Io quasi lo faceva.

Gerardo: Vos vole mangiar alique?

Petro: No.

Gerardo: Anque io non ha fame. Ma io crede que un altere bibita esserea un bon idea.

Petro: Si. Io ha besonio de calmar mi nervos.

Gerardo: Garson, le mesme cosa. E non mitte tante aqua iste vice. Ah, Petro, a vostre sanitate!

Petro: E al vostre!

Gerardo: Vos sape, post iste bibita, io crede que nos debe essayar un altere café. Io cognosce un altere multo proxime a iste que serve multe cosas excellente ex le cocina francese.

EXERCITIO 1: Pro ordinar cosas in cafés.

Guida: Eh, ben, io ha le impression que Petro va haber un vespere interessante. Nunc io volerea comprender melio le vocabulario que on usa pro commandar cosas in un café:

Un homine: Bon vespere.

Garson: Que vole vos ordinar?

Un femina: Io volerea un bira, per favor.

Garson: Que typo de bira? Bottilia? Ex le valvula?

Un femina: Bottilia, per favor.

Garson: Brun o clar?

Un femina: Un clar.

Un homine: Quanto a me, io crede que io volerea un whisky.

Garson: Si?

Un femina: Un bira e un whisky, per favor.

Garson: Vos vole qualque con le whisky? Coca Cola? Soda? Glacie?

Un homine: Glacie, per favor.

Garson: Le total pro omne illo es trenta-septe euros.

Un homine: Gratias.

Garson: Gratias.

Un homine: A vostre sanitate.

Un femina: Al vostre.

Guida: Io spera que Petro non bibeva troppo heri vespere. Ille ha multo a facer hodie.

SCENA 2: Paris, al officios de Trans Infra: Le matino post lor vespere de biberages, Petro e Gerardo es un pauco malade, specialmente Petro, e Gerardo da a ille un pauco de aspirina e un consilio assatis estranie pro remediar su grandissime dolores de capite. Post que Petro ha inglutite su aspirina, ille deveni un pauco minus malade, e un senior Legrand le apporta a un sala de conferentias e le presenta a unes altere personas qui travalia pro Trans Infra.

On da a Petro un invitation pro presentar un discussion sur le projecto de Geneva, e ille accepta. Ille suggere que illes organisa cata mense reuniones regular de ingenieros senior de maniera que omnes pote intercambiar e actualisar le informationes que illes ha accumulate sur le transporto urban, addente que cata reunion esserea in un citate europee differente.

Quando Petro fini su discussion, le senior Legrand parla sur su opposition al projecto. Ille dice que ille non pote inviar su ingeniero le plus senior a un reunion cata mense sin interrumper le travalios essential de su officio de un maniera inacceptabile. Ille pote inviar al reunion un ex su ingenieros plus juvene, ille dice, ma non un veterano. Petro essaya explicar al senior Legrand le importantia del presentia del ingeniero le plus senior, ma sin successo.

Gerardo: Bon die, Petro.

Petro: Bon die, Gerardo.

Gerardo: Como sta in iste momento?

Petro: Non multo bon. E vos?

Gerardo: Non multo melior.

Petro: Ubi es omne le membros de iste conferentia?

Gerardo: In le sala de conferentias apud nos.

Petro: Esque io pote haber un caffe ante vader illac?

Gerardo: Naturalmente.

Petro: E duo tablettas de aspirina?

Gerardo: Aspirina? Io debe haber un bottilia de tablettas in alicun parte. Ah, ecce illos.

Petro: Gratias. Io spera que illos vos adjuvara.

Gerardo: Inverte vos con le capite in le solo.

Petro: Que?

Gerardo. Pone vostre capite in le solo e vostre pedes in le aer.

Petro: Inverter me con le capite in le solo? Que face illo?

Gerardo: Illo vos adjuvara. Omne vostre sanguine descende verso le capite.

Petro: Illo me pare periculose.

Gerardo: Al contrario. Illo es multo bon.

Petro: No, gratias. Esque vos ...

(Le senior Legrand entra.)

Senior Legrand: Nos vos attende.

Petro: Io vade ibi.

Gerardo: Io vos presenta le senior Legrand.

Senior Legrand: Omnes es in le sala. Nos vos attende.

Gerardo: Bon die, seniores. Ecce Petro Minelli del projecto de Geneva. Io va seder me e lassar le parlar.

Petro: Gratias. Eh, ben, como Gerardo vos ha dicite, io ha venite pro parlar a vos sur le projecto de Geneva. Io suppone que vos ha apprendite alicun detalios sur illo.

Senior Legrand: No. Nos non sape ullo sur iste projecto, e nos spera que vos pote dar nos le detalios le plus importante sur illo.

Petro: Ah, multo ben. Nostre idea es de establir un systema de centralisation de informationes in Geneva. Nos ha un parve centro illac dirigite per Catherina De Sanctis. Nostre travalio consiste de centralisar e coordinar informationes general e specialisate pro omne le projectos de Marex Mundial e de Trans Infra. Nos anque habera le rolo de un corpore de consiliatores general pro omne nostre projectos. Assi nos potera centralisar nostre capacitates de formar strategias pro responder a nove conditiones de disveloppamento in areas de marketing e de technologia. Nos es specialmente interessate in le technologia nove. Ecce un exemplo: Si le governamento de un citate nos demanda un melior systema de transporto urban, nos volera haber le information pro presentar a illo un grande serie de optiones includente autobuses, taxis, trams, trainos subterranee in combinationes efficiente e economic. Naturalmente, pro presentar un optime serie de optiones, nos habera un departimento de recercas cuje informationes essera continuemente actualisate. Pro adjuvar nos in iste effortios nos propone reunir nostre personal le plus senior cata mense in reuniones pro excambiar ideas e informationes que nostre departimento de recercas non potera extraher ex le fontes jam establite, que sovente non ha accesso a informationes completemente actualisate ...

Senior Legrand: Attende un momento.

Petro: Si?

Senior Legrand: Si io comprende ben, vos vole que nostre ingenieros principal se reuni cata mense?

Petro: Si. Tal reuniones es un parte importante de nostre planos. Esque vos non lo sapeva?

Senior Legrand: No. Io justo nunc lo ha apprendite de vos.

Petro: Eh ben, si. Haber tal reuniones es nostre intention.

Senior Legrand: Ubi?

Petro: Como?

Senior Legrand: Ubi va occurrer tal reuniones?

Petro: Hmm. Eh ben, on pote discuter lo plus tarde. Ma nos habeva pensate que iste conferentias poterea haber loco, pro exemplo, un mense hic, le proxime mense in Geneva, tunc in London, tunc in Frankfurt--un serie de reuniones in cata citate.

Senior Legrand: Si io comprende ben, vos vole que nostre ingenieros principal vade un o duo dies cata mense a tal reuniones?

Petro: Isto es nostre idea, si.

Senior Legrand: Pro parlar de disveloppamentos nove?

Petro: Exactemente.

Senior Legrand: Isto es impossibile.

Petro: Impossibile? Proque?

Senior Legrand: Io sape que le projecto de Geneva es importante. Vos nos ha explicate exactemente pro que.

Petro: Si, il es multo importante. Io crede que il non ha ulle dubita de illo.

Senior Legrand. E vos vole que nos pone un de nostre ingenieros principal a vostre disposition cata mense.

Petro: Si, exactemente.

Senior Legrand: Ma io non pote permitter que mi ingeniero principal vade a reuniones in omne le citates de Europa omne le tempore. Il ha troppo travalio a facer. Vos deberea contentar vos con un ex nostre ingenieros juvene.

Petro: Io sperava que nos poteva arrivar a un arrangiamento sur illo.

Senior Legrand: Mi ingenieros senior ha multe travalio que require lor attention continue. Illes simplemente non pote vader a vostre reuniones. Le precio esserea negliger detalios importante de lor travalio.

EXERCITIO 2: Explicar situationes.

Guida: Le viage de Petro a Paris non habeva resultatos multo favorabile pro ille. Petro habeva multe cosas a dicer durante iste reunion, e unes ex le cosas que ille diceva causa problemas. Io volerea practicar le typo de linguage que on usa in tal situationes.

Un homine: Il es necesse que vos explica le situation como illo es nunc.

Un femina: Eh, ben, ecce como illo es:

Un homine: Parla nos sur le nove projecto.

Un femina: Nos nunc es al puncto de comenciar un nove projecto.

Un homine: Parla nos sur le reunion.

Un femina: Lo que es necesse es que nos nos reuni regularmente.

Un homine: Un vice cata mense in Paris.

Un femina: Lo que es necesse es que nos nos reuni regularmente in Paris cata mense.

Un homine: Pro discuter nove projectos.

Un femina: Lo que es necesse es que nos nos reuni regularmente cata mense in Paris pro discuter nove projectos.

Un homine: Mentiona quando on va discuter iste detalios.

Un femina: Nos pote arrangiar le questiones de detalio plus tarde.

Un homine: Probabilemente.

Un femina: Nos pote probabilemente arrangiar le questiones de detalio plus tarde.

Un homine: Nos potera discuter los.

Un femina: Nos potera discuter questiones de detalio quando nos nos reuni le proxime vice.

Un homine: In Paris.

Un femina: Nos potera discuter questiones de detalio quando nos nos reunira le proxime vice in Paris.

Guida: Nos nos reunira de novo in Paris. No. Io non crede que io saperea parla sur tal cosas--al minus in iste momento. Ma que nos retorna a Petro, qui ha volate desde Paris a su officios in Geneva.


text:
Interlingua/Curso de conversation/Capitulo 5, Scenas 1 e 2 (anglese)

SCENE 1: Paris, in a conference center: Peter speaks to John Melville and accuses him of dishonestly pretending to be a possible client of his to extract from him confidential commercial information about his company. Petro becomes very irate, and John Melville tries to calm him, saying that in business such practices are common. Gerardo Florette intervenes and takes Petro away, suggesting that they have a drink and forget about Mr. Melville.

Petro finally goes with Gerardo, but not without directing some menacing words to John Melville, who seems surprised and indignant and completely without regrets about what he has done. Petro and Gerardo go to a small cafe in an area of Paris that Gerardo knows well. Petro calms down and takes a certain pleasure in the bonhomie of Paris cafe life. They talk about the conference, and the two agree that it is a waste of time. Neither John nor Petro are hungry, but they want to have a second drink and continue their activities in another part of Paris, no doubt to continue their drinking.

Petro: Hey, Mr. Melville, I have some things to say to you.

Melville: Yes, uh ...

Petro: Do you remember me?

Melville: Certainly. It's coming back to me. A flight. Between Strasbourg and Geneva.

Petro: You didn't tell me that you worked for our competition.

Melville: You're right.

Petro: And you tried to get some information from me by pretending to be a customer.

Melville: Listen. I let you believe what you wanted to believe. Business is a jungle, and you don't seem to know how it works.

Petro: I ought to slug you here and now!

Gerardo: Come on, Petro. Let's go.

Petro: As you say, we live in a jungle. In three years your company will be in bankruptcy, and you will be out of work.

Melville: I think it will be your company that will lose. We'll see about that.

Gerardo: Come on, Petro. Making a scene here will not accomplish anything. Let's go get a drink.

Petro: Be very careful about what you will do in the future, Melville. You think that you are smart and astute, but eventually you're gonna have some big problems.

Gerardo: Come on, Petro. Lets go drink something.

Melville: What is the problem with this guy? I don't understand him. I got to know him during a plane trip, and I asked him some questions about his work. That's all. I don't understand why he's gotten so mad.

Petro: Okay, Gerardo. Do you know a good place where we can go drink something?

Gerardo: Yes. There is a small, quiet cafe very near this place, at the end of the street.

Petro: Let's go there.

Gerardo: Ah, everything's going much better. So are you happy to be in France?

Petro: Yes, it'll be very good for me to have a drink at some sidewalk cafe. I haven't been able to do this in Geneva.

Gerardo: Ah, good. But what was the problem?

Petro: The weather's too cold. And it often rains.

Gerardo: Yeah. Switzerland is a funny country. And what do you think about the conference?

Petro: Frankly, I'm convinced that I'm wasting my time there.

Gerardo: You're right. There's nothing new that they are offering.

Petro: Yeah, it's a real waste of time.

Gerardo: Melville seemed really scared. I think that you were really gonna hit him.

Petro: I almost did so.

Gerardo: Do you want to eat something?

Petro: No.

Gerardo: I'm not hungry either. But I think that another drink would hit the spot.

Petro: Yeah. I need to calm my nerves.

Gerardo: Waiter, the same thing. And go easy on the water this time. Ah, Petro, to your health!

Petro: And to yours!

Gerardo: You know, after this drink, I think that we ought to try another cafe. I know another one near here that serves some really good French food.

EXERCISE 1: Ordering things in a cafe.

Guide: Well, I get the feeling that Petro will be having an interesting evening. Now I'd like to understand better the vacabulary used for ordering things in a cafe.

A man: Good evening.

Waiter: What do you want to order?

A woman: I would like a beer, please.

Waiter: What kind of beer? Bottled? Draft?

A woman: Bottled, please.

Waiter: Dark or light?

A woman: Light.

A man: Me, I'd like a whiskey.

Waiter: Yes?

A man: A beer and a whiskey, please.

Waiter: Do you want something with the whiskey? Coca Cola? Soda? Ice?

A man: Ice, please.

Waiter: The total for all that is thirty-seven euros.

A man: Thanks.

Waiter: Thanks.

A man: To your health.

A woman: And to yours.

Guide: I hope Peter didn't drink too much yesterday evening. He has a lot to do today.

SCENE 2: Paris, at the offices of Trans Infra: On the morning after their evening drinking, Petro and Gerardo are a little hung over, especially Petro, and Gerardo gives him some aspirin and some rather strange advice for taking care of his really bad headaches. After Petro has taken his aspirin, he becomes a little less sick, and a Mr. Legrand takes him to a conference room and presents him to some other people who work for Trans Infra.

Peter is given an invitation to present a discussion on the Geneva project, and he accepts. He suggests that every month they hold regular meetings of senior engineers so that everyone can exchange and update the information they have accumulated on urban transport, adding that each meeting would be in a different European city.

When Petro finishes his discussion, Mr. Legrand expresses his opposition to the project. He says that he can't send his most senior engineer to a meeting every month without unacceptably interrupting the essential work at his office. He can send one of his younger engineers to the meetings, he says, but not a veteran. Petro tries to explain to Mr. Legrand the importance of the presence of his most senior engineer at these meetings, but without success.

Gerardo: Good morning, Petro.

Petro: God morning, Gerardo.

Gerardo: How're you doing right now?

Petro: Not all that well. And you?

Gerardo: Not much better.

Petro: Where are all the others who are going to be at this conference?

Gerardo: In the conference room next to us.

Petro: Can I have some coffee before going in there?

Gerardo: Naturally.

Petro: And two aspirin tablets.

Gerardo: Aspirin? I should have a bottle of tablets somewhere. Ah, here they are.

Petro: Thanks. I hope they'll help you.

Gerardo: You might try standing on your head.

Petro: What?

Petro: Yeah. Stand on your head?

Petro: Stand on my head? What will that to?

Gerardo: It'll help you out. All your blood will go down to your head.

Petro: That seems dangerous to me.

Gerardo: On the contrary. It helps out a lot.

Petro: No, thanks. By the way, ...

(Mr. Legrand comes in.)

Mr. Legrand: We're waiting for you.

Petro: I'm coming.

Gerardo: I'd like to introduce Mr. Legrand to you.

Mr. Legrand: Everyone is in the conference room. We're waiting for you.

Gerardo: Good afternoon, gentlemen. This is Petro Minelli of the Geneva project. I am going to take a seat and let him speak.

Petro: Thanks. Okay, as Gerardo has told you, I have come to talk to you about the Geneva project. I suppose you have learned some details about it.

Mr. Legrand: No. We don't know anything about this project, and we hope that you can tell us about its most important details.

Petro: Ah, very good. Our idea is to establish an information-centralization system in Geneva. We have a small center there led by Catherina De Sanctis. Our work consists of centralizing and coordinating general and specialized information for all the projects of Marex Mundial and Trans Infra. We also will have a general advisory role for all our projects. Thus we will be able to centralize our capabilities for forming strategies to respond to new conditions of development in areas involving marketing and technology. We are especially interested in new technology. Here's an example: If the government of a city asks for a better system of urban transport, we want to have the information for presenting to it large range of options including buses, taxis, light rail, and heavy rail in cost effective and efficient combinations. Naturaly, to present an optimal series of options, we will have a research department whose knowledge base will be continually updated. To help us in these efforts we propose to hold monthly meetings of our most senior personnel so they can exchange ideas and information that our research department cannot extract from the usual sources, which often don't have access to the latest information ...

Mr. Legrand: Wait a minute.

Petro: Yes?

Mr. Legrand: If I understand correctly, you want our our principal engineers to meet once a month?

Petro: Yes. Such meetings are an important part of our plans. Didn't you know that?

Mr. Legrand: No. I've just now found out about this from you.

Petro: Uh, yes. Holding such meetings is our intention.

Mr. Legrand: Where?

Petro: What?

Mr. Legrand: Where are you going to hold these meetings?

Petro: Hmm. Well, we could discuss that later. But we had thought that these conferences could take place, for example, here one month, the next month in Geneva, then in London, then in Frankfurt--a series of meetings in each city.

Mr. Legrand: If I understand correctly, you want my chief engineer to go take one or two days out of each month to go to these meetings?

Petro: That's our idea, yes.

Mr. Legrand: To talk about new developments?

Petro: Exactly.

Mr. Legrand: This is impossible.

Petro: Impossible? Why?

Mr. Legrand: I know that the Geneva project is important. You have explained to us exactly why.

Petro: Yes, it is very important. I think there is no doubt about that.

Mr. Legrand: And you want us to put one of our principal engineers at your disposal each month.

Petro: Yes, exactly.

Mr. Legrand: But I can't allow my principal engineer to go to meetings in all the cities of Europe all the time. There is too much work to do. You should content yourself with one of our junior engineers.

Petro: I was hoping that we could arrive at some arrangement about that.

Mr. Legrand: My senior engineers have a lot of work that requires their ongoing attention. They simply cannot go to your meetings. The cost would be neglecting some important details of their work.

EXERCISE 2: Explaining situations.

Guide: Petro's trip to Paris did not have very favorable results for him. Petro had a lot of things to say during this meeting, and some of the things he said caused a few problems. I would like to practice the type of language that people use in these situations.

A man: It is necessary for you to explain the situation as it is now.

A woman: Okay, here is how it is:

A man: Tell us about the new project.

A woman: We are now about to start a new project.

A man: Tell us about the meeting.

A woman: What is needed is for us to meet regularly.

A man: Once a month in Paris.

A woman: What is needed is for us to meet regularly once a month in Paris.

A man: To discuss new projects.

A woman: What is needed is for us to meet regularly once a month in Paris to discuss new projects.

A man: Mention when the details will be discussed.

A woman: We can arrange questions of detail later on.

A man: Probably.

A woman: We can probably arrange questions of detail later on.

A man: We will be able to discuss them.

A woman: We will be able to discuss questions of detail when we meet next.

A man: Where? In Paris?

A woman: We will be able to discuss questions of detail when we meet next in Paris.

Guide: We will meet once again in Paris No. I don't think that I could speak about such things, at least not at this moment. But let's return to Petro, who has flown from Paris to his offices in Geneva.