text:
Robotics/Components/Audio

The audio components of a robot are those parts that allow it to make sounds, either for entertainment purposes or to convey information.

This can be done through simple sound chips: cheap integrated circuits which allow certain sounds to be played with very few external components. These are commonly used in toys.

Other means are memory chips storing samples, a DAC and an amplifier, an MP3 player or voice synthesiser software on a portable PC.

The Theoretical Edge
Generating simple sounds is easy. All you need is an oscillator in the range 20 to 20.000Hz, an amplifier and a speaker. Such a circuit can generate any tone that a human can hear. By changing the frequency of the oscillator you change the emitted tone. Qbasic has a command that does just this: sound. Sound lets you specify a few parameters, with the most important being the frequency. By changing this frequency over time simple sound effects could be produced.

A better way to generate sound is sampling:

A sound wave has an intensity that varies over time. A microphone (with preamplifier) can convert this intensity to an electric signal with the same shape. An Analog to Digital Converter (ADC) can then convert this electric signal in a digital number. This is, however, not a continuous process but a discrete process, this means that every x ms the amplitude (voltage or current) of the signal is measured and converted to a digital number. This results in a digital approximation of the original signal. How good this approximation is depends on how frequently the signal is sampled. Of course more samples means more memory space is consumed and also more expensive hardware is needed. The price of an ADC depends on precision (how many bits represent the sample) and how many samples it can take per second (there are more parameters, but those are pretty much out of scope for this book).

Now you have an array of numbers. Of course now you want to turn this array back into sound. This is done with a Digital to Analog Converter (DAC). This part converts a digital value back into an electric signal. After this DAC there is a filter to smooth the wave, an amplifier and a speaker. Feed the array sample by sample to the DAC at the same rate as they were sampled and you hear the original sound back.

The advantage of this approach is it's (relative) simplicity. The disadvantage is its enormous memory consumption.

More advanced methods would be storing encoded sound (e.g. MP3). This is more tricky since it needs a decoder, yet these days integrated circuits with complete mp3 decoders exist, which makes this an interesting method to look for.

The Different Components
this section should cover some basic info on these circuits and ICs

Preamplifier
A preamplifier is used when a signal with very small amplitude has to be amplified. Preamplifiers are very linear (they cause very little distortion in the signal) but are very inefficient with power. They amplify a signal, coming from e.g. a microphone, which commonly has an amplitude of 1mV or less to a more useful amplitude of 100mV and up. Since they are so inefficient preamplifier circuits aren't used for power amplifiers.

Amplifier
Amplifiers allow a low power signal to be outputted through a speaker with significant power. Amplifiers commonly allow some distortion of the signal in order to preserve power. (except for class A amplifiers which consume a lot of power, but have little distortion).

Amplifiers can be built with ICs, discrete components or bought as a module.

Analog to Digital Converter ADC
An analog to digital converter (short: ADC) converts an analog signal to a digital value. ADCs have a certain accuracy, expressed in bit, e.g. 8bit, 10bit and 16bit. This means that the ADC will have a binary number with 8, 10 and respectively 16 bits. The highest value represented by this binary number correspondents to the reference voltage put on a special input of the ADC. e.g. If we have an 8bit ADC and we put on this special input 5V, then the value 255 means 5V. It's precision will be 1/255 * 5 V or 0.02V. Each time we add 1 to the binary number, the represented voltage increases by 0.02V. A second point about ADCs is their timing. ADCs take some time to do a conversion. The faster they are, the more accurate they digitalise the signal (or in other words the higher the frequency of a signal can be), and the more expensive they are.

Digital to Analog Converter
The DAC converts a digital value into a voltage level. The work either with a reference voltage or "rail-to-rail", which means that their highest digital input value represents a voltage level (almost) equal to the DACs supply voltage. Simulare to the ADC the DAC has a certain accuracy in bit and requires some time to make a conversion.

Oscillators
An oscillator generates a repetitive signal. This can be of pretty much any shape you want, but most common shapes are sine, square, saw-tooth and triangle waves and many different forms of pulses.

Dedicated sound Chips
There are many ICs specially designed for producing sound effects.

 * Oscillators: These output a signal with a user definable frequency. By varying the frequency you can make different sound effects.
 * Sound chips: These output particular sound effects (e.g. motor sounds). These can't be changed.
 * Sound recording and playback chips: These can record sounds for a short period of time (some can record several different samples) and can play these back afterward.

title: Robotics/Components/Audio


text:
System Monitoring with Xymon/Other Docs/HOWTO

How do I clone maintenance records from one xymon to the other one ?
The front-end web GUI is to collect information and in the end send out bb command with "disable" syntax.

Found out the maintenance status of a host

 * bb xymon-server-name "hobbitdboard color=blue fields=hostname,testname,disabletime,dismsg"

Disable a host

 * bb xymon-server-name "disable hostname.testname $timeframe $REASON"

Enable a host

 * bb xymon-server-name "enable hostname.testname"

Enable All hosts with blue record that in maintenance mode
Why ?, Useful when you need to populate the records from hobbit server A to B.

How to have pca work with xymon ?
pca is a perl script that can report and install patch missing patches from Sun's patches databases for all versions of Solaris OS.

There are two ways to integrate pca with xymon monitoring tool.

Server side patch analysis
Run "showrev -p" and "pkginfo -x" on xymon client and run pca.pl on xymon server to analyze missing patch for all the clients.

Client side patch analysis
Run pca.pl on xymon client for missing patches analysis and send in lists of missed patch to xymon server.
 * pca software and its dependent software need to be deployed as part of xymon client package.
 * pca.pl need to be configure to query internal Solaris patch database reside on xymon server.
 * Need to set up a local pca proxy server to store all the patch zip files and main solaris patch database.
 * Use pca command to update missing patch after getting approvals to update the missing patches.

Transparent Authentication against Active Directory 2003 with Apache and CentOS 5
Here, I (Stewart L) will explain the steps I went through to get a Linux server joined to our Active Directory 2003 infrastructure and to authenticate users against the domain without them being required to enter credentials.

This is against an AD 2003 structure. If you are operating in a 200 or NT domain, this might not work for you, but it should point you on your way.

I'll make a few assumptions at this point for the example.
 * You are setting up a webserver to be named web1.example.com.
 * Your domain is called EXAMPLE and your kerberos Realm is named EXAMPLE.COM
 * You have a domain account named EXAMPLE\Bob that is authorized to add machines into the domain.
 * Your Domain controller is dc1.example.com.

Install Packages
You obviously need Apache installed. You will also need the mod_auth_kerb package to authenticate against the domain. It is also much easier if you use the system-config-authentication tool in the authconfig-gtk package.

Join the Machine to the Domain
Before you can join a machine to a domain, you must have a few items taken care of...
 * The hostname (excluding the domain) should be 15 characters or less.
 * The system clocks should be synchronized. Use NTP for this.
 * Your /etc/hosts file needs to be properly set up. You should have a localhost entry pointing to 127.0.0.1 and an entry that has your fully-qualified host name pointing to its assigned IP address.

With that out of the way, we can begin configuring authentication.

 * 1) Run system-config-authentication as root.
 * 2) On the Authentication tab, Enable Kerberos and Winbind
 * 3) Configure Kerberos.
 * 4) REALM = EXAMPLE.COM
 * 5) Check the boxes for using DNS to resolve hosts to realms and locate KDCs.
 * 6) KDC and Admin Sevrer can be left blank
 * 7) Click ok.
 * 8) Configure Winbind
 * 9) Domain = EXAMPLE
 * 10) Security Model = ads
 * 11) ADS Realm = EXAMPLE.COM
 * 12) Domain Controllers = dc1.example.com
 * 13) Click ok
 * 14) Edit your /etc/samba/smb.conf file and make sure that your netbios name is the same as your hostname. This should be the host part only, not the domain.

Join the Domain
As the root user, run the following commands. You will have to enter a password for Bob after both commands. This is the domain. By default you have to have a local account on the box to authenticate against AD, meaning if there is not a bob account on web1.example.com, bob cannot log in with his domain password.

Configure an AD User
This is where things become a little convoluted. We are going to create a user account in AD that the web server will use for authentication. There are a number of different versions and service packs out there for Windows Server 2000 and 2003. Check http://grolmsnet.de/kerbtut/ if you have problems with this part.

 * Create a user in AD named http_web1.
 * Set this account so that the password never expires.
 * On the command line of the Domain Controller, run this line

 * This will create a keytab file in C:\temp that you need to move to your webserver and place in /etc/http.

Configure Apache
Your configuration should look something like this...

It is possible to change the Authname a new name. Check http://modauthkerb.sourceforge.net/ for more info on specific configurations.

Configure Firefox (Optional)

 * 1) Type about:config in the URL bar
 * 2) Modify the following "Preference Name"
 * 3) *network.negotiate-auth.delegation-uris - Example.com
 * 4) *network.negotiate-auth.trusted-uris - Example.com
 * 5) *network.automatic-ntlm-auth.trusted-uris - Example.com

What

 * red alert storm:
 * caused by death of a few switches and bad bb-hosts configuration that missing router dependency directive.
 * human error on configuring fping access control list.
 * purple storm:
 * caused by Xymon server went into very high CPU load itself that prevent itself from running the Xymon daemon themselves properly thus all machines went into purple due lack of message update within 30 minutes.

How to fix

 * Deploy mail filter to restrict the volume of alerts Xymon server can send out.

Why ?

 * To make global variable changes on all hobbit clients.
 * Examples: To configure all your clients to send hobbit messages from one to two Xymon servers. This will need to modify hobbitclient.cfg on all clients. If you have small pool of clients, manually editing by login into each machines is ok. But for a pool of 3000 clients, this change is better done via clientudpate or cluster shell plus rsh approach.
 * This wiki page is to verify if xymon's clientupdate really work for this need.

What need to be done ?
bash-2.05$ diff hobbitclient.cfg hobbitclient.cfg.new 3,4c3,4 < BBDISP="hobbit.test.com"        # IP address of the Hobbit server < BBDISPLAYS=""                  # IP of multiple Hobbit servers. BBDISP must be "0.0.0.0". --- > BBDISP="0.0.0.0"     # IP address of the Hobbit server > BBDISPLAYS="hobbit.test.com hobbit2.test.com" # IP of multiple Hobbit servers. BBDISP must be "0.0.0.0". bash-2.05$ if [ "$TEMPDEBUG" = 1 ]; then echo "$DATA"                           # Send it to stdout else $BB $BBDISP "$LINE"                    # SEND IT TO BBDISPLAY fi if [ "$TEMPDEBUG" = 1 ]; then echo "$DATA"                           # Send it to stdout else if [ "$BBDISP" = "0.0.0.0" ];then for i in "$BBDISPLAYS" do       $BB $i "$LINE"                     # SEND IT TO BBDISPLAYS done else $BB $BBDISP "$LINE"                    # SEND IT TO BBDISPLAY fi
 * Update hobbit-client.cfg on hobbit clients with new hobbit-client.cfg locate in central hobbit server. The new hobbit-client.cfg contain new configuration to send hobbit messages to two hobbit server.
 * diff of old and new hobbit-client.cfg file.
 * Make sure/Modify all the scripts in ext directory send messages to BBDISPLAYS.
 * temperature module.
 * original
 * 1) Report the data to the $BBDISP host
 * changes for two hobbit servers.
 * 1) Report the data to the $BBDISP host

