From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ista Zahn Subject: Re: Org-mode release 7.01 Date: Mon, 19 Jul 2010 13:47:06 +0000 Message-ID: References: <4EED441F-C7A5-43DD-A3C1-3BF478BAAFD2@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: Received: from [140.186.70.92] (port=54982 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Oaqgu-0001Mb-AE for emacs-orgmode@gnu.org; Mon, 19 Jul 2010 09:47:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Oaqgp-0006z3-R7 for emacs-orgmode@gnu.org; Mon, 19 Jul 2010 09:47:32 -0400 Received: from mail-yx0-f169.google.com ([209.85.213.169]:48111) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Oaqgp-0006yl-Kw for emacs-orgmode@gnu.org; Mon, 19 Jul 2010 09:47:27 -0400 Received: by yxs7 with SMTP id 7so1167750yxs.0 for ; Mon, 19 Jul 2010 06:47:26 -0700 (PDT) In-Reply-To: <4EED441F-C7A5-43DD-A3C1-3BF478BAAFD2@gmail.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode Mailinglist Hi all, Just a quick note that the documentation for org-babel does not appear to be in place yet. That is, when I click on the "Source Code" link from http://orgmode.org/manual/ I get a 404 Not Found error. Looking forward to trying out the new version, thanks to everyone involved! Org-mode has completely changed the way I use emacs. It is simply amazing. Best, Ista On Mon, Jul 19, 2010 at 6:43 AM, Carsten Dominik wrote: > Hi everyone, > > I have just released version 7.01 of Org mode. > > This is a major release, and we have worked months on getting > it together. =A0Most important is of cause the complete integration > of Org Babel into =A0Org mode. =A0Many thanks to Eric Schulte and > Dan Davison who have worked tirelessly to make this happen. > Thomas S. Dye gets credit here as well because he did a lot of > work on documentation and function/variable docstrings. > > Also, I need to shout out my gratitude to the increasing number of > volunteers in the project. > > John Wiegley's patchwork server has done wonders for streamlining the > process of reviewing and applying patches. =A0I have applied dozens of > patches though this process, just in the last week. > > The issue tracker by David Maus has finally brought some structure > into the stream of ideas and reports on this mailing list, at a > moment when I was about to falter under the amount of work > maintaining this project means for me. =A0Frankly, =A0right now I > don't know how I would do things without David's competent and > efficient help - he has effectively and silently become > co-maintainer of this project. > > Below these tips above the waterline, there is an iceberg of > contributions large and small by so many people. =A0We have 54 people > with FSF papers now, and more contributors of tiny patches. =A0Also > there are the volunteers that manage the mailing list, Worg, and > the FAQ. =A0I am truly humbled and made proud at the same time by > each and every contribution that the Org mode projects receives. > These contributions made Org mode the phenomenon it now is. > > Thanks, thanks, thanks! > > Enjoy! > > - Carsten > > P.S. If you are trying to find the 7.01 release on the master branch > in the repository, you will not. =A0The releases are now on a new branch, > called "maint", which will contain only commits that are also releases. > This will make it easier to make minor fixes to a release while developme= nt > continues on the master branch. > > P.P.S. =A0The feature freeze is over now. > > > > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Changes in Version 7.01 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Incompatible Changes > ~~~~~~~~~~~~~~~~~~~~~ > > Emacs 21 support has been dropped > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Do not use Org mode 7.xx with Emacs 21, use [version 6.36c] instead. > > > [version 6.36c]: http://orgmode.org/org-6.36c.zip > > XEmacs support requires the XEmacs development version > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D > > To use Org mode 7.xx with XEmacs, you need to run the developer > version of XEmacs. =A0 I was about to drop XEmacs support entirely, > but Michael Sperber stepped in and made changes to XEmacs that > made it easier to keep the support. =A0Thanks to Michael for this > last-minute save. =A0I had hoped to be able to remove > xemacs/noutline.el from release 7 by moving it into XEmacs, but > this is not yet done. > > Org-babel configuration changes > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D > > Babel took the integration into Org-mode as an opportunity to do > some much needed house cleaning. =A0Most importantly we have > simplified the enabling of language support, and cleared out > unnecessary configuration variables -- which is great unless you > already have a working configuration under the old model. > > The most important changes regard the /location/ and /enabling/ > of Babel (both core functionality and language specific support). > > Babel: Babel is now part of the core of Org-mode, so it is > =A0 =A0 now loaded along with the rest of Org-mode. =A0That means that > =A0 =A0 there is /no configuration/ required to enable the main > =A0 =A0 Babel functionality. =A0For current users, this means that > =A0 =A0 statements like > > =A0(require 'org-babel) > =A0 =A0 or > > =A0(require 'org-babel-init) > =A0 =A0 that may by lying around in your configuration must now be > =A0 =A0 removed. > load path: Babel (including all language specific files -- > =A0 =A0 aside from those which are located in the =3Dcontrib/=3D > =A0 =A0 directory for reasons of licencing) now lives in the base of > =A0 =A0 the Org-mode lisp directory, so /no additional directories/ > =A0 =A0 need to be added to your load path to use babel. =A0For Babel > =A0 =A0 users this means that statements adding babel-specific > =A0 =A0 directories to your load-path should now be removed from > =A0 =A0 your config. > language support: It is no longer necessary to require > =A0 =A0 language specific support on a language-by-language basis. > =A0 =A0 Specific language support should now be managed through the > =A0 =A0 `org-babel-load-languages' variable. =A0This variable can be > =A0 =A0 customized using the Emacs customization interface, or > =A0 =A0 through the addition of something like the following to your > =A0 =A0 configuration (note: any language not mentioned will /not/ > =A0 =A0 be enabled, aside from =3Demacs-lisp=3D which is enabled by > =A0 =A0 default) > > =A0(org-babel-do-load-languages > =A0 'org-babel-load-languages > =A0 '((R . t) > =A0 =A0 (ditaa . t) > =A0 =A0 (dot . t) > =A0 =A0 (emacs-lisp . t) > =A0 =A0 (gnuplot . t) > =A0 =A0 (haskell . nil) > =A0 =A0 (ocaml . nil) > =A0 =A0 (python . t) > =A0 =A0 (ruby . t) > =A0 =A0 (screen . nil) > =A0 =A0 (sh . t) > =A0 =A0 (sql . nil) > =A0 =A0 (sqlite . t))) > > =A0 =A0 =A0 =A0 =A0 Despite this change it is still possible to add > =A0 =A0 =A0 =A0 =A0 language support through the use of =3Drequire=3D > =A0 =A0 =A0 =A0 =A0 statements, however to conform to Emacs file-name > =A0 =A0 =A0 =A0 =A0 regulations all Babel language files have changed > =A0 =A0 =A0 =A0 =A0 prefix from =3Dorg-babel-*=3D to =3Dob-*=3D, so the r= equire > =A0 =A0 =A0 =A0 =A0 lines must also change e.g. > > =A0(require 'org-babel-R) > =A0 =A0 =A0 =A0 =A0 should be changed to > > =A0(require 'ob-R) > > We have eliminated the =3Dorg-babel-tangle-w-comments=3D variable as > well as the two main internal lists of languages, namely > - =3Dorg-babel-interpreters=3D and > - =3Dorg-babel-tangle-langs=3D > > so any config lines which mention those variables, can/should be > stripped out in their entirety. =A0This includes any calls to the > =3Dorg-babel-add-interpreter=3D function, whose sole purpose was to > add languages to the =3Dorg-babel-interpreters=3D variable. > > With those calls stripped out, we may still in some cases want to > associate a file name extension with certain languages, for > example we want all of our emacs-lisp files to end in a =3D.el=3D, we > can do this will the =3Dorg-babel-tangle-lang-exts=3D variable. =A0In > general you shouldn't need to touch this as it already has > defaults for most common languages, and if a language is not > present in org-babel-tangle-langs, then babel will just use the > language name, so for example a file of =3Dc=3D code will have a =3D.c=3D > extension by default, shell-scripts (identified with =3Dsh=3D) will > have a =3D.sh=3D extension etc... > > The configuration of /shebang/ lines now lives in header > arguments. =A0So the shebang for a single file can be set at the > code block level, e.g. > > > =A0#+begin_src clojure :shebang #!/usr/bin/env clj > =A0 =A0(println "with a shebang line, I can be run as a script!") > =A0#+end_src > > Note that whenever a file is tangled which includes a /shebang/ > line, Babel will make the file executable, so there is good > reason to only add /shebangs/ at the source-code block level. > However if you're sure that you want all of your code in some > language (say shell scripts) to tangle out with shebang lines, > then you can customize the default header arguments for that > language, e.g. > > > =A0;; ensure this variable is defined defined > =A0(unless (boundp 'org-babel-default-header-args:sh) > =A0 =A0(setq org-babel-default-header-args:sh '())) > > =A0;; add a default shebang header argument > =A0(add-to-list 'org-babel-default-header-args:sh > =A0 =A0 =A0 =A0 =A0 =A0 =A0 '(:shebang . "#!/bin/bash")) > > The final important change included in this release is the > addition of new security measures into Babel. =A0These measures are > in place to protect users from the accidental or uninformed > execution of code. =A0Along these lines /every/ execution of a code > block will now require an explicit confirmation from the user. > These confirmations can be stifled through customization of the > `org-confirm-babel-evaluate' variable, e.g. > > =A0;; I don't want to be prompted on every code block evaluation > =A0(setq org-confirm-babel-evaluate nil) > > In addition, it is now possible to remove code block evaluation > form the C-c C-c keybinding. =A0This can be done by setting the > org-babel-no-eval-on-ctrl-c-ctrl-c variable to a non-nil value, > e.g. > > =A0;; I don't want to execute code blocks with C-c C-c > =A0(setq org-babel-no-eval-on-ctrl-c-ctrl-c t) > > An additional keybinding has been added for code block > evaluation, namely C-c C-v e. > > Whew! that seems like a lot of effort for a /simplification/ of > configuration. > > New keys for TODO sparse trees > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D > > The key =3DC-c C-v=3D is now reserved for Org Babel action. =A0TODO > sparse trees can still be made with =3DC-c / t=3D (all not-done > states) and =3DC-c / T=3D (specific states). > > Customizable variable changes for DocBook exporter > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D > > To make it more flexible for users to provide DocBook exporter > related commands, we start to use format-spec to format the > commands in this release. =A0If you use DocBook exporter and use it > to export Org files to PDF and/or FO format, the settings of the > following two customizable variables need to be changed: > > - =3Dorg-export-docbook-xslt-proc-command=3D > - =3Dorg-export-docbook-xsl-fo-proc-command=3D > > Instead of using =3D%s=3D in the format control string for all > arguments, now we use /three/ different format spec characters: > > - =3D%i=3D: input file argument > - =3D%o=3D: output file argument > - =3D%s=3D: XSLT stylesheet argument > > For example, if you set =3Dorg-export-docbook-xslt-proc-command=3D to > > java com.icl.saxon.StyleSheet -o %s %s /path/to/docbook.xsl > > in the past, now you need to change it to > > java com.icl.saxon.StyleSheet -o %o %i %s > > and set a new customizable variable called > =3Dorg-export-docbook-xslt-stylesheet=3D to =3D/path/to/docbook.xsl=3D. > > Please check the documentation of these two variables for more > details and other examples. > > Along with the introduction of variable > =3Dorg-export-docbook-xslt-stylesheet=3D, we also added a new > in-buffer setting called =3D#+XSLT:=3D. =A0You can use this setting to > specify the XSLT stylesheet that you want to use on a per-file > basis. =A0This setting overrides > =3Dorg-export-docbook-xslt-stylesheet=3D. > > Details > ~~~~~~~~ > > Org Babel is now part of the Org core > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > See [Org-babel configuration changes] for instructions on how to > update your babel configuration. > > The most significant result of this change is that Babel now has > documentation! =A0It is part of Org-mode's documentation, see > Chapter 14 [Working With Source Code]. =A0The Babel keybindings > are now listed in the refcard, and can be viewed from any > Org-mode buffer by pressing =3DC-c C-v h=3D. =A0In addition this > integration has included a number of bug fixes, and a significant > amount of internal code cleanup. > > > [Org-babel configuration changes]: #ob-configuration-changes > [Working With Source Code]: > http://orgmode.org/manual/Working-with-source-code.html#Working-with-sour= ce-code > > The default capture system for Org mode is now called org-capture > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > This replaces the earlier system org-remember. =A0The manual only > describes org-capture, but for people who prefer to continue to > use org-remember, we keep a static copy of the former manual > section [chapter about remember]. > > The new system has a technically cleaner implementation and more > possibilities for capturing different types of data. =A0See > [Carsten's announcement] for more details. > > To switch over to the new system: > > 1. Run > > =A0 M-x org-capture-import-remember-templates RET > > =A0 to get a translated version of your remember templates into the > =A0 new variable =3Dorg-capture-templates=3D. =A0This will "mostly" work, > =A0 but maybe not for all cases. =A0At least it will give you a good > =A0 place to modify your templates. =A0After running this command, > =A0 enter the customize buffer for this variable with > > =A0 M-x customize-variable RET org-capture-templates RET > > =A0 and convince yourself that everything is OK. =A0Then save the > =A0 customization. > > 2. Bind the command =3Dorg-capture=3D to a key, similar to what you did > =A0 with org-remember: > > =A0 (define-key global-map "\C-cc" 'org-capture) > > =A0 If your fingers prefer =3DC-c r=3D, you can also use this key once > =A0 you have decided to move over completely to the new > =A0 implementation. =A0During a test time, there is nothing wrong > =A0 with using both system in parallel. > > > =A0 [chapter about remember]: http://orgmode.org/org-remember.pdf > =A0 [Carsten's announcement]: > http://thread.gmane.org/gmane.emacs.orgmode/26441/focus%3D26441 > > Implement pretty display of entities, sub-, and superscripts. > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > The command =3DC-c C-x \=3D toggles the display of Org's special > entities like =3D\alpha=3D as pretty unicode characters. =A0Also, sub > and superscripts are displayed in a pretty way (raised/lower > display, in a smaller font). =A0If you want to exclude sub- and > superscripts, see the variable > =3Dorg-pretty-entities-include-sub-superscripts=3D. > > Thanks to Eric Schulte and Ulf Stegeman for making this possible. > > Help system for finding entities > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D > > The new command =3DM-x org-entities-help=3D creates a structured > buffer that lists all entities available in Org. =A0Thanks to Ulf > Stegeman for adding the necessary structure to the internal > entity list. > > New module to create Gantt charts > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Christian Egli's /org-taskjuggler.el/ module is now part of Org. > He also wrote a [tutorial] for it. > > > [tutorial]: http://orgmode.org/worg/org-tutorials/org-taskjuggler.php > > Refile targets can now be cached > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D > > You can turn on caching of refile targets by setting the variable > =3Dorg-refile-use-cache=3D. =A0This should speed up refiling if you > have many eligible targets in many files. =A0If you need to update > the cache because Org misses a newly created entry or still > offers a deleted one, press =3DC-0 C-c C-w=3D. > > Enhanced functionality of the clock resolver > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Here are the new options for the clock resolver: > > i/q/C-g =A0Ignore this question; the same as keeping all the idle time. > > k/K =A0 =A0 =A0Keep X minutes of the idle time (default is all). =A0If th= is > =A0 =A0 =A0 =A0 amount is less than the default, you will be clocked out > =A0 =A0 =A0 =A0 that many minutes after the time that idling began, and t= hen > =A0 =A0 =A0 =A0 clocked back in at the present time. > g/G =A0 =A0 =A0Indicate that you \"got back\" X minutes ago. =A0This is q= uite > =A0 =A0 =A0 =A0 different from 'k': it clocks you out from the beginning = of > =A0 =A0 =A0 =A0 the idle period and clock you back in X minutes ago. > s/S =A0 =A0 =A0Subtract the idle time from the current clock. =A0This is = the > =A0 =A0 =A0 =A0 same as keeping 0 minutes. > C =A0 =A0 =A0 =A0Cancel the open timer altogether. =A0It will be as thoug= h you > =A0 =A0 =A0 =A0 never clocked in. > j/J =A0 =A0 =A0Jump to the current clock, to make manual adjustments. > > For all these options, using uppercase makes your final state > to be CLOCKED OUT. =A0Thanks to John Wiegley for making these > changes. > > A property value of "nil" now means to unset a property > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D > > This can be useful in particular with property inheritance, if > some upper level has the property, and some grandchild of it > would like to have the default settings (i.e. not overruled by a > property) back. > > Thanks to Robert Goldman and Bernt Hansen for suggesting this > change. > > The problem with comment syntax has finally been fixed > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D > > Thanks to Leo who has been on a year-long quest to get this fixed > and finally found the right way to do it. > > Make it possible to protect hidden subtrees from being killed by =3DC-k= =3D > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > This was a request by Scott Otterson. > See the new variable =3Dorg-ctrl-k-protect-subtree=3D. > > > New module org-mac-link-grabber.el > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > This module allows to grab links to all kinds of applications on > a mac. =A0It is available in the contrib directory. > > Thanks to Anthony Lander for this contribution. > > LaTeX export: Implement table* environment for wide tables > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Thanks to Chris Gray for a patch to this effect. > > When cloning entries, remove or renew ID property > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D > > Thanks to David Maus for this change. > > - Carsten > > > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode > --=20 Ista Zahn Graduate student University of Rochester Department of Clinical and Social Psychology http://yourpsyche.org