RTFM first

 * http://www.hswn.dk/hobbit/help/manpages/man1/clientupdate.1.html
 * Looks feasible from about manpage.

Procedures
To manage updating clients without having to logon to each server, you can use the clientupdate utility. This is how you setup the release of a new client version.
 * 1) make sure the xymon client external scripts send  message to "BBDISPLAYS", not just "BBDISP" variable.
 * 2) this require the review of external(home-grown) script got deployed to be modified to send messages to two xymon servers.
 * 3) Create the new client: Setup the new client $BBHOME directory, e.g. by copying an existing client installation to an empty directory and modifying it for your needs. It is a good idea to delete all files in the tmp/ and logs/ directories, since there is no need to copy these over to all of the clients. Pay attention to the etc./ files, and make sure that they are suitable for the systems where you want to deploy this new client. You can add files - e.g. extension scripts in the ext/ directory - but the clientupdate utility cannot delete or rename files.
 * 4) Package the client: When your new client software is ready, create a tar-file of the new client. All files in the tar archive must have filenames relative to the clients' $BBHOME (usually, ~hobbit/client/). Save the tarfile on the Hobbit server in ~hobbit/server/download/somefile.tar. Don't compress it. It is recommended that you use some sort of operating-system and version-numbering scheme for the filename, but you can choose whatever filename suits you - the only requirement is that it must end with ".tar". The part of the filename preceding ".tar" is what Hobbit will use as the "clientversion" ID.
 * 5) Configure which hosts receive the new client: In the client-local.cfg(5) file, you must now setup a clientversion:ID line where the ID matches the filename you used for the tar-file. So if you have packaged the new client into the file linux.v2.tar, then the corresponding entry in client-local.cfg would be clientversion:linux.v2.
 * 6) Wait for hobbitd to reload client-local.cfg:   hobbitd will automatically reload the client-local.cfg file after at most 10 minutes. If you want to force an immediate reload, send a SIGHUP signal to the hobbitd process.
 * 7) Wait for the client to update:  The next time the client contacts the Hobbit server to send the client data, it will notice the new clientversion setting in client-local.cfg, and will run clientupdate to install the new client software. So when the client runs the next time, it will use the new client software.

Getting started with clientupdate
bash-3.00$ ./bbcmd 2009-01-28 20:50:39 Using default environment file /etc/opt/hobbitclient42/hobbitclient.cfg bash-3.00$ ./clientupdate --level 4.2.0 bash-3.00$ bash-3.00$ cat clientversion.cfg 4.2.0 bash-3.00$ bash-3.00$ ./clientupdate 2009-01-28 20:53:25 No new version string! bash-3.00$
 * find out the hobbiclient version, we are running 4.2.0 from output of "clientupdate --level"
 * or cutout the version from clientversion.cfg.
 * do the update but no new version on server side.

Error messages from clientupdate
bash-3.00$ ./clientupdate 2009-01-28 20:49:13 xgetenv: Cannot find value for variable ETCBBHOME Segmentation Fault (core dumped) bash-3.00$
 * core dump because we didn't run bbcmd first. clientupdate.c need to be updated to avoid the coredump.

bash-2.05$ ./clientupdate --update=4.2.1 tar: blocksize = 0 2009-01-28 16:03:39 exec of clientupdate --suid-setup failed: No such file or directory bash-2.05$
 * "--suid-setup failed: No such file or directory", no xymon server side configuration at all.

Add SUDO path to hobbit client main script
We need to modify hobbitclient.sh$.{OS} to use sudo without prompting password on root privileged access. Following is an patch for Linux client. you need to do similar patching for other OS types.

configure your sudoer file
hobbits = hobbit server user account. hobbitc = hobbit client account. [root:myhbserver] cat /opt/sudo16/etc/sudoers |grep -v ^$ |grep -v ^# root   ALL=(ALL) ALL User_Alias HOBBITUSER = hobbits Cmnd_Alias HOBBITSVERTCMDS = /opt/fping24/sbin/fping HOBBITUSER ALL = NOPASSWD: HOBBITSVERTCMDS User_Alias HOBBITUSER = hobbitc Cmnd_Alias HOBBITCLIENTCMDS = /usr/sbin/swapinfo,/usr/sbin/vxdisk HOBBITUSER ALL = NOPASSWD: HOBBITCLIENTCMDS [root:myhbserver]

The server side rrd configuration file
[flexlm] TITLE License counts YAXIS #

DEF:matlab=flexlm.rrd:MATLAB:AVERAGE LINE2:matlab#FF0000:Matlab COMMENT:\n GPRINT:matlab:LAST:Matlab \: %5.1lf%s (cur) GPRINT:matlab:MAX: \: %5.1lf%s (max) GPRINT:matlab:MIN: \: %5.1lf%s (min) GPRINT:matlab:AVERAGE: \: %5.1lf%s (avg)\n

DEF:simulink=flexlm.rrd:SIMULINK:AVERAGE LINE2:simulink#CC3333:Simulink COMMENT:\n GPRINT:simulink:LAST:Simulink \: %5.1lf%s (cur) GPRINT:simulink:MAX: \: %5.1lf%s (max) GPRINT:simulink:MIN: \: %5.1lf%s (min) GPRINT:simulink:AVERAGE: \: %5.1lf%s (avg)\n

DEF:commtlb=flexlm.rrd:CommunicationToolb:AVERAGE LINE2:commtlb#66CC66:Communication Toolb COMMENT:\n GPRINT:commtlb:LAST:Communication Toolb \: %5.1lf%s (cur) GPRINT:commtlb:MAX: \: %5.1lf%s (max) GPRINT:commtlb:MIN: \: %5.1lf%s (min) GPRINT:commtlb:AVERAGE: \: %5.1lf%s (avg)\n

DEF:ctrltlb=flexlm.rrd:ControlToolbox:AVERAGE LINE2:ctrltlb#6666CC:Control Toolbox COMMENT:\n GPRINT:ctrltlb:LAST:Control Toolbox \: %5.1lf%s (cur) GPRINT:ctrltlb:MAX: \: %5.1lf%s (max) GPRINT:ctrltlb:MIN: \: %5.1lf%s (min) GPRINT:ctrltlb:AVERAGE: \: %5.1lf%s (avg)\n

DEF:fintlb=flexlm.rrd:FinancialToolbox:AVERAGE LINE2:fintlb#00FF00:Financial Toolbox COMMENT:\n GPRINT:fintlb:LAST:Financial Toolbox \: %5.1lf%s (cur) GPRINT:fintlb:MAX: \: %5.1lf%s (max) GPRINT:fintlb:MIN: \: %5.1lf%s (min) GPRINT:fintlb:AVERAGE: \: %5.1lf%s (avg)\n

DEF:fztlb=flexlm.rrd:FuzzyToolbox:AVERAGE LINE2:fztlb#66FF66:Fuzzy Toolbox COMMENT:\n GPRINT:fztlb:LAST:Fuzzy Toolbox \: %5.1lf%s (cur) GPRINT:fztlb:MAX: \: %5.1lf%s (max) GPRINT:fztlb:MIN: \: %5.1lf%s (min) GPRINT:fztlb:AVERAGE: \: %5.1lf%s (avg)\n

DEF:imgtlb=flexlm.rrd:ImageToolbox:AVERAGE LINE2:imgtlb#0000FF:Image Toolbox COMMENT:\n GPRINT:imgtlb:LAST:Image Toolbox \: %5.1lf%s (cur) GPRINT:imgtlb:MAX: \: %5.1lf%s (max) GPRINT:imgtlb:MIN: \: %5.1lf%s (min) GPRINT:imgtlb:AVERAGE: \: %5.1lf%s (avg)\n

DEF:compiler=flexlm.rrd:Compiler:AVERAGE LINE2:compiler#6666FF:Compiler COMMENT:\n GPRINT:compiler:LAST:Compiler \: %5.1lf%s (cur) GPRINT:compiler:MAX: \: %5.1lf%s (max) GPRINT:compiler:MIN: \: %5.1lf%s (min) GPRINT:compiler:AVERAGE: \: %5.1lf%s (avg)\n

DEF:neuralnettlb=flexlm.rrd:NeuralNetworkTool:AVERAGE LINE2:neuralnettlb#FFFF00:Neural Network Tool COMMENT:\n GPRINT:neuralnettlb:LAST:Neural Network Tool \: %5.1lf%s (cur) GPRINT:neuralnettlb:MAX: \: %5.1lf%s (max) GPRINT:neuralnettlb:MIN: \: %5.1lf%s (min) GPRINT:neuralnettlb:AVERAGE: \: %5.1lf%s (avg)\n

DEF:opttlb=flexlm.rrd:OptimizationToolbo:AVERAGE LINE2:opttlb#00FFFF:Optimization Toolbo COMMENT:\n GPRINT:opttlb:LAST:Optimization Toolbo \: %5.1lf%s (cur) GPRINT:opttlb:MAX: \: %5.1lf%s (max) GPRINT:opttlb:MIN: \: %5.1lf%s (min) GPRINT:opttlb:AVERAGE: \: %5.1lf%s (avg)\n

DEF:distributedtlb=flexlm.rrd:DistribComputingT:AVERAGE LINE2:distributedtlb#CC66CC:Distrib Computing T COMMENT:\n GPRINT:distributedtlb:LAST:Distrib Computing T \: %5.1lf%s (cur) GPRINT:distributedtlb:MAX: \: %5.1lf%s (max) GPRINT:distributedtlb:MIN: \: %5.1lf%s (min) GPRINT:distributedtlb:AVERAGE: \: %5.1lf%s (avg)\n

DEF:pdetlb=flexlm.rrd:PDEToolbox:AVERAGE LINE2:pdetlb#CCCC66:PDE Toolbox COMMENT:\n GPRINT:pdetlb:LAST:PDE Toolbox \: %5.1lf%s (cur) GPRINT:pdetlb:MAX: \: %5.1lf%s (max) GPRINT:pdetlb:MIN: \: %5.1lf%s (min) GPRINT:pdetlb:AVERAGE: \: %5.1lf%s (avg)\n

DEF:signaltlb=flexlm.rrd:SignalToolbox:AVERAGE LINE2:signaltlb#66CCCC:Signal Toolbox COMMENT:\n GPRINT:signaltlb:LAST:Signal Toolbox \: %5.1lf%s (cur) GPRINT:signaltlb:MAX: \: %5.1lf%s (max) GPRINT:signaltlb:MIN: \: %5.1lf%s (min) GPRINT:signaltlb:AVERAGE: \: %5.1lf%s (avg)\n

DEF:simulctrl=flexlm.rrd:SimulinkControlDe:AVERAGE LINE2:simulctrl#CCCC00:Simulink Control COMMENT:\n GPRINT:simulctrl:LAST:Simulink Control \: %5.1lf%s (cur) GPRINT:simulctrl:MAX: \: %5.1lf%s (max) GPRINT:simulctrl:MIN: \: %5.1lf%s (min) GPRINT:simulctrl:AVERAGE: \: %5.1lf%s (avg)\n

DEF:stattlb=flexlm.rrd:StatisticsToolbox:AVERAGE LINE2:stattlb#999966:Statistics Toolbox COMMENT:\n GPRINT:stattlb:LAST:Statistics Toolbox \: %5.1lf%s (cur) GPRINT:stattlb:MAX: \: %5.1lf%s (max) GPRINT:stattlb:MIN: \: %5.1lf%s (min) GPRINT:stattlb:AVERAGE: \: %5.1lf%s (avg)\n

DEF:symboltlb=flexlm.rrd:SymbolicToolbox:AVERAGE LINE2:symboltlb#FFCC00:Symbolic Toolbox COMMENT:\n GPRINT:symboltlb:LAST:Symbolic Toolbox \: %5.1lf%s (cur) GPRINT:symboltlb:MAX: \: %5.1lf%s (max) GPRINT:symboltlb:MIN: \: %5.1lf%s (min) GPRINT:symboltlb:AVERAGE: \: %5.1lf%s (avg)\n

DEF:idtlb=flexlm.rrd:IdentificationTool:AVERAGE LINE2:idtlb#FF00FF:Identification Tool COMMENT:\n GPRINT:idtlb:LAST:Identification Tool \: %5.1lf%s (cur) GPRINT:idtlb:MAX: \: %5.1lf%s (max) GPRINT:idtlb:MIN: \: %5.1lf%s (min) GPRINT:idtlb:AVERAGE: \: %5.1lf%s (avg)\n

How can I create a hobbit client custom test script?
Anything that can be automated via a script or a custom program can be added into Hobbit. A lot of extension scripts are available for Big Brother at the www.deadcat.net archive, and these will typically work without modifications if you run them in Hobbit. Sometimes a few minor tweaks are needed - the Hobbit mailing list can help you if you don't know how to go about that.

But if you have something unique you need to test, writing an extension script is pretty simple. You need to figure out some things:

 * What name will you use for the column?
 * How will you test it?
 * What criteria should decide if the test goes red, yellow or green?
 * What extra data from the test will you include in the status message?

A simple client-side extension script looks like this:

You will notice that some environment variables are pre-defined: BB, BBDISP, MACHINE are all provided by Hobbit when you run your script via hobbitlaunch. Also note how the MSG variable is used to build the status message - it starts out with just the "Bad stuff status", then you add data to the message when we decided what the status is.

To run this, save your script in the  directory (i.e. in the   directory off where you installed the Hobbit client), then add a new section to the   (or   on the server) file like this:

Optionally you may want to add a description for the new column your custom script creates. On the hobbit *server* edit the file  adding a line like: myscript;The myscript column shows the status of my custom script.;

How to write server side module ?
Server-side scripts look almost the same as client-side scripts, but they will typically use the bbhostgrep utility to pick out hosts in the bb-hosts file that have a special tag defined, and then send one status message for each of those hosts. Like this:

Note that for server side tests, you need to loop over the list of hosts found in the bb-hosts file, and send one status message for each host. Other than that, it is just like the client-side tests.

This script is saved in ~/hobbit/server/ext/my_script.sh, and you add its description in ~hobbit/server/etc/hobbitlaunch.cfg:

The service can now be added to the bb-hosts file:

How can I test a custom script before adding it to the running agent ?
Before activating a new custom script it is useful to check its functionality and output on stdout.

To run a script on the command line, you have to load all the xymon environment and replace the $BB command by "echo".

You can easily do this on-the-fly by inserting this code snippet and then test your script by running it on the command line: There is nothing you have to change in your script if you want to add it to your hobbitlaunch.cfg after testing.

This works for client-scripts as well as for server side scripts.

Of course you have to change the path settings to your environment.

Hobbit Client and ZFS monitoring
bash-3.00# metastat |tail -3 Device  Reloc  Device ID c0t1d0   Yes    id1,sd@SSEAGATE_ST336607LSUN36G_3JA6ECDF00007418PJ5V c0t0d0  Yes    id1,sd@SSEAGATE_ST336607LSUN36G_3JA6EGFK00007418A7PM bash-3.00#
 * See the ZFS tutorial for a simple ZFS pool example.
 * In this example, we have the 3rd and 4th disks available for zfs. 1st and 2nd are under SVM already.

bash-3.00# format Searching for disks...done

AVAILABLE DISK SELECTIONS: 0. c0t0d0  /pci@1c,600000/scsi@2/sd@0,0 1. c0t1d0  /pci@1c,600000/scsi@2/sd@1,0 2. c0t2d0  /pci@1c,600000/scsi@2/sd@2,0 3. c0t3d0  /pci@1c,600000/scsi@2/sd@3,0 Specify disk (enter its number): bash-3.00# zpool create -f mypool mirror c0t2d0 c0t3d0 bash-3.00# zpool list NAME                   SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT mypool                33.8G   84.5K   33.7G     0%  ONLINE     - bash-3.00#

" STRING="$STRING`/usr/sbin/zpool status -xv`" FIRST_LINE="zfs - health: $FIRST_LINE_HEALTH - capacity: $FIRST_LINE_CAP"
 * Mike Rowell  has the following ZFS hb external module.

$BB $BBDISP "status $MACHINE.$TEST $DISPCOLOR `date` $FIRST_LINE $STRING"
 * 1) What: Sent out the final bb message to hobbit server.

bash-3.00$ export BB=/opt/hobbitclient42/bin/bb bash-3.00$ export BBDISP="hobbit.my.com" bash-3.00$ export MACHINE="hobbitclient.my.com" bash-3.00$ ksh -x zfs.ksh + DISKYELL=80 + DISKRED=90 + TEST=zfs + COLOR=GREEN + STRING= + + /usr/sbin/zpool status -xv STRING= all pools are healthy + date + /opt/hobbitclient42/bin/bb hobbit.my.com status .zfs Thu Apr 12 10:05:43 CDT 2007   all pools are healthy bash-3.00$
 * Testing on hobbit client.
 * Check that the data arrives in Hobbit server.

Use a Big Brother script without converting it to hobbit
Run the latest Big Brother client on your hobbit server. Execute the desired script from this client, it will report to hobbit. e.g. using the latest "bb-mrtg.pl" script to monitor your mrtg graphs

Add Custom Graphs
Read the man page for hobbitd_rrd

Add support for a database backend
I haven't done it, but it will be easy to implement. For reporting you just want to know what status changes have occurred, so you simply need to come up with a Hobbit "worker module" that receives messages from the Hobbit "stachg" channel, and stores them in your database.

Worker modules can be written in whatever language you fancy, although I'd advise against shell-scripts for performance reasons. Perl, Python, C, C++, Java ... pick your favourite programming tool.

All the module needs to do is read the messages off it's standard input filehandle, and store them in the database. Each message is formatted like this:

@@stachg|timestamp|sender|origin|hostname|testname|expiretime|color|prevcolor|changetime @@

It is easy to pick out the first line and grab all of the needed information from that.

There's a sample module provided with the Hobbit sources, see the "hobbit-4.0-RC4/hobbitd/hobbitd_sample.c" file which illustrates how to build a worker module in C.

Installing Hobbit as client with a BB server
There are a few gotchas if you want to use Hobbit as client with a BB server: the Hobbit client usually gets its configuration from the server, and the standard protocol is different. To make it backwards compatible requires a few workarounds on hobbit client side.

Example for Debian Unix OS, adjust as required otherwise.

Start as root We are hobbit!
 * Answer client
 * Answer hobbit
 * Answer /home/hobbit
 * Answer 10.0.4.5 (replace with the IP address of your BB server)

 * Add MACHINEDOTS="f.q.d.n", i.e. the client's fqdn
 * Add --local on the line that starts hobbitlaunch

 * Add BBMAXMSGSPERCOMBO=1

We are root again!

Create /etc/init.d/hobbit as:

Monitor Hobbit clients in a DMZ using reverse SSH tunnels
Note: Other methods for doing this type of thing are documented on the System_Monitoring_with_Xymon/Administration_Guide page.

Operating system: Red Hat Enterprise Linux 5 Hobbit version: Hobbit 4.2.0

In some scenarios you may want to monitor Hobbit clients that are separated from the Hobbit server by a firewall (e.g. Hobbit clients located in a DMZ) and where you cannot open port 1984 inbound from the Hobbit clients to the Hobbit server. An alternative would be to use reverse SSH tunnels, using Padraig Lennon's ssh_tunnels.sh script.

Note that for the purpose of this document, the hobbit user's home directory is assumed to be.

Passwordless SSH Authentication
For the hobbit user, set up passwordless SSH authentication between the Hobbit server and the Hobbit clients.

On the Hobbit server, generate a private/public keypair with an empty password:
 * 1) su - hobbit

$ ssh-keygen -t dsa

Generating public/private dsa key pair. Enter file in which to save the key (/usr/lib/hobbit/.ssh/id_dsa): Created directory '/usr/lib/hobbit/.ssh'. Enter passphrase (empty for no passphrase): <-- Ensure that you create an empty passphrase, i.e. just hit Enter. Enter same passphrase again: Your identification has been saved in /usr/lib/hobbit/.ssh/id_dsa. Your public key has been saved in /usr/lib/hobbit/.ssh/id_dsa.pub. The key fingerprint is: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:x:xx:xx hobbit@servername

This should create the following files in the .ssh directory located in the hobbit user's home directory: $ ls -ld /usr/lib/hobbit/.ssh drwx-- 2 hobbit hobbit 4096 Aug 14 12:16 /usr/lib/hobbit/.ssh

$ ls -lR /usr/lib/hobbit/.ssh /usr/lib/hobbit/.ssh: total 12 -rw--- 1 hobbit hobbit 668 Aug 14 12:14 id_dsa -rw-r--r-- 1 hobbit hobbit 603 Aug 14 12:14 id_dsa.pub If for some reason the creation of the keypair fails, try manually creating the .ssh folder in the hobbit user's home directory before generating the keypair. Ensure that the folder is owned by the hobbit user and group, and that its permissions are correct: Now you want to copy the generated public key (id_dsa.pub) to the Hobbit client. Ensure that the .ssh folder exists for the hobbit user on the Hobbit client with the same permissions as above, and then copy id_dsa.pub to the Hobbit client: $ scp /usr/lib/hobbit/.ssh/id_dsa.pub hobbit@hobbitclient:/usr/lib/hobbit/ On the Hobbit client:
 * 1) chown hobbit:hobbit /usr/lib/hobbit/.ssh
 * 2) chmod 700 /usr/lib/hobbit/.ssh

Rename the public key copied from the Hobbit server from "id_dsa.pub" to "authorized_keys": $ mv /usr/lib/hobbit/id_dsa.pub /usr/lib/hobbit/authorized_keys Move the authorized_keys file to the hobbit user’s .ssh directory: $ mv /usr/lib/hobbit/authorized_keys /usr/lib/hobbit/.ssh/ Check that the authorized_keys file has the correct permissions (chmod 644): $ ls -l /usr/lib/hobbit/.ssh/authorized_keys -rw-r--r-- 1 hobbit hobbit 603 Aug 14 12:20 /usr/lib/hobbit/.ssh/authorized_keys From the server, SSH to the client. You should add the client's host key to the server's known_hosts file when prompted, but should not be prompted for a password.

Configure the Hobbit client
Add the following line to /usr/lib/hobbit/client/etc/hobbitclient.cfg on the Hobbit client: BBDISP="127.0.0.1" Configure /etc/default/hobbit-client as follows: HOBBITSERVERS="127.0.0.1" Restart the hobbit-client service on the Hobbit client.

Configure the Hobbit server
Copy the ssh-tunnels.sh script to the following location on the Hobbit server, and make sure that its permissions are correct (chmod 755): -rwxr-xr-x 1 root root 5469 Aug 14 12:30 /usr/lib/hobbit/server/ext/ssh-tunnels.sh Modify /etc/hobbit/hobbitlaunch.cfg: [ssh-tunnel] ENVFILE /usr/lib/hobbit/server/etc/hobbitserver.cfg CMD $BBHOME/ext/ssh-tunnels.sh   LOGFILE $BBSERVERLOGS/ssh-tunnels.log INTERVAL 1m Add entries for the Hobbit clients to the /etc/hobbit/bb-hosts file (use "noconn" if pings aren't allowed from server to client): xx.xx.xx.xx   clientname       # noconn ssh-tunnel If the Hobbit clients' names cannot be resolved by the Hobbit server, add entries for those clients to the Hobbit server's /etc/hosts file: xx.xx.xx.xx   clientname

As of ssh-tunnel.sh version 0.0.3 you can specify a non-standard ssh port to connect to. Example:

xx.xx.xx.xx   clientname       # noconn ssh-tunnel:2222

You could also create a DNS entry for the client, whichever is easier.

As the hobbit user, manually SSH to each Hobbit client at least once, and when prompted add the Hobbit client's host key to the Hobbit server's known_hosts file: $ ssh clientname The authenticity of host 'clientname (xx.xx.xx.xx)' can't be established. RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:x:xx:xx. Are you sure you want to continue connecting (yes/no)? yes Restart the hobbit service on the Hobbit server:
 * 1) service hobbit restart

Confirm functional
Consult /var/log/hobbit/ssh-tunnels.log for any error messages, e.g. ssh: clientname: Name or service not known Solution: Ensure that the Hobbit server can resolve the Hobbit client's name, e.g. add an entry for the Hobbit client to the Hobbit server's /etc/hosts file. Host key verification failed. Solution: Manually SSH to the Hobbit client from the Hobbit server at least once and add the Hobbit client's host key to the Hobbit server's known_hosts file when prompted.

You can verify that the ssh tunnels have been successfully created: $ ps -ef | grep ssh hobbit   2187     1  0 Aug14 ? 00:00:02 ssh -fnNR 1984:hobbit:1984 clientname hobbit   2805     1  0 Aug14 ? 00:00:02 ssh -fnNR 1984:hobbit:1984 clientname2 You should also see a new column called "ssh-tunnel" generated in the Hobbit server's web interface.

Mobile phone clients
If you want to check your hobbit / Xymon-Status from your mobile phone you can use the following apps:

Android
XyMon by dot knowledge: http://www.dot-knowledge.de/Home/android/xymon-monitor (There you find a link to the Android market place)

Xydroid by Rune B. Broberg: http://mihtjel.dk/xydroid/ - a recent project of delivering Xymon statuses on Android phones.

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


text:
User:Garrett

Hello! I don't have a proper page here yet. If you want to find out about me please visit my Wikipedia user page. If you want to contact me please leave a note on my talk page and I'll get right back to you. Maybe.

title: User:Garrett


text:
Movie Making Manual/perf

 * Previously known as "Techniscope"
 * THX 1138 was shot in Techniscope.
 * Natively 2.35:1 aspect ratio
 * Uses half as much film as 4-perf
 * Is difficult to find cameras and telecine facilities
 * The cut for 4:3 TV is radical because there's no top and bottom to expand into
 * The new, fine-grained stocks make 2-perf very attractive
 * Be very careful about hairs in the gate and lens flare because there's almost no frame line
 * Tough to optically print but it can be done (e.g. Multivision235)

=Links=
 * http://www.multivision235.com.au/
 * http://www.widescreenmuseum.com/widescreen/wingts1.htm
 * http://www.widescreenmuseum.com/widescreen/whywidefilm-oct1930.htm
 * http://www.cinematography.net/Pages%20DW/2-perf_35mm.htm

title: Movie Making Manual/perf


text:
Movie Making Manual/perf (continued)

 * Uses less film than 4-perf
 * Is natively 1.85:1
 * Easy to get the cameras and telecine

Links

 * http://www.cinematography.net/Pages%20DW/3PerfSuper35mmForScope.htm

title: Movie Making Manual/perf (continued)


text:
Cookbook:Kung Pao Chicken

| Meat Recipes | China

Kung pao chicken (gong bao in Mandarin) is a spicy Sichuan recipe made with diced chicken, chili peppers and peanuts, named after a court official. It is a popular dish served at Chinese restaurants throughout the United States and the UK.

Chicken/Marinade

 * 1 lb boneless, skinless chicken meat, cut into 1-inch cubes
 * 2 tbsp oyster sauce
 * 2 tbsp sherry or rice wine
 * 1 tsp cornstarch

Spices

 * 4 tbsp cooking oil
 * ½ cup shelled peanuts
 * 5–10 small dried red chile peppers
 * ¼ tsp crushed red pepper flakes
 * 1 tsp crushed garlic

Vegetables

 * 1 green bell pepper, cut into ½-inch dice
 * 1 red bell pepper, cut into ½-inch dice
 * 1 can (5 oz) sliced bamboo shoots (optional), drained
 * 3 stalks celery, chopped

 * 4 green onions, cut into ½-inch pieces, including green tops

Sauce

 * 2 tbsp soy sauce
 * 2 tbsp rice vinegar
 * 4 tbsp chicken broth
 * 1 tsp garlic powder
 * 1 tsp sugar
 * 1 tsp cornstarch
 * 1 tsp sesame oil
 * 2 tsp Hoisin sauce

Procedure

 * 1) Measure and prepare all ingredients before cooking.
 * 2) Mix all chicken/marinade ingredients in a bowl, stir well, and allow to marinate for ½ hour.
 * 3) Mix sauce ingredients in another bowl and set aside until needed. Stir out any lumps.
 * 4) Heat wok or large frying pan until water drops bead up and dance on the hot surface.
 * 5) Add cooking oil to wok. Wait a few seconds for oil to heat up.
 * 6) Add remaining spice ingredients to wok and stir fry for 30 seconds.
 * 7) Add chicken mixture to wok and stir fry for about 4 minutes (until chicken is cooked through).
 * 8) Add vegetables to wok and stir fry for about 2–3 minutes.
 * 9) Stir sauce and add to wok. After the sauce comes to a boil, cook for about 1 minute (until sauce thickens).
 * 10) Stir to coat other ingredients with thickened sauce.
 * 11) Pour onto large platter and serve immediately.

Notes, tips, and variations

 * Serve with steamed or fried rice.

Warnings

 * Don't eat the dried, small red chili peppers unless you like spicy-hot foods. They are mainly used to season the pot and are not usually eaten.
 * Use care in handling the raw chicken. Wash hands and utensils that come into contact with raw chicken. Don't allow raw chicken or its juices to come into contact with other foods, unless they are to be cooked afterwards.

title: Cookbook:Kung Pao Chicken


text:
Botany/Plant cells discussion

The questions posed in Chapter 2. Plant cells are discussed further on this page. Remember, some questions are intended to be thought-provoking and more than one answer may be "correct". Students and contributors are encouraged to expand upon the discussions here.

1. Can you think of reasons why macroscopic organisms are multicellular?

We know that building any structure from small, similar or identical units will confer advantages on that structure over a similar structure molded in one piece, despite the fact that the former approach is likely to be more time consuming to undertake. Consider building a house out of clay (mud), something that is done in many parts of the world where the climate is dry. Typically the mud is attached to other structural elements (called wattle) of sticks or even grasses. In time the mud dries and hardens, forming a shelter that lasts, so long as it is not permitted to get too wet for too long. Yet, such structures have also been built for centuries in very wet places like London and New York. However, the problem of the dried clay returning to soft mud in a heavy downpour was solved by dividing the clay into small units that could be fired in a kiln to a dryness and hardness that completely resisted rewetting. We call these units bricks. Using bricks (small units) for construction of walls provided many benefits to the resulting structure: the units could receive special treatment so the resulting structure could be made stronger (and thus taller) and very resistant to weathering. Constructing from small units meant materials could be made elsewhere, then transported and assembled on the site. Structures could be designed to be identical to other structures, for more efficiency in construction and use.

Although multicellular organisms are not exactly like brick houses, think of how the advantages of building structures out of bricks can be advantageous properties for an organism as well.

We believe that life arose as contained chemical reactions in very small structures that reproduced. It is hard to imagine that anything else would be regarded as "living". Chemical reactions in an open environment, although more or less identical with the reactions carried out within a cell, simply lack permanence or continuity: the reactions run their course until reactants are used up. Our definition of life requires control over such chemical reactions, and the complexity of reactions involved in living systems requires boundaries that separate the life reactions from the outside environment. However, with a membrane (a separating boundary) the area enclosed cannot efficiently increase in size indefinitely. The larger the volume inside (the bigger the "cell"), the further from the membrane reactions near the middle become. Since reactions inside require access to substances in the environment outside and perhaps removal of useless or harmful substances from inside to outside, a living cell cannot just grow to a large size.

<< Chapter 2

title: Botany/Plant cells discussion


text:
Cookbook:Cucumber Sprout Sandwich

| Sandwiches

These cucumber sprout sandwiches are stuffed with cucumbers, alfalfa sprouts, tomatoes, and avocados.

Ingredients

 * 2 slices whole wheat bread
 * 2 tbsp cream cheese, softened
 * 6 slices peeled cucumber
 * 2 tbsp alfalfa sprouts
 * 1 tsp olive oil
 * 1 tsp red wine vinegar
 * 1 tomato, sliced
 * 1 romaine (cos) lettuce leaf
 * 2 tbsp pepperoncini, sliced
 * ½ avocado, peeled and mashed
 * Salt to taste
 * Pepper to taste

Procedure

 * 1) Spread 1 tablespoon cream cheese on each slice of bread.
 * 2) Arrange cucumber slices in a single layer on one slice of bread.
 * 3) Cover same slice of bread with alfalfa sprouts, sprinkle with oil and vinegar.
 * 4) Layer same slice of bread with tomato slices, lettuce, and pepperoncini.
 * 5) Spread mashed avocado on other slice of bread.
 * 6) Add salt and pepper to taste
 * 7) Assemble sandwich and serve immediately.

title: Cookbook:Cucumber Sprout Sandwich


text:
Italian/Grammar/Conjunctions

Conjunctions / Congiunzioni
The Italian language offers a variety of conjunctions that are used to connect words, phrases, and clauses. Here are some commonly used conjunctions and their meanings:

Example: Studio duramente affinché possa ottenere buoni risultati (I study hard so that I can achieve good results).
 * affinché (so that): used to express purpose or intention.

Example: Non posso uscire perché sono malato (I cannot go out because I am sick).
 * perché (because): used to give a reason or cause.

Example:  Benché abbia studiato tanto, non ho superato l'esame (Although I studied a lot, I did not pass the exam).
 * benché, per quanto, sebbene (although): used to introduce a contrast or contradiction.

Example: Non verrò alla festa a meno che tu non venga anche tu (I will not come to the party unless you come too).
 * a meno che (unless): used to express a condition that must be met in order for something to happen.

Example: Preferirei parlare con lui prima che vada via (I would prefer to speak to him before he leaves).
 * prima che (before): used to indicate that an action or event takes place before another.

Example: Andrò a cena fuori dopo che avrò finito il lavoro (I will go out for dinner after I finish work).
 * dopo che (after): used to indicate that an action or event takes place after another.

Example: Puoi prendere la mia macchina purché la riporti entro le 8 (You can borrow my car provided that you return it by 8 o'clock).
 * purché (provided that): used to express a condition or requirement.

Example: Non posso cucinare senza che tu mi dia gli ingredienti (I cannot cook without you giving me the ingredients).
 * senza che (without): used to indicate the absence of something.

Example: Mi piace il calcio, ma non mi piace giocare (I like soccer, but I do not like playing).
 * ma (but): used to introduce a contrast or contradiction.

Example: Ho comprato pane e latte (I bought bread and milk).
 * e (and): used to connect two or more elements.

Example: Vuoi la pasta o la pizza? (Do you want pasta or pizza?).
 * o, oppure (or): used to present alternative options.

Example: Non voglio il caffè, voglio il tè invece (I do not want coffee, I want tea instead).
 * invece (instead): used to indicate a contrast or alternative.

Example: Ho studiato molto quindi mi aspetto un buon voto (I studied a lot, so I expect a good grade).
 * dunque, perciò, quindi (so, therefore): used to indicate a consequence or result.

Example: Nonostante piova, uscirò. (Despite the rain, I will go out.)
 * Nonostante (despite): Nonostante is used to express a contrast or opposition between two elements. It is used to introduce a subordinate clause that contradicts or goes against the main clause.

Example: Finché studierai, avrai successo. (As long as you study, you will succeed.)
 * Finché (as long as): Finché is used to express a condition or duration of time. It is equivalent to the English phrase "as long as" and introduces a subordinate clause that explains a condition that needs to be met.

Example: Se piove, starò a casa. (If it rains, I will stay at home.)
 * Se (if): Se is used to introduce a conditional clause. It is equivalent to the English word "if" and shows a possibility or requirement for something to happen.

Example: Non posso uscire poiché sono malato. (I can't go out since I am sick.)
 * Poiché (since): Poiché is used to indicate a cause or reason for something. It is similar to the English word "since" and introduces a subordinate clause that explains the cause behind the main clause.

Example: Anche se ho sonno, devo studiare. (Even though I am tired, I have to study.)
 * Anche se (even though): Anche se is used to express a contrast or concession. It is translated as "even though" in English and introduces a subordinate clause that contradicts or goes against the main clause.

Example: Non mi piace lo sport, tuttavia devo fare esercizio. (I don't like sports, however, I have to exercise.)
 * Tuttavia (however): Tuttavia is used to introduce an alternative or a contrast to what has been stated previously. It is equivalent to the English word "however" and shows a different perspective or opinion.

Example: Ho fame, quindi mangerò una pizza. (I am hungry, so I will eat a pizza.)
 * Quindi (so): Quindi is used to indicate a consequence or a conclusion. It is translated as "so" in English and shows the result of the actions or circumstances described in the main clause.

By using these conjunctions correctly, you can enhance your Italian writing and better express relationships between different elements in a sentence.

Italienisch/ Konjunktion Italiano/Gramática/Conjunciones Italiano/Congiunzione

title: Italian/Grammar/Conjunctions


text:
Biological Psychology

Biological psychology is the scientific study of the biological bases of behavior and mental states. Biological psychology is also known as biopsychology, psychobiology, physiological psychology, behavioral neuroscience, and neuropsychology.

Contents

 * 1) /Basic Biology/
 * 2) /Anatomy of the Nervous System/
 * 3) /Nerve Cells and Nerve Impulses/
 * 4) /Communication at Synapses/
 * 5) /Development and Plasticity of the Brain/
 * 6) /Vision/
 * 7) /The Other Sensory Systems and Attention/
 * 8) /Movement/
 * 9) /Wakefulness and Sleep/
 * 10) /Internal Regulation/
 * 11) /Reproductive Behaviours/
 * 12) /Emotional Behaviours/
 * 13) /The Biology of Learning and Memory/
 * 14) /Lateralization and Language/
 * 15) /Psychological Disorders/

External links and resources
"Postcards from the Brain Museum" by Brian Burrell provides a historical perspective on the search for connections between biology and psychology.

title: Biological Psychology


text:
User:Evil Monkey

See me at w:en:user:Evil Monkey

title: User:Evil Monkey


text:
User talk:Evil Monkey

Talk to me at w:en:user:Evil Monkey

title: User talk:Evil Monkey


text:
Puzzles/Logic puzzles/Gold Coins

Puzzles | Logic puzzles | Gold Coins

5 pirates of different ages have a treasure of 100 gold coins. On their ship, they decide to split the coins using this scheme: the oldest pirate alive will propose how the coins will be distributed among the pirates, and all pirates remaining will vote for or against it. If more than 50% of the pirates vote for it, then the coins will be distributed as such. Otherwise, the pirate proposing the scheme will be thrown overboard, and the process is repeated with the pirates that remain.

Assuming that all 5 pirates are extremely intelligent, rational, greedy, and do not wish to die, (and are rather good at math for pirates) what will happen?

Solution

title: Puzzles/Logic puzzles/Gold Coins


text:
Puzzles/Logic puzzles/Gold Coins/Solution

The eldest pirate will propose a 97, 0, 1, 0, 2 split.

Working backwards, splits in terms of younger to older:

2 Pirates: Pirate two splits at 100, 0. Otherwise, and perhaps even then, pirate 1 (the youngest) votes against him and over he goes!

3 Pirates: Pirate three splits at 0, 1, 99. Pirate 1 (the youngest) is going to vote against him no matter what (see above), but this way, pirate 2 will vote for him, to get at least one gold out of it.

4 Pirates: Pirate four splits of 1, 2, 0, 97. This way, pirate 1 will vote for him, and so will pirate 2 - they're getting more than they would under 3 pirates.

5 Pirates: Pirate five splits of 2, 0, 1, 0, 97. This way, pirate 1 will vote for him, and so will pirate 3 - they're both getting better than they would under 4.


text:
Consciousness Studies/The Philosophical Problem/Machine Consciousness/Turing Test

A test devised by pioneering AI researcher Alan Turing to determine whether or not an AI is "strong"; that is, whether or not it is capable of behaving like a human. As described by Turing, the test consists of an AI and a human being siting in separate rooms. A researcher sits separate from both of them in a different room. The researcher does not know which room houses which entity, yet he can communicate freely with both the AI and the human. If the researcher is incapable of differentiating between the human and the AI, then the AI has "passed" the Turing Test.


text:
User:Triddle~enwikibooks

 * ''For more information see my Wikipedia user page.

Created

 * How-to
 * I couldn't believe this page didn't exist yet. I put something there; I hope other people can improve it.

 * How_To_Build_A_Pykrete_Bong
 * I moved this after someone removed it from Wikipedia. I thought it was really unique so I rescued it here.

Significant Edits

 * Demystifying Depression
 * I used lots of perl to help give the book a consistent look and to fix notation and hyperlink the figures.

Links
Work in progress

title: User:Triddle~enwikibooks


text:
Cookbook:California Curry Chicken

 * Curry

This dish is an attempt to replicate the flavor of curry chicken dishes that are served at Indian restaurants in California.

Meat and vegetables

 * 4 tbsp cooking oil
 * 1 cup diced yellow onions
 * 2 tsp minced garlic
 * 1 lb boneless chicken meat, cut into cubes
 * 6 small potatoes, peeled, quartered, and cooked (boiled, baked, or steamed)

Spices

 * 4 tbsp mild curry powder
 * 1 tbsp chile powder
 * 1 tbsp paprika
 * 1 tsp ground cumin
 * 1 tsp garlic powder
 * 2 tsp cardamom powder
 * 1 tsp turmeric powder
 * 1 tsp mustard powder
 * ¼ tsp ground cinnamon
 * 1 bay leaf

Sauce

 * 1 ½ cups (12 oz) coconut milk
 * 3 cups water
 * 1 cup yogurt
 * 1 can (12 oz) diced tomatoes, with liquid
 * 4 tbsp butter

Thickener

 * ¼–½ cup of instant mashed potato flakes

 * Salt to taste
 * Pepper to taste

Procedure

 * 1) Heat cooking oil in a 4-quart stockpot.
 * 2) Add onions and garlic. Fry for about 1 minute.
 * 3) Add chicken. Stir-fry for about 5 minutes.
 * 4) Add cooked potatoes.
 * 5) Add all the spices, and stir to coat chicken and potatoes. Cook for about 5 minutes more.
 * 6) Add sauce ingredients, stir well, bring to a simmer, and cook for 10 minutes.
 * 7) Add ¼ cup of mashed potato flakes, and stir until curry is thickened. If a thicker curry is desired, add additional potato flakes a tablespoon at a time until desired thickness is achieved.
 * 8) Add salt and pepper to taste.

Notes, tips, and variations

 * Serve with steamed rice.

title: Cookbook:California Curry Chicken


text:
Botany/Liliopsida

<< Contents Page | Chapter 15 | Chapter 16 |

Chapter 16. Magnoliophyta (II)

The Class Liliopsida constitutes the monocotyledonous angiosperms and includes some of the largest plant families such as the orchids with some 20,000 species and the grasses with perhaps 15,000 species. In the previous chapter we learned how to separate the two major flowering plant groups: the dicotyledons and the monocotyledons, and covered a number of dicot families. In this chapter, we shall do the same by considering representative monocot families.

The liliopsids are considered to form a monophyletic group evolved from an early dicot. The oldest fossils presumed to be monocot remains date from the Early Cretaceous (Herendeen & Crane, 1995). Features that are generally common to monocots include vascular bundles that are irregularly distributed (in cross-section of the stem), leaves with parallel venation, and flower parts in multiples of three. Although true secondary growth is absent, most growth habits are found in the group including floating and submerged aquatics, lianas, trees, epiphytes, and forbs of all sizes (Hahn, 2005).

Grasses

The second largest (to Orchidaceae) and one of the most successful of families of monocotyledons is the grass family, classified as the Family Poaceae (or Gramineae) and comprising nearly 10,000 species distributed more widely than any other angiosperm family. This family is also the most important economically, providing species that are the world's staple food supply. The grasses have reduced floral structures compared with most angiosperms for the reason that grasses are almost exclusively pollinated by wind. Therefore, these plants have had no cause to evolve floral structures that are attractive to insect (or other animal) pollinators. The grasses also have a fairly specific body plan that is immediately recognizable and very successful for colonizing seasonally dry landscapes, yet modifiable to suit a wide range of ecological conditions. Bor (1960) stated:
 * The amazing diversity of shapes, sizes, texture and so on in the various parts that make up the vegetative and the reproductive shoot is alike the admiration and exasperation of the taxonomist. It can be said... that in no other family of monocotyledons, or dicotyledons for that matter, has a relatively simple structure been so altered in the process of evolution as to produce the amazing wealth of forms known to us.  It is as if Evolution, in an excess of exuberance, had added this, subtracted that, enlarged this, suppressed that, in fact tried out every possible combination and permutation of characters to produce a family as complicated and as difficult [taxonomically] as, if not more difficult than, any other.

 * Read Poaceae ( Links need not be pursued at this time )

Anatomy
Grasses have fibrous roots and three kinds of stems: culms, rhizomes, and stolons. The culm is the main aerial shoot to which leaves and flower head are attached. The culm is a rounded or slightly flattened stem with one or more solid joints known as nodes. The leaves are attached at the nodes and if the stem is not simple but branched, branches arise only at nodes. Roots may also develop from a node where the node comes into contact with the ground (as in decumbent and prostrate stems). The portion of the stem between the nodes is called the internode, and is usually hollow in temperate zone grasses and solid in tropical grasses (Rotar, 1968). All or a portion of an internode may be surrounded by the basal part of the leaf known as the sheath.

A rhizome is a modified stem that grows underground. Rhizomes are jointed (thus distinguishable from roots) with bladeless leaves (scales) arising from the joints. Rhizomes enable the grass plant to spread horizontally as new culms develop vertically from the joints. Thus, grasses with extensive rhizome development will form a turf rather than distinct tufts or bunches.

A stolon is a stem that creeps across the surface of the ground, and is really a basal branch of the culm that will develop roots and shoots from some or all of its nodes. Like a rhizome, a stolon results in a spreading or turf forming grass plant.

Grasses display two types of leaves: (1) green leaves consisting of a sheath and blade, and (2) reduced leaves consisting of only a sheath. With but a few exceptions, the green leaves arise at nodes alternately up the culm. Leaves that are concentrated near the base where the internodes are very short are termed basal leaves; leaves arising at nodes along an elongated culm are cauline leaves. These vegetative leaves typically surround the culm as a sheath, then diverge outward (at the "collar") as a long narrow blade with longitudinal parallel venation. If the veins are conspicuous, the leaf is striate; if the veins are raised, the leaf is ribbed. The sheath of the leaf surrounds and protects the shoot. In some species, the sheath extends beyond the next node, so that consecutive leaf sheaths overlap, hiding the nodes. The longitudinal edges of the sheath may overlap, completely surrounding the culm, or the sheath may be tubular (the margins connate). The upper end of the sheath, known as the sheath mouth is the collar on the lower (outer) surface that may be produced into short appendages called auricles. On the inner, upper surface of the leaf, between the sheath and the blade, is an outgrowth called a ligule. This may be a flap of membranous tissue or simply a fringe of hairs, an inconspicuous rim, or even absent all together, marked only by dark tissue.

Although there is variation in leaf blade shape, most grasses have linear-shaped leaves that are many times longer than wide, with margins that are parallel then taper to a point at the apex. Grasses that grow in shady places may have lanceolate or even ovate leaf blades.

Flowers of grasses are borne in an inflorescence or flower head which terminates the culm and other branches of the stem. Smaller units of the inflorescence are called spikelets and these are arranged on one or more branches in a wide variety of different ways to which the standard terminology for inflorescences can be applied, but using the spikelet instead of the individual flower. Thus:

 * In a panicle, spikelets are carried on branches of the axis.
 * The panicle can be either open or dense and crowded, with the branches so short that they are concealed by the spikelets, forming a false spike.

 * In a spike, the spikelets are carried, unstalked, directly on an unbranched axis, called a rachis.
 * In a raceme some or all of the spikelets are attached to the rachis by stalks called pedicels.

Chapter 16 ~ References

 * Bor, N. L. 1960. The Grasses of Burma, Ceylon, India and Pakistan. Pergamon Press, London. 767 pp.
 * Hahn, William J. 2005. Monocotyledons in: Tree of LIfe web project at Monocotyledons.
 * Herendeen, P. S. and P. R. Crane. 1995. The fossil history of the monocotyledons. pp. 1-21 in: P. J. Rudall, P. J. Cribb, D. F. Cutler, & C. J. Humphries (eds.). Monocotyledons: systematics and evolution. Royal Botanic Garden, Kew.
 * Rotar, Peter R. 1968. Grasses of Hawaii. Univ. of Hawaii Press, Honolulu. 355 pp.

Laboratory Exercises for Chapter 16 >> Discussion of questions for Chapter 16 >>>

title: Botany/Liliopsida


text:
Demystifying Depression/Normal Neuron Communication

Neuron Communication
Communication between neurons relies on molecules called neurotransmitters. Without going into the details of this process, it suffices to say that for a neuron to transmit information to another neuron, it must release a neurotransmitter in the small gap between the two neurons, called a synapse.

More than 300 different neurotransmitters are known to be used in one role or another by the human brain. Three of them in particular, serotonin, dopamine, and, norepinephrine have been identified as playing a major part in the physiology of clinical depression although others may also be important.

In a variety of clinical trials it has been shown that the use of drugs that mimic or affect how neurotransmitters are produced, destroyed, and moved in the brain can have verifiable effects on depression.

For example, many popular anti-depressants are SSRIs. They decrease the amount of serotonin that neurons remove from synapses.

Although the effective use of these drugs shows that depression can be affected by physical changes in the Brain no one is sure exactly how these medication are effective.

Depression affects the area of the brain responsible among others for memory, learning, and tasks that require concentration and organisation.


text:
Demystifying Depression/Suicide

Suicide
"Suicide is a permanent solution to a temporary problem". There is much wisdom to this sentence, and it is probably the best advice you can give a depressed person. Unfortunately, during that critical stage is difficult for them to visualise the temporary nature of the problem, and suicide is not uncommon. If you a have a friend or a loved one going through that stage of a depression, do take the possibility seriously and do what you can to prevent it from happening. In particular, make sure they are being handled by a competent professional. Fortunately, especially if people are young, this stage will not last very long, typically just a few days or weeks.

title: Demystifying Depression/Suicide


text:
Demystifying Depression/The Role of Sports

The Role of Sports
The role played by sports and physical exercise in depression is far more complex than either the sports good and sports bad mantras would lead one to assume. Moreover, I would say that this is one area where our current understanding of depression is sorely incomplete. Consequently, beware that much of the material in this section is conjectural. I am well aware that most people's gut will be to dismiss my conjectures as pure rubbish, since "everyone knows that sports are good for you". A couple of years ago I would have whole-heartedly agreed with them, but I have learnt otherwise in the meantime. Furthermore, read carefully and you will see that I do not deny that sports can be good for you. I simply add a poignant however to the issue of sports and depression.

This issue is complex enough to warrant a number of subsections. I will first make a distinction between the temporary improvement of mood brought by sports, versus the long-term actual improvement of the depression. Second, I will put forth the tentative mechanism of why moderate amounts of exercise can help to recover from depression. Third, I will describe the caveats of doing exercise to recover from a depression. At last, I will describe a real-world example of how sports can be used to make people be more active during a depression, with the drawback that recovery takes longer.

Sports or exercise is challenging for people experiencing depression primarily because of the engagement of mind, body and spirit. For example, persons depressed as a result of sexual trauma have spent an unknown length of time separated intellectually from their body(ies). One exercise that allows for a kind of autonomy while truly strengthening the body and connecting mind and body is lap swimming. Here an individual can focus on breathing as one would while engaged in meditation. There are also various kinds of disguises involved in swimming starting with swim goggles. The combination of the "mask" and the single swim lane results in a safe environment.

Swimming requires regular participation. The outcomes (for me) are still being recognized, but the main effort to connect or to reconnect the mind and the body through a concentrated routine of swimming for exercise are being realized.


text:
Demystifying Depression/Feeling Good vs Actual Improvement

Feeling Good vs. Actual Improvement
Sports alone can lift up a depression, says one of the most common pieces of advice about the illness. Unfortunately, this statement is grossly incomplete, often tragically so. If you have properly understood the roles played by adrenaline and cortisol (take a look again at the section on ../The Stress System/ to refresh your memory), you already have a glimpse of why this is such misleading advice. Exercise can indeed momentarily lift up the subjective feeling of a depressed person, but that is all caused by adrenaline. It is therefore critical to make the distinction between the momentary mood improvement caused by exercise (which is undisputed), and whether it translates into an actual improvement of the underlying depression.

Please refer back to ../The Stress System/. There I have speculated on recent findings which indicate that a process known as neurogenesis ("neuron birth") is implicated in recovery from depression. This process takes about three weeks to occur*, which also happens to be the average time required for antidepressants to have an effect. This coincidence has led some to hypothesise that antidepressants work by stimulating neurogenesis . The point of this digression is to emphasise that anything which has a positive effect on recovery from depression is likely to require at least three weeks to work and will often take longer to be noticeable. One should therefore be a bit suspicious of any cure which seems to work instantly, as is the case of exercise.

Now the question is: does exercise also have a long-term positive effect on depression, or is it all a short-term illusion?


text:
Demystifying Depression/Why Moderate Exercise May Sometimes Help

Why Moderate Exercise May Sometimes Help
A moderate amounts of aerobic exercise seem to help many depressed and healthy individuals.

At last, a word of advice. If you think you have a depression, you should seek professional help. It might be tempting for some people to try to exercise their way out of a depression, but chances are you might actually be making your condition worse. See next section for details.


text:
Demystifying Depression/Caveats of Treating Depression with Exercise

Caveats of Treating Depression with Exercise
Looking back on Figure 2 from ../The Stress System/, some people might suggest that a person with a severe depression could avoid the crashing down simply by exercising every single day. In a sense, as soon as your body begins to crash, you simply do more exercise to rev it up again. You could therefore reap the positive temporary effects of exercise, and hopefully avoid the negative side. This routine "sort of" works, but is also extremely dangerous, as I will proceed to explain.

The major problem is that having too many stress hormones flowing through veins has a negative effect on sleep. And sleep is crucial for recovery. So people with more severe depressions who exercise every day will not sleep as much as they should, and the recovery will therefore take longer (see next section for a real world example). More seriously, if the amount of exercise is too high, they might even regress. Even more seriously, if the underlying depression worsens, people might be tempted to increase the amount of exercise to compensate, which will quickly lead them into a very dangerous downwards spiral. In a sense, advising a seriously depressed person to exercise is like telling a drunken individual that the best way to avoid a hangover is to keep drinking; or advising a heroin addict that the best way to avoid the withdrawal symptoms is to keep injecting the drug.

This is unfortunately not widely known, but even healthy individuals who exercise too much can develop the symptoms of a depression. This is sometimes referred to as the athletic overtraining syndrome, and by now you should have understood the basic mechanism of why it arises.


text:
Demystifying Depression/A Real World Example

A Real World Example
At last I will provide you a real world example which illustrates the caveats of doing sports during depression. Some companies here in the Netherlands rely on a sports-intensive routine to put people back to work sooner. In basic terms, the routine involves running every single morning for a period between one hour and one hour and a half. The running is performed under controlled conditions, to prevent the heart rate from ever going over 130 beats per minute. If you understood the role of sports in depression, you will also realise just how this scheme works: it basically gets their brains running on adrenaline. This is not entirely harmless, as during the recovery period the people will have elevated heart rate and stress hormones flowing through their veins. Also, with all that adrenaline in their systems, they will not sleep as much as they could, which makes a full recovery last much longer, up to three years. The advantage of this scheme? Well, they do begin working (part-time of course) much sooner than otherwise.

At this point you might be wondering how they do not realise what is really happening. Remember that adrenaline is an insidious hormone, which makes one feel good even as it revs up the body, and this scheme requires them to exercise every single day without exception. Obviously, the idea is to keep them from crashing down from all that adrenaline, and therefore to prevent them from realising their true status. Also, there is widespread ignorance about depression among Dutch GPs, which makes it all the more unlikely that someone will realise that there is something fishy going on. Personally, I find this scheme to be utterly mad. But then, I am not a Calvinist.

Should you be thinking that this scheme is also a perfectly viable alternative way of curing a depression—one which takes longer, is potentially harmful to the general health, but does allow one to become active sooner rather than later—I would even be tempted to agree with you. However, I still think that the ultimate choice should reside with each individual person. It is their health we are talking about, after all. These people should be properly informed of all possible alternatives and the implications of each one. This is currently not happening.


text:
Demystifying Depression/Depression and Ageing

Depression and Ageing
You do not see 60-year olds having the same lifestyle as 20-year olds. Even a 40 or a 30-year old probably would not be able to accommodate for a long time all the intense living and partying of their youth. We naturally accept that our physical abilities decrease slowly with age, and our brains are no different. Mind you, in this context I will speak only of the brain's endurance, not of the general cognitive abilities. Therefore, do not interpret the graph in Figure 9 as "getting dumber with age". (Though it is most likely that cognitive abilities also decrease with age. Luckily, the added experience can in large part compensate for that).

Bear in mind that I am largely speculating here, but I would not be surprised if the reason why depression tends to strike first towards the mid 20s (and this is a fact) is related to a dip in the maximum normal capacity which happens after adolescence. Many people simply fail to accommodate for the necessary changes in their lifestyle, and thus find themselves constantly going over their (now slightly diminished) limits.

Still on the speculation front, consider the fact that people tend to sleep less as they get older. Could it be related with the graph in Figure 9? If sleep is indeed fundamental for the brain to repair itself, and if age cuts down the requirements for the maximum normal capacity, it is not too far-fetched to imagine that people would therefore require less sleep as they get older.

Speculations aside, do not look with gloom at the graph. Ageing is not a death sentence as far as feeling well is concerned. People do generally accommodate by making changes to their lifestyle, and remember that depression only arises should you constantly go over your limits. Furthermore, in percentage terms, the natural decrease might not even be large. (Unfortunately, our current understanding of depression does not yet allow us to make precise quantifications. See the section ../Quantifying Depression/ for details).


text:
Demystifying Depression/The Genetic Link

The Genetic Link
I have not brought up the genetic link up till now, but it is without doubt one of the primary risk factors. Depression seems to run in families, and even after the environmental effects are taken into account, the genetic link is still clearly there. Some studies have shown that approximately one out of every three people have a genetic predisposition to develop a depression. However, like in many other cases, the interplay between genes and environment is also relevant for depression: only about half of those with the genetic predisposition will actually develop the illness. In any case, should you have cases of depression among close blood relatives, do take it as a warning that you too might be at risk.

Note: A person is most closely related to their siblings, their parents, and their children. In either case, you share with them approximately 50% of your genes (for which there is variance among the breeding population). Grandparents, grandchildren, aunts, uncles, nephews, and nieces are next: the shared portion is approximately 25%. In these cases, the conditional probability of having a depression knowing that your relative had a depression is higher than the above mentioned absolute probability of about one third. For relatives farther beyond the genetic proximity measure (cousins, etc.), the conditional probability approaches the absolute probability for the general population, and is therefore not quite as relevant as an indicator.


text:
Demystifying Depression/Is Depression on the Rise

Is Depression on the Rise?
Is the incidence of depression really on the rise? Statistics seem to point that way , and considering the risk factors, that should not be altogether surprising. The truth is that many modern hobbies are actually very demanding on the brain. Should a person pull long hours at work and then come home to face an equally demanding hobby, there is a very good chance that they are pushing the brain past its limit.

This is likely to strike a chord with the Kuro5hin crowd: surfing the web and blogging should be seen as work as far as the brain is concerned. In a similar note, information overload is not just a fancy buzzword: it is a factor contributing to the development of depression. The list is long: mobile phones, news tickers, instant messaging, etc. We seem to be very good at devising ways to overload our brains.

On a more positive note, if one considers the current understanding of the problem, plus the available means to treat it, making serious clinical depression a thing of the past is well within our reach. What is required? Just getting the message across! Sadly, it may prove difficult to overcome centuries of prejudice surrounding mental illness.


text:
Demystifying Depression/Quantifying Depression

Quantifying Depression
You will certainly have noticed the lack of scale in all the graphs herein shown. The truth is that research into depression has not yet reached the quantification stage. This is a pity, as much of the prejudice (especially in getting official recognition for the problem) could be avoided if there were tests which could estimate the seriousness of a depression. Which is not to say that such tests are not possible. In fact, in this section I intend to propose the means by which they could be developed.

At this point you might be thinking that blood pressure already provides a fine estimation. This is only partially true. Foremost, several factors other than stress levels have an effect on blood pressure. Furthermore, blood pressure is a static measure, unable to differentiate between the state of deep depression / low activity and the state of mild depression / high activity. This is an especially crucial distinction in the recovery phase of a depression. (Blood pressure is more reliable during the buildup phase towards a depression precisely because the activity variable tends to be always high, as people struggle to maintain a normal lifestyle).

My suggested test also relies on blood pressure, but adds a dynamic measure of that variable. In short, the idea is to build a graph showing how blood pressure progresses with time as the test subject performs a high-concentration activity. Figure 10 shows what one would be likely to expect from a healthy individual, a mildly depressed one, and one more deeply depressed.

Note that a depressed individual will typically not only have a higher blood pressure at rest, but more importantly, a steeper response curve. This could be the basis for developing an objective test of the seriousness of a depression. It would also be extremely valuable for tracking the progress of the illness.

The test activity is an open question. I would suggest a test which would require both high concentration and short-term memory. In my personal experience, I noticed that the simple game Concentration (the one where you are supposed to pick pairs of cards out of a large set of unturned cards) provokes an almost immediate response. It might be a good candidate for the test.

Obviously, there is a fair amount of noise which makes a precise measurement harder. How well the test subject slept the night before is one variable hard to control. Likewise for the degree to which they are enjoying the activity. Furthermore, other variables such as current medication and time of day would also interfere.

Another advantage of an objective test would be an estimation of how much time would be required until the test subject could be considered cured. I realise that there are several factors interfering with the progress of the illness, but given a large population of test subjects, one could compensate for factors such as age. It is only a matter of statistics, after all. In any case, a rough estimation is a lot better than no estimation at all.

At last, one small note of hope: there is research underway which uses imaging techniques such as fMRI to look directly into the brain and see the changes caused by depression. Unfortunately, it might take quite a long time before such research is put into practical use. The test I proposed is low-tech, potentially a lot cheaper, and could be developed immediately.


text:
Demystifying Depression/The Burnout Syndrome

The Burnout Syndrome
There is much talk (at least in the Netherlands) about the so-called burnout syndrome. And as is often the case, there is more noise than signal in this discussion. First of all, in medical terms, there is no such thing as a burnout. There are depressions, period. A burnout is just a depression whose causes are mostly work-related. Remember that the person's attitude towards the task at hand plays an important role in the biochemistry of the brain. Should you have a job that you find boring and repetitive, or should the surrounding circumstances (overbearing boss, bad corridor atmosphere) make you feel uncomfortable about going to work every day, a depression is likely to develop.

Second, when a person is said to be burned out, what they have is a lingering depression from which they have not yet fully recovered. Also, there are plenty of mildly burned out individuals who have never received any kind of treatment. They often drone through life for years before the problem is diagnosed.

I made a section out of this issue precisely because the general attitude in this country is to dismiss burnout as just a psychological problem, thus being handled with a lot of complacency, or just ignored. This is all the more tragic if one considers the statistics which show the Netherlands to have some of the highest percentages of people affected by this problem. There is indisputably also a psychological component to burnout, but it goes far deeper than that.


text: Demystifying Depression/Happiness

title: Demystifying Depression/Happiness


text:
Demystifying Depression/Facing the Prejudice

Facing the Prejudice
Most of the advice contained in both instalments of this document is based on one very important assumption: society will give you the means to recover. Unfortunately, this is still far from being the case. A seriously depressed person cannot constantly go over their limits if their brains are to be given any chance of recovering. Take the practical example of restarting work: one has to build up the activity slowly, in accordance with the increase of the maximum capacity of the brain (remember Figure 6 from ../The Recovery Process/). Obviously, this requires some sort of official recognition of the particularities of depression. In theory, this is part of the law and recognised in most civilised countries. In practise, things can be very different.

Do not assume that because you live in an otherwise tolerant and socially-minded society, depression will also be well understood. Bear in mind that other factors come into play, most importantly the fact that cure takes a long time, which means it is also very expensive for an employer. Also, the overall stance towards mental illness might be biased by the prevailing religious substrate, influencing attitudes even of non-religious people: take the example of Calvinism here in the Netherlands. All in all, when depression is the subject, do not be surprised when society shows its ugly side. The good old advice of stashing away some six-months worth of salary for a rainy day is very much applicable in the case of depression: you will need it.

Interestingly enough, I see no reason—other than prejudice and bad will—why the state of affairs should remain like this. Take again a look at the section on ../Quantifying Depression/: it is well within our means to devise reliable objective tests to assess the seriousness of a depression and/or to determine when a person is again fit enough to work. Depression itself provides more than enough misery. It is inhumane and cruel that the problem should be compounded by lack of recognition.


text:
Climate Change/Mitigation Strategies/Renewable Energy

Solar power

 * Uncaptured solar energy can convert itself to wind and wave energy, and of course warm the atmosphere. Large scale solar collection systems are few.  One experimental version generated enough power from stored heat collected in a large "ball" containing salt heated to the melting point that they could have generated enough power for a small city a few hours after dark.  Larger scale under ground storage was not mentioned.

 * Solar electric panel are presently over the 10% efficiency point. They actually are more efficient on cold days.

Wind power

 * Wind power systems tend to work best, and so most cost effective, where the wind is often at 30 miles per hour, or so.

Biomass

 * There are reports that it's possible to convert carbohydrates directly to hydrocarbons (Huber et al., Production of Liquid Alkanes by Aqueous-Phase Processing of Biomass-Derived Carbohydrates, Science 3 June 2005: 1446-1450)

Wave power

 * A very conservative estimate of the amount of energy that could be captured from a 6 feet wave across its length and 100 feet wide is 100,000 watts. The north-west Pacific is often considered a storm generator and high wave are not uncommon.  (Kayaks are the favored form of water transport by the natives.)  A sea mount nearing the surface off the coast of California is noted as a shipping hazard due to its high waves.

Tidal power

 * There are places in the world, particularly as one get farther from the equator, where tidal extremes are very significant. The west shore of the Korean peninsula and Norway's fiords are noted for the effect.

Geothermal power

 * The Earth's interior has a radioactive source that some figure is generating the equivalent of 10,000 atomic power plants. Scientists have noted by monitoring the speed and intensity of earthquake energy propagating through the earth that it tends to rise in plumes coming up through the mantle and sometimes penetrating the surface to generate volcanoes and sometimes form islands like Hawaii.  They can note this because some forms of earthquake energy does not like to propagate through molten material.


text:
Cookbook:Tapenade

Tapenade is a traditional provencale paste of olives, anchovies and capers. Although some versions exclude the capers, the word tapenade has its origins in the provencale tapena (caper).

Ingredients

 * 6 cured anchovies
 * 1 tablespoon capers, rinsed and drained
 * 1 cup (240 ml) pitted black olives
 * Extra-virgin olive oil

Procedure

 * 1) Blend the anchovies, capers and olives. For this a blender is better than the traditional mortar and pestle.
 * 2) Mix in a few tablespoons olive oil until smooth.
 * 3) Serve on toast as an amuse-bouche, or with boiled eggs, with goat cheese and roasted peppers, or on potato gnocchi.

title: Cookbook:Tapenade


text: Template:Swedish

title: Template:Swedish


text:
Talk:Super NES Programming/Loading SPC700 programs

I may have made some mistakes when translating the IPL ROM code to an algorithm. In particular, I'm not sure that the cmp instruction on the SPC700 is doing what I think it should do. I believe that a sequence like:

cmp y,$f4

should compute (y - the contents of $f4) and set the N flag if the result is negative. This instruction sequence is used to compare the SPC's counter (in y) with the counter value sent by the SNES (in $f4) to check for the end of a block. Thus, when I send a counter value to terminate the block the SNES is sending, I expect I can send $ff, which is greater than or equal to any value the SPC counter is holding, which therefore should terminate the block, if the SPC follows the algorithm I have outlined in the tutorial. Instead, when tracing with Geiger's Snes9x debugger, I am seeing the SPC compare y (containing a low number) with address $f4, which seems to contain $ff, and it is not setting the N flag. Thus, sending $ff causes the program to lock up. But, for some reason, adding a small (< $80) value to the counter works, even though this should cause the counter to roll over in some cases, which should make the N flag unpredictable. If anyone could help clarify what is going on, I'd be grateful.

Joe Lee 14:40, 3 Jun 2005 (UTC)

 * The cmp does compute y-($f4), but the N flag is simply copied from bit 7 of the result. So if you want the N flag, you should use a value only slightly bigger than Y, e.g. Y+2. $00 - $02 = $fe = N flag set. $7f - $81 = $fe = N flag set. $ff - $01 = $fe = N flag set. Blargg (discuss • contribs) 04:51, 23 January 2014 (UTC)

needs major rewrite
I have several problems with this page. It is unnecessary long, unorganized, not specific enough, and contradicts itself on several occasions.

First of all the SPC loading routine does not match the SNES loading routine. In the SPC loading routine, it says that the spc700 waits for the 65816 to load $cc into audio0, in the SNES loading routine, the 65816 never loads $cc into audio0, implying that the spc700 would be waiting forever.

Another problem is the artical tells you to do it one way without an explanation of why it works. The SNES loading routine should just say to load this here, load that there, but instead it tells you to do some calculations with a counter that isn't hardware specific. Then it says "there are some problems with this method." If there are problems with this method, why is this method still on here? And why is this artical explaning "methods" when the purpose of hardware documents are to show facts?

-- 20:44, 25 May 2010 75.57.185.158

Thanks for the feedback. The textual description of the SNES loading routine does indeed have an incorrect constant, which is why the routines don't seem to match. Note that the assembly code is correct, however, and does send $cc to audio0.

The "problems with the routine" are not fatal -- as noted in the article, it is used successfully in open-source demos. They are merely problems using the routine in the context of this particular program. Perhaps the phrasing could be improved to make this more clear.

As far as the other feedback, it seems you have misinterpreted the purpose of the page. As it says at the top, this is tutorial, not a hardware reference. The goal is to instruct the reader on how create a program that actually plays something on the SPC, without getting into the details of the DSP, SPC assembly, or advanced SNES/SPC communications. It sounds like you want a page like the one on Wikia that just explains how the IPL ROM works, but of course this by itself will not leave you with a program that makes sound. Note that that page also describes "a counter that isn't hardware specific", because the counter is part of the protocol, and the protocol is effectively part of the hardware, since it is loaded on the SPC automatically on reboot.

I'm not sure what to make of the twin criticisms that the page is too long and that it doesn't explain itself enough, since the length is directly due to the amount of explanation. If you know how to reduce the length while improving the explanation, I'd love to hear more about it.

Joe Lee (talk) 14:01, 6 January 2011 (UTC)

Error Message
An "unknown symbol" message appeared when I compile the ROM, could you rewrite it? --LucianoTheWindowsFan (discuss • contribs) 23:49, 12 July 2020 (UTC)


text:
Cookbook:Ambrosia Fruit Salad

| Dessert

Ambrosia Fruit Salad is a sweet mixture of mandarin oranges, fruit cocktail, coconut, and marshmallows coated in whipped cream. It originated in the 1900s and had a period of popularity in the United States. It is widely considered to be a traditional dish, suitable for family gatherings.

Below is one interpretation.

Ingredients

 * 4 cups of mandarin oranges, drained
 * 2 cans of pineapple, drained
 * 2 cups of grapes
 * 3 cups whipped cream
 * 1 cup sour cream
 * 6–8 cups miniature marshmallows

Procedure

 * 1) Mix the mandarin oranges, pineapple, and grapes in a large bowl.
 * 2) Fold in the whipped cream, sour cream, and marshmallows.
 * 3) Chill for at least an hour.
 * 4) Stir again before serving.

title: Cookbook:Ambrosia Fruit Salad


text:
Modern History/Rise of Fascism, Socialism and Communism

Introduction
The beginning of the Twentieth Century saw the rise of an entirely new political environment in Western nations. The previous century had seen the Industrial Revolution replace agriculture as the primary economic model in Western nations, a change accompanied by huge social, political and demographic shifts. Populations which had once been largely rural and engaged in farming or small handicraft work shifted to urban districts filled with factory workers. The new industrial economies created great wealth, but also much alienation, sharpening divisions between economic classes. Workers' movements agitating for better living and working conditions emerged in many nations, and came under the influence of intellectual leaders, largely drawn from the middle and upper ranks of Western society. Some of these leaders pursued radical and Utopian visions of what society should become.

Socialism
Socialist societies had existed before the term Socialism was used and there exist many flavours of Socialism, one of which is Communism. The main ideas of Socialism are, "focusing on general welfare rather than individualism, on co-operation rather than competition, and on laborers rather than on industrial or political leaders and structures" this movement was mainly as a result of the poor working conditions the industrial Revolution ushered in due to the fact there were no labor laws enforcing minimum wage, child labor, or working environments.(see Wikipedia for further information).

Communism
Communism was given a common structure through Karl Marx and Friedrich Engels' book, The Communist Manifesto. According to Marx, society is meant to go through phases of evolution, beginning with a hunter-gatherer society, followed by Feudalism, Capitalism, Socialism, and finally Communism. Marx believed that the final stage could only be achieved through revolution. Although The Communist Manifesto was written in 1848, Marx was not far off with his presumption. After decades as a radical movement on the edges of the political scene, Communism burst onto the world stage in 1917, when the October Revolution in Russia brought the Bolshevik wing of the Russian socialist movement, led by Vladimir Il'ych Lenin, to power. Czarist Russia's military failures, first in the Russo-Japanese War, and then the great hardships of World War I, discredited the Russian monarchy and opened the door first to a moderate liberal government replacing the Czar. Lenin's movement quickly displaced it in turn. As one of the radical visionaries mentioned previously, Lenin and his cohorts envisioned a complete reordering of Russian and potentially all European society under strict Marxist lines.

Communism is concerned with a complete overhaul of the Capitalist system. One of Communism's goals is to create a classless society in which all members are equal both politically and economically. This is exemplified by the phrase commonly associated with Communism, "From each according to his ability, to each according to his need." In other words, members of society will be expected to provide all that they can by their ability both intellectually and physically, and in return people will receive the benefits according to their need. For example, if 'x' was a doctor, x would be expected to put in all of his skills and effort into being a doctor and in return he would get comparatively little due to his lack of real need. Assuming x is an able fit doctor, x does not need as much as 'y'; a disabled child. Y puts into society as much as he can, being very little, but gets out comparatively a lot. Economically, all factors of production are controlled by the commune so that they will ensure the fair distribution of resources, "from each according to his ability, to each according to his need".

Fascism
Fascism was founded in Italy by Benito Mussolini, who began his political career in Socialist circles but came to embrace the idea of an authoritarian, nationalist "corporate state" to achieve his ideals. Unlike Lenin, Mussolini's ideology definitely did not include international revolution, stressing instead the unity and glory of the Italian nation and the dangers posed to the nation and its culture by Communist-inspired workers' revolt. Fascism, though a radical movement, emphasized discipline and devotion to a birth nation rather than fighting for class interests. This made Fascism far more palatable to traditional elements of society such as business interests and the church, who saw in it a means to organize the working and middle classes to defend their interests against Communism. Mussolini chose the title Duce (leader) and modelled his image on the emperors of ancient Rome, developing a "cult of personality" around himself.

His beliefs influenced many during the mid-Twentieth Century, namely Adolf Hitler, Britain's Oswald Moseley and Spain's General Franco. Even Britain's Winston Churchill was an early admirer of Mussolini's rule in Italy. Most people associate Fascism with Hitler; however, Hitler's National Socialism differed in important respects. Similarly to Communism, Fascism took control of the economy with the inauguration of many organizations to control output and prices amongst other things. This was in line with Mussolini's belief and aim of creating economic self-sufficiency.

For his part, Hitler succeeded in this endeavour because he was able to rearm Germany and once World War II began, was able to keep the country functioning. Hitler's political movement, National Socialism, incorporated elements of all three of these movements, but was unique for its anti-Semitic focus and its devotion to the ideal of the Aryan (northern European) race as a superior race, an idea absent from other forms of Fascism. Hitler and Mussolini both looked at the example of Russia to formulate their rule, however. Concentration camps first appeared during the Boer war, but their escalated use by the Soviets may have impressed the Nazis who took their use to fiendish heights. Fascism also engaged in imperialism and the expansion of territory; Mussolini invaded Ethiopia while Hitler invaded the rest of Europe and North Africa.

Conclusion
The importance of these three political theories can be seen simply by looking at the history of the Twentieth Century. The First World War was the end of the "Old World". A "New World" had dawned. From 1917, Russia became "Communist", although a more accurate word would be Stalinist. This caused political polarisation as soon as the First World War was over. Trade was halted with the Soviet Union and it was only until 1924 when the British Labour government recognised it, that the Soviet Union began trading with world powers. Only the rise of Fascism in Italy, Spain, Germany, Romania and other countries did we see the focus weaken on the Soviet Union. Many nations realised the threat Fascism posed to the world and it was only until the outbreak of the Second World War that the world actually took action against it. As soon as the West's fight against Fascism ended in 1945, the fight against Communism commenced with the beginning of the Cold War.

As we can see, the Twentieth Century can be seen as a period of flirtation with new political ideals that caused the world to be politically split for over half a century, starting with the end of the Second World War, and ending with the end of the Cold War.


text:
Talk:Fujitsu Siemens Loox 720/How to use the Audio In via Headphone socket

Wikipedia edit history

 * 18:03, 2005 Jun 1 Zzyzx11 (rv edit by Sururdavids)
 * 17:12, 2005 Jun 1 Sururdavids
 * 16:14, 2005 Jun 1 DJ Clayworth m
 * 16:14, 2005 Jun 1 DJ Clayworth (vfd)
 * 11:59, 2005 Jun 1 Sururdavids (Added article)