Personal Identity & Choice
PHIL 218 at [[Wesleyan University|http://www.wesleyan.edu]]
[[announcements]]
[img[mushrooms|http://espringer.web.wesleyan.edu/images/mushrooms.jpg]]\n----\n<<tag announcements>>\n----\n[[welcome]] +++(Overview)>\n<<tag syllabus>> • <<tag reference>>\n<<tag tips>> • <<tag introductions>>\n[[submitting commentaries]]\n[[word count tool|word count]]\n===\n----\n[[semester dates|semester calendar]]+++(Calend)>\n<<forEachTiddler \n where \n 'tiddler.tags.containsAny(["dates"])'\n sortBy\n 'tiddler.title'\n ascending\n write\n '"<<tag "+tiddler.title+"$)) • "'>>\n===\n----\n[[seminar participants]]+++(Partic)>\n++++[Tuesday group]>\n[[adfishman]], [[aun]], [[cbethlahmy]], [[ebardavid]], [[edhouse]], [[ewiener]], [[ksia]], [[lnussbaum]], [[mgreen]], [[sjackson]], [[jrubenstein]]\n===\n----\n++++[Thursday group]>\n[[apreneta]], [[jehrenhalt]], [[jmkaplan]], [[kosaekwapong]], [[lsussman]], [[rheinemann]], [[rperkins]], [[vwalunis]], [[yyngwong]]\n===\n===\n----\n[[E Springer homepage|http://espringer.web.wesleyan.edu]]\n----\n<<tiddler adminMainMenu>>\n<<redirect argument [[key reasoning terms]]>>\n<<redirect premise [[key reasoning terms]]>>\n<<redirect premises [[key reasoning terms]]>>\n<<redirect conclusion [[key reasoning terms]]>>\n<<redirect contradiction [[apparent contradiction]]>>\n<<redirect revise [[revise]]>>\n<<tiddler [[redirects]]>>\n----
The original [[TiddlyWiki|http://tiddlywiki.com]] is a complete wiki clone system contained in a single HTML file. It's an open-source project being pioneered by one energetic programmer, Jeremy Ruston, with lots of features being added by other developers. ''Javascript'' is used to store, retrieve, edit, and delete wiki content, and no server is required. \n!\nIn other words, a TiddlyWiki document serves as a frame for [[microcontent]], which can be edited and arranged "live", using a web browser, while it is being viewed. The markup is simple.\n!\nI use a standard TiddlyWiki interface for my homepage, at http://espringer.web.wesleyan.edu \n!\n''This site'', however, //does// rely on a server. The [[ZiddlyWiki]] variation on TiddlyWiki uses Zope to support the functions of TiddlyWiki, but with secure group logins over the web, and database-like storage of each [[microcontent]] bit.
Corrections, comments, or requests should be sent to <<email espringer at wesleyan dot edu>>.
{{{\n// a hack to pretty up the timeline\nDate.prototype._formatString = Date.prototype.formatString;\nDate.prototype.formatString = function(template) {\n if(template == 'DD MMM YYYY') {\n var repr = this._formatString('YYYYMMDD');\n var day = new Date();\n if(repr == day._formatString('YYYYMMDD'))\n return 'Today';\n day.setDate(day.getDate()-1);\n if(repr == day._formatString('YYYYMMDD'))\n return 'Yesterday';\n for(var i=0; i<3; i++) {\n day.setDate(day.getDate()-1);\n if(repr == day._formatString('YYYYMMDD'))\n return config.messages.dates.days[this.getDay()];\n }\n }\n return this._formatString(template);\n}\n}}}
<<login>><<tiddler LoggedInOptions>><<closeAll>><<search>>
<<option chkOpenInNewWindow>> OpenLinksInNewWindow\n<<option chkToggleLinks>> Clicking on links to tiddlers that are already open causes them to close\n^^(override with Control or other modifier key)^^\n<<exportLink>><<importLink>><<login>>\n<<list shadowed>>
// //''Name:'' EmailLink\n// //''Version:'' <<getversion email>> (<<getversiondate email "DD MMM YYYY">>)\n// //''Author:'' AlanHecht\n// //''Type:'' [[Macro|Macros]]\n\n// //''Description:'' email lets you list a "email" address without displaying it as readable text. This helps prevent your email address from being harvested by search engines and other web crawlers that read your page's contents. Using email, you type in the words "at" and "dot" instead of the punctuation symbols and add spaces inbetween words to disguise your address. However, email will display your email address in a web browser so that humans can read it. And email turns the address into a hyperlink that can be clicked to send you an instant email.\n\n// //''Syntax:'' << {{{email yourname at yourdomain dot com "?optional parameters"}}} >>\n// //Example 1: <<email sample at nowhere dot com>> (standard)\n// //Example 2: <<email multiple dot sample at somewhere dot nowhere dot com>> (multiple dots)\n// //Example 3: <<email sample at nowhere dot com "?subject=Submission&body=Type your message here.">> (with optional parameters)\n\n// //''Directions:'' <<tiddler MacroDirections>>\n\n// //''Notes:'' You can use the optional email parameters to stipulate a subject or message body for the message. Most (not all) email clients will use this information to construct the email message.\n\n// //''Related Links:'' none\n\n// //''Revision History:''\n// // v0.1.0 (20 July 2005): initial release\n// // v0.1.1 (22 July 2005): renamed the macro from "mailto" to "email" to further thwart email harvesters.\n// // v0.1.2 (15 October 2005): added global replacement of "dots" thanks to a suggestion from Ralph Winter\n\n// //''Code section:''\nversion.extensions.email = {major: 0, minor: 1, revision: 1, date: new Date("Jul 22, 2005")};\nconfig.macros.email = {}\nconfig.macros.email.handler = function(place,macroName,params)\n{\nvar temp = params.join(" ");\nvar data = temp.split("?");\nvar recipient = data[0];\nrecipient = recipient.replace(" at ","@").replace(" dot ",".");\nrecipient = recipient.replace(/\ss/g,"");\nvar optional = data[1] ? "?" + data[1] : "";\nvar theLink = createExternalLink(place,"ma"+"il"+"to:"+recipient+optional);\ntheLink.appendChild(document.createTextNode(recipient))\n}\n\nconfig.animFast = "1";\nconfig.options.chkToggleLinks = true
|This interactive site allows students to share work and access resources connected to [[Wesleyan University's|http://www.wesleyan.edu/]] [[Personal Identity and Choice|PHIL 21 course description]] course, Philosophy 218 with [[Elise Springer]].|\n!\n@@First:@@ Please ''log in'' with __username: namehandle __ & __password (three digits, as emailed to registered students)
The following textbooks are available at ''Broad Street Books'':\n* Pereboom, ed., 1979 //Free Will// (Indianapolis: Hackett)\nAdditional readings will be available in our [[course packets]].
In a philosophy class, good ''participation'' consists mostly of fostering good discussion. If you've done the reading but still have confusions and concerns about the material, chances are that other students will also appreciate hearing your questions. For those who find it easy to speak up, participation also requires making sure that the conversational space feels open to quieter students.
#cccccc
#8899aa
#559955
Philosophical writing must take particular responsibility both for [[reasoning clearly|argument analysis vocabulary]] and for general clarity and correctness of expression. Writing correctly requires discipline, and sloppy writing easily takes hold as a bad habit. \n\nPlease make sure that you are attentive in avoiding basic writing problems, such as:\n* misspelling and confusion of homonyms (their / there / they're; effect / affect; its / it's, etc.)\n* sloppy capitalization and abbreviation \n* sentence incompleteness, or failing to connect subject and predicate of sentence properly (as in the popular {{{"just because... doesn't mean..."}}} idiom)\n* dangling participles and other disconnected opening phrases (as in nonsequiturs like {{{"by writing a philosophy paper, the material becomes easier"}}})\n\nPlease consult with ~TAs and with basic writing manuals (such as the //Little, Brown Essential Handbook for Writers//) for pointers on these and other problems.
{{{\nconfig.macros.allTags.noTags = "There are no tagged items";\nconfig.macros.allTags.tooltip = "Show items tagged with "; \nconfig.macros.closeAll.prompt = "Close all displayed items (except any that are being edited)";\nconfig.macros.list.all.prompt = "All items in alphabetical order";\nconfig.macros.list.missing.prompt = "Items that have links to them but are not defined";\nconfig.macros.list.orphans.prompt = "Items that are not linked to from any other items";\nconfig.macros.newTiddler.label = "new item";\nconfig.macros.newTiddler.prompt = "Create a new item";\nconfig.macros.permaview.prompt = "Link to an URL that retrieves all the currently displayed items";\nconfig.macros.saveChanges.prompt = "Save all items to create a new Site";\nconfig.macros.search.label = "search ";\nconfig.macros.search.prompt = "search this site";\nconfig.macros.search.successMsg = " items found matching: ";\nconfig.macros.search.failureMsg = "No items found matching: ";\nconfig.views.wikified.defaultText = "This item doesn't yet exist. Double-click to create it";\nconfig.views.wikified.tag.openAllText = "Open all items tagged with ";\nconfig.views.wikified.tag.openAllTooltip = "Open all of these items";\nconfig.views.wikified.tag.popupNone = "No other items tagged with ";\n}}}
Elise Springer:\nI am an Assistant Professor of [[Philosophy|http:/www.wesleyan.edu/phil]] at [[Wesleyan University|http://www.wesleyan.edu]]\n(See also my [[main homepage|http://espringer.web.wesleyan.edu/]], or email <<email espringer at wesleyan dot edu>>.\n----\n|I pursued a music major, with a focus on composition, when I was an undergraduate, and I became interested in philosophy too late to become a major. I changed course anyway and studied philosophy at the graduate level at the University of Connecticut, eventually specializing in ethics. Life paths can change! <html><br></html> I decided to offer a course on these themes after realizing how many people speak about their ''moral choices'' in terms of ''personal identity'' and commitments undertaken as a response to experience.|\n[img[espringer in office|http://espringer.web.wesleyan.edu/images/espringerBWsm.jpg]]
^^[[course description|PHIL 212 course description]]^^\n^^[[calendar]]^^\n^^[[assignments|assignment overview]]^^\n^^[[discussion teams]]^^\n^^[[reading strategies]]^^\n^^[[commentaries]]^^\n^^[[exams]]^^\n^^[[long essay]]^^
~~[[welcome]]~~\n~~[[sign-ups|scheduling commentaries]]~~\n~~[[submitting commentaries]]~~\n~~[[about tagging]]~~
<<tag 1/31>> (Crito)\n<<tag 2/02>> (Epictetus)\n<<tag 2/07>> (Descartes)\n<<tag 2/09>> (Augustine)\n<<tag 2/14>> (determinists)\n<<tag 2/16>> (Hume 1)\n<<tag 2/21>> (Hume 2)\n<<tag 2/23>> (James)\n<<tag 2/28>> (Strawson)
|Put quote text between bars like this, with no extra returns, and no quote marks, because they crash Safari. (p. xx)|\nType your commentary text here, no extra returns. Look under [tips] for formatting tips if you want more help.\n!\nIn the space below, please tag your work with the date (formatted simply as at left in list) and the word commentary (Do not change tags for comments, though, when you give feedback to someone else's work.)
.header {background-color: #89a; background-image: url('http://parmenides.objectis.net/images/gradient2.jpg'); border-bottom: 2px solid #eee; }\n\n.headerShadow {font-family: Trebuchet MS, Verdana, Arial; padding: 1.5em 0em 1em 18em; left: -1px; top: -1px; color: #fff; }\n.headerShadow a { color: #fff; }\n.headerForeground {font-family: Trebuchet MS, Verdana, Arial; position: absolute; padding: 1.5em 0em 1em 18em; left: 0px; top: 0px; color: #456; }\n.headerForeground a { color: #744; }\n.siteTitle { font-size: 2em; }\n.siteSubtitle { font-size: 1.3em; }\n\n#sitetitlebg {background:transparent url('http://parmenides.objectis.net/images/gradient2.jpg') repeat-x; height:15px;} \nbody {background-image: url('http://parmenides.objectis.net/images/gradient2.jpg'); color: #000; }\n#messageArea {background-color: #dddddd; position: absolute; top: 0; right: 0; font-size: -2;}\n\n#titleLine {font-size: 11; font-family: Trebuchet, Verdana, Arial; font-weight: bold; text-align: left; color: #225522; padding: 2.5em 1em 1em 0em; background-color: #89a; }\n#titleLine a {background-color: transparent; padding: 3px 5px 3px 5px; color: #225522;}\n#titleLine a:hover {background-color: #ffffff; padding: 2px 4px 2px 4px; border: 1px solid; border-color: #cccc99; color: #225522}\n\n#siteTitle {font-size: 11pt; color: #225522; margin: 0em 1em 0em 13.8em; }\n#siteSubtitle { padding-left: 0em; font-size: 11pt; font-weight: normal; color: #225522; }\n#displayArea {margin: 1em 17.2em 10em 17.3em; background: transparent; }\n\n#mainMenu {width: 13.5em; background-color: transparent; padding: 1.4em 1em 16.3em 0.5em; border: none; line-height: 130%; }\n#mainMenu .tiddlyLink {color: #225522; font-weight: normal; padding: 2px 3px 2px 3px; border: none;}\n#mainMenu .tiddlyLinkNonExisting {font-style: italic; }\n#mainMenu .tiddlyLink:hover {background-color: #fff; color: #225522; padding: 1px 2px 1px 2px; border: 1px solid; border-color: #225; }\n#mainMenu .externalLink {color: #222255; font-weight: normal; padding: 2px 3px 2px 3px; border: none; text-transform: capitalize; text-decoration: none; }\n#mainMenu .externalLink:hover {color: #222255; background-color: #d5d5d5; font-weight: normal; padding: 2px 3px 2px 3px; text-decoration: underline; text-transform: capitalize; }\n#mainMenu hr {border: none; border-top: 1px solid #eee; height: 1px; color: transparent; }\n#mainMenu .button { font-size: 9pt; color: #222255; background-color: #eee; }\n#mainMenu .button:hover { color: #225; background-color: #eee; border-color: #225; }\n#mainMenu .button:active { color: #225; background-color: #fff; }\n#mainMenu blockquote { line-height: 1.2em; text-align: right; padding: .35em; margin: 0em; border-right: 2px solid #eee; }\n#mainMenu h1, h2, h3, h4, h5 { color: #225; background-color: #eee; font-size: 1.2em; }\n\n#sidebarOptions {padding-top: 0.5em; background-color: transparent; }\n#sidebarOptions .button { color: #777744; }\n#sidebarOptions .button:hover { color: #777744; background-color: #cccc99; }\n#sidebarOptions .button:active { color: #225522; background-color: #cccccc; }\n#sidebarOptions .sliderPanel {padding: 0.5em 0.5em 0.5em 0.5em; font-size: 7pt; background-color: #fff;}\n#sidebarOptions .sliderPanel A { color: #777744; font-weight: bold;}\n#sidebarOptions .sliderPanel A:hover { color: #225522; background-color: #cccccc; }\n#sidebarOptions .sliderPanel A:active { color: #225522; background-color: #cccccc; }\n\n#sidebarTabs {background-color: transparent; -moz-border-radius: 0px; }\n#sidebarTabs a {color: #fff; -moz-border-radius: 0px; border-right: none; }\n#sidebarTabs a:hover { background-color: #225522; color: #fff; }\n#sidebarTabs .tabSelected {color: #fff; background-color: #8899aa; }\n#sidebarTabs .tabUnselected { color: #fff; background-color: #abc;}\n#sidebarTabs .tabContents .button {color: #fff; }\n#sidebarTabs .tabContents { background-color: #8899aa; padding-left: 10px; text-indent: -6px; }\n#sidebarTabs .tabContents .tiddlyLink { color: #fff; }\n#sidebarTabs .tabContents .tiddlyLink:hover { color: #fff; background-color: #cccccc; }\n#sidebarTabs .txtMoreTab .tabSelected { background-color: #334466; }\n#sidebarTabs .txtMoreTab .tabUnselected { background-color: #777744; }\n#sidebarTabs .txtMoreTab .tabContents { color: #ffffdd; background-color: #334466; }\n#sidebar {width: 17em; }\n#sidebar {color: #000000; background-color: #fff; padding: 0em 0em 16.5em 0em; }\n#sidebar a:first-letter {text-transform:uppercase; }\n\n.toolbar {position: relative; top: 2px; height: 8px; }\n.toolbar A {color: #996633; -moz-border-radius: 0px; background-color: transparent; font-size: 7pt; border: none; }\n.toolbar A:hover { color: #fff; background-color: #222255; }\n.toolbar A:active {color: #fff; background-color: #225522; }\n\n.tiddler {padding: 1px 3px 1px 6px; margin: 1px; }\n.title { font-size: 10pt; font-weight: bold; display: inline; color: #fff; padding: 0.2em 1.5em .1em 1em; border-style: solid; border-width: 1px 0px 0px 1px; border-color: #333; background-color: #789; }\n.selected {background-color: #fff; padding: 0px 3px 0px 6px; border: 1px solid #dde; margin: 0px; }\n.tiddler .button { color: #225522; background-color: transparent; }\n.tiddler .button:hover { color: #cccccc; background-color: #222255; }\n.tiddler .button:hover { color: #cccccc; background-color: #225522; }\n.subtitle {padding-left: 1.2em; font-size: 1em; }\n.subtitle a {color: #225; }\n\n#popup {width: 12em; color: #cccccc; background-color: #333399; border-right: 1px solid #334455; border-bottom: 1px solid #334455; }\n\n.viewer a:link, .body a:visited {padding: 0em .15em 0em .15em; color: #333399; }\n.viewer a:hover {background-color: #cccccc; color: #333399; }\n.viewer table { border: 2px solid; border-color: #445577; padding: .25em 0em .25em .25em; }\n.viewer td, tr { border: 1px solid #ccc; color: #000000; padding: .4em; }\n.viewer th { padding: 1px; background-color: #8899aa; color: #fff; border: 1px solid; border-color: #cccccc; }\n.viewer h1 {display:block; text-align: left; padding-left: 0em ; margin: .8em 0em 0em 0em; font-size: 9pt; color: #000000; font-weight: normal; background-color: transparent; }\n.viewer h2 {display: block; padding-left: 1.5em; margin: .2em 0em 0em 0em; font-size: 8pt; color: #000000; font-weight: normal; }\n.viewer h3 {display:block; margin: 0em 0em 0em -.5em; color: #225522; font-size: 10pt; font-weight: bold; text-decoration: none; background-color: #eee; }\n.viewer h4 {display:inline; text-align:right; margin: 0em 0em 1.5em 0em; color: #225522; font-weight: normal; }\n.viewer hr { border: none; border-top: 1px solid #cccccc; }\n.viewer ul { margin-bottom: .5em; padding: 0em 0em .5em 1.5em; }\n.viewer blockquote {border-left: none; }\n.viewer pre {font-size: normal;}\n.viewer .button {border: 1px solid #6a7; background-color: #ffa; }\n\n.footer { display: inline; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; text-align: right; text-color: #bbbbdd; }\n.editor textarea {height: 50%; }\n\ndiv[tags~="presentation"] .tagged { display: none; }\n\n.commentTags ul{list-style:none; padding-left:0px;margin: 0 0 3px 0;} .commentTags li{display:inline;color:#999;} .commentTags li a.button{color:#999;} \n.comment{border-left:1px solid #ccc; margin-top:10px; margin-left:10px; padding:5px; color: #575;} .newCommentLink{padding-top:10px} .tagging, .selected .tagging, .tiddler .tagging{display:none;} .comment a.button{padding:0px; font-size:smaller;}\n\n@media print {\n.header {display: none; }\nbody {background-color: #ffffff; font-size: 8pt; }\n#titleLine {padding: 1em 2em 1em 4em; width: 100%; }\n#mainMenu, #sidebar, #messageArea {display: none ! important;}\n#displayArea {margin: 1em 1em 0em 1em; background-color: #fff; }\n.tiddler {padding: 0em 0em -4px 0em; font-size: 8pt; }\n.tagging, .tagged {display: none; }\n.newCommentLink, .comment a.button {display: none; }\n}
/***\n''NestedSlidersPlugin for TiddlyWiki version 1.2.x and 2.0''\n^^author: Eric Shulman\nsource: http://www.TiddlyTools.com/#NestedSlidersPlugin\nlicense: [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^\n\nQuickly make any tiddler content into an expandable 'slider' panel, without needing to create a separate tiddler to contain the slider content. Optional syntax allows ''default to open'', ''custom button label/tooltip'' and ''automatic blockquote formatting.''\n\nYou can also 'nest' these sliders as deep as you like (see complex nesting example below), so that expandable 'tree-like' hierarchical displays can be created. This is most useful when converting existing in-line text content to create in-line annotations, footnotes, context-sensitive help, or other subordinate information displays.\n\nFor more details, please click on a section headline below:\n++++!!!!![Configuration]>\nDebugging messages for 'lazy sliders' deferred rendering:\n<<option chkDebugLazySliderDefer>> show debugging alert when deferring slider rendering\n<<option chkDebugLazySliderRender>> show debugging alert when deferred slider is actually rendered\n===\n++++!!!!![Usage]>\nWhen installed, this plugin adds new wiki syntax for embedding 'slider' panels directly into tiddler content. Use {{{+++}}} and {{{===}}} to delimit the slider content. Additional optional syntax elements let you specify\n*default to open\n*cookiename\n*heading level\n*floater\n*rollover\n*custom label/tooltip\n*automatic blockquote\n*deferred rendering\nThe complete syntax, using all options, is:\n//{{{\n++++(cookiename)!!!!!^*[label|tooltip]>...\ncontent goes here\n===\n//}}}\nwhere:\n* {{{+++}}} (or {{{++++}}}) and {{{===}}}^^\nmarks the start and end of the slider definition, respectively. When the extra {{{+}}} is used, the slider will be open when initially displayed.^^\n* {{{(cookiename)}}}^^\nsaves the slider opened/closed state, and restores this state whenever the slider is re-rendered.^^\n* {{{!}}} through {{{!!!!!}}}^^\ndisplays the slider label using a formatted headline (Hn) style instead of a button/link style^^\n* {{{"^"}}} //(without the quotes)//^^\nmakes the slider 'float' on top of other content rather than shifting that content downward^^\n* {{{"*"}}} //(without the quotes)//^^\nautomatically opens/closes slider on "rollover" as well as when clicked^^\n* {{{[label]}}} or {{{[label|tooltip]}}}^^\nuses custom label/tooltip. (defaults are: ">" (more) and "<" (less)^^\n* {{{">"}}} //(without the quotes)//^^\nautomatically adds blockquote formatting to slider content^^\n* {{{"..."}}} //(without the quotes)//^^\ndefers rendering of closed sliders until the first time they are opened. //Note: deferred rendering may produce unexpected results in some cases. Use with care.//^^\n\n//Note: to make slider definitions easier to read and recognize when editing a tiddler, newlines immediately following the {{{+++}}} 'start slider' or preceding the {{{===}}} 'end slider' sequence are automatically supressed so that excess whitespace is eliminated from the output.//\n===\n++++!!!!![Examples]>\nsimple in-line slider: \n{{{\n+++\n content\n===\n}}}\n+++\n content\n===\n----\nuse a custom label and tooltip: \n{{{\n+++[label|tooltip]\n content\n===\n}}}\n+++[label|tooltip]\n content\n===\n----\ncontent automatically blockquoted: \n{{{\n+++>\n content\n===\n}}}\n+++>\n content\n===\n----\nall options combined //(default open, cookie, heading, floater, rollover, label/tooltip, blockquoted, deferred)//\n{{{\n++++(testcookie)!!!^*[label|tooltip]>...\n content\n===\n}}}\n++++(testcookie)!!!^*[label|tooltip]>...\n content\n===\n----\ncomplex nesting example:\n{{{\n+++^[get info...|click for information]\n put some general information here, plus a floating slider with more specific info:\n +++^[view details...|click for details]\n put some detail here, which could include a rollover with a +++^*[glossary definition]explaining technical terms===\n ===\n===\n}}}\n+++^[get info...|click for information]\n put some general information here, plus a floating slider with more specific info:\n +++^[view details...|click for details]\n put some detail here, which could include a rollover with a +++^*[glossary definition]explaining technical terms===\n ===\n===\n----\nnested floaters\n>menu: <<tiddler NestedSlidersExample>>\n(see [[NestedSlidersExample]] for definition)\n----\n===\n+++!!!!![Installation]>\nimport (or copy/paste) the following tiddlers into your document:\n''NestedSlidersPlugin'' (tagged with <<tag systemConfig>>)\n===\n+++!!!!![Revision History]>\n++++[2006.02.04 - 1.7.5]\nadd 'var' to unintended global variable declarations to avoid FireFox 1.5.0.1 crash bug when assigning to globals\n===\n===\n+++!!!!![Credits]>\nThis feature was implemented by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]] with research, programming and suggestions from RodneyGomes, GeoffSlocock, and PaulPetterson\n===\n***/\n// //+++!!!!![Code]\n//{{{\nversion.extensions.nestedSliders = {major: 1, minor: 7, revision: 5, date: new Date(2006,2,4)};\n//}}}\n\n//{{{\n// options for deferred rendering of sliders that are not initially displayed\nif (config.options.chkDebugLazySliderDefer==undefined) config.options.chkDebugLazySliderDefer=false;\nif (config.options.chkDebugLazySliderRender==undefined) config.options.chkDebugLazySliderRender=false;\n\n// default styles for 'floating' class\nsetStylesheet(".floatingPanel { position:absolute; z-index:10; padding:0.5em; margin:0em; \s\n background-color:#eee; color:#000; border:1px solid #000; text-align:left; }","floatingPanelStylesheet");\n//}}}\n\n//{{{\nconfig.formatters.push( {\n name: "nestedSliders",\n match: "\s\sn?\s\s+{3}",\n terminator: "\s\ss*\s\s={3}\s\sn?",\n lookahead: "\s\sn?\s\s+{3}(\s\s+)?(\s\s([^\s\s)]*\s\s))?(\s\s!*)?(\s\s^)?(\s\s*)?(\s\s[[^\s\s]]*\s\s])?(\s\s>)?(\s\s.\s\s.\s\s.)?\s\ss*",\n handler: function(w)\n {\n var lookaheadRegExp = new RegExp(this.lookahead,"mg");\n lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = lookaheadRegExp.exec(w.source)\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart)\n {\n // location for rendering button and panel\n var place=w.output;\n\n // default to closed, no cookie\n var show="none"; var title=">"; var tooltip="show"; var cookie="";\n\n // extra "+", default to open\n if (lookaheadMatch[1])\n { show="block"; title="<"; tooltip="hide"; }\n\n // cookie, use saved open/closed state\n if (lookaheadMatch[2]) {\n cookie=lookaheadMatch[2].trim().substr(1,lookaheadMatch[2].length-2);\n cookie="chkSlider"+cookie;\n if (config.options[cookie]==undefined)\n { config.options[cookie] = (show=="block") }\n if (config.options[cookie])\n { show="block"; title="<"; tooltip="hide"; }\n else\n { show="none"; title=">"; tooltip="show"; }\n }\n\n // custom label/tooltip\n if (lookaheadMatch[6]) {\n title = lookaheadMatch[6].trim().substr(1,lookaheadMatch[6].length-2);\n var pos=title.indexOf("|");\n if (pos!=-1)\n { tooltip = title.substr(pos+1,title.length); title = title.substr(0,pos); }\n else\n { tooltip += " "+title; }\n }\n\n // create the button\n if (lookaheadMatch[3]) { // use "Hn" header format instead of button/link\n var lvl=(lookaheadMatch[3].length>6)?6:lookaheadMatch[3].length;\n var btn = createTiddlyElement(createTiddlyElement(place,"h"+lvl,null,null,null),"a",null,null,title);\n btn.onclick=onClickNestedSlider;\n btn.setAttribute("href","javascript:;");\n btn.setAttribute("title",tooltip);\n }\n else\n var btn = createTiddlyButton(place,title,tooltip,onClickNestedSlider);\n btn.sliderCookie = cookie; // save the cookiename (if any) in the button object\n\n // "non-click" MouseOver open/close slider\n if (lookaheadMatch[5]) btn.onmouseover=onClickNestedSlider;\n\n // create slider panel\n var panelClass=lookaheadMatch[4]?"floatingPanel":"sliderPanel";\n var panel=createTiddlyElement(place,"div",null,panelClass,null);\n panel.style.display = show;\n panel.button = btn; // so the slider panel know which button it belongs to\n btn.sliderPanel=panel;\n\n // render slider (or defer until shown) \n w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;\n if (lookaheadMatch[1]||!lookaheadMatch[8]) {\n // render now if "++++" (init open) or NOT "..." (deferred render)\n w.subWikify(lookaheadMatch[7]?createTiddlyElement(panel,"blockquote"):panel,this.terminator);\n // align slider/floater position with button\n adjustSliderPos(place,btn,panel,panelClass);\n }\n else {\n var src = w.source.substr(w.nextMatch);\n var endpos=findMatchingDelimiter(src,"+++","===");\n panel.setAttribute("raw",src.substr(0,endpos));\n panel.setAttribute("blockquote",lookaheadMatch[7]?"true":"false");\n panel.setAttribute("rendered","false");\n w.nextMatch += endpos+3;\n if (w.source.substr(w.nextMatch,1)=="\sn") w.nextMatch++;\n if (config.options.chkDebugLazySliderDefer) alert("deferred '"+title+"':\sn\sn"+panel.getAttribute("raw"));\n }\n }\n }\n }\n)\n\n// TBD: ignore 'quoted' delimiters (e.g., "{{{+++foo===}}}" isn't really a slider)\nfunction findMatchingDelimiter(src,starttext,endtext) {\n var startpos = 0;\n var endpos = src.indexOf(endtext);\n // check for nested delimiters\n while (src.substring(startpos,endpos-1).indexOf(starttext)!=-1) {\n // count number of nested 'starts'\n var startcount=0;\n var temp = src.substring(startpos,endpos-1);\n var pos=temp.indexOf(starttext);\n while (pos!=-1) { startcount++; pos=temp.indexOf(starttext,pos+starttext.length); }\n // set up to check for additional 'starts' after adjusting endpos\n startpos=endpos+endtext.length;\n // find endpos for corresponding number of matching 'ends'\n while (startcount && endpos!=-1) {\n endpos = src.indexOf(endtext,endpos+endtext.length);\n startcount--;\n }\n }\n return (endpos==-1)?src.length:endpos;\n}\n//}}}\n\n//{{{\nfunction onClickNestedSlider(e)\n{\n if (!e) var e = window.event;\n var theTarget = resolveTarget(e);\n var theLabel = theTarget.firstChild.data;\n var theSlider = theTarget.sliderPanel\n var isOpen = theSlider.style.display!="none";\n // if using default button labels, toggle labels\n if (theLabel==">") theTarget.firstChild.data = "<";\n else if (theLabel=="<") theTarget.firstChild.data = ">";\n // if using default tooltips, toggle tooltips\n if (theTarget.getAttribute("title")=="show")\n theTarget.setAttribute("title","hide");\n else if (theTarget.getAttribute("title")=="hide")\n theTarget.setAttribute("title","show");\n if (theTarget.getAttribute("title")=="show "+theLabel)\n theTarget.setAttribute("title","hide "+theLabel);\n else if (theTarget.getAttribute("title")=="hide "+theLabel)\n theTarget.setAttribute("title","show "+theLabel);\n // deferred rendering (if needed)\n if (theSlider.getAttribute("rendered")=="false") {\n if (config.options.chkDebugLazySliderRender)\n alert("rendering '"+theLabel+"':\sn\sn"+theSlider.getAttribute("raw"));\n var place=theSlider;\n if (theSlider.getAttribute("blockquote")=="true")\n place=createTiddlyElement(place,"blockquote");\n wikify(theSlider.getAttribute("raw"),place);\n theSlider.setAttribute("rendered","true");\n }\n // show/hide the slider\n if(config.options.chkAnimate)\n anim.startAnimating(new Slider(theSlider,!isOpen,e.shiftKey || e.altKey,"none"));\n else\n theSlider.style.display = isOpen ? "none" : "block";\n if (this.sliderCookie && this.sliderCookie.length)\n { config.options[this.sliderCookie]=!isOpen; saveOptionCookie(this.sliderCookie); }\n // align slider/floater position with target button\n adjustSliderPos(theSlider.parentNode,theTarget,theSlider,theSlider.className);\n return false;\n}\n\n// hijack animation handler 'stop' handler so overflow is visible after animation has completed\nSlider.prototype.coreStop = Slider.prototype.stop;\nSlider.prototype.stop = function() { this.coreStop(); this.element.style.overflow = "visible"; }\n\n// adjust panel position based on button position\nif (window.adjustSliderPos==undefined) window.adjustSliderPos=function(place,btn,panel,panelClass) {\n ///////////////////////////////////////////////////////////////////////////////\n /// EXPERIMENTAL HACK - WORKS IN SOME CASES, NOT IN OTHERS\n ///////////////////////////////////////////////////////////////////////////////\n // "if this panel is floating and the parent is not also a floating panel"...\n if (panelClass=="floatingPanel" && place.className!="floatingPanel") {\n var left=0; var top=btn.offsetHeight;\n if (place.style.position!="relative") { left+=findPosX(btn); top+=findPosY(btn); }\n panel.style.left=left+"px"; panel.style.top=top+"px";\n }\n}\n//}}}\n// //===
//{{{\nconfig.views.editor.defaultText = "|Excerpted passage and page citation here, with no quote marks or fancy characters, please|"; // was "Type the text for '%0'"\n//}}}
/***\n|''Name:''|ForEachTiddlerPlugin|\n|''Version:''|1.0.4 (2006-01-06)|\n|''Source:''|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin|\n|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|\n|''Licence:''|[[BSD open source license]]|\n|''Macros:''|[[ForEachTiddlerMacro]] v1.0.4|\n|''TiddlyWiki:''|1.2.38+, 2.0|\n|''Browser:''|Firefox 1.0.4+; InternetExplorer 6.0|\n!Description\n\nCreate customizable lists, tables etc. for your selections of tiddlers. Specify the tiddlers to include and their order through a powerful language.\n\n''Syntax:'' \n|>|{{{<<}}}''forEachTiddler'' [''in'' //tiddlyWikiPath//] [''where'' //whereCondition//] [''sortBy'' //sortExpression// [''ascending'' //or// ''descending'']] [''script'' //scriptText//] [//action// [//actionParameters//]]{{{>>}}}|\n|//tiddlyWikiPath//|The filepath to the TiddlyWiki the macro should work on. When missing the current TiddlyWiki is used.|\n|//whereCondition//|(quoted) JavaScript boolean expression. May refer to the build-in variables {{{tiddler}}} and {{{context}}}.|\n|//sortExpression//|(quoted) JavaScript expression returning "comparable" objects (using '{{{<}}}','{{{>}}}','{{{==}}}'. May refer to the build-in variables {{{tiddler}}} and {{{context}}}.|\n|//scriptText//|(quoted) JavaScript text. Typically defines JavaScript functions that are called by the various JavaScript expressions (whereClause, sortClause, action arguments,...)|\n|//action//|The action that should be performed on every selected tiddler, in the given order. By default the actions [[addToList|AddToListAction]] and [[write|WriteAction]] are supported. When no action is specified [[addToList|AddToListAction]] is used.|\n|//actionParameters//|(action specific) parameters the action may refer while processing the tiddlers (see action descriptions for details). <<tiddler [[JavaScript in actionParameters]]>>|\n|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|\n\nSee details see [[ForEachTiddlerMacro]] and [[ForEachTiddlerExamples]].\n\n!Revision history\n* v1.0.4 (2006-01-06)\n** Support TiddlyWiki 2.0\n* v1.0.3 (2005-12-22)\n** Features: \n*** Write output to a file supports multi-byte environments (Thanks to Bram Chen) \n*** Provide API to access the forEachTiddler functionality directly through JavaScript (see getTiddlers and performMacro)\n** Enhancements:\n*** Improved error messages on InternetExplorer.\n* v1.0.2 (2005-12-10)\n** Features: \n*** context object also holds reference to store (TiddlyWiki)\n** Fixed Bugs: \n*** ForEachTiddler 1.0.1 has broken support on win32 Opera 8.51 (Thanks to BrunoSabin for reporting)\n* v1.0.1 (2005-12-08)\n** Features: \n*** Access tiddlers stored in separated TiddlyWikis through the "in" option. I.e. you are no longer limited to only work on the "current TiddlyWiki".\n*** Write output to an external file using the "toFile" option of the "write" action. With this option you may write your customized tiddler exports.\n*** Use the "script" section to define "helper" JavaScript functions etc. to be used in the various JavaScript expressions (whereClause, sortClause, action arguments,...).\n*** Access and store context information for the current forEachTiddler invocation (through the build-in "context" object) .\n*** Improved script evaluation (for where/sort clause and write scripts).\n* v1.0.0 (2005-11-20)\n** initial version\n\n!Code\n***/\n//{{{\n\n//============================================================================\n//============================================================================\n// ForEachTiddlerPlugin\n//============================================================================\n//============================================================================\n\nversion.extensions.ForEachTiddlerPlugin = {major: 1, minor: 0, revision: 4, date: new Date(2006,1,6), source: "http://tiddlywiki.abego-software.de/#ForEachTiddlergPlugin"};\n\n// For backward compatibility with TW 1.2.x\n//\nif (!TiddlyWiki.prototype.forEachTiddler) {\n TiddlyWiki.prototype.forEachTiddler = function(callback) {\n for(var t in this.tiddlers) {\n callback.call(this,t,this.tiddlers[t]);\n };\n }\n}\n\n//============================================================================\n// forEachTiddler Macro\n//============================================================================\n\nversion.extensions.forEachTiddler = {major: 1, minor: 0, revision: 4, date: new Date(2006,1,6), provider: "http://tiddlywiki.abego-software.de"};\n\n// ---------------------------------------------------------------------------\n// Configurations and constants \n// ---------------------------------------------------------------------------\n\nconfig.macros.forEachTiddler = {\n // Standard Properties\n label: "forEachTiddler",\n prompt: "Perform actions on a (sorted) selection of tiddlers",\n\n // actions\n actions: {\n addToList: {},\n write: {}\n }\n}\n\n// ---------------------------------------------------------------------------\n// The forEachTiddler Macro Handler \n// ---------------------------------------------------------------------------\n\nconfig.macros.forEachTiddler.handler = function(place,macroName,params) {\n // config.macros.forEachTiddler.traceMacroCall(place,macroName,params);\n\n // --- Parsing ------------------------------------------\n\n var i = 0; // index running over the params\n // Parse the "in" clause\n var tiddlyWikiPath = undefined;\n if ((i < params.length) && params[i] == "in") {\n i++;\n if (i >= params.length) {\n this.handleError(place, "TiddlyWiki path expected behind 'in'.");\n return;\n }\n tiddlyWikiPath = this.paramEncode((i < params.length) ? params[i] : "");\n i++;\n }\n\n // Parse the where clause\n var whereClause ="true";\n if ((i < params.length) && params[i] == "where") {\n i++;\n whereClause = this.paramEncode((i < params.length) ? params[i] : "");\n i++;\n }\n\n // Parse the sort stuff\n var sortClause = null;\n var sortAscending = true; \n if ((i < params.length) && params[i] == "sortBy") {\n i++;\n if (i >= params.length) {\n this.handleError(place, "sortClause missing behind 'sortBy'.");\n return;\n }\n sortClause = this.paramEncode(params[i]);\n i++;\n\n if ((i < params.length) && (params[i] == "ascending" || params[i] == "descending")) {\n sortAscending = params[i] == "ascending";\n i++;\n }\n }\n\n // Parse the script\n var scriptText = null;\n if ((i < params.length) && params[i] == "script") {\n i++;\n scriptText = this.paramEncode((i < params.length) ? params[i] : "");\n i++;\n }\n\n // Parse the action. \n // When we are already at the end use the default action\n var actionName = "addToList";\n if (i < params.length) {\n if (!config.macros.forEachTiddler.actions[params[i]]) {\n this.handleError(place, "Unknown action '"+params[i]+"'.");\n return;\n } else {\n actionName = params[i]; \n i++;\n }\n } \n \n // Get the action parameter\n // (the parsing is done inside the individual action implementation.)\n var actionParameter = params.slice(i);\n\n\n // --- Processing ------------------------------------------\n try {\n this.performMacro({\n place: place, \n whereClause: whereClause, \n sortClause: sortClause, \n sortAscending: sortAscending, \n actionName: actionName, \n actionParameter: actionParameter, \n scriptText: scriptText, \n tiddlyWikiPath: tiddlyWikiPath});\n\n } catch (e) {\n this.handleError(place, e);\n }\n}\n\n// Returns an object with properties "tiddlers" and "context".\n// tiddlers holds the (sorted) tiddlers selected by the parameter,\n// context the context of the execution of the macro.\n//\n// The action is not yet performed.\n//\n// @parameter see performMacro\n//\nconfig.macros.forEachTiddler.getTiddlersAndContext = function(parameter) {\n\n var context = config.macros.forEachTiddler.createContext(parameter.place, parameter.whereClause, parameter.sortClause, parameter.sortAscending, parameter.actionName, parameter.actionParameter, parameter.scriptText, parameter.tiddlyWikiPath);\n\n var tiddlyWiki = parameter.tiddlyWikiPath ? this.loadTiddlyWiki(parameter.tiddlyWikiPath) : store;\n context["tiddlyWiki"] = tiddlyWiki;\n \n // Get the tiddlers, as defined by the whereClause\n var tiddlers = this.findTiddlers(parameter.whereClause, context, tiddlyWiki);\n context["tiddlers"] = tiddlers;\n\n // Sort the tiddlers, when sorting is required.\n if (parameter.sortClause) {\n this.sortTiddlers(tiddlers, parameter.sortClause, parameter.sortAscending, context);\n }\n\n return {tiddlers: tiddlers, context: context};\n}\n\n// Returns the (sorted) tiddlers selected by the parameter.\n//\n// The action is not yet performed.\n//\n// @parameter see performMacro\n//\nconfig.macros.forEachTiddler.getTiddlers = function(parameter) {\n return this.getTiddlersAndContext(parameter).tiddlers;\n}\n\n// Performs the macros with the given parameter.\n//\n// @param parameter holds the parameter of the macro as separate properties.\n// The following properties are supported:\n//\n// place\n// whereClause\n// sortClause\n// sortAscending\n// actionName\n// actionParameter\n// scriptText\n// tiddlyWikiPath\n//\n// All properties are optional. \n// For most actions the place property must be defined.\n//\nconfig.macros.forEachTiddler.performMacro = function(parameter) {\n var tiddlersAndContext = this.getTiddlersAndContext(parameter);\n\n // Perform the action\n var actionName = parameter.actionName ? parameter.actionName : "addToList";\n var action = config.macros.forEachTiddler.actions[actionName];\n if (!action) {\n this.handleError(parameter.place, "Unknown action '"+actionName+"'.");\n return;\n }\n\n var actionHandler = action.handler;\n actionHandler(parameter.place, tiddlersAndContext.tiddlers, parameter.actionParameter, tiddlersAndContext.context);\n}\n\n// ---------------------------------------------------------------------------\n// The actions \n// ---------------------------------------------------------------------------\n\n// Internal.\n//\n// --- The addToList Action -----------------------------------------------\n//\nconfig.macros.forEachTiddler.actions.addToList.handler = function(place, tiddlers, parameter, context) {\n // Parse the parameter\n var p = 0;\n\n // Check for extra parameters\n if (parameter.length > p) {\n config.macros.forEachTiddler.createExtraParameterErrorElement(place, "addToList", parameter, p);\n return;\n }\n\n // Perform the action.\n var list = document.createElement("ul");\n place.appendChild(list);\n for (var i = 0; i < tiddlers.length; i++) {\n var tiddler = tiddlers[i];\n var listItem = document.createElement("li")\n list.appendChild(listItem);\n createTiddlyLink(listItem, tiddler.title, true);\n }\n}\n\n// Internal.\n//\n// --- The write Action ---------------------------------------------------\n//\nconfig.macros.forEachTiddler.actions.write.handler = function(place, tiddlers, parameter, context) {\n // Parse the parameter\n var p = 0;\n if (p >= parameter.length) {\n this.handleError(place, "Missing expression behind 'write'.");\n return;\n }\n\n var textExpression = config.macros.forEachTiddler.paramEncode(parameter[p]);\n p++;\n\n // Parse the "toFile" option\n var filename = null;\n var lineSeparator = undefined;\n if ((p < parameter.length) && parameter[p] == "toFile") {\n p++;\n if (p >= parameter.length) {\n this.handleError(place, "Filename expected behind 'toFile' of 'write' action.");\n return;\n }\n \n filename = config.macros.forEachTiddler.getLocalPath(config.macros.forEachTiddler.paramEncode(parameter[p]));\n p++;\n if ((p < parameter.length) && parameter[p] == "withLineSeparator") {\n p++;\n if (p >= parameter.length) {\n this.handleError(place, "Line separator text expected behind 'withLineSeparator' of 'write' action.");\n return;\n }\n lineSeparator = config.macros.forEachTiddler.paramEncode(parameter[p]);\n p++;\n }\n }\n \n // Check for extra parameters\n if (parameter.length > p) {\n config.macros.forEachTiddler.createExtraParameterErrorElement(place, "write", parameter, p);\n return;\n }\n\n // Perform the action.\n var func = config.macros.forEachTiddler.getEvalTiddlerFunction(textExpression, context);\n var count = tiddlers.length;\n var text = "";\n for (var i = 0; i < count; i++) {\n var tiddler = tiddlers[i];\n text += func(tiddler, context, count, i);\n }\n \n if (filename) {\n if (lineSeparator != undefined) {\n lineSeparator = lineSeparator.replace(/\s\sn/mg, "\sn").replace(/\s\sr/mg, "\sr");\n text = text.replace(/\sn/mg,lineSeparator);\n }\n saveFile(filename, convertUnicodeToUTF8(text));\n } else {\n var wrapper = createTiddlyElement(place, "span");\n wikify(text, wrapper);\n }\n}\n\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n// Internal.\n//\nconfig.macros.forEachTiddler.createContext = function(placeParam, whereClauseParam, sortClauseParam, sortAscendingParam, actionNameParam, actionParameterParam, scriptText, tiddlyWikiPathParam) {\n return {\n place : placeParam, \n whereClause : whereClauseParam, \n sortClause : sortClauseParam, \n sortAscending : sortAscendingParam, \n script : scriptText,\n actionName : actionNameParam, \n actionParameter : actionParameterParam,\n tiddlyWikiPath : tiddlyWikiPathParam\n }\n}\n\n// Internal.\n//\n// Returns a TiddlyWiki with the tiddlers loaded from the TiddlyWiki of \n// the given path.\n//\nconfig.macros.forEachTiddler.loadTiddlyWiki = function(path, idPrefix) {\n if (!idPrefix) {\n idPrefix = "store";\n }\n \n // Read the content of the given file\n var content = loadFile(this.getLocalPath(path));\n if(content == null) {\n throw "TiddlyWiki '"+path+"' not found.";\n }\n \n // Locate the storeArea div's\n var posOpeningDiv = content.indexOf(startSaveArea);\n var posClosingDiv = content.lastIndexOf(endSaveArea);\n if((posOpeningDiv == -1) || (posClosingDiv == -1)) {\n throw "File '"+path+"' is not a TiddlyWiki.";\n }\n var storageText = content.substr(posOpeningDiv + startSaveArea.length, posClosingDiv);\n \n // Create a "div" element that contains the storage text\n var myStorageDiv = document.createElement("div");\n myStorageDiv.innerHTML = storageText;\n myStorageDiv.normalize();\n \n // Create all tiddlers in a new TiddlyWiki\n // (following code is modified copy of TiddlyWiki.prototype.loadFromDiv)\n var tiddlyWiki = new TiddlyWiki();\n var store = myStorageDiv.childNodes;\n for(var t = 0; t < store.length; t++) {\n var e = store[t];\n var title = null;\n if(e.getAttribute)\n title = e.getAttribute("tiddler");\n if(!title && e.id && e.id.substr(0,lenPrefix) == idPrefix)\n title = e.id.substr(lenPrefix);\n if(title && title != "") {\n var tiddler = tiddlyWiki.createTiddler(title);\n tiddler.loadFromDiv(e,title);\n }\n }\n tiddlyWiki.dirty = false;\n\n return tiddlyWiki;\n}\n\n\n \n// Internal.\n//\n// Returns a function that has a function body returning the given javaScriptExpression.\n// The function has the parameters:\n// \n// (tiddler, context, count, index)\n//\nconfig.macros.forEachTiddler.getEvalTiddlerFunction = function (javaScriptExpression, context) {\n var script = context["script"];\n var functionText = "theFunction = function(tiddler, context, count, index) { return "+javaScriptExpression+"}";\n var fullText = (script ? script+";" : "")+functionText;\n return eval(fullText);\n}\n\n// Internal.\n//\nconfig.macros.forEachTiddler.findTiddlers = function(whereClause, context, tiddlyWiki) {\n var result = [];\n var func = config.macros.forEachTiddler.getEvalTiddlerFunction(whereClause, context);\n tiddlyWiki.forEachTiddler(function(title,tiddler) {\n if (func(tiddler, context, undefined, undefined)) {\n result.push(tiddler);\n }\n });\n return result;\n}\n\n// Internal.\n//\nconfig.macros.forEachTiddler.createExtraParameterErrorElement = function(place, actionName, parameter, firstUnusedIndex) {\n var message = "Extra parameter behind '"+actionName+"':";\n for (var i = firstUnusedIndex; i < parameter.length; i++) {\n message += " "+parameter[i];\n }\n this.handleError(place, message);\n}\n\n// Internal.\n//\nconfig.macros.forEachTiddler.sortAscending = function(tiddlerA, tiddlerB) {\n var result = \n (tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) \n ? 0\n : (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)\n ? -1 \n : +1; \n return result;\n}\n\n// Internal.\n//\nconfig.macros.forEachTiddler.sortDescending = function(tiddlerA, tiddlerB) {\n var result = \n (tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) \n ? 0\n : (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)\n ? +1 \n : -1; \n return result;\n}\n\n// Internal.\n//\nconfig.macros.forEachTiddler.sortTiddlers = function(tiddlers, sortClause, ascending, context) {\n // To avoid evaluating the sortClause whenever two items are compared \n // we pre-calculate the sortValue for every item in the array and store it in a \n // temporary property ("forEachTiddlerSortValue") of the tiddlers.\n var func = config.macros.forEachTiddler.getEvalTiddlerFunction(sortClause, context);\n var count = tiddlers.length;\n for (var i = 0; i < count; i++) {\n var tiddler = tiddlers[i];\n tiddler.forEachTiddlerSortValue = func(tiddler,context, undefined, undefined);\n }\n\n // Do the sorting\n tiddlers.sort(ascending ? this.sortAscending : this.sortDescending);\n\n // Delete the temporary property that holds the sortValue. \n for (var i = 0; i < tiddlers.length; i++) {\n delete tiddlers[i].forEachTiddlerSortValue;\n }\n}\n\n\n// Internal.\n//\nconfig.macros.forEachTiddler.trace = function(message) {\n displayMessage(message);\n}\n\n// Internal.\n//\nconfig.macros.forEachTiddler.traceMacroCall = function(place,macroName,params) {\n var message ="<<"+macroName;\n for (var i = 0; i < params.length; i++) {\n message += " "+params[i];\n }\n message += ">>";\n displayMessage(message);\n}\n\n\n// Internal.\n//\n// Creates an element that holds an error message\n// \nconfig.macros.forEachTiddler.createErrorElement = function(place, exception) {\n var message = (exception.description) ? exception.description : exception.toString();\n return createTiddlyElement(place,"span",null,"forEachTiddlerError","<<forEachTiddler ...>>: "+message);\n}\n\n// Internal.\n//\n// @param place [may be null]\n//\nconfig.macros.forEachTiddler.handleError = function(place, exception) {\n if (place) {\n this.createErrorElement(place, exception);\n } else {\n throw exception;\n }\n}\n\n// Internal.\n//\n// Encodes the given string.\n//\n// Replaces \n// "$))" to ">>"\n// "$)" to ">"\n//\nconfig.macros.forEachTiddler.paramEncode = function(s) {\n var reGTGT = new RegExp("\s\s$\s\s)\s\s)","mg");\n var reGT = new RegExp("\s\s$\s\s)","mg");\n return s.replace(reGTGT, ">>").replace(reGT, ">");\n}\n\n// Internal.\n//\n// Returns the given original path (that is a file path, starting with "file:")\n// as a path to a local file, in the systems native file format.\n//\n// Location information in the originalPath (i.e. the "#" and stuff following)\n// is stripped.\n// \nconfig.macros.forEachTiddler.getLocalPath = function(originalPath) {\n // Remove any location part of the URL\n var hashPos = originalPath.indexOf("#");\n if(hashPos != -1)\n originalPath = originalPath.substr(0,hashPos);\n // Convert to a native file format assuming\n // "file:///x:/path/path/path..." - pc local file --> "x:\spath\spath\spath..."\n // "file://///server/share/path/path/path..." - FireFox pc network file --> "\s\sserver\sshare\spath\spath\spath..."\n // "file:///path/path/path..." - mac/unix local file --> "/path/path/path..."\n // "file://server/share/path/path/path..." - pc network file --> "\s\sserver\sshare\spath\spath\spath..."\n var localPath;\n if(originalPath.charAt(9) == ":") // pc local file\n localPath = unescape(originalPath.substr(8)).replace(new RegExp("/","g"),"\s\s");\n else if(originalPath.indexOf("file://///") == 0) // FireFox pc network file\n localPath = "\s\s\s\s" + unescape(originalPath.substr(10)).replace(new RegExp("/","g"),"\s\s");\n else if(originalPath.indexOf("file:///") == 0) // mac/unix local file\n localPath = unescape(originalPath.substr(7));\n else if(originalPath.indexOf("file:/") == 0) // mac/unix local file\n localPath = unescape(originalPath.substr(5));\n else // pc network file\n localPath = "\s\s\s\s" + unescape(originalPath.substr(7)).replace(new RegExp("/","g"),"\s\s"); \n return localPath;\n}\n\n// ---------------------------------------------------------------------------\n// Stylesheet Extensions (may be overridden by local StyleSheet)\n// ---------------------------------------------------------------------------\n//\nsetStylesheet(\n ".forEachTiddlerError{color: #ffffff;background-color: #880000;}",\n "forEachTiddler");\n\n//============================================================================\n// End of forEachTiddler Macro\n//============================================================================\n\n\n//============================================================================\n// String.startsWith Function\n//============================================================================\n//\n// Returns true if the string starts with the given prefix, false otherwise.\n//\nversion.extensions["String.startsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nString.prototype.startsWith = function(prefix) {\n var n = prefix.length;\n return (this.length >= n) && (this.slice(0, n) == prefix);\n}\n\n\n\n//============================================================================\n// String.endsWith Function\n//============================================================================\n//\n// Returns true if the string ends with the given suffix, false otherwise.\n//\nversion.extensions["String.endsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nString.prototype.endsWith = function(suffix) {\n var n = suffix.length;\n return (this.length >= n) && (this.right(n) == suffix);\n}\n\n\n//============================================================================\n// String.contains Function\n//============================================================================\n//\n// Returns true when the string contains the given substring, false otherwise.\n//\nversion.extensions["String.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nString.prototype.contains = function(substring) {\n return this.indexOf(substring) >= 0;\n}\n\n//============================================================================\n// Array.indexOf Function\n//============================================================================\n//\n// Returns the index of the first occurance of the given item in the array or \n// -1 when no such item exists.\n//\n// @param item [may be null]\n//\nversion.extensions["Array.indexOf"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.indexOf = function(item) {\n for (var i = 0; i < this.length; i++) {\n if (this[i] == item) {\n return i;\n }\n }\n return -1;\n}\n\n//============================================================================\n// Array.contains Function\n//============================================================================\n//\n// Returns true when the array contains the given item, otherwise false. \n//\n// @param item [may be null]\n//\nversion.extensions["Array.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.contains = function(item) {\n return (this.indexOf(item) >= 0);\n}\n\n//============================================================================\n// Array.containsAny Function\n//============================================================================\n//\n// Returns true when the array contains at least one of the elements \n// of the item. Otherwise (or when items contains no elements) false is returned.\n//\nversion.extensions["Array.containsAny"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.containsAny = function(items) {\n for(var i = 0; i < items.length; i++) {\n if (this.contains(items[i])) {\n return true;\n }\n }\n return false;\n}\n\n\n//============================================================================\n// Array.containsAll Function\n//============================================================================\n//\n// Returns true when the array contains all the items, otherwise false.\n// \n// When items is null false is returned (even if the array contains a null).\n//\n// @param items [may be null] \n//\nversion.extensions["Array.containsAll"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.containsAll = function(items) {\n for(var i = 0; i < items.length; i++) {\n if (!this.contains(items[i])) {\n return false;\n }\n }\n return true;\n}\n\n\n\n//}}}\n\n\n/***\n!Licence and Copyright\nCopyright (c) abego Software ~GmbH, 2005 ([[www.abego-software.de|http://www.abego-software.de]])\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\nRedistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\n\nRedistributions in binary form must reproduce the above copyright notice, this\nlist of conditions and the following disclaimer in the documentation and/or other\nmaterials provided with the distribution.\n\nNeither the name of abego Software nor the names of its contributors may be\nused to endorse or promote products derived from this software without specific\nprior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT\nSHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR\nBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n***/
/***\n|''Name:''|NewerTiddlerPlugin|\n|''Version:''|1.0.2 |\n|''Source:''|http://thepettersons.org/PaulsNotepad.html#NewerTiddlerPlugin |\n|''Author:''|[[PaulPetterson]] |\n|''Type:''|Macro Extension |\n|''Requires:''|TiddlyWiki 1.2.33 or higher |\n!Description\nCreate a 'new tiddler' button with lots more options! Specify the text to show on the button, the name of the new tiddler (with date macro expansion), one or more tags for the new tiddlers, and what text if any to include in the new tiddler body! Uses a named parameter format, simalar to the reminder plugin.\n\nAlso - if the tiddler already exists it won't replace any of it's existing data (like tags).\n\n!Syntax\n* {{{<<newerTiddler button:"Inbox" name:"Inbox YYYY/MM/DD" tags:"Journal, inbox" text:"New stuff for today:">>}}}\n* {{{<<newerTiddler button:"@Action" name:"Action: what" tags:"@Action" text:"Add project and describe action">>}}}\n* {{{<<newerTiddler button:"New Project" name:"Project Name?" tags:"My Projects, My Inbox, Journal" template:"MyTemplate">>}}}\n!!Parameters\n* name:"Name of Tiddler"\n* tags:"Tag1, Tag2, Tag3" - tags for new tiddler, comma seperated //don't use square brackets //({{{[[}}})// for tags!//\n* button:"name for button" - the name to display instead of "new tiddler"\n* body:"what to put in the tiddler body"\n* template:"Name of a tiddler containing the text to use as the body of the new tiddler"\n\n''Note:'' if you sepecify both body and template parameters, then template parameter will be used and the body parameter overridden.\n\n!Sample Output\n\n* <<newerTiddler button:"Templated" name:"Type concise title here (avoid quote marks please)" template:"CommentaryTemplate" tags:"commentary">>\n* <<newerTiddler button:"Commentary" name:"Type concise title here (avoid quote marks please)" text:"|Excerpt between vertical bars, again no quote marks. Commentary should go immediately below, avoiding extra line breaks throughout.|" tags:"commentary">>\n* <<newerTiddler button:"Inbox" name:"Inbox YYYY/MM/DD" tags:"Journal, inbox" text:"New stuff for today:">>\n* <<newerTiddler button:"@Action" name:"Action: what" tags:"@Action" text:"Add project and describe action">>\n* <<newerTiddler button:"New Project" name:"Project Name?" tags:"My Projects, My Inbox, Journal" template:"MyTemplate">>\n\n!Todo\n<<projectTemplate>>\n\n!Known issues\n* Must use double quotes (") around parameter values if they contain a space, can't use single quotes (').\n* can't use standard bracketted style tags, ust type in the tags space and all and put a comma between them. For example tags:"one big tag, another big tag" uses 2 tags ''one big tag'' and ''another big tag''.\n\n!Notes\n* It works fine, and I use it daily, however I haven't really tested edge cases or multiple platforms. If you run into bugs or problems, let me know!\n\n!Requests\n* Have delta-date specifiers on the name: name:"Inbox YYY/MM/DD+1" ( ceruleat@gmail.com )\n* Option to just open the tiddler instead of immediately edit it ( ceruleat@gmail.com )\n* Have date formatters in tags as well as in name (me)\n\n!Revision history\nv0.7 Initial public preview\nv0.8 October 10th - Feature complete... \nv1.0 October 11th - Initial public release\nv1.0.1 October 13th - fixed a bug occurring only in FF\nv1.0.2 (not released yet) - fixed small documentation issues.\n\n!Code\n***/\n//{{{\n// Newer Tiddler...\nconfig.macros.newerTiddler = { \nname:"New(er) Tiddler",\ntags:"",\ntext:"Type Tiddler Contents Here.",\nbutton:"new(er) tiddler",\nreparse: function( params ) {\n// var s = "", sep = "";\n// for( var i = 0; i<params.length; i++ ) {\n// s = s + sep + params[i] ;\n// sep = " " ;\n// }\n var s = params.join(" ");\n \n var re = /([^:\ss]*):["]([^"]*)["]/g ;\n var ret = new Array() ;\n var m ;\n while( (m = re.exec( s )) != null ) ret[ m[1] ] = m[2] ;\n \n return ret ;\n},\nmakeTags: function( tags ) {\n var ret = "", sep = "" ;\n var csvRegex=/([^,]*),?/g ;\n var match = csvRegex.exec( tags );\n while( match ) {\n ret = ret + sep + String.encodeTiddlyLink( match[1].trim() ) ;\n sep = " " ;\n match = csvRegex.exec( tags );\n // looks like a bug - mozilla docs say exec() should return null if no match is found, \n // instead it's returning an empty string...\n if ( match[1].length == 0 ) match = null ;\n }\n return ret ;\n},\n\n// Added by Rich Carrillo for 2.0.2 compatibility 20060113\ngetTiddlerEditField: function(title,field)\n{\n var tiddler = document.getElementById("tiddler" + title);\n if(tiddler != null)\n {\n var children = tiddler.getElementsByTagName("*")\n var e = null;\n for (var t=0; t<children.length; t++)\n {\n var c = children[t];\n if(c.tagName.toLowerCase() == "input" || c.tagName.toLowerCase() == "textarea")\n {\n if(!e)\n e = c;\n if(c.getAttribute("edit") == field)\n e = c;\n }\n }\n if(e)\n {\n return e;\n }\n }\n},\n\nhandler: function(place,macroName,params) {\n if ( readOnly ) return ;\n \n var input = this.reparse( params ) ;\n var tiddlerName = input["name"]?input["name"].trim():config.macros.newerTiddler.name ;\n var tiddlerTags = input["tags"]?this.makeTags( input["tags"] ):config.macros.newerTiddler.tags ;\n var tiddlerBody = input["text"]?input["text"]:config.macros.newerTiddler.text ;\n var buttonText = input["button"]?input["button"]:config.macros.newerTiddler.button ;\n var template = input["template"]?input["template"]:null;\n \n // if there is a template, use it - otherwise use the tiddlerBody text\n if ( template ) {\n tiddlerBody = store.getTiddlerText( template );\n }\n \n var now = new Date() ;\n tiddlerName = now.formatString( tiddlerName ) ;\n \n createTiddlyButton( place, buttonText, "", function() {\n displayTiddler(null,tiddlerName,2,null,null,false,false);\n \n// Changed by Rich Carrillo 20060113 - I had to disable this bit of error checking for 2.0.2 compatibility. I dont have time to look up the new function that should be used\n//if ( store.tiddlers[tiddlerName] != null ) return ;\n \n// Changed by Rich Carrillo 20060113\n//var tagsBox = document.getElementById("editorTags" + tiddlerName);\nvar tagsBox = config.macros.newerTiddler.getTiddlerEditField(tiddlerName,"tags");\n\n if(tagsBox && tiddlerTags ) tagsBox.value = tiddlerTags.readBracketedList();\n\n// Changed by Rich Carrillo 20060113\n// var editBox = document.getElementById("editorBody" + tiddlerName);\nvar editBox = config.macros.newerTiddler.getTiddlerEditField(tiddlerName,"text");\n \nif(editBox && tiddlerBody ) editBox.value = tiddlerBody ;\n } );\n}}\n//}}}\n/***\nThis plugin is released under the [[Creative Commons Attribution 2.5 License|http://creativecommons.org/licenses/by/2.5/]]\n***/
\n+++[—Syllabus info—|See PHIL 212 syllabus details]\n^^[[course description|PHIL 212 course description]]^^\n^^[[calendar]]^^\n^^[[assignments|assignment overview]]^^\n^^[[discussion teams]]^^\n^^[[reading strategies]]^^\n^^[[commentaries]]^^\n^^[[exams]]^^\n^^[[long essay]]^^\n===\n----\n+++[—List Students—|See students by group]\n<<openAll ALB "title:ALB" closeAllFirst>> <<openAll AKL "title:AKL" closeAllFirst>> <<openAll JHC "title:JHC" closeAllFirst>> <<openAll JC "title:JC" closeAllFirst>>\n<<openAll BSC "title:BSC" closeAllFirst>> <<openAll JPD "title:JPD" closeAllFirst>> <<openAll CJ "title:CJ" closeAllFirst>> <<openAll TV "title:TV" closeAllFirst>>\n<<openAll AE "title:AE" closeAllFirst>> <<openAll DWZ "title:DWZ" closeAllFirst>> <<openAll EQ "title:EQ" closeAllFirst>> <<openAll ERD "title:ERD" closeAllFirst>>\n<<openAll JSE "title:JSE" closeAllFirst>> <<openAll ADF "title:ADF" closeAllFirst>> <<openAll dnm "title:dnm" closeAllFirst>> <<openAll mz "title:mz" closeAllFirst>> \n<<openAll rsb "title:rsb" closeAllFirst>> <<openAll MM "title:MM" closeAllFirst>> <<openAll KRH "title:KRH" closeAllFirst>> <<openAll PL "title:PL" closeAllFirst>>\n<<openAll SJR "title:SJR" closeAllFirst>> <<openAll EPD "title:EPD" closeAllFirst>> <<openAll SRD "title:SRD" closeAllFirst>>\n<<openAll JRS "title:JRS" closeAllFirst>> <<openAll EMDF "title:EMDF" closeAllFirst>> <<openAll dwb "title:dwb" closeAllFirst>> <<openAll JRN "title:JRN" closeAllFirst>> \n<<openAll NNS "title:NNS" closeAllFirst>> <<openAll SAW "title:SAW" closeAllFirst>> <<openAll DR "title:DR" closeAllFirst>> <<openAll ATB "title:ATB" closeAllFirst>>\n<<openAll OLG "title:OLG" closeAllFirst>> <<openAll ESB "title:ESB" closeAllFirst>> <<openAll MNR "title:MNR" closeAllFirst>> <<openAll AIF "title:AIF" closeAllFirst>>\n<<openAll CRB "title:CRB" closeAllFirst>> <<openAll WCF "title:WCF" closeAllFirst>> <<openAll JBK "title:JBK" closeAllFirst>> <<openAll rs "title:rs" closeAllFirst>>\n===\n----\n+++[—List Dates—|"Date tags, access to commentaries by date"]\n^^Click on date to browse^^\n[[Unit D submissions|Unit D submissions (Mill & Utilitarianism)]]\n[[Unit E submissions]]:\n<<openAll 11/14 "title:11/14" closeAllFirst>> <<openAll 11/16 "title:11/16" closeAllFirst>> <<openAll 11/21 "title:11/21" closeAllFirst>> <<openAll 11/28 "title:11/28" closeAllFirst>>\n[[Unit F submissions]]:\n<<openAll 11/30 "title:11/30" closeAllFirst>> <<openAll 12/5 "title:12/5" closeAllFirst>> <<openAll 12/7 "title:12/7" closeAllFirst>> <<openAll 12/12 "title:12/12" closeAllFirst>>\n[[Previews, by theme|Previews by theme]]\n===\n----\n+++[—Using this site—|Logging in and contributing]\n~~[[welcome]]~~\n~~[[sign-ups|scheduling commentaries]]~~\n~~[[submitting commentaries]]~~\n~~[[about tagging]]~~\n===\n\n<<displayDefaultTiddlers 'back to welcome page'>>
{{{\n// allows one to get a list of tiddlers with <<list tag tagname>>\n// <<list tag tagname ExcludeTiddler>> will exclude named tiddler\n// <<list tag tag1+tag2+tag3>> will list tiddlers with all 3 tags\n// <<list tag tag1-tag2>> will list tag1 tiddlers without tag2\nconfig.macros.list.tag = {\n handler: function(params) {\n var tags=params[1].split(/[\s+\s-]/);\n var t=[];\n for(var i=0;i<tags.length;i++)\n t.push(store.reverseLookup("tags",tags[i],true,"title"));\n while(t.length>1){\n var i=params[1].indexOf('-')>-1 ? subtract(t[0],t[1]) : intersect(t[0],t[1]);\n if(t.length>2)t=[i].concat(t.slice(2));\n else t=[i];\n }\n var list=[];\n var t=t[0];\n for(var i=0;i<t.length;i++)\n if(!params[2]||t[i].title!=params[2]) list.push(t[i]);\n return list;\n }\n}\nfunction intersect(set1,set2) {\n var set=[];\n for(var i=0;i<set1.length;i++)\n for(var j=0;j<set2.length;j++)\n if(set1[i]==set2[j])\n set.push(set1[i]);\n return set;\n};\nfunction subtract(set1,set2) {\n var set=[];\n for(var i=0;i<set1.length;i++) {\n var f=false;\n for(var j=0;j<set2.length;j++)\n if(set1[i]==set2[j])f=true;\n if(!f)set.push(set1[i]);\n }\n return set;\n};\n}}}
// plugin to show most recently modified tiddlers as default //\n\n{{{\nvar num = 5;\nvar ignore_tags = ['systemConfig', 'systemTiddlers', 'reference', 'comments', 'excludeSearch', 'reference'];\n\nfunction in_array(item, arr){for(var i=0;i<arr.length;i++)if(item==arr[i])return true};\nvar tiddlers = store.getTiddlers('modified');\nvar names = [];\nvar ignore_tiddlers = [];\nfor(var i=0; i<ignore_tags.length; i++)\n ignore_tiddlers=ignore_tiddlers.concat(store.getTaggedTiddlers(ignore_tags[i]));\nfor(var i=tiddlers.length-1; i>=0; i--) {\n if(!in_array(tiddlers[i], ignore_tiddlers))\n names.push(tiddlers[i].title);\n}\nnames = names.slice(0, num);\nnames = store.getTiddlerText("DefaultTiddlers").readBracketedList().concat(names)\n_restart = restart\nrestart = function() {\n if(window.location.hash) _restart();\n else story.displayTiddlers(null,names);\n}\n}}}
/***\n''UnformattedTextPlugin for TiddlyWiki version 1.2.x and 2.0''\n^^author: Eric Shulman - ELS Design Studios\nsource: http://www.elsdesign.com/tiddlywiki/#UnformattedTextPlugin \nlicense: [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^\n\nAdd //extended quotes// around specific tiddler content to prevent any embedded formatting syntax from being processed by TiddlyWiki's rendering engine, so the content will appear exactly as entered into the tiddler (i.e., "raw text"), even when it contains character sequences that would normally be treated as TiddlyWiki formatting instructions.\n!!!!!Usage\n<<<\nWhen installed, this plugin adds new wiki syntax for surrounding tiddler content so that it can be excluded from the TiddlyWiki formatting rules when it is rendered.\n//{{{\n"""content goes here"""\n//}}}\nwhere:\n* {{{"""}}} //(three double-quote characters)//^^\nmarks the start and end of the unformatted content^^\n<<<\n!!!!!Examples\n<<<\nContent containing TiddlyWiki formatting syntax can be shown with the syntax unchanged:\n{{{\n"""this text is //not italic// and <<not a macro>> and [[not a link]]"""\n}}}\n"""this text is //not italic// and <<not a macro>> and [[not a link]]"""\n\nNote that, although formatting syntax contained ''within'' the quoted content does not affect the style of the output, any formatting syntax ''surrounding'' the quoted content will still be applied. For example, the following unformatted output will be underlined:\n{{{\n__"""this text is //not italic// and <<not a macro>> and [[not a link]], but it IS underlined"""__\n}}}\n__"""this text is //not italic// and <<not a macro>> and [[not a link]], but it IS underlined"""__\n<<<\n!!!!!Installation\n<<<\nimport (or copy/paste) the following tiddlers into your document:\n''UnformattedTextPlugin'' (tagged with <<tag systemConfig>>)\n<<<\n!!!!!Revision History\n<<<\n''2005.11.07 [1.0.0]''\ninitial release\n<<<\n!!!!!Credits\n<<<\nThis feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]\n<<<\n!!!!!Code\n***/\n//{{{\nversion.extensions.unformattedText = {major: 0, minor: 5, revision: 0, date: new Date(2005,11,07)};\n\nconfig.formatters.push( {\n name: "rawText",\n match: "\s\s\s"{3}",\n lookahead: "\s\s\s"{3}((?:.|\s\sn)*?)\s\s\s"{3}",\n handler: function(w)\n {\n var lookaheadRegExp = new RegExp(this.lookahead,"mg");\n lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = lookaheadRegExp.exec(w.source)\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart)\n {\n var e = createTiddlyElement(w.output,"span",null,null,lookaheadMatch[1]);\n w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;\n }\n }\n }\n)\n//}}}
/***\n''DisableWikiLinksPlugin for TiddlyWiki version 1.2.x and 2.0''\n^^author: Eric Shulman - ELS Design Studios\nsource: http://www.elsdesign.com/tiddlywiki/#DisableWikiLinksPlugin\nlicense: [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^\n\n!!!!!Configuration\n<<<\nSelf-contained control panel:\n<<option chkDisableWikiLinks>> Disable automatic WikiWord tiddler links\n<<<\n\n!!!!!Code\n***/\n//{{{\nversion.extensions.disableWikiLinks= {major: 1, minor: 0, revision: 0, date: new Date(2005,12,9)};\n\nif (config.options.chkDisableWikiLinks==undefined) config.options.chkDisableWikiLinks= true;\n\n// find the formatter for wikiLink and replace handler with 'pass-thru' rendering\nfor (var i=0; i<config.formatters.length && config.formatters[i].name!="wikiLink"; i++);\nconfig.formatters[i].coreHandler=config.formatters[i].handler;\nconfig.formatters[i].handler=function(w) {\n // if not enabled, just do standard WikiWord link formatting\n if (!config.options.chkDisableWikiLinks) return this.coreHandler(w);\n // supress any leading "~" (if present)\n var skip=(w.matchText.substr(0,1)==config.textPrimitives.unWikiLink)?1:0;\n w.outputText(w.output,w.matchStart+skip,w.nextMatch)\n}\n//}}}\n
/***\n''MessageLibrary for TiddlyWiki version 2.0.0 or above''\n''Name:'' Message Library\n''Version:'' 1.0.1 (Dec 22, 2005) \n''Author:'' Dawn Ahukanna\n''Source:'' http://www.aurore.eclipse.co.uk/wiki/beta.htm#MessageLibrary\n''License:'' [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^\n\n!Usage\n<<<\nUse this to rename your ''tiddlers'' to what ever you like. Overrides the default messages so makes it easy to upgrade and keep your modifications.\n<<<\n!Installation\n<<<\nImport (or copy/paste) the following tiddlers into your document:\n''MessageLibrary'' (tagged with <<tag systemConfig>>)\nTo change what tiddlers are called, update the messageType variable to use whatever name you want.\nvar messageType = {lower: "item", lowerPlural: "items", mixed: "Item", mixedPlural: "Items", wikiName: "discussion board", downloadURL: "localhost/tiddly/#DownloadSoftware"};\n\n|Array variable | Description |h\n|''lower'' |The name in lowercase.|\n|''lowerPlural'' |The plural of the name in lowercase.|\n|''mixed'' |The name with the first letter capitalised.|\n|''mixedPlural''|The plural of the name with the first letter capitalised.|\n|''wikiName''|Name of the wiki. Replaces every default instance of "TiddlyWiki" in the messages.|\n|''downloadURL''|Download URL in the save error message.|\n\n<<<\n!Revision History\n\n|Release |Date |Description |h\n|1.0.1 |22 Dec 2005 |Added message for shadow tiddlers |\n|1.0.0 |22 Dec 2005 |Initial release |\n\n<<<\n!Credits\n<<<\nThis customisation was produced by DawnAhukanna\n<<<\n!Code\n***/\n//{{{\nvar messageType = {lower: "item", lowerPlural: "items", mixed: "Item", mixedPlural: "Items", wikiName: "discussion board", downloadURL: "localhost/tiddly/#DownloadSoftware"};\n//Override messages in config.message text. \n// Messages\nconfig.messages.customConfigError="Error in systemConfig " + messageType.lower + " '%1' - %0";\nconfig.messages.savedSnapshotError="It appears that this " + messageType.wikiName + " has been incorrectly saved. Please see http:// " + messageType.downloadURL + " for details";\nconfig.messages.undefinedTiddlerToolTip="The " + messageType.lower + " '%0' doesn't yet exist";\nconfig.messages.shadowedTiddlerToolTip="The " + messageType.lower + " '%0' doesn't yet exist, but has a pre-defined shadow value";\nconfig.messages.noTags="There are no tagged " + messageType.lowerPlural;\nconfig.messages.notFileUrlError="You need to save this " + messageType.wikiName + " to a file before you can save changes";\nconfig.messages.cantSaveError="It's not possible to save changes using this browser. Use FireFox if you can";\nconfig.messages.invalidFileError="The original file '%0' does not appear to be a valid " + messageType.wikiName;\nconfig.messages.mainSaved="Main " + messageType.wikiName + " file saved";\nconfig.messages.mainFailed="Failed to save main " + messageType.wikiName + " file. Your changes have not been saved";\nconfig.messages.overwriteWarning="A " + messageType.lower + " named '%0' already exists. Choose OK to overwrite it";\nconfig.messages.unsavedChangesWarning="WARNING! There are unsaved changes in " + messageType.wikiName + "\ssn\ssnChoose OK to save\ssnChoose CANCEL to discard";\n\n//Override messages in config.views text. \n// More messages (rather a legacy layout that shouldn't really be like this)\nconfig.views.wikified.tag.tooltip="Show " + messageType.lowerPlural + " tagged with '%0'";\nconfig.views.wikified.tag.openAllText="Open all"\nconfig.views.wikified.tag.openAllTooltip="Open all of these " + messageType.lowerPlural;\nconfig.views.wikified.tag.popupNone="No other " + messageType.lowerPlural + " tagged with '%0'";\nconfig.views.wikified.defaultText= "The " + messageType.lower + " '%0' doesn't yet exist. Double-click to create it";\nconfig.views.editor.tagChooser.tooltip="Choose existing tags to add to this " + messageType.lower;\nconfig.views.editor.tagChooser.popupNone="There are no tags defined"\nconfig.views.editor.tagChooser.tagTooltip="Add the tag '%0'";\n \n//Override messages in config.macros text. \nconfig.macros.search.prompt="Search this " + messageType.wikiName;\nconfig.macros.search.successMsg="%0 " + messageType.lowerPlural + " found matching %1";\nconfig.macros.search.failureMsg="No " + messageType.lowerPlural + " found matching %0";\nconfig.macros.tagging.tooltip="List of " + messageType.lowerPlural + " tagged with '%0'";\nconfig.macros.allTags.tooltip="Show " + messageType.lowerPlural + " tagged with '%0'";\nconfig.macros.allTags.noTags="There are no tagged " + messageType.lowerPlural;\nconfig.macros.list.all.prompt="All " + messageType.lowerPlural + " in alphabetical order";\nconfig.macros.list.missing.prompt=messageType.mixedPlural + " that have links to them but are not defined";\nconfig.macros.list.orphans.prompt=messageType.mixedPlural + " that are not linked to from any other " + messageType.lowerPlural;\nconfig.macros.list.shadowed.prompt=messageType.mixedPlural + " shadowed with default contents";\nconfig.macros.closeAll.prompt="Close all displayed " + messageType.lowerPlural + " (except any that are being edited)";\nconfig.macros.permaview.prompt="Link to an URL that retrieves all the currently displayed " + messageType.lowerPlural;\nconfig.macros.saveChanges.prompt="Save all " + messageType.lowerPlural + " to create a new " + messageType.wikiName;\n// Come back for new whatever.\nconfig.macros.newTiddler.label="new " + messageType.lower;\nconfig.macros.newTiddler.prompt="Create a new " + messageType.lower;\nconfig.macros.newTiddler.title="New " + messageType.mixed;\nconfig.macros.newJournal.label="new journal";\nconfig.macros.newJournal.prompt="Create a new " + messageType.lower + " from the current date and time";\n\n//Overide config.shadowTiddlers messages.\nconfig.shadowTiddlers.SideBarOptions="<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change " + messageType.wikiName + " advanced options'>>";\nconfig.shadowTiddlers.AdvancedOptions="<<option chkGenerateAnRssFeed>> GenerateAnRssFeed\ssn<<option chkOpenInNewWindow>> OpenLinksInNewWindow\ssn<<option chkSaveEmptyTemplate>> SaveEmptyTemplate\ssn<<option chkToggleLinks>> Clicking on links to " + messageType.lowerPlural + " that are already open causes them to close\ssn^^(override with Control or other modifier key)^^\ssn<<option chkHttpReadOnly>> HideEditingFeatures when viewed over HTTP\ssn<<option chkForceMinorUpdate>> Treat edits as MinorChanges by preserving date and time\ssn^^(override with Shift key when clicking 'done' or by pressing Ctrl-Shift-Enter^^\ssn<<option chkConfirmDelete>> ConfirmBeforeDeleting";\nconfig.shadowTiddlers.OptionsPanel="These InterfaceOptions for customising " + messageType.wikiName + " are saved in your browser\ssn\ssnYour username for signing your edits. Write it as a WikiWord (eg JoeBloggs)\ssn\ssn<<option txtUserName>>\ssn<<option chkSaveBackups>> SaveBackups\ssn<<option chkAutoSave>> AutoSave\ssn<<option chkRegExpSearch>> RegExpSearch\ssn<<option chkCaseSensitiveSearch>> CaseSensitiveSearch\ssn<<option chkAnimate>> EnableAnimations\ssn\ssnSee AdvancedOptions";\nconfig.shadowTiddlers.SideBarTabs="<<tabs txtMainTab Timeline Timeline TabTimeline All 'All " + messageType.lowerPlural + "' TabAll Tags 'All tags' TabTags More 'More lists' TabMore>>";\nconfig.shadowTiddlers.TabMore= "<<tabs txtMoreTab Missing 'Missing " + messageType.lowerPlural + "' TabMoreMissing Orphans 'Orphaned " + messageType.lowerPlural + "' TabMoreOrphans>>";\n//}}}
<div class='header'>\n<div class='headerShadow'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span> \n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n<div class='headerForeground'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span> \n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n</div>\n<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>\n<div id='sidebar'>\n<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n<div id='ZiddlyFormats' refresh='content' tiddler='ZiddlyFormats'></div>\n<div id='ZiddlyPowered' refresh='content' tiddler='ZiddlyPowered'></div>\n</div>\n<div id='displayArea'>\n<div id='messageArea'></div>\n<div id='tiddlerDisplay'></div>\n</div>
/***\n|''Name:''|YourSearchPlugin|\n|''Version:''|2.0.0 (2006-01-16)|\n|''Source:''|http://tiddlywiki.abego-software.de/#YourSearchPlugin|\n|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|\n|''Licence:''|[[BSD open source license]]|\n|''TiddlyWiki:''|2.0|\n|''Browser:''|Firefox 1.0.4+; InternetExplorer 6.0|\n<<tiddler [[YourSearch Introduction]]>>\nFor more information see [[Help|YourSearch Help]].\n\n!Compatibility\nThis plugin requires TiddlyWiki 2.0. \nUse http://tiddlywiki.abego-software.de/#YourSearchPlugin-1.0.1 for older TiddlyWiki versions.\n\n!Revision history\n* v2.0.0 (2006-01-16)\n** Add User Interface\n* v1.0.1 (2006-01-06)\n** Support TiddlyWiki 2.0\n* v1.0.0 (2005-12-28)\n** initial version\n/%\n***/\n// The following code is "compressed". To get a readable version look at http://tiddlywiki.abego-software.de/#YourSearchPlugin-src\nif(!version.extensions.YourSearchPlugin){version.extensions.YourSearchPlugin={major:2,minor:0,revision:0,date:new Date(2006,1,16),type:"plugin",source:"http://tiddlywiki.abego-software.de/#YourSearchPlugin"};var alertAndThrow=function(_1){alert(_1);throw _1;};if(!window.abego){window.abego={};}if(abego.YourSearch){alertAndThrow("abego.YourSearch already defined");}abego.YourSearch={};if(version.major<2){alertAndThrow("YourSearchPlugin requires TiddlyWiki 2.0 or newer.\sn\snGet YourSearch 1.0.1 to use YourSearch with older versions of TiddlyWiki.\sn\snhttp://tiddlywiki.abego-software.de/#YourSearchPlugin-1.0.1");}var STQ=function(_2,_3,_4,_5){this.queryText=_2;this.caseSensitive=_3;if(_5){this.regExp=new RegExp(_2,_3?"mg":"img");return;}this.terms=[];var re=/\ss*(\s-)?([#%!]*)(?:(?:("(?:(?:\s\s")|[^"])*")|(\sS+)))(?:\ss+((?:[aA][nN][dD])|(?:[oO][rR]))(?!\sS))?/mg;var _7=re.exec(_2);while(_7!=null&&_7.length==6){var _8="-"==_7[1];var _9=_7[2].length==0||_7[2].indexOf("!")>=0;var _a=!_4&&(_7[2].length==0||_7[2].indexOf("%")>=0);var _b=!_4&&(_7[2].length==0||_7[2].indexOf("#")>=0);var _c;if(_7[3]){try{_c=eval(_7[3]);}catch(ex){}}else{_c=_7[4];}if(!_c){throw "Invalid search expression: %0".format([_2]);}var _d=_7[5]&&_7[5].charAt(0).toLowerCase()=="o";this.terms.push(new STQ.Term(_c,_9,_a,_b,_8,_d,_3));_7=re.exec(_2);}};var me=STQ.prototype;me.getMatchingTiddlers=function(_e){var _f=[];for(var i in _e){var t=_e[i];if((t instanceof Tiddler)&&this.matchesTiddler(t)){_f.push(t);}}return _f;};me.matchesTiddler=function(_12){if(this.regExp){return this.regExp.test(_12.title)||this.regExp.test(_12.text);}var n=this.terms.length;if(n==0){return false;}var _14=this.terms[0].matchesTiddler(_12);for(var i=1;i<this.terms.length;i++){if(this.terms[i-1].orFollows){if(!_14){_14|=this.terms[i].matchesTiddler(_12);}}else{if(_14){_14&=this.terms[i].matchesTiddler(_12);}}}return _14;};me.getOnlyMatchTitleQuery=function(){if(!this.onlyMatchTitleQuery){this.onlyMatchTitleQuery=new STQ(this.queryText,this.caseSensitive,true,this.useRegExp);}return this.onlyMatchTitleQuery;};me.getMarkRegExp=function(){if(this.regExp){return "".search(this.regExp)>=0?null:this.regExp;}var _16={};var n=this.terms.length;for(var i=0;i<this.terms.length;i++){var _19=this.terms[i];if(!_19.negate){_16[_19.text]=true;}}var _1a=[];for(var t in _16){_1a.push("("+t.escapeRegExp()+")");}if(_1a.length==0){return null;}var _1c=_1a.join("|");markRE=new RegExp(_1c,this.caseSensitive?"mg":"img");return markRE;};me.toString=function(){if(this.regExp){return this.regExp.toString();}var _1d="";for(var i=0;i<this.terms.length;i++){_1d+=this.terms[i].toString();}return _1d;};STQ.Term=function(_1f,_20,_21,_22,_23,_24,_25){this.text=_1f;this.inTitle=_20;this.inText=_21;this.inTag=_22;this.negate=_23;this.orFollows=_24;this.caseSensitive=_25;this.regExp=new RegExp(_1f.escapeRegExp(),"m"+(_25?"":"i"));};STQ.Term.prototype.toString=function(){return (this.negate?"-":"")+(this.inTitle?"!":"")+(this.inText?"%":"")+(this.inTag?"#":"")+"\s""+this.text+"\s""+(this.orFollows?" OR ":" AND ");};STQ.Term.prototype.matchesTiddler=function(_26){if(!_26){return false;}if(this.inTitle&&this.regExp.test(_26.title)){return !this.negate;}if(this.inText&&this.regExp.test(_26.text)){return !this.negate;}if(this.inTag){var _27=_26.tags;if(_27){for(var i=0;i<_27.length;i++){if(this.regExp.test(_27[i])){return !this.negate;}}}}return this.negate;};var stringToInt=function(s,_2a){if(!s){return _2a;}var n=parseInt(s);return (n==NaN)?_2a:n;};var getIntAttribute=function(_2c,_2d,_2e){return stringToInt(_2c.getAttribute(_2d));};var isDescendantOrSelf=function(_2f,e){while(e!=null){if(_2f==e){return true;}e=e.parentNode;}return false;};var getMatchCount=function(s,re){var m=s.match(re);return m?m.length:0;};var createEllipsis=function(_34){var e=createTiddlyElement(_34,"span");e.innerHTML="…";};var isWordChar=function(c){return (c>="a"&&c<="z")||(c>="A"&&c<="Z")||c=="_";};var getWordBounds=function(s,_38){if(!isWordChar(s[_38])){return null;}for(var i=_38-1;i>=0&&isWordChar(s[i]);i--){}var _3a=i+1;var n=s.length;for(i=_38+1;i<n&&isWordChar(s[i]);i++){}return {start:_3a,end:i};};var removeTextDecoration=function(s){var _3d=["''","{{{","}}}","//","<<<","/***","***/"];var _3e="";for(var i=0;i<_3d.length;i++){if(i!=0){_3e+="|";}_3e+="("+_3d[i].escapeRegExp()+")";}return s.replace(new RegExp(_3e,"mg"),"").trim();};var logText="";var lastLogTime=null;var logMessage=function(_40,s){var now=new Date();var _43=lastLogTime?(now-lastLogTime).toString():"";logText+="<tr><td>"+now.convertToYYYYMMDDHHMMSSMMM()+"</td><td align='right'>"+_43+"</td><td>"+_40+"</td><td>"+s.htmlEncode()+"</td></tr>\sn";lastLogTime=now;};function writeLog(){var t=" <<JsDoIt 'WriteLog' 'WriteLog' 'javascript:writeLog();story.closeTiddler(\s"Log\s");story.displayTiddler(null,\s"Log\s");'>>"+"<html><table><tbody><tr><th>Time</th><th>Delta (ms)</th><th>Kind</th><th>Message</th></tr>\sn"+logText+"</tbody></table></html>";store.saveTiddler("Log","Log",t,config.options.txtUserName,new Date(),["System","Log"]);logText="";lastLogTime=null;}var yourSearchResultID="yourSearchResult";var yourSearchResultItemsID="yourSearchResultItems";var maxCharsInTitle=80;var maxCharsInTags=50;var maxCharsInText=250;var maxPagesInNaviBar=10;var itemsPerPageDefault=25;var itemsPerPageWithPreviewDefault=10;var minMatchWithContextSize=40;var maxMovementForWordCorrection=4;var matchInTitleWeight=4;var precisionInTitleWeight=10;var matchInTagsWeight=2;var resultElement;var lastResults;var lastQuery;var lastSearchText;var searchInputField;var searchButton;var firstIndexOnPage=0;var currentTiddler;var indexInPage;var indexInResult;var getItemsPerPage=function(){var n=(config.options.chkPreviewText)?stringToInt(config.options.txtItemsPerPageWithPreview,itemsPerPageWithPreviewDefault):stringToInt(config.options.txtItemsPerPage,itemsPerPageDefault);return (n>0)?n:1;};var standardRankFunction=function(_46,_47){var _48=_47.getMarkRegExp();if(!_48){return 1;}var _49=_46.title.match(_48);var _4a=_49?_49.length:0;var _4b=getMatchCount(_46.getTags(),_48);var _4c=_49?_49.join("").length:0;var _4d=_46.title.length>0?_4c/_46.title.length:0;var _4e=_4a*matchInTitleWeight+_4b*matchInTagsWeight+_4d*precisionInTitleWeight+1;return _4e;};var findMatches=function(_4f,_50,_51,_52,_53,_54){lastSearchText=_50;var _55=_4f.reverseLookup("tags",_54,false);var _56=new STQ(_50,_51,false,_52);lastQuery=_56;var _57=_56.getMatchingTiddlers(_55);var _58=abego.YourSearch.getRankFunction();for(var i=0;i<_57.length;i++){var _5a=_57[i];var _5b=_58(_5a,_56);_5a.searchRank=_5b;}if(!_53){_53="title";}var _5c=function(a,b){var _5f=a.searchRank-b.searchRank;if(_5f==0){if(a[_53]==b[_53]){return (0);}else{return (a[_53]<b[_53])?-1:+1;}}else{return (_5f>0)?-1:+1;}};_57.sort(_5c);for(var i=0;i<_57.length;i++){delete _57[i].searchRank;}lastResults=_57;return _57;};var moveToWordBorder=function(s,_62,_63){var _64;if(_63){_64=getWordBounds(s,_62);}else{if(_62<=0){return _62;}_64=getWordBounds(s,_62-1);}if(!_64){return _62;}if(_63){if(_64.start>=_62-maxMovementForWordCorrection){return _64.start;}if(_64.end<=_62+maxMovementForWordCorrection){return _64.end;}}else{if(_64.end<=_62+maxMovementForWordCorrection){return _64.end;}if(_64.start>=_62-maxMovementForWordCorrection){return _64.start;}}return _62;};var getContextRangeAround=function(s,_66,_67,_68,_69){var _6a=Math.max(Math.floor(_69/(_68+1)),minMatchWithContextSize);var _6b=Math.max(_6a-(_67-_66),0);var _6c=Math.min(Math.floor(_67+_6b/3),s.length);var _6d=Math.max(_6c-_6a,0);_6d=moveToWordBorder(s,_6d,true);_6c=moveToWordBorder(s,_6c,false);return {start:_6d,end:_6c};};var getTextAndMatchArray=function(s,_6f){var _70=[];if(_6f){var _71=0;var n=s.length;var _73=0;do{_6f.lastIndex=_71;var _74=_6f.exec(s);if(_74){if(_71<_74.index){var t=s.substring(_71,_74.index);_70.push({text:t});}_70.push({text:_74[0],isMatch:true});_71=_74.index+_74[0].length;}else{_70.push({text:s.substr(_71)});break;}}while(true);}else{_70.push({text:s});}return _70;};var simpleCreateLimitedTextWithMarks=function(_76,s,_78){if(!lastQuery){return;}var _79=getTextAndMatchArray(s,lastQuery.getMarkRegExp());var _7a=0;for(var i=0;i<_79.length&&_7a<_78;i++){var t=_79[i];var _7d=t.text;if(t.isMatch){createTiddlyElement(_76,"span",null,"marked",_7d);}else{var _7e=_78-_7a;if(_7e<_7d.length){_7d=_7d.substring(0,_7e)+"...";}createTiddlyText(_76,_7d);}_7a+=_7d.length;}};var addRange=function(_7f,_80,_81){var n=_7f.length;if(n==0){_7f.push({start:_80,end:_81});return;}var i=0;for(;i<n;i++){var _84=_7f[i];if(_84.start<=_81&&_80<=_84.end){var _85=i+1;for(;_85<n;_85++){var r=_7f[_85];if(r.start>_81||_80>_84.end){break;}}var _87=_80;var _88=_81;for(var j=i;j<_85;j++){var r=_7f[j];_87=Math.min(_87,r.start);_88=Math.max(_88,r.end);}_7f.splice(i,_85-i,{start:_87,end:_88});return;}if(_84.start>_81){break;}}_7f.splice(i,0,{start:_80,end:_81});};var getTotalRangesSize=function(_8b){var _8c=0;for(var i=0;i<_8b.length;i++){var _8e=_8b[i];_8c+=_8e.end-_8e.start;}return _8c;};var writeTextAndMatchRange=function(_8f,s,_91,_92,_93){var pos=0;var i=0;var _96=0;for(;i<_91.length;i++){var t=_91[i];var _98=t.text;if(_92<pos+_98.length){_96=_92-pos;break;}pos+=_98.length;}var _99=_93-_92;for(;i<_91.length&&_99>0;i++){var t=_91[i];var _9b=t.text.substr(_96);_96=0;if(_9b.length>_99){_9b=_9b.substr(0,_99);}if(t.isMatch){createTiddlyElement(_8f,"span",null,"marked",_9b);}else{createTiddlyText(_8f,_9b);}_99-=_9b.length;}if(_93<s.length){createEllipsis(_8f);}};var getMatchedTextCount=function(_9c){var _9d=0;for(var i=0;i<_9c.length;i++){if(_9c[i].isMatch){_9d++;}}return _9d;};var getMatchedTextWithContextRanges=function(_9f,s,_a1){var _a2=[];var _a3=getMatchedTextCount(_9f);var pos=0;for(var i=0;i<_9f.length;i++){var t=_9f[i];var _a7=t.text;if(t.isMatch){var _a8=getContextRangeAround(s,pos,pos+_a7.length,_a3,_a1);addRange(_a2,_a8.start,_a8.end);}pos+=_a7.length;}return _a2;};var fillUpRanges=function(s,_aa,_ab){var _ac=_ab-getTotalRangesSize(_aa);while(_ac>0){if(_aa.length==0){addRange(_aa,0,moveToWordBorder(s,_ab,false));return;}else{var _ad=_aa[0];var _ae;var _af;if(_ad.start==0){_ae=_ad.end;if(_aa.length>1){_af=_aa[1].start;}else{addRange(_aa,_ae,moveToWordBorder(s,_ae+_ac,false));return;}}else{_ae=0;_af=_ad.start;}var _b0=Math.min(_af,_ae+_ac);addRange(_aa,_ae,_b0);_ac-=(_b0-_ae);}}};var writeRanges=function(_b1,s,_b3,_b4,_b5){if(_b4.length==0){return;}if(_b4[0].start>0){createEllipsis(_b1);}var _b6=_b5;for(var i=0;i<_b4.length&&_b6>0;i++){var _b8=_b4[i];var len=Math.min(_b8.end-_b8.start,_b6);writeTextAndMatchRange(_b1,s,_b3,_b8.start,_b8.start+len);_b6-=len;}};var createLimitedTextWithMarksAndContext=function(_ba,s,_bc){if(!lastQuery){return;}if(s.length<_bc){_bc=s.length;}var _bd=getTextAndMatchArray(s,lastQuery.getMarkRegExp());var _be=getMatchedTextWithContextRanges(_bd,s,_bc);fillUpRanges(s,_be,_bc);writeRanges(_ba,s,_bd,_be,_bc);};var createLimitedTextWithMarks=function(_bf,s,_c1){return createLimitedTextWithMarksAndContext(_bf,s,_c1);};var myStorySearch=function(_c2,_c3,_c4){highlightHack=new RegExp(_c4?_c2.escapeRegExp():_c2,_c3?"mg":"img");var _c5=findMatches(store,_c2,_c3,_c4,"title","excludeSearch");firstIndexOnPage=0;showResult();highlightHack=null;};var myMacroSearchHandler=function(_c6,_c7,_c8){var _c9="";var _ca=null;var _cb=function(txt){if(txt.value.length>2){if(config.options.chkUseYourSearch){myStorySearch(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);}else{story.search(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);}_c9=txt.value;}};var _cd=function(e){_cb(searchInputField);return false;};var _cf=function(e){if(!e){var e=window.event;}switch(e.keyCode){case 13:_cb(this);break;case 27:if(isResultOpen()){closeResult();}else{this.value="";clearMessage();}break;}if(String.fromCharCode(e.keyCode)==this.accessKey||e.altKey){reopenResultIfApplicable();}if((this.value.length>2)&&(this.value!=_c9)){if(!config.options.chkUseYourSearch||config.options.chkSearchAsYouType){if(_ca){clearTimeout(_ca);}var txt=this;_ca=setTimeout(function(){_cb(txt);},500);}}if(this.value.length==0){closeResult();}};var _d3=function(e){this.select();reopenResultIfApplicable();};var btn=createTiddlyButton(_c6,this.label,this.prompt,_cd);var txt=createTiddlyElement(_c6,"input",null,null,null);if(_c8[0]){txt.value=_c8[0];}txt.onkeyup=_cf;txt.onfocus=_d3;txt.setAttribute("size",this.sizeTextbox);txt.setAttribute("accessKey",this.accessKey);txt.setAttribute("autocomplete","off");if(config.browser.isSafari){txt.setAttribute("type","search");txt.setAttribute("results","5");}else{txt.setAttribute("type","text");}searchInputField=txt;searchButton=btn;};var isResultOpen=function(){return resultElement!=null&&resultElement.parentNode==document.body;};var closeResult=function(){if(isResultOpen()){document.body.removeChild(resultElement);}};var openAllFoundTiddlers=function(){closeResult();if(lastResults){for(var i=lastResults.length-1;i>=0;i--){story.displayTiddler(null,lastResults[i].title);}}};var refreshResult=function(){if(!resultElement||!searchInputField){return;}var _d8=store.getTiddlerText("YourSearchResultTemplate");if(!_d8){_d8="<b>Tiddler YourSearchResultTemplate not found</b>";}resultElement.innerHTML=_d8;firstIndexOnPage=Math.floor(firstIndexOnPage/getItemsPerPage())*getItemsPerPage();applyHtmlMacros(resultElement,null);refreshElements(resultElement,null);if(lastResults&&lastResults.length>0){var _d9=store.getTiddlerText("YourSearchItemTemplate");if(!_d9){alertAndThrow("YourSearchItemTemplate not found");}var _da=document.getElementById(yourSearchResultItemsID);if(!_da){_da=createTiddlyElement(resultElement,"div",yourSearchResultItemsID);}var _db=Math.min(firstIndexOnPage+getItemsPerPage(),lastResults.length);indexInPage=-1;for(var i=firstIndexOnPage;i<_db;i++){currentTiddler=lastResults[i];indexInPage++;indexInResult=i;var _dd=createTiddlyElement(_da,"div",null,"yourSearchItem");_dd.innerHTML=_d9;applyHtmlMacros(_dd,null);refreshElements(_dd,null);}}currentTiddler=null;ensureResultIsDisplayedNicely();};var ensureResultIsDisplayedNicely=function(){adjustResultPositionAndSize();scrollVisible();};var scrollVisible=function(){if(resultElement){window.scrollTo(0,ensureVisible(resultElement));}if(searchInputField){window.scrollTo(0,ensureVisible(searchInputField));}};var adjustResultPositionAndSize=function(){if(!searchInputField){return;}var _de=searchInputField;var _df=findPosX(_de);var _e0=findPosY(_de);var _e1=_de.offsetHeight;var _e2=_df;var _e3=_e0+_e1;var _e4=findWindowWidth();if(_e4<resultElement.offsetWidth){resultElement.style.width=(_e4-100)+"px";_e4=findWindowWidth();}var _e5=resultElement.offsetWidth;if(_e2+_e5>_e4){_e2=_e4-_e5-30;}if(_e2<0){_e2=0;}resultElement.style.left=_e2+"px";resultElement.style.top=_e3+"px";resultElement.style.display="block";};var showResult=function(){if(!resultElement){resultElement=createTiddlyElement(document.body,"div",yourSearchResultID,"yourSearchResult");}else{if(resultElement.parentNode!=document.body){document.body.appendChild(resultElement);}}refreshResult();};var reopenResultIfApplicable=function(){if(searchInputField==null||!config.options.chkUseYourSearch){return;}if((searchInputField.value==lastSearchText)&&lastSearchText&&!isResultOpen()){if(resultElement&&(resultElement.parentNode!=document.body)){document.body.appendChild(resultElement);ensureResultIsDisplayedNicely();}else{showResult();}}};var setFirstIndexOnPage=function(_e6){if(!lastResults||lastResults.length==0){return;}firstIndexOnPage=Math.min(Math.max(0,_e6),lastResults.length-1);refreshResult();};var onDocumentClick=function(e){if(e.target==searchInputField){return;}if(e.target==searchButton){return;}if(resultElement&&isDescendantOrSelf(resultElement,e.target)){return;}closeResult();};var onDocumentKeyup=function(e){if(e.keyCode==27){closeResult();}};addEvent(document,"click",onDocumentClick);addEvent(document,"keyup",onDocumentKeyup);config.macros.yourSearch={label:"yourSearch",prompt:"Gives access to the current/last YourSearch result",funcs:{},tests:{"true":function(){return true;},"false":function(){return false;},"found":function(){return lastResults&&lastResults.length>0;},"previewText":function(){return config.options.chkPreviewText;}}};config.macros.yourSearch.handler=function(_e9,_ea,_eb,_ec,_ed,_ee){if(_eb.length==0){return;}var _ef=_eb[0];var _f0=config.macros.yourSearch.funcs[_ef];if(_f0){_f0(_e9,_ea,_eb,_ec,_ed,_ee);}};config.macros.yourSearch.funcs.itemRange=function(_f1){if(lastResults){var _f2=Math.min(firstIndexOnPage+getItemsPerPage(),lastResults.length);var s="%0 - %1".format([firstIndexOnPage+1,_f2]);createTiddlyText(_f1,s);}};config.macros.yourSearch.funcs.count=function(_f4){if(lastSearchText){createTiddlyText(_f4,lastResults.length.toString());}};config.macros.yourSearch.funcs.query=function(_f5){if(lastResults){createTiddlyText(_f5,lastSearchText);}};config.macros.yourSearch.funcs.version=function(_f6){var t="YourSearch %0.%1.%2".format([version.extensions.YourSearchPlugin.major,version.extensions.YourSearchPlugin.minor,version.extensions.YourSearchPlugin.revision]);var e=createTiddlyElement(_f6,"a");e.setAttribute("href","http://tiddlywiki.abego-software.de/#YourSearchPlugin");e.innerHTML="<font color=\s"black\s" face=\s"Arial, Helvetica, sans-serif\s">"+t+"<font>";};config.macros.yourSearch.funcs.copyright=function(_f9){var e=createTiddlyElement(_f9,"a");e.setAttribute("href","http://tiddlywiki.abego-software.de");e.innerHTML="<font color=\s"black\s" face=\s"Arial, Helvetica, sans-serif\s">© 2005-2006 <b><font color=\s"red\s">abego</font></b> Software<font>";};config.macros.yourSearch.funcs.linkButton=function(_fb,_fc,_fd,_fe,_ff,_100){if(_fd<2){return;}var _101=_fd[1];var text=_fd<3?_101:_fd[2];var _103=_fd<4?text:_fd[3];var _104=_fd<5?null:_fd[4];var btn=createTiddlyButton(_fb,text,_103,closeResultAndDisplayTiddler,null,null,_104);btn.setAttribute("tiddlyLink",_101);};config.macros.yourSearch.funcs.closeButton=function(_106,_107,_108,_109,_10a,_10b){var _10c=createTiddlyButton(_106,"close","Close the Search Results (Shortcut: ESC)",closeResult);};config.macros.yourSearch.funcs.openAllButton=function(_10d,_10e,_10f,_110,_111,_112){if(!lastResults){return;}var n=lastResults.length;if(n==0){return;}var _114=n==1?"open tiddler":"open all %0 tiddlers".format([n]);var _115=createTiddlyButton(_10d,_114,"Open all found tiddlers (Shortcut: Alt-O)",openAllFoundTiddlers);_115.setAttribute("accessKey","O");};var onNaviButtonClick=function(e){if(!e){var e=window.event;}var _118=getIntAttribute(this,"page");setFirstIndexOnPage(_118*getItemsPerPage(),0);};config.macros.yourSearch.funcs.naviBar=function(_119,_11a,_11b,_11c,_11d,_11e){if(!lastResults||lastResults.length==0){return;}var _11f=Math.floor(firstIndexOnPage/getItemsPerPage());var _120=Math.floor((lastResults.length-1)/getItemsPerPage());if(_11f>0){var _121=createTiddlyButton(_119,"Previous","Go to previous page (Shortcut: Alt-'<')",onNaviButtonClick,"prev");_121.setAttribute("page",(_11f-1).toString());_121.setAttribute("accessKey","<");}for(var i=-maxPagesInNaviBar;i<maxPagesInNaviBar;i++){var _123=_11f+i;if(_123<0){continue;}if(_123>_120){break;}var _124=(i+_11f+1).toString();var _125=_123==_11f?"currentPage":"otherPage";var _126=createTiddlyButton(_119,_124,"Go to page %0".format([_124]),onNaviButtonClick,_125);_126.setAttribute("page",(_123).toString());}if(_11f<_120){var _127=createTiddlyButton(_119,"Next","Go to next page (Shortcut: Alt-'>')",onNaviButtonClick,"next");_127.setAttribute("page",(_11f+1).toString());_127.setAttribute("accessKey",">");}};config.macros.yourSearch.funcs["if"]=function(_128,_129,_12a,_12b,_12c,_12d){if(_12a.length<2){return;}var _12e=_12a[1];var _12f=(_12e=="not");if(_12f){if(_12a.length<3){return;}_12e=_12a[2];}var test=config.macros.yourSearch.tests[_12e];var _131=false;try{if(test){_131=test(_128,_129,_12a,_12b,_12c,_12d)!=_12f;}else{_131=(!eval(_12e))==_12f;}}catch(ex){}if(!_131){_128.style.display="none";}};var createOptionWithRefresh=function(_132,_133,_134,_135){invokeMacro(_132,"option",_133,_134,_135);var elem=_132.lastChild;var _137=elem.onclick;elem.onclick=function(e){result=_137.apply(this,arguments);refreshResult();return result;};return elem;};config.macros.yourSearch.funcs.chkPreviewText=function(_139,_13a,_13b,_13c,_13d,_13e){var _13f=_13b.slice(1).join(" ");var elem=createOptionWithRefresh(_139,"chkPreviewText",_13c,_13e);elem.setAttribute("accessKey","P");elem.title="Show text preview of found tiddlers (Shortcut: Alt-P)";return elem;};config.macros.foundTiddler={label:"foundTiddler",prompt:"Provides information on the tiddler currently processed on the YourSearch result page",funcs:{}};config.macros.foundTiddler.handler=function(_141,_142,_143,_144,_145,_146){if(!currentTiddler){return;}var name=_143[0];var func=config.macros.foundTiddler.funcs[name];if(func){func(_141,_142,_143,_144,_145,_146);}};var closeResultAndDisplayTiddler=function(e){closeResult();var _14a=this.getAttribute("tiddlyLink");if(_14a){var _14b=this.getAttribute("withHilite");var _14c=highlightHack;if(_14b&&_14b=="true"&&lastQuery){highlightHack=lastQuery.getMarkRegExp();}story.displayTiddler(this,_14a);highlightHack=_14c;}return (false);};var getShortCutNumber=function(){if(!currentTiddler){return -1;}if(indexInPage>=0&&indexInPage<=9){return indexInPage<9?(indexInPage+1):0;}else{return -1;}};config.macros.foundTiddler.funcs.title=function(_14d,_14e,_14f,_150,_151,_152){if(!currentTiddler){return;}var _153=getShortCutNumber();var _154=_153>=0?"Open tiddler (Shortcut: Alt-%0)".format([_153.toString()]):"Open tiddler";var btn=createTiddlyButton(_14d,null,_154,closeResultAndDisplayTiddler,null);btn.setAttribute("tiddlyLink",currentTiddler.title);btn.setAttribute("withHilite","true");createLimitedTextWithMarks(btn,currentTiddler.title,maxCharsInTitle);if(_153>=0){btn.setAttribute("accessKey",_153.toString());}};config.macros.foundTiddler.funcs.tags=function(_156,_157,_158,_159,_15a,_15b){if(!currentTiddler){return;}createLimitedTextWithMarks(_156,currentTiddler.getTags(),maxCharsInTags);};config.macros.foundTiddler.funcs.text=function(_15c,_15d,_15e,_15f,_160,_161){if(!currentTiddler){return;}createLimitedTextWithMarks(_15c,removeTextDecoration(currentTiddler.text),maxCharsInText);};config.macros.foundTiddler.funcs.number=function(_162,_163,_164,_165,_166,_167){var _168=getShortCutNumber();if(_168>=0){var text="%0)".format([_168.toString()]);createTiddlyElement(_162,"span",null,"shortcutNumber",text);}};if(config.options.chkUseYourSearch==undefined){config.options.chkUseYourSearch=true;}if(config.options.chkPreviewText==undefined){config.options.chkPreviewText=true;}if(config.options.chkSearchAsYouType==undefined){config.options.chkSearchAsYouType=true;}if(config.options.txtItemsPerPage==undefined){config.options.txtItemsPerPage=itemsPerPageDefault;}if(config.options.txtItemsPerPageWithPreview==undefined){config.options.txtItemsPerPageWithPreview=itemsPerPageWithPreviewDefault;}config.shadowTiddlers.AdvancedOptions+="\sn<<option chkUseYourSearch>> Use 'Your Search' //([[more options|YourSearch Options]])//";config.shadowTiddlers["YourSearch Introduction"]="!About YourSearch\sn"+"\sn"+"YourSearch gives you a bunch of new features to simplify and speed up your daily searches in TiddlyWiki. It seamlessly integrates into the standard TiddlyWiki search: just start typing into the 'search' field and explore!\sn"+"\sn"+"''May the '~Alt-F' be with you.''\sn"+"\sn"+"\sn"+"!Features\sn"+"* YourSearch searches for tiddlers that match your query ''as you type'' into the 'search' field. It presents a list of the ''\s"Top Ten\s"'' tiddlers in a ''popup-like window'': the ''[[YourSearch Result]]''. The tiddlers currently displayed in your TiddlyWiki are not affected.\sn"+"* Using ''~TiddlerRank technology'' the [[YourSearch Result]] lists the ''most interesting tiddlers first''.\sn"+"* Through ''Filtered Search'' and ''Boolean Search'' you can easily refining your search, like excluding words or searching for multiple words. This way less tiddlers are displayed in the [[YourSearch Result]] and you can faster scan the result for the tiddler you are looking for.\sn"+"* The [[YourSearch Result]] lists the found tiddlers ''page-wise'', e.g. 10 per page. Use the ''Result Page Navigation Bar'' to navigate between pages if the result does not fit on one page.\sn"+"* The [[YourSearch Result]] states the ''total number of found tiddlers''. This way you can quickly decide if you want to browse the result list or if you want to refine your search first to shorten the result list.\sn"+"* Beside the ''title of the found tiddlers'' the [[YourSearch Result]] also ''displays tags'' and ''tiddler text previews''. The ''tiddler text preview'' is an extract of the tiddler's content, showing the most interesting parts related to your query (e.g. the texts around the words you are looking for).\sn"+"* The words you are looking for are hilited in the titles, tags and text previews of the [[YourSearch Result]].\sn"+"* If you are not interested in the tiddler text previews but prefer to get longer lists of tiddlers on one result page you may ''switch of the text preview''.\sn"+"* If the [[YourSearch Result]] contains the tiddler you are looking for you can just ''click its title to display'' it in your TiddlyWiki. Alternatively you may also ''open all found tiddlers'' at once. \sn"+"* Use [[YourSearch Options]] to customize YourSearch to your needs. E.g. depending on the size of your screen you may change the number of tiddlers displayed in the [[YourSearch Result]]. In the [[YourSearch Options]] and the AdvancedOptions you may also switch off YourSearch in case you temporarily want to use the standard search.\sn"+"* For the most frequently actions ''access keys'' are defined so you can perform your search without using the mouse.\sn"+"\sn";config.shadowTiddlers["YourSearch Help"]="<<tiddler [[YourSearch Introduction]]>>"+"\sn"+"!Filtered Search\sn"+"Using the Filtered Search you can restrict your search to certain parts of a tiddler, e.g only search the tags or only the titles.\sn"+"|!What you want|!What you type|!Example|\sn"+"|Search ''titles only''|start word with ''!''|{{{!jonny}}}|\sn"+"|Search ''contents only''|start word with ''%''|{{{%football}}}|\sn"+"|Search ''tags only''|start word with ''#''|{{{#Plugin}}}|\sn"+"\sn"+"You may use more than one filter for a word. E.g. {{{!#Plugin}}} finds tiddlers containing \s"Plugin\s" either in the title or in the tags (but does not look for \s"Plugin\s" in the content).\sn"+"\sn"+"!Boolean Search\sn"+"The Boolean Search is useful when searching for multiple words.\sn"+"|!What you want|!What you type|!Example|\sn"+"|''All words'' must exist|List of words|{{{jonny jeremy}}}|\sn"+"|''At least one word'' must exist|Separate words by ''or''|{{{jonny or jeremy}}}|\sn"+"|A word ''must not exist''|Start word with ''-''|{{{-jonny}}}|\sn"+"\sn"+"''Note:'' When you specify two words, separated with a space, YourSearch finds all tiddlers that contain both words, but not necessarily next to each other. If you want to find a sequence of word, e.g. '{{{John Brown}}}', you need to put the words into quotes. I.e. you type: {{{\s"john brown\s"}}}.\sn"+"\sn"+"!Combine Filtered and Boolean Search\sn"+"You are free to combine Filtered and Boolean Search search. E.g. {{{!jonny !jeremy -%football}}} finds tiddlers with both {{{jonny}}} and {{{jeremy}}} in its titles, but no {{{football}}} in content.\sn"+"\sn"+"!~CaseSensitiveSearch and ~RegExpSearch\sn"+"The standard search options ~CaseSensitiveSearch and ~RegExpSearch are fully supported by YourSearch. However when ''~RegExpSearch'' is on Filtered and Boolean Search are disabled.\sn"+"\sn"+"!Access Keys\sn"+"You are encouraged to use the access keys (also called \s"shortcut\s" keys) for the most frequently used operations. For quick reference these shortcuts are also mentioned in the tooltip for the various buttons etc.\sn"+"\sn"+"|!Key|!Operation|\sn"+"|{{{Alt-F}}}|''The most important keystroke'': It moves the cursor to the search input field so you can directly start typing your query. Pressing {{{Alt-F}}} will also display the previous search result. This way you can quickly display multiple tiddlers using \s"Press {{{Alt-F}}}. Select tiddler.\s" sequences.|\sn"+"|{{{ESC}}}|Closes the [[YourSearch Result]]. When the [[YourSearch Result]] is already closed and the cursor is in the search input field the field's content is cleared so you start a new query.|\sn"+"|{{{Alt-1}}}, {{{Alt-2}}},... |Pressing these keys opens the first, second etc. tiddler from the result list.|\sn"+"|{{{Alt-O}}}|Opens all found tiddlers.|\sn"+"|{{{Alt-P}}}|Toggles the 'Preview Text' mode.|\sn"+"|{{{Alt-'<'}}}, {{{Alt-'>'}}}|Displays the previous or next page in the [[YourSearch Result]].|\sn"+"|{{{Return}}}|When you have turned off the 'as you type' search mode pressing the {{{Return}}} key actually starts the search (as does pressing the 'search' button).|\sn"+"\sn";config.shadowTiddlers["YourSearch Options"]="|>|!YourSearch Options|\sn"+"|>|<<option chkUseYourSearch>> Use 'Your Search'|\sn"+"|!|<<option chkPreviewText>> Show Text Preview|\sn"+"|!|<<option chkSearchAsYouType>> 'Search As You Type' Mode (No RETURN required to start search)|\sn"+"|!|Number of items on search result page: <<option txtItemsPerPage>>|\sn"+"|!|Number of items on search result page with preview text: <<option txtItemsPerPageWithPreview>>|";config.shadowTiddlers["YourSearchStyleSheet"]="/***\sn"+"!~YourSearchResult Stylesheet\sn"+"***/\sn"+"/*{{{*/\sn"+".yourSearchResult {\sn"+"\stposition: absolute;\sn"+"\stwidth: 800px;\sn"+"\sn"+"\stpadding: 0.2em;\sn"+"\stlist-style: none;\sn"+"\stmargin: 0;\sn"+"\sn"+"\stbackground: White;\sn"+"\stborder: 1px solid DarkGray;\sn"+"}\sn"+"\sn"+"/*}}}*/\sn"+"/***\sn"+"!!Summary Section\sn"+"***/\sn"+"/*{{{*/\sn"+".yourSearchResult .summary {\sn"+"\stborder-bottom-width: thin;\sn"+"\stborder-bottom-style: solid;\sn"+"\stborder-bottom-color: #999999;\sn"+"\stpadding-bottom: 4px;\sn"+"}\sn"+"\sn"+".yourSearchRange, .yourSearchCount, .yourSearchQuery {\sn"+"\stfont-weight: bold;\sn"+"}\sn"+"\sn"+".yourSearchResult .summary .button {\sn"+"\stfont-size: 10px;\sn"+"\sn"+"\stpadding-left: 0.3em;\sn"+"\stpadding-right: 0.3em;\sn"+"}\sn"+"\sn"+".yourSearchResult .summary .chkBoxLabel {\sn"+"\stfont-size: 10px;\sn"+"\sn"+"\stpadding-right: 0.3em;\sn"+"}\sn"+"\sn"+"/*}}}*/\sn"+"/***\sn"+"!!Items Area\sn"+"***/\sn"+"/*{{{*/\sn"+".yourSearchResult .marked {\sn"+"\stbackground: none;\sn"+"\stfont-weight: bold;\sn"+"}\sn"+"\sn"+".yourSearchItem {\sn"+"\stmargin-top: 2px;\sn"+"}\sn"+"\sn"+".yourSearchNumber {\sn"+"\stcolor: #808080;\sn"+"}\sn"+"\sn"+"\sn"+".yourSearchTags {\sn"+"\stcolor: #008000;\sn"+"}\sn"+"\sn"+".yourSearchText {\sn"+"\stcolor: #808080;\sn"+"\stmargin-bottom: 6px;\sn"+"}\sn"+"\sn"+"/*}}}*/\sn"+"/***\sn"+"!!Footer\sn"+"***/\sn"+"/*{{{*/\sn"+".yourSearchFooter {\sn"+"\stmargin-top: 8px;\sn"+"\stborder-top-width: thin;\sn"+"\stborder-top-style: solid;\sn"+"\stborder-top-color: #999999;\sn"+"}\sn"+"\sn"+".yourSearchFooter a:hover{\sn"+"\stbackground: none;\sn"+"\stcolor: none;\sn"+"}\sn"+"/*}}}*/\sn"+"/***\sn"+"!!Navigation Bar\sn"+"***/\sn"+"/*{{{*/\sn"+".yourSearchNaviBar a {\sn"+"\stfont-size: 16px;\sn"+"\stmargin-left: 4px;\sn"+"\stmargin-right: 4px;\sn"+"\stcolor: black;\sn"+"\sttext-decoration: underline;\sn"+"}\sn"+"\sn"+".yourSearchNaviBar a:hover {\sn"+"\stbackground-color: none;\sn"+"}\sn"+"\sn"+".yourSearchNaviBar .prev {\sn"+"\stfont-weight: bold;\sn"+"\stcolor: blue;\sn"+"}\sn"+"\sn"+".yourSearchNaviBar .currentPage {\sn"+"\stcolor: #FF0000;\sn"+"\stfont-weight: bold;\sn"+"\sttext-decoration: none;\sn"+"}\sn"+"\sn"+".yourSearchNaviBar .next {\sn"+"\stfont-weight: bold;\sn"+"\stcolor: blue;\sn"+"}\sn"+"/*}}}*/\sn";config.shadowTiddlers["YourSearchResultTemplate"]="<!--\sn"+"{{{\sn"+"-->\sn"+"<span macro=\s"yourSearch if found\s">\sn"+"<!-- The Summary Header ============================================ -->\sn"+"<table class=\s"summary\s" border=\s"0\s" width=\s"100%\s" cellspacing=\s"0\s" cellpadding=\s"0\s"><tbody>\sn"+" <tr>\sn"+"\st<td align=\s"left\s">\sn"+"\st\stYourSearch Result <span class=\s"yourSearchRange\s" macro=\s"yourSearch itemRange\s"></span>\sn"+"\st\st of <span class=\s"yourSearchCount\s" macro=\s"yourSearch count\s"></span>\sn"+"\st\stfor <span class=\s"yourSearchQuery\s" macro=\s"yourSearch query\s"></span>\sn"+"\st</td>\sn"+"\st<td class=\s"yourSearchButtons\s" align=\s"right\s">\sn"+"\st\st<span macro=\s"yourSearch chkPreviewText\s"></span><span class=\s"chkBoxLabel\s">preview text</span>\sn"+"\st\st<span macro=\s"yourSearch openAllButton\s"></span>\sn"+"\st\st<span macro=\s"yourSearch linkButton 'YourSearch Options' options 'Configure YourSearch'\s"></span>\sn"+"\st\st<span macro=\s"yourSearch linkButton 'YourSearch Help' help 'Get help how to use YourSearch'\s"></span>\sn"+"\st\st<span macro=\s"yourSearch closeButton\s"></span>\sn"+"\st</td>\sn"+" </tr>\sn"+"</tbody></table>\sn"+"\sn"+"<!-- The List of Found Tiddlers ============================================ -->\sn"+"<div id=\s"yourSearchResultItems\s" itemsPerPage=\s"25\s" itemsPerPageWithPreview=\s"10\s"></div>\sn"+"\sn"+"<!-- The Footer (with the Navigation) ============================================ -->\sn"+"<table class=\s"yourSearchFooter\s" border=\s"0\s" width=\s"100%\s" cellspacing=\s"0\s" cellpadding=\s"0\s"><tbody>\sn"+" <tr>\sn"+"\st<td align=\s"left\s">\sn"+"\st\stResult page: <span class=\s"yourSearchNaviBar\s" macro=\s"yourSearch naviBar\s"></span>\sn"+"\st</td>\sn"+"\st<td align=\s"right\s"><span macro=\s"yourSearch version\s"></span>, <span macro=\s"yourSearch copyright\s"></span>\sn"+"\st</td>\sn"+" </tr>\sn"+"</tbody></table>\sn"+"<!-- end of the 'tiddlers found' case =========================================== -->\sn"+"</span>\sn"+"\sn"+"\sn"+"<!-- The \s"No tiddlers found\s" case =========================================== -->\sn"+"<span macro=\s"yourSearch if not found\s">\sn"+"<table class=\s"summary\s" border=\s"0\s" width=\s"100%\s" cellspacing=\s"0\s" cellpadding=\s"0\s"><tbody>\sn"+" <tr>\sn"+"\st<td align=\s"left\s">\sn"+"\st\stYourSearch Result: No tiddlers found for <span class=\s"yourSearchQuery\s" macro=\s"yourSearch query\s"></span>.\sn"+"\st</td>\sn"+"\st<td class=\s"yourSearchButtons\s" align=\s"right\s">\sn"+"\st\st<span macro=\s"yourSearch linkButton 'YourSearch Options' options 'Configure YourSearch'\s"></span>\sn"+"\st\st<span macro=\s"yourSearch linkButton 'YourSearch Help' help 'Get help how to use YourSearch'\s"></span>\sn"+"\st\st<span macro=\s"yourSearch closeButton\s"></span>\sn"+"\st</td>\sn"+" </tr>\sn"+"</tbody></table>\sn"+"</span>\sn"+"\sn"+"\sn"+"<!--\sn"+"}}}\sn"+"-->\sn";config.shadowTiddlers["YourSearchItemTemplate"]="<!--\sn"+"{{{\sn"+"-->\sn"+"<span class='yourSearchNumber' macro='foundTiddler number'></span>\sn"+"<span class='yourSearchTitle' macro='foundTiddler title'/></span> - \sn"+"<span class='yourSearchTags' macro='foundTiddler tags'/></span>\sn"+"<span macro=\s"yourSearch if previewText\s"><div class='yourSearchText' macro='foundTiddler text'/></div></span>\sn"+"<!--\sn"+"}}}\sn"+"-->";config.shadowTiddlers["YourSearch"]="<<tiddler [[YourSearch Help]]>>";config.shadowTiddlers["YourSearch Result"]="The popup-like window displaying the result of a YourSearch query.";setStylesheet(store.getTiddlerText("YourSearchStyleSheet"),"yourSearch");var origMacros_search_handler=config.macros.search.handler;config.macros.search.handler=myMacroSearchHandler;var ownsOverwrittenFunctions=function(){var _16a=(config.macros.search.handler==myMacroSearchHandler);return _16a;};var checkForOtherHijacker=function(){if(!ownsOverwrittenFunctions()){alert("Message from YourSearchPlugin:\sn\sn\sn"+"Another plugin has disabled the 'Your Search' features.\sn\sn\sn"+"You may disable the other plugin or change the load order of \sn"+"the plugins (by changing the names of the tiddlers)\sn"+"to enable the 'Your Search' features.");}};setTimeout(checkForOtherHijacker,5000);abego.YourSearch.getStandardRankFunction=function(){return standardRankFunction;};abego.YourSearch.getRankFunction=function(){return abego.YourSearch.getStandardRankFunction();};abego.YourSearch.getCurrentTiddler=function(){return currentTiddler;};}\n/***\n%/\n!Licence and Copyright\nCopyright (c) abego Software ~GmbH, 2005-2006 ([[www.abego-software.de|http://www.abego-software.de]])\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\nRedistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\n\nRedistributions in binary form must reproduce the above copyright notice, this\nlist of conditions and the following disclaimer in the documentation and/or other\nmaterials provided with the distribution.\n\nNeither the name of abego Software nor the names of its contributors may be\nused to endorse or promote products derived from this software without specific\nprior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT\nSHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR\nBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n***/\n
//Macro: allTagsExcept\n//Author: Clint Checketts\n//Version: 1.0 Sept 8, 2005\n\nversion.extensions.allTagsExcept = {major: 0, minor: 1, revision: 0, date: new Date(2005,8,15)};\nconfig.macros.allTagsExcept = {tooltip: "Show tiddlers tagged with '%0'",noTags: "There are no tags to display"};\n\n//usage: < < allTagsExcept systemConfig systemTiddlers > > This will show all tags but those listed (e.g. systemConfig and systemTiddlers\n\nconfig.macros.allTagsExcept.handler = function(place,macroName,params)\n{\n var tags = store.getTags();\n var theTagList = createTiddlyElement(place,"ul",null,null,null);\n if(tags.length == 0)\n createTiddlyElement(theTagList,"li",null,"listTitle",this.noTags);\n for (var t=0; t<tags.length; t++) {\n var includeTag = true;\n for (var p=0;p<params.length; p++) if (tags[t][0] == params[p]) includeTag = false;\n if (includeTag){\n var theListItem =createTiddlyElement(theTagList,"li",null,null,null);\n var theTag = createTiddlyButton(theListItem,tags[t][0] + " (" + tags[t][1] + ")",this.tooltip.format([tags[t][0]]),onClickTag);\n theTag.setAttribute("tag",tags[t][0]);\n }\n }\n}
<<allTagsExcept systemConfig systemTiddlers excludeLists excludeSearch onlyAdmin systemConf? Setup>>
config.protectedTiddlers = ['DefaultTiddlers', 'MainMenu', 'SiteTitle', 'SiteSubtitle', 'StyleSheet', 'Announcements'];
All seminar participants are invited to provide a brief profile, including background, interests, pictures (email to espringer at wesleyan dot edu), and links. If a name is //italicized//, no profile has yet been provided, but you can ''click on your name to create'' a profile...\nTag your new item {{{private}}} (using the tag space at the bottom of the edit area) to make sure that viewers who are not logged in cannot see it.\n----\n<<tiddler [[seminar participants]]>>
Are questions of [[personal identity and choice|PHIL 218 course description]] of special interest to people who live in a ''democracy''? Do we place a high priority on democracy because of the ''self-evident importance'' of freedom and autonomy, or ''do we learn'' to value freedom and democracy ''because'' we are raised in a democratic context?
The ''revisions'' button at the top right of each item allows us to peer at past versions, and to recover from mistakes. If you've editing something and regret how it turned out, use the ''revisions'' button to get the site back to how it was...
Any item here can [[link|links]] to any other. If it's easy to mention the title of an item in the course of your own sentence, then just put the """[[name between double-brackets]]""", being sure to get capitalization and punctuation just right. If you want to refer to [[formatting tips]], but would prefer to mention them with [[some other phrase|formatting tips]], then type like this: """[[some other phrase|formatting tips]]""". (That's a vertical bar in between.)\n!The more links, the merrier!\n!A good place to get started is with setting up an [[introduction|introductions]] for yourself...
/***\n|Macro|redirect (alias)|\n|Author|Clint Checketts and Paul Petterson|\n|Version|0.9 Oct 25, 2005|\n|Description|This macro tells TW to find all instances of a word and makes it point to a different link. For example, whenever I put the word 'Clint' in a tiddler I want TiddlyWiki to turn it into a link that points to a tiddler titled 'Clint Checketts' Or the word 'TW' could point to a tiddler called 'TiddlyWiki'|\n|Usage|<////<redirect TW TiddlyWiki>////> |\n|Example|<<redirect TW "TiddlyWiki">> <<redirect Clint "Clint Checketts">> (Nothing should appear, its just setting it all up)|\n***/\n//{{{\nversion.extensions.redirect = {major: 0, minor: 5, revision: 0, date: new Date(2005,10,24)};\nconfig.macros.redirect = {label: "Pickles Rock!"};\n\nconfig.macros.redirect.handler = function(place,macroName,params)\n{\nvar redirectExists = false\n// Check to see if the wikifier exists\nfor (var i=0;i<config.formatters.length;i++)\n if (config.formatters[i].name == "redirect"+params[0])\n redirectExists = true;\n\n//If it doesn't exist, add it!\nif (!redirectExists){\n\nfor( var i=0; i<config.formatters.length; i++ )\n if ( config.formatters[i].name=='wikiLink') break ;\n\nif ( i >= config.formatters.length ) {\n var e = "Can't find formatter for wikiLink!" ;\n displayMessage( e ) ;\n throw( e ) ;\n}\n\n\nconfig.formatters.splice( i, 0, {\n name: "redirect"+params[0],\n match: "(?:\s\sb)"+params[0]+"(?:\s\sb)",\n subst: params[1], \n handler: function(w) {\n var link = createTiddlyLink(w.output,this.subst,false);\n w.outputText(link,w.matchStart,w.nextMatch);\n }\n });\nformatter = new Formatter(config.formatters);\n} // End if\n}\n//}}}
'Philosophy', in its Greek origins, means something like "love of wisdom". Today, philosophy is the discipline that inquires into questions that escape the particular methodologies and approaches of other disciplines. Philosophy has as its primary method the tools of argument and dialogue.
|"And what was said about another matter? Is the pupil who devotes himself to the practice of gymnastics supposed to attend to the praise and blame and opinion of every man, or of one man only- his physician or trainer, whoever he may be"(Plato, "Crito", p.46)|\n|" 'You Socrates, are breaking the covenants and agreements which you made with us at your leisure, not in any haste or under any compulsion or deception, but after you hace had seventy years to think of them..."(Plato, "Crito", p.51)|\nSocrates suggests two apparent contradictions concerning integrity and loyalty. One is to maintain integrity through just actions and veer from that which is evil and unjust, and yet he is disloyal to those who care for him. Socrates asks to whom we should be loyal and why. The apparent contradiction is inherent in the idea of having an individual interpretation of what is just. Socrates also mentions that there is danger in listening to the "many" as opposed to a particular "master," however if death is the just choice in order to abide by the "agreement" with one's state, does this not imply that Socrates is in fact a "slave" to the many? Although in nature the state may represent more of a unified entity than the opinions of the many, Socrates's argument illustrates an inconsistancy.
hi, i'm jennie. i like running around, playing music, being outside, and board games. i also like sitting and thinking which is the reason for my interest in philosophy, though i know nothing about it. i am currently working on my third documentary on yellow food, and am excited to get to know everyone in the class.
Hi all,\nMy name is Eyal. I am the oldest of four kids, which means that I am the guinea pig in numerous parental matters. English is not my first languange, second to Hebrew. Last summer, I involved myself in surfing. Of course, this was a completely inopportune time to get obsessively hooked on a new sport, for college was right around the corner. Other things I love include the outdoors, vacationing, astronomy, philosophy, and Ben and Jerry's Double Fudge Brownie ice cream in a warm fresh waffle cone. I'll think of more to say eventually...for now, I look forward to having heated discussions both in an out of class with all of you!
I've started this self-introduction about four times now, and am thoroughly frustrated because each of my beginning sentences has been some variation of, "Hey guys! My name is Emily and I'm a freshman from Albany, New York!" That's just a bit too perky and a little too superficial a way to start, but all three facts are true and relevant to this whole introduction thing. I could tell you that I live in WestCo or that I play rugby or that I currently plan to double major in Anthropology and Gender Studies-- but those facts are fairly mundane. So, here: I love the scent of Chinese laundromats in New York city, the way the smell of freshly washed cotton wafts up from grates in the cold cement. I am an avid boogier, a chronic smiler and have a history of loving a well-turned phrase. Apathy annoys me. I love guacemole but hate avocados. I am at my happiest when traveling third-class on trains with only my backpack and journal. And philosophy fascinates me yes, as an academic subject, but actually inspires me because it opens my eyes to interesting discussions I can have with people in the future.
//''Adds "comments" to any TiddlyWiki or adaptation...''//\n//To use, copy this tiddler's contents to a new tiddler on your site and tag it "systemConfig".//\n//Used in conjunction with the RecentPlugin, one can have a decent forum environment.//\n{{{\nconfig.CommentPlugin = {\n only_on_tags: ['commentary','abstract2'],\n not_on_tags: [],\n // "true" or "false"...\n fold_comments: true,\n default_fold: false\n};\n\nfunction in_array(item, arr){for(var i=0;i<arr.length;i++)if(item==arr[i])return true};\nfunction one_in_array(items, arr){for(var i=0;i<items.length;i++)if(in_array(items[i], arr))return true;return false};\nfunction get_parent(tiddler){while(in_array('comments', tiddler.tags)) tiddler=store.fetchTiddler(tiddler.tags[0]);return tiddler};\nfunction count_comments(tiddler){var tagged=store.getTaggedTiddlers(tiddler.title);var count=0;for(var i=0;i<tagged.length;i++)if(in_array('comments', tagged[i].tags)){count++;count+=count_comments(tagged[i])}return count};\nconfig.shadowTiddlers.ViewTemplate += "\sn<div class='comments' macro='comments'></div>";\nconfig.shadowTiddlers.StyleSheetLayout += '\sn.commentTags ul{list-style:none; padding-left:0px;margin: 0 0 3px 0;} .commentTags li{display:inline;color:#999;} .commentTags li a.button{color:#999;} .comment{border-left:1px solid #ccc; margin-top:10px; margin-left:10px; padding:5px;} .newCommentLink{padding-top:10px} .tagging, .selected .tagging, .tiddler .tagging{display:none;} .comment a.button{padding:0px; font-size:smaller;}';\nconfig.macros.newCommentLink = {\n label: 'New Comment Here...',\n prompt: 'Create a new comment tiddler associated with this tiddler',\n handler: function(place,macroName,params,wikifier,paramString,tiddler) {\n if(tiddler && store.tiddlerExists(tiddler.title) && !readOnly && (!window.zw || zw.loggedIn || zw.anonEdit)) {\n if(config.CommentPlugin.only_on_tags.length>0 && !one_in_array(tiddler.tags, config.CommentPlugin.only_on_tags)) return;\n if(config.CommentPlugin.not_on_tags.length>0 && one_in_array(tiddler.tags, config.CommentPlugin.not_on_tags)) return;\n var onclick = function(e) {\n if (!e) var e = window.event;\n var theTarget = resolveTarget(e);\n if(tiddler.title.indexOf(' Comment ')>-1) var title = tiddler.title.split(' Comment ')[0];\n else var title = tiddler.title;\n var title = title + ' Comment ' + (new Date()).formatString('YYYY-0MM-0DD 0hh:0mm:0ss');\n var comment = store.createTiddler(title);\n comment.text = '';\n comment.tags = [tiddler.title, 'comments', 'excludeLists'];\n story.displayTiddler(theTarget, title, DEFAULT_EDIT_TEMPLATE);\n story.focusTiddler(title,"text");\n return false;\n }\n createTiddlyButton(place, this.label, this.prompt, onclick);\n }\n }\n};\nconfig.macros.comments = {\n dateFormat: 'DD MMM YYYY hh:0mm',\n handler: function(place,macroName,params,wikifier,paramString,tiddler) {\n if(tiddler.title=='comments') return;\n var comments = store.getTaggedTiddlers(tiddler.title, 'created');\n if(comments.length>0 && !in_array('comments', tiddler.tags) && config.CommentPlugin.fold_comments) {\n var show = createTiddlyElement(place, 'p');\n show.innerHTML = '<a href="#" onclick="var e=document.getElementById(\s'comments'+tiddler.title+'\s');e.style.display=e.style.display==\s'block\s'?\s'none\s':\s'block\s';return false;">Comments ('+count_comments(tiddler)+') »</a>';\n }\n var place = createTiddlyElement(place, 'div', 'comments'+tiddler.title, 'comments');\n if(comments.length>0 && !in_array('comments', tiddler.tags) && config.CommentPlugin.fold_comments && config.CommentPlugin.default_fold)\n place.style.display = 'none';\n else\n place.style.display = 'block';\n for(var i=0; i<comments.length; i++) {\n if(!in_array('comments', comments[i].tags))continue;\n var container = createTiddlyElement(place, 'div', null, 'comment');\n var title = createTiddlyElement(container, 'strong');\n var link = createTiddlyLink(title, comments[i].modifier, true);\n createTiddlyElement(title, 'span', null, null, ', '+comments[i].created.formatString(this.dateFormat));\n if(comments[i].modifier == config.options.txtUserName) {\n createTiddlyElement(title, 'span', null, null, ' (');\n var edit = createTiddlyLink(title, comments[i].title);\n edit.innerHTML = 'edit';\n createTiddlyElement(title, 'span', null, null, ')');\n }\n createTiddlyElement(container, 'br');\n config.macros.tiddler.handler(container, null, [comments[i].title]);\n createTiddlyElement(container, 'br');\n config.macros.comments.handler(container,null,null,null,null,comments[i]);\n }\n config.macros.newCommentLink.handler(place,null,null,null,null,tiddler);\n }\n};\nvar CPCloseTiddlers = [];\nTiddlyWiki.prototype.CommentPlugin_saveTiddler = TiddlyWiki.prototype.saveTiddler;\nTiddlyWiki.prototype.saveTiddler = function(title,newTitle,newBody,modifier,modified,tags) {\n var t = this.CommentPlugin_saveTiddler(title,newTitle,newBody,modifier,modified,tags);\n var tags = tags.split(/\ss+/g);\n if(in_array('comments', tags)) {\n var original = config.CommentPlugin.default_fold;\n config.CommentPlugin.default_fold = false;\n story.refreshTiddler(get_parent(t).title, DEFAULT_VIEW_TEMPLATE, true);\n config.CommentPlugin.default_fold = original;\n CPCloseTiddlers.push(newTitle);\n setTimeout("story.closeTiddler(CPCloseTiddlers.pop(), true)", 1000);\n }\n return t;\n};\n}}}
<div class='toolbar' macro='toolbar -closeTiddler closeOthers +editTiddler references revisions'></div>\n<div class='title' macro='view title'></div>\n<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view created date [[MM/DD/YY]]'></span> - <span macro='view modified date [[MM/DD/YY]]'></span></div>\n<div class='tagged' macro='tags'></div>\n<div class='viewer' macro='view text wikified'></div>\n<div class='tagClear'></div>\n<div class='comments' macro='comments'></div>
Hi everyone, my name is Ania and I'm from Boston, MA. This is my first philosophy class ever and I am excited to dig into this subject for the first time. In my free time, I play tennis a lot, read and I am interested in international relations, possibly majoring in government later on. I really love languages and I speak Polish at home with my family and I'm also fluent in German. I'm not a big speaker in class as you may get to notice, but I love writing, and listening.
//Removes hidden tiddlers from lists. Hopefully this code will be included in the core TW soon.//\n{{{\nTiddlyWiki.prototype.getTags = function()\n{\n var results = [];\n this.forEachTiddler(function(title,tiddler) {\n if(tiddler.tags.find('excludeLists')==null)\n {\n for(var g=0; g<tiddler.tags.length; g++)\n {\n var tag = tiddler.tags[g];\n var taggingTiddler = store.fetchTiddler(tag)\n if(!taggingTiddler || !taggingTiddler.tags || taggingTiddler.tags.find('excludeLists')==null)\n {\n var f = false;\n for(var c=0; c<results.length; c++)\n if(results[c][0] == tag)\n {\n f = true;\n results[c][1]++;\n }\n if(!f)\n results.push([tag,1]);\n }\n }\n }\n });\n results.sort(function (a,b) {if(a[0].toLowerCase() == b[0].toLowerCase()) return(0); else return (a[0].toLowerCase() < b[0].toLowerCase()) ? -1 : +1; });\n return results;\n}\n\nTiddlyWiki.prototype.getOrphans = function()\n{\n var results = [];\n this.forEachTiddler(function (title,tiddler) {\n if(this.getReferringTiddlers(title).length == 0 && tiddler.tags.find('excludeLists')==null)\n results.push(title);\n });\n results.sort();\n return results;\n}\n}}}
//''This plugin protects all tiddlers so that only their author or admins can modify them, unless a tiddler is tagged "unprotected" (configurable).''//\n//Only works with ZiddlyWiki.//\n//Great suplement to the CommentPlugin.//\n//''Isn't working in Internet Explorer! Why???''//\n//{{{\nvar unprotectedTag = 'shared';\nfunction in_array(item, arr){for(var i=0;i<arr.length;i++)if(item==arr[i])return true};\nfunction isProtectedTiddler(title) {\n var tiddler = store.fetchTiddler(title);\n if(zw.isAdmin || !tiddler || !tiddler.modifier || tiddler.modifier == zw.username) return false;\n if(in_array(unprotectedTag, tiddler.tags)) return false;\n return true;\n};\n//}}}
[img[webwater|http://espringer.web.wesleyan.edu/images/tree160.gif]]\n\n+++[—Syllabus info—|See PHIL 218 syllabus details]\n^^[[course description|PHIL 218 course description]]^^\n^^[[course packets]]^^\n^^[[reading strategies]]^^\n===\n----\n+++[—List Dates—|"Date tags, access to commentaries by date"]\n^^Click on date to browse^^\n<<tiddler DatesList>>\n===\n----\n+++[—List Students—|Show student names (login required)]\n<<tiddler [[seminar participants]]>>\n===\n----\n+++[—Using this site—|Logging in and contributing]\n~~[[welcome]]~~\n~~[[experiment]]~~\n~~[[submitting commentaries]]~~\n~~[[titles and tags]]~~\n~~[[formatting tips]]~~\n~~[[Word Count]]~~\n===\n----\n[[E Springer homepage|http://espringer.web.wesleyan.edu]]\n\n^^<<today>>^^\n^^[[ZiddlyWiki|http://www.ziddlywiki.org]] <<ziddlyversion>>^^\n<<redirect ksia [[ksia]]>>\n<<redirect philosophy [[philosophy]]>>
<<tiddler ExcludedTiddlers>>\n
<div class='comments' macro='comments'></div>\n<div class='newCommentLink' macro='newCommentLink'></div>
<<allTagsExcept systemConfig systemConf? Setup systemTiddlers excludeLists excludeSearch onlyAdmin>>\n<<tiddler debugging>>
[[Epictetus|http://www.iep.utm.edu/e/epictetu.htm]] belonged to the Stoic tradition in ancient Greek and Roman thought, and was born around 55 C.E. Though he began life as a slave, it was not uncommon for slaves to have the means to study, and Epictetus was freed as an adult. Though some claim that Stoicism is a philosophy appropriate for someone such as a slave, without political power, another famous Roman Stoic was the emperor [[Marcus Aurelius|http://www.iep.utm.edu/m/marcus.htm]]; a Stoicism is compatible with political influence so long as one can resist the temptation to become attached to success, ambition, and recognition.
/***\n|''Name:''|ForEachTiddlerPlugin|\n|''Version:''|1.0.5 (2006-02-05)|\n|''Source:''|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin|\n|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|\n|''Licence:''|[[BSD open source license]]|\n|''Macros:''|[[ForEachTiddlerMacro]] v1.0.5|\n|''TiddlyWiki:''|1.2.38+, 2.0|\n|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|\n!Description\n\nCreate customizable lists, tables etc. for your selections of tiddlers. Specify the tiddlers to include and their order through a powerful language.\n\n''Syntax:'' \n|>|{{{<<}}}''forEachTiddler'' [''in'' //tiddlyWikiPath//] [''where'' //whereCondition//] [''sortBy'' //sortExpression// [''ascending'' //or// ''descending'']] [''script'' //scriptText//] [//action// [//actionParameters//]]{{{>>}}}|\n|//tiddlyWikiPath//|The filepath to the TiddlyWiki the macro should work on. When missing the current TiddlyWiki is used.|\n|//whereCondition//|(quoted) JavaScript boolean expression. May refer to the build-in variables {{{tiddler}}} and {{{context}}}.|\n|//sortExpression//|(quoted) JavaScript expression returning "comparable" objects (using '{{{<}}}','{{{>}}}','{{{==}}}'. May refer to the build-in variables {{{tiddler}}} and {{{context}}}.|\n|//scriptText//|(quoted) JavaScript text. Typically defines JavaScript functions that are called by the various JavaScript expressions (whereClause, sortClause, action arguments,...)|\n|//action//|The action that should be performed on every selected tiddler, in the given order. By default the actions [[addToList|AddToListAction]] and [[write|WriteAction]] are supported. When no action is specified [[addToList|AddToListAction]] is used.|\n|//actionParameters//|(action specific) parameters the action may refer while processing the tiddlers (see action descriptions for details). <<tiddler [[JavaScript in actionParameters]]>>|\n|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|\n\nSee details see [[ForEachTiddlerMacro]] and [[ForEachTiddlerExamples]].\n\n!Revision history\n* v1.0.5\n** Pass tiddler containing the macro with wikify, context object also holds reference to tiddler containing the macro ("inTiddler"). Thanks to SimonBaird.\n** Support Firefox 1.5.0.1\n** Internal\n*** Make "JSLint" conform\n*** "Only install once"\n* v1.0.4 (2006-01-06)\n** Support TiddlyWiki 2.0\n* v1.0.3 (2005-12-22)\n** Features: \n*** Write output to a file supports multi-byte environments (Thanks to Bram Chen) \n*** Provide API to access the forEachTiddler functionality directly through JavaScript (see getTiddlers and performMacro)\n** Enhancements:\n*** Improved error messages on InternetExplorer.\n* v1.0.2 (2005-12-10)\n** Features: \n*** context object also holds reference to store (TiddlyWiki)\n** Fixed Bugs: \n*** ForEachTiddler 1.0.1 has broken support on win32 Opera 8.51 (Thanks to BrunoSabin for reporting)\n* v1.0.1 (2005-12-08)\n** Features: \n*** Access tiddlers stored in separated TiddlyWikis through the "in" option. I.e. you are no longer limited to only work on the "current TiddlyWiki".\n*** Write output to an external file using the "toFile" option of the "write" action. With this option you may write your customized tiddler exports.\n*** Use the "script" section to define "helper" JavaScript functions etc. to be used in the various JavaScript expressions (whereClause, sortClause, action arguments,...).\n*** Access and store context information for the current forEachTiddler invocation (through the build-in "context" object) .\n*** Improved script evaluation (for where/sort clause and write scripts).\n* v1.0.0 (2005-11-20)\n** initial version\n\n!Code\n***/\n//{{{\n\n \n//============================================================================\n//============================================================================\n// ForEachTiddlerPlugin\n//============================================================================\n//============================================================================\n\n// Only install once\nif (!version.extensions.ForEachTiddlerPlugin) {\n\nversion.extensions.ForEachTiddlerPlugin = {major: 1, minor: 0, revision: 5, date: new Date(2006,2,5), source: "http://tiddlywiki.abego-software.de/#ForEachTiddlergPlugin"};\n\n// For backward compatibility with TW 1.2.x\n//\nif (!TiddlyWiki.prototype.forEachTiddler) {\n TiddlyWiki.prototype.forEachTiddler = function(callback) {\n for(var t in this.tiddlers) {\n callback.call(this,t,this.tiddlers[t]);\n }\n };\n}\n\n//============================================================================\n// forEachTiddler Macro\n//============================================================================\n\nversion.extensions.forEachTiddler = {major: 1, minor: 0, revision: 5, date: new Date(2006,2,5), provider: "http://tiddlywiki.abego-software.de"};\n\n// ---------------------------------------------------------------------------\n// Configurations and constants \n// ---------------------------------------------------------------------------\n\nconfig.macros.forEachTiddler = {\n // Standard Properties\n label: "forEachTiddler",\n prompt: "Perform actions on a (sorted) selection of tiddlers",\n\n // actions\n actions: {\n addToList: {},\n write: {}\n }\n};\n\n// ---------------------------------------------------------------------------\n// The forEachTiddler Macro Handler \n// ---------------------------------------------------------------------------\n\nconfig.macros.forEachTiddler.getContainingTiddler = function(e) {\n while(e && !hasClass(e,"tiddler"))\n e = e.parentNode;\n var title = e ? e.getAttribute("tiddler") : null; \n return title ? store.getTiddler(title) : null;\n};\n\nconfig.macros.forEachTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) {\n // config.macros.forEachTiddler.traceMacroCall(place,macroName,params,wikifier,paramString,tiddler);\n\n if (!tiddler) tiddler = config.macros.forEachTiddler.getContainingTiddler(place);\n // --- Parsing ------------------------------------------\n\n var i = 0; // index running over the params\n // Parse the "in" clause\n var tiddlyWikiPath = undefined;\n if ((i < params.length) && params[i] == "in") {\n i++;\n if (i >= params.length) {\n this.handleError(place, "TiddlyWiki path expected behind 'in'.");\n return;\n }\n tiddlyWikiPath = this.paramEncode((i < params.length) ? params[i] : "");\n i++;\n }\n\n // Parse the where clause\n var whereClause ="true";\n if ((i < params.length) && params[i] == "where") {\n i++;\n whereClause = this.paramEncode((i < params.length) ? params[i] : "");\n i++;\n }\n\n // Parse the sort stuff\n var sortClause = null;\n var sortAscending = true; \n if ((i < params.length) && params[i] == "sortBy") {\n i++;\n if (i >= params.length) {\n this.handleError(place, "sortClause missing behind 'sortBy'.");\n return;\n }\n sortClause = this.paramEncode(params[i]);\n i++;\n\n if ((i < params.length) && (params[i] == "ascending" || params[i] == "descending")) {\n sortAscending = params[i] == "ascending";\n i++;\n }\n }\n\n // Parse the script\n var scriptText = null;\n if ((i < params.length) && params[i] == "script") {\n i++;\n scriptText = this.paramEncode((i < params.length) ? params[i] : "");\n i++;\n }\n\n // Parse the action. \n // When we are already at the end use the default action\n var actionName = "addToList";\n if (i < params.length) {\n if (!config.macros.forEachTiddler.actions[params[i]]) {\n this.handleError(place, "Unknown action '"+params[i]+"'.");\n return;\n } else {\n actionName = params[i]; \n i++;\n }\n } \n \n // Get the action parameter\n // (the parsing is done inside the individual action implementation.)\n var actionParameter = params.slice(i);\n\n\n // --- Processing ------------------------------------------\n try {\n this.performMacro({\n place: place, \n inTiddler: tiddler,\n whereClause: whereClause, \n sortClause: sortClause, \n sortAscending: sortAscending, \n actionName: actionName, \n actionParameter: actionParameter, \n scriptText: scriptText, \n tiddlyWikiPath: tiddlyWikiPath});\n\n } catch (e) {\n this.handleError(place, e);\n }\n};\n\n// Returns an object with properties "tiddlers" and "context".\n// tiddlers holds the (sorted) tiddlers selected by the parameter,\n// context the context of the execution of the macro.\n//\n// The action is not yet performed.\n//\n// @parameter see performMacro\n//\nconfig.macros.forEachTiddler.getTiddlersAndContext = function(parameter) {\n\n var context = config.macros.forEachTiddler.createContext(parameter.place, parameter.whereClause, parameter.sortClause, parameter.sortAscending, parameter.actionName, parameter.actionParameter, parameter.scriptText, parameter.tiddlyWikiPath, parameter.inTiddler);\n\n var tiddlyWiki = parameter.tiddlyWikiPath ? this.loadTiddlyWiki(parameter.tiddlyWikiPath) : store;\n context["tiddlyWiki"] = tiddlyWiki;\n \n // Get the tiddlers, as defined by the whereClause\n var tiddlers = this.findTiddlers(parameter.whereClause, context, tiddlyWiki);\n context["tiddlers"] = tiddlers;\n\n // Sort the tiddlers, when sorting is required.\n if (parameter.sortClause) {\n this.sortTiddlers(tiddlers, parameter.sortClause, parameter.sortAscending, context);\n }\n\n return {tiddlers: tiddlers, context: context};\n};\n\n// Returns the (sorted) tiddlers selected by the parameter.\n//\n// The action is not yet performed.\n//\n// @parameter see performMacro\n//\nconfig.macros.forEachTiddler.getTiddlers = function(parameter) {\n return this.getTiddlersAndContext(parameter).tiddlers;\n};\n\n// Performs the macros with the given parameter.\n//\n// @param parameter holds the parameter of the macro as separate properties.\n// The following properties are supported:\n//\n// place\n// whereClause\n// sortClause\n// sortAscending\n// actionName\n// actionParameter\n// scriptText\n// tiddlyWikiPath\n//\n// All properties are optional. \n// For most actions the place property must be defined.\n//\nconfig.macros.forEachTiddler.performMacro = function(parameter) {\n var tiddlersAndContext = this.getTiddlersAndContext(parameter);\n\n // Perform the action\n var actionName = parameter.actionName ? parameter.actionName : "addToList";\n var action = config.macros.forEachTiddler.actions[actionName];\n if (!action) {\n this.handleError(parameter.place, "Unknown action '"+actionName+"'.");\n return;\n }\n\n var actionHandler = action.handler;\n actionHandler(parameter.place, tiddlersAndContext.tiddlers, parameter.actionParameter, tiddlersAndContext.context);\n};\n\n// ---------------------------------------------------------------------------\n// The actions \n// ---------------------------------------------------------------------------\n\n// Internal.\n//\n// --- The addToList Action -----------------------------------------------\n//\nconfig.macros.forEachTiddler.actions.addToList.handler = function(place, tiddlers, parameter, context) {\n // Parse the parameter\n var p = 0;\n\n // Check for extra parameters\n if (parameter.length > p) {\n config.macros.forEachTiddler.createExtraParameterErrorElement(place, "addToList", parameter, p);\n return;\n }\n\n // Perform the action.\n var list = document.createElement("ul");\n place.appendChild(list);\n for (var i = 0; i < tiddlers.length; i++) {\n var tiddler = tiddlers[i];\n var listItem = document.createElement("li");\n list.appendChild(listItem);\n createTiddlyLink(listItem, tiddler.title, true);\n }\n};\n\n// Internal.\n//\n// --- The write Action ---------------------------------------------------\n//\nconfig.macros.forEachTiddler.actions.write.handler = function(place, tiddlers, parameter, context) {\n // Parse the parameter\n var p = 0;\n if (p >= parameter.length) {\n this.handleError(place, "Missing expression behind 'write'.");\n return;\n }\n\n var textExpression = config.macros.forEachTiddler.paramEncode(parameter[p]);\n p++;\n\n // Parse the "toFile" option\n var filename = null;\n var lineSeparator = undefined;\n if ((p < parameter.length) && parameter[p] == "toFile") {\n p++;\n if (p >= parameter.length) {\n this.handleError(place, "Filename expected behind 'toFile' of 'write' action.");\n return;\n }\n \n filename = config.macros.forEachTiddler.getLocalPath(config.macros.forEachTiddler.paramEncode(parameter[p]));\n p++;\n if ((p < parameter.length) && parameter[p] == "withLineSeparator") {\n p++;\n if (p >= parameter.length) {\n this.handleError(place, "Line separator text expected behind 'withLineSeparator' of 'write' action.");\n return;\n }\n lineSeparator = config.macros.forEachTiddler.paramEncode(parameter[p]);\n p++;\n }\n }\n \n // Check for extra parameters\n if (parameter.length > p) {\n config.macros.forEachTiddler.createExtraParameterErrorElement(place, "write", parameter, p);\n return;\n }\n\n // Perform the action.\n var func = config.macros.forEachTiddler.getEvalTiddlerFunction(textExpression, context);\n var count = tiddlers.length;\n var text = "";\n for (var i = 0; i < count; i++) {\n var tiddler = tiddlers[i];\n text += func(tiddler, context, count, i);\n }\n \n if (filename) {\n if (lineSeparator !== undefined) {\n lineSeparator = lineSeparator.replace(/\s\sn/mg, "\sn").replace(/\s\sr/mg, "\sr");\n text = text.replace(/\sn/mg,lineSeparator);\n }\n saveFile(filename, convertUnicodeToUTF8(text));\n } else {\n var wrapper = createTiddlyElement(place, "span");\n wikify(text, wrapper, null/* highlightRegExp */, context.inTiddler);\n }\n};\n\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n// Internal.\n//\nconfig.macros.forEachTiddler.createContext = function(placeParam, whereClauseParam, sortClauseParam, sortAscendingParam, actionNameParam, actionParameterParam, scriptText, tiddlyWikiPathParam, inTiddlerParam) {\n return {\n place : placeParam, \n whereClause : whereClauseParam, \n sortClause : sortClauseParam, \n sortAscending : sortAscendingParam, \n script : scriptText,\n actionName : actionNameParam, \n actionParameter : actionParameterParam,\n tiddlyWikiPath : tiddlyWikiPathParam,\n inTiddler : inTiddlerParam\n };\n};\n\n// Internal.\n//\n// Returns a TiddlyWiki with the tiddlers loaded from the TiddlyWiki of \n// the given path.\n//\nconfig.macros.forEachTiddler.loadTiddlyWiki = function(path, idPrefix) {\n if (!idPrefix) {\n idPrefix = "store";\n }\n var lenPrefix = idPrefix.length;\n \n // Read the content of the given file\n var content = loadFile(this.getLocalPath(path));\n if(content === null) {\n throw "TiddlyWiki '"+path+"' not found.";\n }\n \n // Locate the storeArea div's\n var posOpeningDiv = content.indexOf(startSaveArea);\n var posClosingDiv = content.lastIndexOf(endSaveArea);\n if((posOpeningDiv == -1) || (posClosingDiv == -1)) {\n throw "File '"+path+"' is not a TiddlyWiki.";\n }\n var storageText = content.substr(posOpeningDiv + startSaveArea.length, posClosingDiv);\n \n // Create a "div" element that contains the storage text\n var myStorageDiv = document.createElement("div");\n myStorageDiv.innerHTML = storageText;\n myStorageDiv.normalize();\n \n // Create all tiddlers in a new TiddlyWiki\n // (following code is modified copy of TiddlyWiki.prototype.loadFromDiv)\n var tiddlyWiki = new TiddlyWiki();\n var store = myStorageDiv.childNodes;\n for(var t = 0; t < store.length; t++) {\n var e = store[t];\n var title = null;\n if(e.getAttribute)\n title = e.getAttribute("tiddler");\n if(!title && e.id && e.id.substr(0,lenPrefix) == idPrefix)\n title = e.id.substr(lenPrefix);\n if(title && title !== "") {\n var tiddler = tiddlyWiki.createTiddler(title);\n tiddler.loadFromDiv(e,title);\n }\n }\n tiddlyWiki.dirty = false;\n\n return tiddlyWiki;\n};\n\n\n \n// Internal.\n//\n// Returns a function that has a function body returning the given javaScriptExpression.\n// The function has the parameters:\n// \n// (tiddler, context, count, index)\n//\nconfig.macros.forEachTiddler.getEvalTiddlerFunction = function (javaScriptExpression, context) {\n var script = context["script"];\n var functionText = "var theFunction = function(tiddler, context, count, index) { return "+javaScriptExpression+"}";\n var fullText = (script ? script+";" : "")+functionText+";theFunction;";\n return eval(fullText);\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.findTiddlers = function(whereClause, context, tiddlyWiki) {\n var result = [];\n var func = config.macros.forEachTiddler.getEvalTiddlerFunction(whereClause, context);\n tiddlyWiki.forEachTiddler(function(title,tiddler) {\n if (func(tiddler, context, undefined, undefined)) {\n result.push(tiddler);\n }\n });\n return result;\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.createExtraParameterErrorElement = function(place, actionName, parameter, firstUnusedIndex) {\n var message = "Extra parameter behind '"+actionName+"':";\n for (var i = firstUnusedIndex; i < parameter.length; i++) {\n message += " "+parameter[i];\n }\n this.handleError(place, message);\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.sortAscending = function(tiddlerA, tiddlerB) {\n var result = \n (tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) \n ? 0\n : (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)\n ? -1 \n : +1; \n return result;\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.sortDescending = function(tiddlerA, tiddlerB) {\n var result = \n (tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) \n ? 0\n : (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)\n ? +1 \n : -1; \n return result;\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.sortTiddlers = function(tiddlers, sortClause, ascending, context) {\n // To avoid evaluating the sortClause whenever two items are compared \n // we pre-calculate the sortValue for every item in the array and store it in a \n // temporary property ("forEachTiddlerSortValue") of the tiddlers.\n var func = config.macros.forEachTiddler.getEvalTiddlerFunction(sortClause, context);\n var count = tiddlers.length;\n var i;\n for (i = 0; i < count; i++) {\n var tiddler = tiddlers[i];\n tiddler.forEachTiddlerSortValue = func(tiddler,context, undefined, undefined);\n }\n\n // Do the sorting\n tiddlers.sort(ascending ? this.sortAscending : this.sortDescending);\n\n // Delete the temporary property that holds the sortValue. \n for (i = 0; i < tiddlers.length; i++) {\n delete tiddlers[i].forEachTiddlerSortValue;\n }\n};\n\n\n// Internal.\n//\nconfig.macros.forEachTiddler.trace = function(message) {\n displayMessage(message);\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.traceMacroCall = function(place,macroName,params) {\n var message ="<<"+macroName;\n for (var i = 0; i < params.length; i++) {\n message += " "+params[i];\n }\n message += ">>";\n displayMessage(message);\n};\n\n\n// Internal.\n//\n// Creates an element that holds an error message\n// \nconfig.macros.forEachTiddler.createErrorElement = function(place, exception) {\n var message = (exception.description) ? exception.description : exception.toString();\n return createTiddlyElement(place,"span",null,"forEachTiddlerError","<<forEachTiddler ...>>: "+message);\n};\n\n// Internal.\n//\n// @param place [may be null]\n//\nconfig.macros.forEachTiddler.handleError = function(place, exception) {\n if (place) {\n this.createErrorElement(place, exception);\n } else {\n throw exception;\n }\n};\n\n// Internal.\n//\n// Encodes the given string.\n//\n// Replaces \n// "$))" to ">>"\n// "$)" to ">"\n//\nconfig.macros.forEachTiddler.paramEncode = function(s) {\n var reGTGT = new RegExp("\s\s$\s\s)\s\s)","mg");\n var reGT = new RegExp("\s\s$\s\s)","mg");\n return s.replace(reGTGT, ">>").replace(reGT, ">");\n};\n\n// Internal.\n//\n// Returns the given original path (that is a file path, starting with "file:")\n// as a path to a local file, in the systems native file format.\n//\n// Location information in the originalPath (i.e. the "#" and stuff following)\n// is stripped.\n// \nconfig.macros.forEachTiddler.getLocalPath = function(originalPath) {\n // Remove any location part of the URL\n var hashPos = originalPath.indexOf("#");\n if(hashPos != -1)\n originalPath = originalPath.substr(0,hashPos);\n // Convert to a native file format assuming\n // "file:///x:/path/path/path..." - pc local file --> "x:\spath\spath\spath..."\n // "file://///server/share/path/path/path..." - FireFox pc network file --> "\s\sserver\sshare\spath\spath\spath..."\n // "file:///path/path/path..." - mac/unix local file --> "/path/path/path..."\n // "file://server/share/path/path/path..." - pc network file --> "\s\sserver\sshare\spath\spath\spath..."\n var localPath;\n if(originalPath.charAt(9) == ":") // pc local file\n localPath = unescape(originalPath.substr(8)).replace(new RegExp("/","g"),"\s\s");\n else if(originalPath.indexOf("file://///") === 0) // FireFox pc network file\n localPath = "\s\s\s\s" + unescape(originalPath.substr(10)).replace(new RegExp("/","g"),"\s\s");\n else if(originalPath.indexOf("file:///") === 0) // mac/unix local file\n localPath = unescape(originalPath.substr(7));\n else if(originalPath.indexOf("file:/") === 0) // mac/unix local file\n localPath = unescape(originalPath.substr(5));\n else // pc network file\n localPath = "\s\s\s\s" + unescape(originalPath.substr(7)).replace(new RegExp("/","g"),"\s\s"); \n return localPath;\n};\n\n// ---------------------------------------------------------------------------\n// Stylesheet Extensions (may be overridden by local StyleSheet)\n// ---------------------------------------------------------------------------\n//\nsetStylesheet(\n ".forEachTiddlerError{color: #ffffff;background-color: #880000;}",\n "forEachTiddler");\n\n//============================================================================\n// End of forEachTiddler Macro\n//============================================================================\n\n\n//============================================================================\n// String.startsWith Function\n//============================================================================\n//\n// Returns true if the string starts with the given prefix, false otherwise.\n//\nversion.extensions["String.startsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nString.prototype.startsWith = function(prefix) {\n var n = prefix.length;\n return (this.length >= n) && (this.slice(0, n) == prefix);\n};\n\n\n\n//============================================================================\n// String.endsWith Function\n//============================================================================\n//\n// Returns true if the string ends with the given suffix, false otherwise.\n//\nversion.extensions["String.endsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nString.prototype.endsWith = function(suffix) {\n var n = suffix.length;\n return (this.length >= n) && (this.right(n) == suffix);\n};\n\n\n//============================================================================\n// String.contains Function\n//============================================================================\n//\n// Returns true when the string contains the given substring, false otherwise.\n//\nversion.extensions["String.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nString.prototype.contains = function(substring) {\n return this.indexOf(substring) >= 0;\n};\n\n//============================================================================\n// Array.indexOf Function\n//============================================================================\n//\n// Returns the index of the first occurance of the given item in the array or \n// -1 when no such item exists.\n//\n// @param item [may be null]\n//\nversion.extensions["Array.indexOf"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.indexOf = function(item) {\n for (var i = 0; i < this.length; i++) {\n if (this[i] == item) {\n return i;\n }\n }\n return -1;\n};\n\n//============================================================================\n// Array.contains Function\n//============================================================================\n//\n// Returns true when the array contains the given item, otherwise false. \n//\n// @param item [may be null]\n//\nversion.extensions["Array.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.contains = function(item) {\n return (this.indexOf(item) >= 0);\n};\n\n//============================================================================\n// Array.containsAny Function\n//============================================================================\n//\n// Returns true when the array contains at least one of the elements \n// of the item. Otherwise (or when items contains no elements) false is returned.\n//\nversion.extensions["Array.containsAny"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.containsAny = function(items) {\n for(var i = 0; i < items.length; i++) {\n if (this.contains(items[i])) {\n return true;\n }\n }\n return false;\n};\n\n\n//============================================================================\n// Array.containsAll Function\n//============================================================================\n//\n// Returns true when the array contains all the items, otherwise false.\n// \n// When items is null false is returned (even if the array contains a null).\n//\n// @param items [may be null] \n//\nversion.extensions["Array.containsAll"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.containsAll = function(items) {\n for(var i = 0; i < items.length; i++) {\n if (!this.contains(items[i])) {\n return false;\n }\n }\n return true;\n};\n\n\n} // of "install only once"\n\n// Used Globals (for JSLint) ==============\n// ... DOM\n/*global document */\n// ... TiddlyWiki Core\n/*global convertUnicodeToUTF8, createTiddlyElement, createTiddlyLink, \n displayMessage, endSaveArea, hasClass, loadFile, saveFile, \n startSaveArea, store, wikify */\n//}}}\n\n\n/***\n!Licence and Copyright\nCopyright (c) abego Software ~GmbH, 2005 ([[www.abego-software.de|http://www.abego-software.de]])\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\nRedistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\n\nRedistributions in binary form must reproduce the above copyright notice, this\nlist of conditions and the following disclaimer in the documentation and/or other\nmaterials provided with the distribution.\n\nNeither the name of abego Software nor the names of its contributors may be\nused to endorse or promote products derived from this software without specific\nprior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT\nSHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR\nBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n***/
Revisions of commentaries are due on "off days" between main commentary writing, slightly over a week after the original. They should work with [[feedback]] received by [[peers|peer comment]], the [[TA|bbozorgnia]] and/or the [[professor|espringer]]. Please respect the efforts of all of those who offer feedback, and try to improve your work based on what you learn. You need not agree with every comment, but every comment does help illuminate how well your writing has managed to convey your line of thought clearly!\n!\nNote: Generally, it's best not to change the ''title'' of a commentary once there are comments attached, because the bond between the original and the comments will be lost. //If you do change a title//, please include a note such as "(formerly such-and such)" in the body, and make sure to copy and paste or type exactly the previous title.\n!\nThe [[revisions]] feature of the site is not much related to the assignment of doing revisions, although we can use that button to see what any item looked like earlier in its history.
Often honored (or accused) as the "father of modern philosophy", [[Descartes|http://www.iep.utm.edu/d/descarte.htm]] (1596-1650) heralded a transition from philosophy that appealed to revelation and authority for its premises to philosophy that appealed directly to individually accessible reason and/or experience.
''Enchiridion, Feb 2:''\n<<forEachTiddler \n where \n 'tiddler.tags.containsAny(["2/02"])'\n sortBy\n 'tiddler.created'\n descending\n write\n '"# [["+tiddler.modifier+"]], @@bgcolor(#eef): [["+tiddler.title+"]]@@ @@color(grey):( submitted "+tiddler.created.formatString("MMM DD, hh:0mm")+")@@\sn"'\n>>\n----\n''Crito, Jan 31:''\n<<forEachTiddler \n where \n 'tiddler.tags.containsAny(["1/31"])'\n sortBy\n 'tiddler.created'\n descending\n write\n '"# [["+tiddler.modifier+"]], @@bgcolor(#eef): [["+tiddler.title+"]]@@ @@color(grey):( submitted "+tiddler.created.formatString("MMM DD, hh:0mm")+")@@\sn"'\n>>\n----\n<<tableTags dates 8>>\n
|"But indeed it is also the same "I" who imagines; for alsthough perhaps, as I supposed before, absolutely nothing that I imagined is true, still the very power of imagining really does exist, and constitutes a part of my thought. For example, I now see a light, I hear a noise, I feel heat, these things are false since I am asleep. Yet I certainly do seem to hear and feel warmth. This cannot be false"(Descartes, p.20, Meditation two).|\n\nThroughout Descartes "Meditations on First Philosophy," he discusses the notion of what is true and how one can provide evidence of our existence. The perception of truth gives validity to the claim that because we can "conceive" ideas, because we can think; we exist. Descartes offers insightful rational regarding dreams. I first asked, If we dream unconsciously, how can we exist? Descartes describes how the fact that dreaming is "untrue," may make us skeptical of daily, conscious experiences, however dreaming does not undermine our existence. Although we are unconscious, the mind is present allowing us to dream regardless of the truth that we may search for consciously, existing is a constant.
My name is adam. I will edit this introduction later as I am inundated with work and Descartes is wooing me back to my desk. Suffice it to say for now that I love Philosophy and wonder how to (best?) exist in a Godless, senseless universe. I've also been recently operating on the hope/regret that I have a significant amount of untapped intellectual potential. And soon it will hopefully be (more or less) tapped, and I am anxious about this. After I leave college, I want to wander aimlessly around the country like a vagabond.
Hey my name is Caitlin and I'm from Seattle. I've never taken a philosophy class before but I'm really excited and encouraged after our first couple of meetings. I am especially intrigued by those times when our philosophy material overlaps with material I am studying for other courses.
<<forEachTiddler \n where \n 'tiddler.tags.containsAny(["introductions"])'\n write\n '"<<redirect "+tiddler.title+" [["+tiddler.title+"]]$))\sn"'\n>>\n<<forEachTiddler \n where \n 'tiddler.tags.containsAny(["reference"])'\n write\n '"<<redirect \s""+tiddler.title+"\s" [["+tiddler.title+"]]$))\sn"'>>\n<<forEachTiddler \n where \n 'tiddler.tags.containsAny(["tips"])'\n write\n '"<<redirect \s""+tiddler.title+"\s" [["+tiddler.title+"]]$))\sn"'>>\n<<forEachTiddler \n where \n 'tiddler.tags.containsAny(["syllabus"])'\n write\n '"<<redirect \s""+tiddler.title+"\s" [["+tiddler.title+"]]$))\sn"'>>\n<<redirect "Behdad" [[bbozorgnia]]>>
/***\n''InlineJavascriptPlugin for ~TiddlyWiki version 1.2.x and 2.0''\n^^author: Eric Shulman - ELS Design Studios\nsource: http://www.TiddlyTools.com/#InlineJavascriptPlugin\nlicense: [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^\n\nInsert Javascript executable code directly into your tiddler content. Lets you ''call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.\n!!!!!Usage\n<<<\nWhen installed, this plugin adds new wiki syntax for surrounding tiddler content with {{{<script>}}} and {{{</script>}}} markers, so that it can be treated as embedded javascript and executed each time the tiddler is rendered.\n\n''Deferred execution from an 'onClick' link''\nBy including a label="..." parameter in the initial {{{<script>}}} marker, the plugin will create a link to an 'onclick' script that will only be executed when that specific link is clicked, rather than running the script each time the tiddler is rendered.\n\n''External script source files:''\nYou can also load javascript from an external source URL, by including a src="..." parameter in the initial {{{<script>}}} marker (e.g., {{{<script src="demo.js"></script>}}}). This is particularly useful when incorporating third-party javascript libraries for use in custom extensions and plugins. The 'foreign' javascript code remains isolated in a separate file that can be easily replaced whenever an updated library file becomes available.\n\n''Defining javascript functions and libraries:''\nAlthough the external javascript file is loaded while the tiddler content is being rendered, any functions it defines will not be available for use until //after// the rendering has been completed. Thus, you cannot load a library and //immediately// use it's functions within the same tiddler. However, once that tiddler has been loaded, the library functions can be freely used in any tiddler (even the one in which it was initially loaded).\n\nTo ensure that your javascript functions are always available when needed, you should load the libraries from a tiddler that will be rendered as soon as your TiddlyWiki document is opened. For example, you could put your {{{<script src="..."></script>}}} syntax into a tiddler called LoadScripts, and then add {{{<<tiddler LoadScripts>>}}} in your MainMenu tiddler.\n\nSince the MainMenu is always rendered immediately upon opening your document, the library will always be loaded before any other tiddlers that rely upon the functions it defines. Loading an external javascript library does not produce any direct output in the tiddler, so these definitions should have no impact on the appearance of your MainMenu.\n\n''Creating dynamic tiddler content''\nAn important difference between this implementation of embedded scripting and conventional embedded javascript techniques for web pages is the method used to produce output that is dynamically inserted into the document:\n* In a typical web document, you use the document.write() function to output text sequences (often containing HTML tags) that are then rendered when the entire document is first loaded into the browser window.\n* However, in a ~TiddlyWiki document, tiddlers (and other DOM elements) are created, deleted, and rendered "on-the-fly", so writing directly to the global 'document' object does not produce the results you want (i.e., replacing the embedded script within the tiddler content), and completely replaces the entire ~TiddlyWiki document in your browser window.\n* To allow these scripts to work unmodified, the plugin automatically converts all occurences of document.write() so that the output is inserted into the tiddler content instead of replacing the entire ~TiddlyWiki document.\n\nIf your script does not use document.write() to create dynamically embedded content within a tiddler, your javascript can, as an alternative, explicitly return a text value that the plugin can then pass through the wikify() rendering engine to insert into the tiddler display. For example, using {{{return "thistext"}}} will produce the same output as {{{document.write("thistext")}}}.\n\n//Note: your script code is automatically 'wrapped' inside a function, {{{_out()}}}, so that any return value you provide can be correctly handled by the plugin and inserted into the tiddler. To avoid unpredictable results (and possibly fatal execution errors), this function should never be redefined or called from ''within'' your script code.//\n\n''Accessing the ~TiddlyWiki DOM''\nThe plugin provides one pre-defined variable, 'place', that is passed in to your javascript code so that it can have direct access to the containing DOM element into which the tiddler output is currently being rendered.\n\nAccess to this DOM element allows you to create scripts that can:\n* vary their actions based upon the specific location in which they are embedded\n* access 'tiddler-relative' information (use findContainingTiddler(place))\n* perform direct DOM manipulations (when returning wikified text is not enough)\n<<<\n!!!!!Examples\n<<<\nan "alert" message box:\n{{{\n<script>alert('InlineJavascriptPlugin: this is a demonstration message');</script>\n}}}\n<script>alert('InlineJavascriptPlugin: this is a demonstration message');</script>\n\ndynamic output:\n{{{\n<script>return (new Date()).toString();</script>\n}}}\n<script>return (new Date()).toString();</script>\n\nwikified dynamic output:\n{{{\n<script>return "link to current user: [["+config.options.txtUserName+"]]";</script>\n}}}\n<script>return "link to current user: [["+config.options.txtUserName+"]]";</script>\n\ndynamic output using 'place' to get size information for current tiddler\n{{{\n<script>\n if (!window.story) window.story=window;\n var title=story.findContainingTiddler(place).id.substr(7);\n return title+" is using "+store.getTiddlerText(title).length+" bytes";\n</script>\n}}}\n<script>\n if (!window.story) window.story=window;\n var title=story.findContainingTiddler(place).id.substr(7);\n return title+" is using "+store.getTiddlerText(title).length+" bytes";\n</script>\n\ncreating an 'onclick' button/link that runs a script\n{{{\n<script label="click here">\n if (!window.story) window.story=window;\n alert("Hello World!\snlinktext='"+place.firstChild.data+"'\sntiddler='"+story.findContainingTiddler(place).id.substr(7)+"'");\n</script>\n}}}\n<script label="click here">\n if (!window.story) window.story=window;\n alert("Hello World!\snlinktext='"+place.firstChild.data+"'\sntiddler='"+story.findContainingTiddler(place).id.substr(7)+"'");\n</script>\n\nloading a script from a source url\n{{{\n<script src="demo.js">return "loading demo.js..."</script>\n<script>return window.demo()</script>\n}}}\nwhere http://www.TiddlyTools.com/demo.js contains:\n>^^window.demo = function()^^\n>^^ { return 'this output is from demo(), defined in demo.js'; }^^\n>^^alert('InlineJavascriptPlugin: demo.js has been loaded');^^\n<script src="demo.js">return "loading demo.js..."</script>\n<script>return demo()</script>\n<<<\n!!!!!Installation\n<<<\nimport (or copy/paste) the following tiddlers into your document:\n''InlineJavascriptPlugin'' (tagged with <<tag systemConfig>>)\n<<<\n!!!!!Revision History\n<<<\n''2006.01.05 [1.4.0]''\nadded support 'onclick' scripts. When label="..." param is present, a button/link is created using the indicated label text, and the script is only executed when the button/link is clicked. 'place' value is set to match the clicked button/link element.\n''2005.12.13 [1.3.1]''\nwhen catching eval error in IE, e.description contains the error text, instead of e.toString(). Fixed error reporting so IE shows the correct response text. Based on a suggestion by UdoBorkowski\n''2005.11.09 [1.3.0]''\nfor 'inline' scripts (i.e., not scripts loaded with src="..."), automatically replace calls to 'document.write()' with 'place.innerHTML+=' so script output is directed into tiddler content\nBased on a suggestion by BradleyMeck\n''2005.11.08 [1.2.0]''\nhandle loading of javascript from an external URL via src="..." syntax\n''2005.11.08 [1.1.0]''\npass 'place' param into scripts to provide direct DOM access \n''2005.11.08 [1.0.0]''\ninitial release\n<<<\n!!!!!Credits\n<<<\nThis feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]\n<<<\n!!!!!Code\n***/\n//{{{\nversion.extensions.inlineJavascript= {major: 1, minor: 4, revision: 0, date: new Date(2006,1,5)};\n\nconfig.formatters.push( {\n name: "inlineJavascript",\n match: "\s\s<script",\n lookahead: "\s\s<script(?: src=\s\s\s"((?:.|\s\sn)*?)\s\s\s")?(?: label=\s\s\s"((?:.|\s\sn)*?)\s\s\s")?\s\s>((?:.|\s\sn)*?)\s\s</script\s\s>",\n\n handler: function(w) {\n var lookaheadRegExp = new RegExp(this.lookahead,"mg");\n lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = lookaheadRegExp.exec(w.source)\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {\n if (lookaheadMatch[1]) { // load a script library\n // make script tag, set src, add to body to execute, then remove for cleanup\n var script = document.createElement("script"); script.src = lookaheadMatch[1];\n document.body.appendChild(script); document.body.removeChild(script);\n }\n if (lookaheadMatch[2] && lookaheadMatch[3]) { // create a link to an 'onclick' script\n // add a link, define click handler, save code in link (pass 'place'), set link attributes\n var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",lookaheadMatch[2]);\n link.onclick=function(){try{return(eval(this.code))}catch(e){alert(e.description?e.description:e.toString())}}\n link.code="function _out(place){"+lookaheadMatch[3]+"};_out(this);"\n link.setAttribute("href","javascript:;"); link.setAttribute("title",""); link.style.cursor="pointer";\n }\n else if (lookaheadMatch[3]) { // run inline script code\n var code="function _out(place){"+lookaheadMatch[3]+"};_out(w.output);"\n code=code.replace(/document.write\s(/gi,'place.innerHTML+=(');\n try { var out = eval(code); } catch(e) { out = e.description?e.description:e.toString(); }\n if (out && out.length) wikify(out,w.output);\n }\n w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;\n }\n }\n} )\n//}}}\n
//''Breaks the Timeline tab into "Tiddlers" and "Comments".''//\n//Makes sense with the CommentPlugin.//\n\n{{{\nfunction in_array(item, arr){for(var i=0;i<arr.length;i++)if(item==arr[i])return true};\nfunction get_parent(tiddler){while(tiddler && in_array('comments', tiddler.tags)) tiddler=store.fetchTiddler(tiddler.tags[0]);return tiddler};\n\nconfig.options.txtTimelineTab = 'timelineTab'; // huh?\nconfig.shadowTiddlers.TabTimelineTiddlers = config.shadowTiddlers.TabTimeline;\nconfig.shadowTiddlers.TabTimeline = "<<tabs txtTimelineTab Tiddlers Tiddlers TabTimelineTiddlers Comments Comments TabTimelineComments>>";\nconfig.shadowTiddlers.TabTimelineComments = "<<tiddlerComments>>";\n\nconfig.macros.tiddlerComments = {\n dateFormat: 'DD MMM YYYY',\n handler: function(place,macroName,params)\n {\n var field = params[0] ? params[0] : "modified";\n var comments = store.reverseLookup("tags","comments",true,field);\n var lastDay = "";\n for (var c=comments.length-1; c>=0; c--)\n {\n if(comments[c].tags.length == 0) continue;\n var tiddler = get_parent(comments[c]);\n if(!tiddler) continue;\n var theDay = comments[c][field].convertToYYYYMMDDHHMM().substr(0,8);\n if(theDay != lastDay)\n {\n var theDateList = document.createElement("ul");\n place.appendChild(theDateList);\n createTiddlyElement(theDateList,"li",null,"listTitle",comments[c][field].formatString(this.dateFormat));\n lastDay = theDay;\n }\n var theDateListItem = createTiddlyElement(theDateList,"li",null,"listLink",null);\n var link = createTiddlyLink(place,comments[c].title);\n link.innerHTML = comments[c].modifier + ' on ' + tiddler.title;\n link.setAttribute("tiddlyLink",tiddler.title);\n theDateListItem.appendChild(link);\n }\n }\n};\n}}}
/***\n| ''Name'' |Selective Tag Chooser|\n| ''Version'' |0.1|\n| ''Source'' |[[Rich Carrillo|http://www.kultofbubb.net/tiddlywiki/]]|\n| ''Author'' |[[RichCarrillo|RichCarrillo@gmail.com]]|\n| ''Type'' |Macro (for EditTemplate)|\n| ''Required'' |TiddlyWiki 2.0+|\n| ''License'' ||\n\n!Revision History\n|20060125|0.1|First release - very rough. I havent tested much.|\n\n\n!Description\nThis macro will create a button that works very similarly to the existing "Tag Chooser" button. With this macro you can choose what to list in the pop-up menu by passing a tag to the macro. The pop-up will list everything tagged with that tag and when you choose an item, it will tag the current tiddler with the chosen tag.\nThis is intened to be used in EditTemplates, just as the existing tag chooser is.\n\n!Installation\nImport (or copy the contents of) this Tiddler into your Wiki.\nTag it with systemConfg, Save and Refresh.\n\n!Syntax\n|{{{<<SelectiveTagChooser [button label] [button tooltip] [tag to list]>>}}}| It will list all tiddlers tagged with the parameter you give it. You will then be able to tag your current tiddler with a tiddler off the list.|\n\nI've included some example templates. Copy over all Tiddlers tagged with SelectiveTagChooserMacro to get you started.\n\n!Example\n<<SelectiveTagChooser "Projects" "Tag this tiddler with a Project" Projects>>\n\n!Credits\nMost of this code is adaptions of TiddlyWiki core functions.\n\n!Roadmap - ToDo list\n*Define our own button label, instead of just stealing tagChooser's\n*Let users pass mulitple tags to list.\n*Improve documentation. I did this in 15 minutes and I doubt if it makes sense\n\n!Code\n***/\n//{{{\n// default settings\nconfig.macros.SelectiveTagChooser = { }\n\nconfig.macros.SelectiveTagChooser.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n if(tiddler instanceof Tiddler)\n {\n var title = tiddler.title;\n var lingo = config.views.editor.tagChooser;\n var buttonLabel=params[0];\n var buttonTooltip=params[1];\n// start my stuff\n var tagToList = params[2];\n var tagList = store.getTaggedTiddlers(tagToList);\n var tiddlerTitles = [];\n var li,r;\n for(r=0;r<tagList.length;r++)\n if(tagList[r].title != tiddlerTitles){\n tiddlerTitles.push(tagList[r].title);}\n// end my stuff\n var ontagclick = function(e) {\n if (!e) var e = window.event;\n var tag = this.getAttribute("tag");\n story.setTiddlerTag(title,tag,0);\n return(false);\n };\n var onclick = function(e) {\n if (!e) var e = window.event;\n var popup = Popup.create(this);\n// start my stuff\n var tags = tiddlerTitles;\n // var tags = store.getTags();\n// end my stuff\n if(tags.length == 0)\n createTiddlyText(createTiddlyElement(popup,"li"),lingo.popupNone);\n for (var t=0; t<tags.length; t++)\n {\n// start my stuff\n var theTag = createTiddlyButton(createTiddlyElement(popup,"li"),tags[t],lingo.tagTooltip.format([tags[t]]),ontagclick);\n theTag.setAttribute("tag",tags[t]);\n\n // var theTag = createTiddlyButton(createTiddlyElement(popup,"li"),tags[t][0],lingo.tagTooltip.format([tags[t][0]]),ontagclick);\n // theTag.setAttribute("tag",tags[t][0]);\n// end my stuff\n }\n Popup.show(popup,false);\n e.cancelBubble = true;\n if (e.stopPropagation) e.stopPropagation();\n return(false);\n };\n createTiddlyButton(place,buttonLabel,buttonTooltip,onclick);\n }\n}\n\n//}}}\n
/***\n|''Name:''|TableTagsPlugin |\n|''Version:''|1.0 |\n|''Source:''|http://thePettersons.org/tiddlywiki.html#TableTagsPlugin |\n|''Author:''|[[Paul Petterson]] |\n|''Type:''|Macro Extension |\n|''Requires:''|TiddlyWiki 1.2.32 or higher |\n!Description\nLists all tiddlers with a given tag in a table format. Can specify the number of columns in the table.\n\n!Syntax\n{{{<<tableTags systemConfig 4>>}}}\n\n!Sample Output\n<<tableTags systemConfig 4>>\n\n!Known issues\n* Doesn't always display a good table if there are two many empty columns in the last row.\n\n!Revision history\nv1.0 Initial Public Release\n\n!Code\n***/\n//{{{\nconfig.macros.tableTags = { text: "Hello" };\nconfig.macros.tableTags.handler = function(place,macroName,params)\n{\n var tag = params[0] ? params[0] : "all";\n var rows = params[1] ? params[1] : 3;\n var tagged = store.getTaggedTiddlers(params[0]);\n var tbl = createTiddlyElement(place,"table",null,null,"");\n var tb = createTiddlyElement( tbl, "tbody", null, null );\n var tr ;\n for(var r=0;r<tagged.length;r++)\n {\n if ( ( r % rows ) == 0 )\n tr = createTiddlyElement( tb, "tr", null, null, "");\n var td = createTiddlyElement(tr,"td",null,null,"");\n createTiddlyLink(td,tagged[r].title,true);\n }\n}\n//}}}\n/***\nThis plugin is released under the [[Creative Commons Attribution 2.5 License|http://creativecommons.org/licenses/by/2.5/]]\n***/\n
An objection, or ''complaint about reasoning'' can be raised either in response to a specific claim (as in a premise) or in response to an inference (a step in an argument). Good philosophical reading requires recognizing actual and potential objections to any proposed line of thought, and it also requires anticipating a reply whenever possible (that is, using charitable interpretation to make the best possible sense of an author's ideas).
/***\n!Colors Used\n*@@bgcolor(#8cf): #8cf - Background blue@@\n*@@bgcolor(#18f): #18f - Top blue@@\n*@@bgcolor(#04b): #04b - Mid blue@@\n*@@bgcolor(#014):color(#fff): #014 - Bottom blue@@\n*@@bgcolor(#ffc): #ffc - Bright yellow@@\n*@@bgcolor(#fe8): #fe8 - Highlight yellow@@\n*@@bgcolor(#db4): #db4 - Background yellow@@\n*@@bgcolor(#841): #841 - Border yellow@@\n*@@bgcolor(#703):color(#fff): #703 - Title red@@\n*@@bgcolor(#866): #866 - Subtitle grey@@\n!Generic Rules /%==============================================%/\n***/\n/*{{{*/\nbody {\n background-image: url('http://parmenides.objectis.net/images/gradient2.jpg');\n color: #000;\n}\n\na{\n color: #04b;\n}\n\na:hover{\n background: #04b;\n color: #fff;\n}\n\na img{\n border: 0;\n}\n\nh2,h3,h4,h5 {\n color: #703;\n background: #ccc;\n}\n\n.button {\n color: #014;\n border: 1px solid #fff;\n}\n\n.button:hover {\n color: #014;\n background: #fe8;\n border: 1px solid #db4;\n}\n\n.button:active {\n color: #fff;\n background: #db4;\n border: 1px solid #841;\n}\n\n/*}}}*/\n/***\n!Header /%==================================================%/\n***/\n/*{{{*/\n.header {\n background: #04b;\n}\n\n.headerShadow {\n color: #000;\n}\n\n.headerShadow a {\n font-weight: normal;\n color: #000;\n}\n\n.headerForeground {\n color: #fff;\n}\n\n.headerForeground a {\n font-weight: normal;\n color: #89a;\n}\n\n/*}}}*/\n/***\n!General tabs /%=================================================%/\n***/\n/*{{{*/\n\n.tabSelected{\n color: #014;\n background: #eee;\n border-left: 1px solid #ccc;\n border-top: 1px solid #ccc;\n border-right: 1px solid #ccc;\n}\n\n.tabUnselected {\n color: #fff;\n background: #999;\n}\n\n.tabContents {\n color: #014;\n background: #eee;\n border: 1px solid #ccc;\n}\n\n.tabContents .button {\n border: 0;}\n\n/*}}}*/\n/***\n!Sidebar options /%=================================================%/\n~TiddlyLinks and buttons are treated identically in the sidebar and slider panel\n***/\n/*{{{*/\n#sidebar {\n}\n\n#sidebarOptions input {\n border: 1px solid #04b;\n}\n\n#sidebarOptions .sliderPanel {\n background: #8cf;\n}\n\n#sidebarOptions .sliderPanel a {\n border: none;\n color: #04b;\n}\n\n#sidebarOptions .sliderPanel a:hover {\n color: #fff;\n background: #04b;\n}\n\n#sidebarOptions .sliderPanel a:active {\n color: #04b;\n background: #fff;\n}\n/*}}}*/\n/***\n!Message Area /%=================================================%/\n***/\n/*{{{*/\n#messageArea {\n border: 1px solid #841;\n background: #db4;\n color: #014;\n}\n\n#messageArea .button {\n padding: 0.2em 0.2em 0.2em 0.2em;\n color: #014;\n background: #fff;\n}\n\n/*}}}*/\n/***\n!Popup /%=================================================%/\n***/\n/*{{{*/\n.popup {\n background: #18f;\n border: 1px solid #04b;\n}\n\n.popup hr {\n color: #014;\n background: #014;\n border-bottom: 1px;\n}\n\n.popup li.disabled {\n color: #04b;\n}\n\n.popup li a, .popup li a:visited {\n color: #eee;\n border: none;\n}\n\n.popup li a:hover {\n background: #014;\n color: #fff;\n border: none;\n}\n/*}}}*/\n/***\n!Tiddler Display /%=================================================%/\n***/\n/*{{{*/\n.tiddler .defaultCommand {\n font-weight: bold;\n}\n\n.shadow .title {\n color: #866;\n}\n\n.title { background-color: #89a; \n color: #fff;\n}\n\n.subtitle {\n color: #866;\n}\n\n.toolbar {\n color: #04b;\n}\n\n.tagging, .tagged {\n border: 1px solid #eee;\n background-color: #eee;\n}\n\n.selected {background-color: #fff; }\n\n.selected .tagging, .selected .tagged {\n background-color: #ddd;\n border: 1px solid #bbb;\n}\n\n.tagging .listTitle, .tagged .listTitle {\n color: #014;\n}\n\n.tagging .button, .tagged .button {\n border: none;\n}\n\n.footer {\n color: #ddd;\n}\n\n.selected .footer {\n color: #888;\n}\n\n.sparkline {\n background: #8cf;\n border: 0;\n}\n\n.sparktick {\n background: #014;\n}\n\n.errorButton {\n color: #ff0;\n background: #f00;\n}\n\n.cascade {\n background: #eef;\n color: #aac;\n border: 1px solid #aac;\n}\n\n.imageLink, #displayArea .imageLink {\n background: transparent;\n}\n\n/*}}}*/\n/***\n''The viewer is where the tiddler content is displayed'' /%------------------------------------------------%/\n***/\n/*{{{*/\n\n.viewer .listTitle {list-style-type: none; margin-left: -2em;}\n\n.viewer .button {\n border: 1px solid #db4;\n}\n\n.viewer blockquote {\n border-left: 3px solid #666;\n}\n\n.viewer table {\n border: 2px solid #333;\n}\n\n.viewer th, thead td {\n background: #996;\n border: 1px solid #666;\n color: #fff;\n}\n\n.viewer td, .viewer tr {\n border: 1px solid #666;\n}\n\n.viewer pre {\n border: 1px solid #fe8;\n background: #ffc;\n}\n\n.viewer code {\n color: #703;\n}\n\n.viewer hr {\n border: 0;\n border-top: dashed 1px #666;\n color: #666;\n}\n\n.highlight, .marked {\n background: #fe8;\n}\n/*}}}*/\n/***\n''The editor replaces the viewer in the tiddler'' /%------------------------------------------------%/\n***/\n/*{{{*/\n.editor input {\n border: 1px solid #04b;\n}\n\n.editor textarea {\n border: 1px solid #04b;\n width: 100%;\n}\n\n.editorFooter {\n color: #aaa;\n}\n\n/*}}}*/#ZiddlyFormats,#ZiddlyPowered,#ZiddlyFormats a,#ZiddlyPowered a{color:#fff}
Students who submitted commentaries on 2/21 may have an ''@@extension@@ on revisions'' for another week, since I was away at a funeral this past weekend, and have not yet provided all of you with feedback in time for tomorrow, 3/2. Apologies for the delay!\n\nThe regular pattern should be that sometime over the weekend, both Behdad (for Thursdays) and I (for Tuesdays) will post comments on the work of the past week. It might be wise to browse through not only your own feedback, but others' as well, so that you have a sense of the range of ideas in the class, and of what kinds of nudges to consider when you revise.
<<forEachTiddler \n where \n 'tiddler.tags.containsAny(["announcements"])'\n sortBy\n 'tiddler.modified'\n descending\n write\n '"[["+tiddler.title+"]] ++++>\sn\sn<<tiddler [["+tiddler.title+"]]$))\sn===\sn----\sn"'\n>>
<<forEachTiddler \n where \n 'tiddler.tags.containsAny(["syllabus"])'\n sortBy\n 'tiddler.title'\nascending\n write\n '"+++["+tiddler.title+"]\sn\sn<<tiddler [["+tiddler.title+"]]$))\sn===\sn----\sn"'\n>>
[[David Hume|http://www.iep.utm.edu/h/humelife.htm]] (1711-1776) was a Scottish philosopher, historian, and public intellectual whose influence in British thought is broad and deep. He combined a skeptical analytical approach to experience with a utilitarian and humanist concern to improve human thought. His skeptical views on personal identity and free will inspired and provoked subsequent generations, including Kant's, to seek new grounds for such concepts.
<<tiddler [[semester calendar]]>>
function onClickDefaultHome(e) {\nstory.closeAllTiddlers();\nconfig.options.txtDefaultTiddlers = "";\nsaveOptionCookie('txtDefaultTiddlers');\nvar start = store.getTiddlerText("DefaultTiddlers");\nif(start)\nstory.displayTiddlers(null,start.readBracketedList());\n}\nconfig.macros["defaultHome"] = {label: "Home", prompt: "Show the\ndefault tiddlers", title: "Home"};\nconfig.macros.defaultHome.handler = function(place) {\ncreateTiddlyButton(place,this.label,this.prompt,onClickDefaultHome);\n}
Assistant Professor of Philosophy, [[Wesleyan University|http://www.wesleyan.edu]]\n(See also my [[main homepage|http://espringer.web.wesleyan.edu/]], or email <<email espringer at wesleyan dot edu>>)
|!Example|!How|\n|''Bold Text''|"""''put your text between two single-quote marks on either side''"""|\n|==strikethrough text==|"""==put your phrase between two pairs of equal-signs=="""|\n|__underlined text__|"""__include double underline-marks on either end__"""|\n|//italic text//|"""//type between pairs of forward-slashes//"""|\n|^^superscript text^^|"""^^Two caret-marks appear at each end^^"""|\n|~~subscript text~~|"""~~Use two wavy tildes on either end~~"""|\n|@@color(green):colored text@@|"""@@color(yourcolorhere):type here@@"""|\n|@@highlighted text@@|"""@@highlighted text@@"""|\n|@@bgcolor(red):colored background@@|"""@@bgcolor(red):type here@@"""|\n|{{{Monospaced}}}|"""{{{put your text between triple-brackets}}}"""|\n|[[point to another item|links]] |"""[[title of item]]""" or """[[paraphrase link|title of item]]"""|\n|put text in a box, like this box|"""|put a vertical bar exactly at beginning and end of line, no extra line breaks|"""|
Reading philosophy is quite different from other kinds of reading... Students who are new to philosophy may be surprised that the readings are relatively "short". However, the process of reading requires especially detailed attention to the author's method of reaching conclusions. \n\nBe sure to familiarize yourself with the basic tools for [[analyzing reasoning|http://parmenides.objectis.net/reason/]]. An excellent strategy for understanding many philosophical texts is to outline its ''argument''. Then, if you find yourself ''disagreeing'' with a text, you should be sure to trace that disagreement back either to something implausible in the author's initial premises, or to a suspicous pattern of inference. If you are inclined to ''agree'' with an author, you'll want to consider where a more skeptical reader would find weak points, and consider how you or the author might address them.\n\nAn optimal reading [[commentary|submitting commentaries]] will quickly frame the theme that most interests you and raise an apparent problem about it. Then it will go on to anticipate at least one possible way that the author, or some other sympathetic reader, might address your concern.
We have discussed writing skills quite a bit during the semester. Still, for a longer essay, you may want to consult the [[philosophy guidelines at the writing center|http://www.wesleyan.edu/writing/workshop/departments/philosophy.html]], and the following list of common errors compiled by [[Elise Springer|espringer]].\n\n//The following points are part of a key to a list of about 200 errors that I find merit "boilerplate" explanations. Please be sure to check with a writing tutor, or with me, if any of these are not clear to you.//\n\n|!Common problems that directly affect philosophical or scholarly value:|\n|@ -- Your reader wants to see some indication of a ''citation'' close by. Where can this be found?|\n|BI -- ''Bibliography'' is incomplete/incorrect (lacking sources, lacking complete information, or badly formatted). See [[MLA's online guide|http://www.lib.usm.edu/research/guides/mla.html]].|\n|BN -- "Backup" is needed: you have a claim that shouldn't appear without some ''defense or argument''.|\n|CH -- ''Charity'': your criticism may be plausible, but you should put effort into seeing whether better sense can be made of the text.|\n|CX -- ''Connection''? It's not clear why you present these ideas as logically related. If you believe they are, please spell out why.|\n|FE -- Don't use "I ''feel''" (or "he feels") talk unless you have some reason to talk about gut reactions or emotions here.|\n|IQ -- ''Include quotation'' or clearly referenced paraphrase. Your critical response will achieve better focus by examining specific passages.|\n|LS -- What a ''long sentence''! Your reader might be better served by breaking this up into shorter focused claims.|\n|OS -- ''Oversimplification'': While there may be a problem, you seem to offer too hasty a summary of the position you're criticizing.|\n|PB -- ''Paragraph break'' is needed: focus each paragraph on a topic sentence and give the reader a breather between topics.|\n|PL -- Here you settle for leading the reader through the "''plot''" of the text. Where are we going, and why?|\n|QL -- If a ''quoted'' passage is ''long'', it needs its own separate double-indented, single-spaced paragraph.|\n|TT -- There's a ''thesis topic'' here, but not a thesis problem or a thesis claim. YOUR contribution to our thinking about this topis is...?|\n\n|!Surface problems that mar the quality of your work and distract the reader|\n|BY -- Correct use of ''"by"'' at the beginning of a sentence/clause is tricky. See a reference work on participle clauses.|\n|DA -- ''Dangler'': The subordinate clause or modifier should "belong to" the subject of the sentence. [[Learn how to fix|http://owl.english.purdue.edu/handouts/grammar/g_dangmod.html]].|\n|DF -- A ''differs from'' B, so A is different from B; "different than" is common but [[generally clumsy|http://www.straightdope.com/columns/010316.html/]].|\n|GM -- The "''generic male''" is dying... some older authors did mean "human" by "man" (etc.), but now the male connotation is undeniable. Sometimes [[restructuring a sentence is required|http://www.cjr.org/tools/lc/heshe.asp]].|\n|H -- ''Homophones'' (similar-sounding words) have been confused here. [[Learn the difference|http://www.wsu.edu/~brians/errors/errors.html/]]! Spell-checkers can't help.|\n|JB -- "''Just because'' ... does not mean..." is OK in informal speech, but ungrammatical in form.|\n|PV -- The ''passive voice'' gets in the way here: why not say directly WHO does/claims this (avoiding "by")?|\n|Q -- Your words indicate a ''question'' is being asked, and yet you treat the sentence like an assertion.|\n|RG -- ''Argue'' [this point]: "Argues"� is best used without a direct object. One argues for or against claims, but "argue a point"� is unclear.|\n|SD -- ''Spell-check disaster'': the only explanation for this irrelevant word is that you chose a [[spell-checker's brainless suggestion|http://www.wsu.edu/~brians/errors/spellcheck.html/]]. Oops!|\n|TH -- "''They''" is often abused as a neutral singular pronoun in informal speech, but in formal writing it should refer only to plurals.|\n|WP -- The ''wrong pronoun'' is used.|\n|YO -- If possible, avoid using "''you''" to mean "anyone". (Especially avoid going back and forth between "you" and "one" or "they"�, etc.)|
This semester, we have two longer essays, due ''March 9'' and ''April 28''.\n!\nEach student may devote either major essay to a "live problem" of her or his own ''choice'', provided only that the problem be approachable with philosophical methods (to be discussed), and manageable within the scope of ''1200-1500'' words. Though the length is relatively short for a term paper, the density and clarity of your writing should be like the density and clarity of the 120-word commentaries. Thus, it will take much revision to make the long essay reflect as much depth and weighing of considerations as possible. \n!\nYou may explore in greater depth an issue raised by one of your commentaries, or you may choose a new theme. However, your theme should not involve speculative rambling, or lots of summarizing of text. Like a good commentary, your essay should focus right in one one "live problem" which requires dialogue with a text.\n!\n@@Preview abstracts are due in advance (see dates at [[semester calendar]])@@\nPlease use the <<tag abstract2>> in the tags area at bottom of item.\n!\nFor each preview abstract, what you'll need is \n# A concise ''two-paragraph statement'' of the problem you're considering, with one paragraph devoted to each of at least two importantly different approaches that create a tension or need for further reflection. (Your writing should be clean and articulate, but the abstract is not itself an essay.) \n# A specification of ''texts'' you plan to discuss. This is not a standard research paper, and you do not need to discuss sources outside of class (though you may, as long as you also centrally discuss at least one text from our syllabus). If you don't know how to format a bibliography, check out the standard //Little, Brown// reference book, or [[MLA's online guide|http://www.lib.usm.edu/research/guides/mla.html]].
Philosophy 218, ''Personal Identity and Choice'', is a First Year Initiative course, limited to 20 first-year students. The seminar introduces the metaphysical questions associated with identity and with choice, drawing parallels and connections between issues in both domains. We start by exploring classic extreme positions: Plato and the Stoics on the soul and its faculty of choice, Buddha's view of no-self, Mettrie's determinism and Chisholm's argument for the freedom of agents. We then navigate between the extremes by examining the importance of narrative, social identity, complexity of the self, and changes over time. \n!\nWe will explore philosophical reflections on the problem of personal identity, and its relationship to matters of choice and freedom. How do certain experiences and thoughts and physical materials compose one self? Am I the same person over time even through complete transformations of experience, thought and material? Can I choose which elements of my existence to count as essential? Some argue the concept of a unified and enduring self partakes of illusion; at the other extreme some argue for the permanent integrity of individual souls. \n!\nRegarding choice and freedom, we find a related debate, ranging from those who deny free will altogether to those who define humanity's essence in terms of choice and agency. Might we coherently say that some human selves can have more integrity, and others less? What gives a measure of meaningful coherence to a person's life? Similarly, can we distinguish some choices as more free than others? What makes for meaningful choice?\n!\nBesides serving as an introduction to philosophical reasoning, the course will draw interdisciplinary connections on themes such as social identities, religious experience, political freedom, and legal responsibility.
As usual, students who have pre-registered must be present at the first class in order to maintain enrollment, as any openings will be filled by the first of those in line to add. Students ''hoping to add'' the course should send me an email with any details that might help demonstrate that your enrollment would benefit both you and the class. \n\nIn addition to [[textbooks]] for the class, there will be supplementary readings available in a ''course packet'' (see [[Announcements]]).
Besides the bookstore's texts for this course, packets with additional readings are available (starting Jan. 19th) at ''PIP printers in Middletown'' (Phone 344-9001. [[Directions here|http://www.google.com/maps?hl=en&lr=&q=pip+printers&near=Middletown,+CT&radius=0.0&cid=41562222,-72651111,804986807049466424&li=lmd&z=14&t=m]].).\nPre-enrolled students are encouraged to reserve a course packet and pick it up in advance of the first day of class, if possible.\n# Go to [[www.pip.com|http://www.pip.com]]\n# click on ''customer login'' on lower right.\n# Key Customer login is ''{{{Wes}}}'' and password is also ''{{{Wes}}}''\n# Click on login Button\n# Select easy DOCS Online ordering Button on right side\n# Shop for your Course Packets and check out your shopping cart like any other online shopping.\nNOTE: Online orders require a CREDIT CARD, and the charge will be about $26.68 (including tax). If you have no access to a credit card, please email me so that we can work out alternate arrangements.
Our seminar TA, [[Behdad|bbozorgnia]] will hold [[office hours|Behdad's office hours]] each week, schedule a review session prior to the exam, and provide feedback on drafts of written work (both [[commentaries|submitting commentaries]] and [[long essays|long essay]]). Email <<email bbozorgnia at wesleyan dot edu>>.
Commentaries are due ''by midnight'' before the relevant class session.\nStudents will need to ''log in'' using the data shared in class. \nThen, a button to add a ''new item'' will appear in the upper-right menu. (You can also use this: <<newTiddler>>)\nThen, please type in the following:\n* a title (make it concise and informative, and avoid quotes, ampersands, and other odd characters)\n* your excerpted passage(s), with the location of each passage in parentheses right after it (inclusion of passage is optional)\n* your commentary, [[limited to 120 words|Word Count]] (It's probably best to compose it somewhere else, and then copy, paste, and format here.)\n* tags: in the space below, please indicate the date of the class for which you're commenting.\n!\nFor a clean look, put the passage and its location all in one paragraph between | marks, to get the passage in a "box" above your paragraph. Here's an illustration of editing in progress:\n[img[illustration|http://espringer.web.wesleyan.edu/contribution.gif]]\n!\nBe sure to click the "done" button at upper right afterwards, so that your commentary is entered into the system. You should then see it under the "Recent" tab at right. \n!\nIf you're curious about how someone achieved some effect or other, try going into "edit" mode (double-click or use ''edit'' button). Also see [[formatting tips]].
|In cases such as this [of John Demjanjuk] the passage of time and radical changes of character and personality seem to invite the notion that one self or person has succeeded another in the same body. (Radden, "Shame and Blame", p. 61)|\n|If one wrongly beievess oneself to have been the perpetrator of a past act, then one's feelings of guilt is misplaced, at least, if not irrational. (Radden, "Shame and Blame", p. 63)|\nRadden's idea of a "succession of selves" brings her to question whether a person should always be held accountable for the action of a radically different earlier self, though she believes feelings like guilt generally require a belief in continuous identity. Now since Radden admits that such feelings can also be inappropriate, they cannot be the basis for identity differentiation. She finds the reductionist view convincing: as soon as time passes, one has a different "empirical construct" of self and therefore is not exactly the same individual. Reductionism implies one is responsible for actions only while they are occurring. Radden attempts to modify this by instituting "survival thresholds," yet these provide only an arbitrary basis for drawing lines between identities.
Socrates, thinking first of justice, chose death over betrayal of the Athenian laws. In so doing he preserved for himself that principle, perhaps called innocence, which is "improved by justice and injured by injustice". I propose a complementary view: The trial and sentence of Socrates is no doubt a great injustice. This weakens the spirit of the laws, which is also "improved by justice and deteriorated by injustice". Socrates loved the law and would have prevented this, yet at his trial words failed to prove his innocence. Choosing death over exile or escape was the strongest statement of innocence left to him, with the hope that the Athenians would then come to see their folly.
!!!Titles: \nFor each of your commentaries, choose an ''informative short phrase'' likely to be unique to your own contribution. Note a title @@''cannot use quotation marks''@@ (these confuse the database engine and result in a cut-off title).\n\n!!!Tags: \nThe ''purpose of tags'' is to organize a vast quantity of submissions: To see available commentaries for any student, or all work for any class date so far — and to confirm that your work is properly tagged — click on any student's initials (under ''Student Groups'' at left) or by class date (under ''List By Date'' at left). \n|{{{onlyAdmin}}}|''Special tag for confidential comments''|Any student who ''wants'' a commentary ''not to be visible'' to others (other than the professor) should add the tag ''{{{onlyAdmin}}}'' (note odd capitalization, and no space) along with ''{{{xx/xx}}}'' date. However, I'd recommend leaving the tag out at first, long enough to make sure that your commentary is saved and appears properly in the index at right. //Once you add the adminOnly tag, not only other students but you yourself might not be able to view or edit your work any further.//|\n|{{{private}}}|''Show only to those logged in''|Tag your contribution with {{{private}}} and it will be invisible to those not logged in with individual passwords.|\n|{{{protected}}}|''Keep others from modifying''|Tag with {{{protected}}} to make sure that others can't modify your contribution. (Note, [[previous versions|revisions]] can always be recovered, so this shouldn't be a major concern.|\n!@@''Precision matters''@@: Each student submission should be tagged with initials and with date. Note that the ''//unintelligent//'' web site code cannot tolerate any typos, differences of capitalization, spaces inserted, etc., within your tags. To see what tags can be used, please open the lists at left. The date should be the //class// date, not some prior day when you submit your work. Use a space between tags, and ''do not'' merge two tags into one with double-brackets.
[[Download copy of official calendar here|http://espringer.web.wesleyan.edu/phil218sp06calendar.pdf]]\n(This is the same one that's on the syllabus, but here just for reference.)
|And will life be worth having, if that higher part of man be destroyed, which is improved by justice and depraved by injustice? (Socrates, "Crito", p. 47)|\n|Whether we shall do rightly either in escaping or in suffering others to aid in our escape and paying them in money and thanks, or whether in reality we shall not do rightly; and if the latter, then death or any other calamity which may ensue on my remaining here must not be allowed to enter into the calculation. (Socrates, "Crito", p. 48)|\nSocrates can be read to say that the state of the soul is to be valued above all else, his life and family included. In this sense, this single-minded consideration for his own soul can be taken as a sign of selfishness, as he is looking out for himself without consideration for others. Yet is his sense of justice incompatible with any other, possibly even greater, good? At the end of "Crito", Socrates sets out his argument why his decision is justice with respect to his soul, the laws, and his children. Indeed, perhaps to Socrates' view doing justice by his own soul subsumes justice toward everything else.
|"'Now you depart in innocence, a sufferer and not a doer of evil; a victim, not of the laws, but of men...' Socrates: Leave me then, Crito, to fulfil the will of God..." (Plato, "Crito," p.54)|\nSocrates accepts his death as the "will of God,"? making the distinction that the men who enforce the laws are perverse, not the laws themselves. However, I see a fundamental flaw in his logic ... if God was the driving force behind his decidedly just actions, than why should this God also condemn him to death? It seems that the laws, as formidable as Socrates believes, should in fact provide him with the vindication that he is due. Although he is compelled by a higher law at the hands of God, Socrates chooses to obey what he believes to be unjust at the hands of mere men. Perhaps to Socrates the ideal of Law is more important than absolute Justice.
|Well then, since you were brought into the world and nurtured and educated by us [the government], can you deny in the first place that you are our child and slave, as your fathers were before you? (Plato, "Crito", p. 50)|\nPlato portrays the government and the laws as a high God and master and the citizens as slaves to this power. Throughout the piece, Crito submits to Socrates' voice of the law and as a result of examining these laws, Crito agrees to let Socrates die. Socrates my respond to this by saying that the objective of taking on the voice of the law was to convince Crito that he shouldn't escape, and that in fact he feels some reluctance to identify with the words of the law (and therefore speaks the law instead of explaining the law through his own voice). However, Socrates feels bound to the laws enough that he doesn't escape to save his life.
|Socrates: But why, my dear Crito, should we care about the opinion of the many? Good men, and they are the only persons who are worth considering, will think of these things truly as they occurred.|\nCrito and Socrates bring up the notion of power vs. truth. To Crito, power is more important because it can determine what is taken as truth, while Socrates believes that the truth is an undeniable essence that no power can hide from the intellectual. Socrates convinces Crito he should not try to escape from jail. Crito should not have been so easily persuaded by Socrates argument. Socrates only proved that he should not try to escape but that did not include Crito taking Socrates against his will. Moreover, Socrates would be saved and would be morally obligated to stay with Crito because going back would mean turning Crito in and you would not wrong the person that saved your life.
|And will life be worth having, if that higher part of man be destroyed, which is improvised by justice and depraved by injustice? Do we suppose that principle, whatever it may be in man has to do with justice and injustice, to be inferior to the body? (Plato, "Crito", p. 47-48)|\nSocrates treasures spiritual salvation over physical salvation, and believes that wrong decisions can only be amended by right decisions. Thus, another wrong decision to save his life is not worth the loss of his soul. However, Socrates fails to define what a "right" decision is. While he values justice over more personal matters, such as family and public image, it is questionable to state that blindly obeying the government's laws should take precedence over one more "wrong" that could be a catalyst for many more "rights."� Going against the primal agreement he made with Athens would break the promise he made not only to himself, but to other citizens. This betrayal is too much for Socrates' soul to live with.
In Crito, Socrates poses an apparent contradiction between doing that which is self-sacrificial and that which simultaneously serves his own self-interest. In choosing to follow the State's laws and fulfill his death sentence, he sets the pedagogical example of selflessly following a path of moral integrity rather than one of personal interest. However, this martyrdom cannot be dismissed as being purely altruistic. Socrates' desire to do what is right stems from a place of self-interest: the wish to act and be perceived as a morally upstanding person, although laudable, is ultimately a selfish desire. Due to his consideration of himself and public's reaction, his motive, although beneficently allowing the political machine operate smoothly, is inherently selfish.
|Are we to say that we are never intentionally to do wrong, or that in one way we ought and in another way we ought not to do wrong, or is doing wrong always evil and dishonorable, as I was just now saying, and as has been already acknowledged by us? (Plato, "Crito")|\n|...what is the application? In leaving the prison against the will of the Athenians, do I wrong any? Or rather do I not wrong those whom I ought least to wrong? Do I not desert the principles which were acknowledged by us to be just -- what do you say?? (Plato, "Crito")|\n"Crito" illustrates an interesting discussion regarding the alignment of one's rational standards with one's moral priorities. Disparities exist not because some act irrationally, but because of fundamental differences in individuals' understandings of what is right. Both Crito and Socrates can accept the logic behind Socrates' eventual decision; nonetheless their values are not aligned. According to Crito's moral priorities, the injustice of Socrates' wrongful incarceration would outweigh the immorality of his potential escape from prison, however Socrates reminds Crito of the contractual agreement he entered with the city upon accepting their authority. Both characters have rational objectives, yet discrepancies appear because intentions are dictated by morals. The essential conflict is not whether or not to do wrong, but what qualifies as wrong.
Hello everyone, my name is Michael. I am from D.C, but my family is from North and South Carolina. I live in Fauver now. In my spare time I love to write fiction stories. I am in the process of writing a book but it is a very slow process cause I haven't worked on it in a long time. I also do Prometheus which is alot of fun.
What makes a person who she or he (or ze) is?\nThis question might be asked with a ''diachronic emphasis'', so that we're concerned about what makes the person the same person over time, or with a ''synchronic emphasis'', so that we're asking what qualities make me one unified being (if I am one!), and what makes me distinct from others...
''Crito, Jan 31:''\n<<tiddler DateForm with: 1/31>>
----I agree that Socrates appears to be somewhat selfish with his placement of value on justice above everything else. However, were Socrates to go on living in a life beyond the trial devoid of justice, it would not be a life that he felt was worth living. Socrates living what he felt was an injust life would be not only a disservice to himself, but to the people in his life and family as well.
|"Things in our control are opinion, pursuit, desire, aversion, and, in a word, whatever are our own actions."|\n|"You must be one man, either good or bad. You must cultivate either your own ruling faculty or externals, and apply yourself to things within you or without you; that is, be either a philosopher, or one of the vulgar."|\n\nEpictetus seems to be telling us that we must commit to one side and from then on, we are to control our desires and suppress our true feelings in order to be what Epictetus says is either a good or bad man. This however, is contradictory. The feelings and desires that we all possess are beyond our control and are not things to be feared, but rather embraced because they are pieces of our identities and make each of us unique individuals. It is impossible to be "one man," and commit to the characters of good or bad human beings. Whether or not we choose to provoke one side over the other, there is both good and evil in all of us.
I agree with your point that it may seem as though Socrates contradicts himself in his final choice to die. However, there is also another way of looking at it. Perhaps Socrates believed that as long as one thinks that one's decision is correct and unwavering with respect to the law, then that person is acting justly. Those who condemned Socrates believed that they were right in doing so, and followed the orders of the law to imprison Socrates. They would have been wrong in imprisoning him, if they believed he was innocent. The same goes for Socrates. Although it seems lame, Socrates believes that despite his probable innocence, he ought to follow the decision of the higher law, and by doing so he is acting as a just man himself.
----\nYou said that "wrong decisions can only be amended by right decisions." I am unclear as to whether or not Socrates said this, or if this is a personal belief you hold. If we are to assume this is true, however, would it be logical to say that by saving his own life, Socrates would opening the door for himself to make many more beneficial and "right" decisions in the rest of his lifetime? Would one decision to almost blindly obey the government be more "right" than the rest of a lifetime of right decisions?\nLisa
|�But if you would both have these great things, along with power and riches, then you will not gain even the latter, because you aim at the former too: but you will absolutely fail of the former, by which along happiness and freedom are achieved. (Epictetus, "The Enchiridion", 1)|\n|What place, then, say you, will I hold in the state? Whatever you can hold with the preservation of your fidelity and honor. But if, by desiring to be useful to that, you lose these, of what use can you be to your country when you are become faithless and void of shame. (Epictetus, "The Enchiridion", 24)|\nIf power and riches go hand in hand, as Epictetus implies in the first section of the Enchiridion, and pursuing either will lead one to "absolutely fail" to achieve happiness and freedom then what of those who rule the empire, that which Epictetus feels such duty to and respect for? Why would Epictetus ever wish his disciples to participate in a system of government that has a decidedly non-stoic history? Perhaps, if he was optimistic enough, Epictetus could claim that true stoics in the highest registers of power would be perfect for those positions, which to a degree necessitate a robotic sense of morals and judgment.
Find an item on which there have not yet been comments, and use the "add your comment here" button to compose a brief reaction. Peer comments should acknowledge some worthy aspect of the work, and make at least one suggestion about how a revision might further develop, clarify, or otherwise improve the piece.\n** Make a peer comment in response to the class that you did *not* give an original commentary on.\n** Choose one (or more) that does *not* yet have a comment, if there are still any, and use the "New Comment Here..." button below it.\n** Make at least one peer comment by the next class (which is the same time as you're submitting your next original commentary).\n//Please note: The ''default titles'' and tags on comments @@should ''not be modified''@@; otherwise they will get disconnected from the thread of discussion.//
|"Remove aversion...transfer it to things contrary to the nature of what is in our control...suppress desire...use only appropriate actions of pursuit and avoidance." (2)|\n|"If you kiss your child, or your wife, say that you only kiss things which are human, and thus you will not be disturbed if either of them dies." (3)|\n|On seeing a man in distress: "As far as words go, however, don't reduce yourself to his level, and certainly do not moan with him. Do not moan inwardly either." (16)|\nWhile Epictetus' above statements are logical, they all stem from the premise that human beings have control over their desires, aversions and emotions. We believe we are naturally drawn and averse to certain things. His essay could have been more comprehensive if he had acknowledged how unnatural this process may seem. Describing techniques on how to prevent one's self from moaning inwardly or falling in love with certain people or things might have prevented some readers from automatically discounting the stoicism he promotes. \n
---\nI think you have a valid point here, however, you must not discount the fact that Socrates acted at least partly in his own self interest. He chose to remain true to his beliefs and thus preserve his own integrity, not necessarily for the sake of the state, but out of his own respect for himself and for the state.
Epictetus provides logical and sensible advice in his "Enchiridion", that is largely inspired and influenced by the life and teachings of Socrates. It deals primarily with leading a meaningful and happy life, something which all strive for. He echoes many teachings from other philosophies, such as Buddhism. One such example is his suggestion to limit attachment to impermanent things. \n|"If, for example you are fond of a specific ceramic cup, remind yourself that it is only ceramic cups in general of which you are fond. Then, if it breaks, you will not be disturbed."(3)|\nWhile this is good advice that one could put into practice, some of his other points are not so good. There is a fine line between contentedness and complacency, which Epictetus sometimes crosses. In article # 11, he talkes about ownership, or lack there of, saying to not get upset if things are taken from you, even loved ones. This, I do not agree with, since it in a way encourages someone to devalue themselves to accept everything that happens to them, instead of trying to better their situation.
|"Don't demand that things happen as you wish, but wish that they happen as they do happen, and you will go on well (8)."|\n|"If you kiss your child, or your wife, say that you only kiss things which are human, and thus you will not be disturbed if either of them dies (3)."|\n\nEpictetus envisions a life not of extremes, but instead a world of moderation. Maintaining equilibrium, however, does not end suffering; it only creates a different kind. Instead of trading pain for numbness, we can find harmony between by balancing intense sadness and complete contentment. He advocates viewing everything we love as fleeting (3) in order to ease the pain of loss. Impermanent love loses its strength, though, because we consider true love eternal and eternity is not fleeting. Since pleasure is not achieved without pain, much of the Enchiridion seems unreasonable and pedantic. Epictetus might respond that his philosophy is simply a guide to those attempting to transcend common human dilemmas. His demands are too formidable, however, to assist any imperfect being.
I like that you point out the autocratic feel of the image of government that Socrates provides, but I think that in admitting that "the word of one master is more valid than the opinion of all people put together," he is referring not to the word of whoever might be in governmental power, but rather to the opinion of someone, potentially such as Plato's imagined philosopher king, who has obtained a deep understanding of true justice.\n\n-Russell
Epictetus insists that although it is not possible to control the outcome of external events, individuals choose the posture from which they encounter those events. His denunciation of material desire rests on this idea that, through self-control, one can master the inner attachments that hinder freedom. But if one is to abandon commitment to dreams of success and the desire to hold onto those one loves, does one compromise something essential to identity? Epictetus would likely maintain that it is possible to love without becoming dependant upon loved ones, and pursue a willful trajectory without making happiness contingent upon success. Nonetheless, I wonder if a life of hermetic indifference is avoidable if one follows his credo seriously.
I agree that Socrates' acceptance of his death sentence proves that he answers first and foremost to the "will of God"; however, if he thinks of the laws themselves as a higher power, shouldn't they grant him vindication where it is deserved? The laws are responsible for his unjustified death, yet he still considers them the ultimate authority. Do you think Socrates is contradicting himself there? \nJennie
|"Things in our control are opinion, pursuit, desire, and, in a word, whatever are our own actions (1)."|\nEpictetus' "The Enchiridion" conveys the belief that a person should limit her focus to the things over which she has control.One of these listed elements is desire.Since one can not simply will a desire to disappear or morph and have it instantaneously follow the orders, it may seem as if desires are not under human control and that they happen to a person void of her guidance. How can one alter such an entity? According to Epictetus, it is the dwelling on and following through of these desires which we can master, and by manipulating our wants in this way we exert authority over them and ourselves.
|With regard to whatever objects give you delight, are useful, or are deeply loved, remember to tell yourself of what general nature they are... If you kiss your child, or your wife, say that you only kiss things which are human, and thus you will not be disturbed if either of them dies. (Epictetus, "The Enchridion", 3).|\n|While he gives [your wife] to you to posess, take care of it; but don't view it as your own, just as travelers view a hotel. (Epictetus, "The Enchridion", 11).|\nEpictetus talks of things that are valued most in life as if they were nothing more than a transitory experience that affects each person from time to time. A ceramic mug is compared to a loving family, and I believe the comparison itself is enough to question the ideals of stoicism. However temporary many aspects of life are, they still impact us in a way that is irreversible, even if the relationship or the person were to die. This impact others have on our lives is an integral part of who we are. Creating a life through emotions and experiences with others is what proves we exist and substantiates our existence with meaning.
|" . . . the former, by which alone happiness and freedom are achieved."(1) "If it concerns anything not in our control, be prepared to say that it is nothing to you."(1) "With regard to whatever objects give you delight, are useful, or are deeply loved, remember to tell yourself of what general nature they are."(3)|\n\nEpictetus' ultimate concerns are happiness and freedom, which he sees access to through use of the human intellect. Happiness is based on prosperity. Freedom is based on lack of restraint within one's worldview. His method of regarding anything beyond one's control as "meaning nothing" is a successful method of achieving happiness and freedom, for it shifts one's worldview (and therefore all notions of possible prosperity and restraint) to things under one's control. Perhaps in dealing with things beyond our control we should adopt an air of tranquil acceptance, but his assertion that those things should also lose meaning or should only be regarded in light of their "general nature" is too trivializing of the inherent specificity of human emotional attachment, though not necessarily trivializing of the value of those objects to the person who has lost them. \n\n*this was revised earlier in the semester, but evidently not logged as such*
Although Socrates may seem a slave to the "many" in abiding by the laws of the state, one can also see how the state is an independent concept which has an air of authority for Socrates comparable to the gymnast's physician or trainer. Socrates has agreed to devote himself to this master (the state), and so perhaps he would see a disloyalty to the state as a disloyalty to himself and thus his comrades who care for him.\n-Jeffrey
Although it may hard or even impossible to change one's desires, it is possible to control the actions dictated by these desires. It is in this light that I think Epicetus believes that we have the power to either carry out or restrain our desires, for I agree with you when you say that the nonexistence of desire is impossible.
I like your point about pleasure not being acheived without pain. Yes, Epictets' philosophy is a guide to his readers, but following his own teaching of disattachment, he doesn't write the book in order to change the world. While he may hope that others will chose to read and learn from his teachings, following his own philosophy, he can't be upset about other people's responses to it. - Ellie
I agree with you that completely separating "internal emotions from logical actions" might not be realistically possible. However, just because something might be impossible does not affect the 'right'-ness or 'wrong'-ness of it. If, for example, we were able to prove that Epictetus' view is right, then it would be for us to strive to achieve this impossible, to aim for perfection even while accepting that that might forever be beyond our reach.
I think you make a good point here and although it is true that Epictetus wants to emphasize being conscious of the transitory nature of our attachments, I do not think he is saying that a ceramic mug and one's family have the same inherent value or worth. Perhaps Epictetus is merely attempting to get his readers not to kid themselves, that is, relationships and in fact all aspects of human life are essentially temporary. However does an awareness of impermanence necessarily mean that we can't experience emotions? Is Epictetus saying not to experience emotions or is he saying "experience emotions but with reasonable qualifiers?" Thus if the inevitable occurs you are not surprised and unreasonably hurt. Furthermore I was wondering if you could elaborate on what you view to be the connection between the value or "worth" of life and experiencing love and emotions.
You make some good points, however, I have a few rather annoying questions for you. Are desires really unchangeable? Certainly the task of influencing and eventually changing one's desires may be difficult, but does this make it impossible? Furthermore how does the possible difficulty of what Epictetus proposes take away from his argument? Is Epictetus affirming that one should be completely be passive and simply desire what one already has or is he proposing that we should have desires and ambitions to change the world, but simply be aware of the potential disappointment of those desires, as to not be distraught if our desires are unmet and our ambitions fail?
More detail can be found at [[this site|http://parmenides.objectis.net/reason/]]\n* ''argument'': the presentation of assertions arranged to show how one or more ''premises'' support a ''conclusion''\n* ''conclusion'': the point, or destination, of an ''argument''\n* ''premise'': a starting point for an ''argument''
Although it may be true that emotions are not entirely under our control, does it not seem that we at least have some influence over our emotions? That is, although a person might feel grief at the death of a family member it is up to the particular individual whether to further develop and cultivate that emotion or to suppress it through repeated choices and acts of will (thinking, I include as an act of will). Perhaps we cannot fully control our emotions but Epictetus might argue that we can control our attitude towards those emotions or how we choose to respond to those emotions. On a more petty level the phrase "logically reasonable" is a bit repetitive.
You seem to be making several points here. Firstly, that Epictetus’ argument seems to entail a contradiction because he proposes controlling ourselves yet also proposes "being ourselves." I think, for Epictetus, "being ourselves" entails precisely exercising our faculty of choice and not being moved by emotions. Our identity is comprised of our free choices, not our emotions. This view is held even today, as may be seen when people are acquitted of responsibility due to "extreme emotional distress". With regards to you second point, that it's impossible to be one man because there are both good and evil parts of our identities, I'm not sure exactly what you mean. However since you have a very limited amount of words in which to develop your argument you may want to fully explore one point rather than briefly mention two. Although perhaps I am misunderstanding...
This commentary begins with a good succinct characterization of Epictetus' project, raises a difficulty that's undoubtedly worth exploring, and stays under the word limit -- all good! In the process of revising, I'd encourage you to reflect on two things: (1) If one gives up on "holding onto" loved ones, and insisting on "success", is that the same as ceasing to being "willful" and "devoted"? Your last sentence imlicitly construes these as the same. (2) From an empirical perspective, it may well turn out that ''"most"'' people would resist Epictetus' suggestions, yet this point does not have clear evaluative relevance. Do you mean to imply that Epictetus' recommended path would only be wise if it were popular?\n* Technical note: your tag needs to be 2/02 (see how it's formatted on the left sidebar, and in others' submissions); 2/2 is a completely different "word" from the computer's point of view.
Your observations here are perceptive regarding the moral weight of Socrates' position. In your case, I'd urge your work to lean less towards the summary end of the spectrum, and venture towards raising a critical concern -- some objection or difficult problem for Socrates' view -- and writing the commentary so that you have some space with which to address that concern. Perhaps what you write here is already an "answer" to a concern that someone might have raised. If so, then frame the commentary more explicitly as a way of replying to a reader who has a certain skeptical question or challenge.\n* Technical note: you're over the word limit by a few. Use the word count feature to check, and revise as necessary, before submitting.
We discussed this commentary over email, and I remarked that you were right to perceive it as leaning more than necessary in the "[[charitable summary|charitable interpretation]]" direction. It does a fine job at reflecting on the moral weight of Socrates' position, and the next question is what kinds of problems or challenges might be raised for the position that Socrates takes here? (I realize you submitted a different commentary later. Feel free to revise that one instead.)
You've raised a classic apparent difficulty here: Does Socrates ''claim that he doesn't'' care about the opinion of the many, and yet ''imply that he does'' care about what the many says, insofar as he undergoes the sentence chosen by the democratic Athenian jury? This is an excellent question to raise.\n!\nNext, I'd like you to try a certain philosophical exercise: call something an [[apparent contradiction]] until and unless you ''can'' articulate exactly which claim is both being affirmed and denied by the same person, and ''cannot'' find any clarification that shows how the two ideas are ''consistent''. \n!\nIn this case, I think you'll be able to recognize a way in which what Socrates rejects (the attention "to the praise and blame... of every man") is not identical to what he accepts (that he must follow the law, even as its procedures allow the many to decide verdicts and sentences). \n!\nYou may still raise further questions about Socrates' position, but getting clear on whether it's really a "''contradiction''" is a crucial step. \n*Technical note: you have some awkward grammar, such as "whom/who" confusions, and a preposition at the end of a sentence. In general, your writing might be tightened up a bit: "Socrates [not Plato] asks to whom we should be loyal, and why" would get across the idea of your third sentence very succinctly, for example.
The word ''contradiction'' is a red flag in philosophical discussion. Often what seems to be a contradiction is not, on closer inspection. So call something an ''apparent contradiction'' until and unless you ''can'' articulate exactly which claim is both being affirmed and denied by the same person, and ''cannot'' find any clarification that shows how the two ideas are ''consistent''. (See more at [[reasoning site|http://parmenides.objectis.net/reason/#contradiction]].)
You do very well to discuss an [[apparent contradiction]] and reflect on how to read Socrates more [[charitably|charitable interpretation]]. I think you might be even clearer about how it is not a real contradiction (that is, what is it about the masses' opinion that he doesn't care about, and what is it that he does care about?), but the basic project here has the right form. You mention in passing the idea of "act[ing] against ... an unjust ruling" as something Socrates values *less* than the preservation of law. Do you want to say anything about whether this (acting "against" unjust rulings) is in general valuable? Is there evidence that Socrates thinks that it is?\n*Technical notes: you have a stray apostrophe in the title and on the first mention of Socrates in the body, and there's also a phrase that doesn't work grammatically ("as one entity and interpretation of the law as another"). Also, despite a reference somewhere here to "initials", the tag should include your email name rather than initials, so that we can navigate to your [[introduction|introductions]] item. [[Titles|titles and tags]] should also avoid being too long (system can choke on them): ''Contradiction in Socrates' choice?'' would do...
Reading and listening so as to "make the most sense of" a text or speaker is the art of ''charitable interpretation''. Charitable interpretation requires us to summarize some of the ideas behind text and put it into more familiar words. \n!\nCritical response to a text or speaker, on the other hand, requires articulating challenges and imagining how a skeptical and intelligent reader might best raise objections or worries about the ideas being presented.\n! \nMuch of the challenge of philosophy is animating a balanced internal dialogue for yourself between charitable interpretation and critical challenges. To have the right amount of charitable interpretation is not to give up on originality and creative thinking, but rather to sharpen your critical thoughts against the best possible contrary thinking.
Certainly the second passage you choose is particularly provocative (although it may be confusing to think of "master" in the first passage as if it were related to slavery). \nAs I mentioned in class, one might wonder whether Socrates' way of "putting things in the mouth of" the laws indicates some reluctance to identify with those words, and might instead represent a rhetorically effective way of getting Crito to embrace obedience. Yet it's certainly not obvious. In your revision, I'd encourage you to move beyond ''summarizing'' this troubling position (that citizens are like slaves to the government). I suspect that you want to articulate a criticism of this view, and you should also reflect on any evidence that Socrates may *not* accept this authoritarian position in its worst form...
I agree with the statement that, "the essential argument is not whether or not to do wrong, but what qualifies as wrong" because both Socrates and Crito have no desire to harm anyone in planning the escape. Both men agree that those entities that exist most dearly to them deserve the most preferential treatment, but it just so happens that Socrates values the very institution that jailed him more than the people he is closest too as Crito assumes he would.
Your commentary shows skill in providing a historical context, and contrasting that context with today's climate of individualist attitudes. This is a good skill, though from a philosophical point of view, I'd encourage you to move towards considering and evaluating the ideas "on their own terms". The fact that most people today now reject an idea that made sense to the Greeks still does not give us a fully critical point of view. People today could be either more or less wise about this than the Greeks were, after all. So, how should we think about this shift? What should we make of Socrates' argument for the importance of the laws? You might present an objection to Socrates as it would come from a modern interlocutor, and then reconstruct how Socrates might reply, making sure not simply to summarize his different position, but to challenge it and engage with its claims.
|If it appears that we shall be acting unjustly, then we have no need at all to take into account whether we shall have to die if we stay here and keep quiet, or suffer in another way, rather than do wrong. (48d)|\n|And is life worth living for us with that part of us corrupted that unjust action harms and just action benefits? (48a)|\n|...The most important thing is not life, but the good life. (48b)|\nSocrates' thorough severity toward himself for purity's sake is encouraging, fostering a feeling of potential immortality and infinity through one's ideals. If one would stray at all from one's ideals, one would become incapable of the "good life", suffering a sort of spiritual death. However, conceiving of a house-of-cards sense of identity appears optimistically grandiose, but inaccurate. To say life isn't "worth living" due to a single act of injustice is a caricature of human experience. Identity rarely rests on the lynchpin of a single inconsistency. Plato's absolutism therefore sounds disingenuous or unattainable at least. Contrarily, perhaps we need living embodiments of ideals lest we lose ethical direction. Moreover, likely for Plato the soul wasn't an abstract realm of motivation, but as real and tangible as the body.
There may be a couple of issues intertwined here: (1) Socrates' pattern of reasoning is "singleminded" in that it assumes that certain considerations "trump" others (as shown in the second excerpt); (2) Socrates relies on a premise about potential effects on his own soul as the core of his justification for not defying the law (shown in first excerpt). These two issues are potentially distinct, right? One could think that justice or the greater good "trumps" any consequences for one's own soul, for example. \n!\nYour title indicates that the second concern -- the fact that his reasons are based on what state of his own soul is worth having -- is your main issue. The irony in the notion of "moral selfishness" is certainly worth extended philosophical reflection, and some philosophers today are working on such themes.\n!\nAlthough Socrates does reason from a concern for his own soul, I'm not convinced that it's fair to say that the greater good plays no role. A case can be made for reading some of the later passages as showing concern for the integrity of the city, for example. Could it not be that for Socrates, justice is a state of the soul which involves ''aligning with'' a greater good than the word "self" usually implies?
Your commentary offers an articulate [[charitable reading|charitable interpretation]] of the text: you attend to Socrates' reasoning and reconstruct its valuable aspects. What I'd encourage you to do in your revision here (and in subsequent commentaries) is to push for a more critical angle. Even if you are inspired by a text, you can imagine what skeptical challenge would be most difficult to answer, and seek to show how Socrates might try to respond to criticism about his line of reasoning.
What you do here is a good first step in philosophical analysis: you reconstruct what the disagreement between two points of view seems to be about. As it stands, this commentary leans a bit in the direction of [[summarizing an aspect of the text|charitable interpretation]].\n!\nWhen you revise, I'd encourage you to do two things: (1) Notice that Crito accepts Socrates argument over the course of the dialogue; thus, the characters do not simply "stick to their guns" but rather believe that the tension between their views is worth resolving; (2) Take on a critical voice within this debate. //Should// Crito have given up on his claim that it would be right to escape? In Plato's text, Crito did *not* continue to claim that his view is consistent. Was he wrong about that? \n* There's at least one phrase here that seemed "heavy" but not so clear: "discrepancies appear because intentions are dictated by morals". Socrates and Crito certainly think that they should intend to do what's moral, and they believe that reasoning can help reveal what is right to do. If you have a clear idea here about why it is that discrepancies appear, you could try to express it more carefully; otherwise, you might let go of that claim.\n* I think you may want a word like "reason" or "rationality" in your title; "rationale" has a connotation that doesn't quite fit here. (Both "rationale" and "rationalize" are much-abused words these days.)\n* Watch out for misaligned pronouns, like one's... their...
As I mentioned in class, I find that this commentary does very well at spelling out an important theme, and illuminating Socrates' position. To move in the direction of a stronger philosophical commentary, I'd encourage you to show [[more of a critical voice|charitable interpretation]] in response to the text and the debate. Socrates tries to convince Crito that truth and justice are more important than power and opinion, and Crito seems to have been persuaded by the end. //Should// Crito have been persuaded? Were there points at which Crito, or someone else, could have challenged Socrates' reasoning? Could Socrates have replied? Let's see some back-and-forth, and then give us some reason to appreciate which position is wiser in the end, and why...
As mentioned in class, I think this commentary illustrates a critical voice very well, yet could benefit from a bit more [[charitable interpretation]] of Socrates' argument. If you animate Socrates' position for yourself, and find clues in the text about what kind of intelligent replies might come from his side, then you'll come closer to a balance that brings out the most well-honed perspective. At the very least, we will see interesting multiple threads of Socrates' argument, and some of these will be specific to how he understands his own commitments. In sum: articulating an objection is great. Follow through by evaluating and qualifying it carefully.\n* Please revise to make sure your commentary does not exceed 120 words using the word count feature. \n* I took the liberty of shortening your very long title; very long titles can create difficulty at the site maintenance level.
I’m not quite sure what you mean by your second sentence, however, I think you’re on to something. Some things to perhaps consider: when Epictetus proposes that we should be aware of the "general nature" of the objects we interact with, does he necessarily mean that we should regard them as trivial? For Epictetus, is there a necessary connection between being aware of something’s impermanent nature and the value we place on it? On a more trivial note, since you have so little space in which to present your argument, you might want to spend less space on presenting Epictetus’ view and more on presenting your own.
|I am certain that I am a thinking thing. But do I not therefore also know what is required for me to be certain of anything? Surely in this first instance of knowledge, there is nothing but a certain clear and distinct perception of what I affirm. Yet this would hardly be enough to render me certain of the truth of a thing, if it could ever happen that something that I perceived so clearly and distinctly were false. And thus I now seem able to posit as a general rule that everything I very clearly and distinctly perceive is true. (Descartes, "Meditations on First Philosophy", Meditation Three)|\nOur clear conception of a unique "I" forms the basis for Descartes' conclusion in Meditation Two that the "I" exists. This requires the premise that anything we perceive clearly and distinctly is true. Yet in Meditation Three the conclusion is used to prove this same premise. Thus I feel the argument suffers from [[circular reasoning|http://en.wikipedia.org/wiki/Begging_the_question#Related_fallacies]]. Descartes might reply that doubting the premise would leave us unable to ever be certain of anything, and that in Meditation Three he is merely putting the premise on firmer basis. Still, that the premise enables his arguments is not reason enough to exempt it from doubt, what is more important is whether there is a valid possibility for doubt. Is there?
I think you’re making an important point here. How do we draw the line between contentment and complacency? Since space is very limited, I think you should start exploring this point right away in your mini-essay rather than spending time talking about Epictetus and his view. What exactly to do you mean "devalue themselves"? Is there perhaps a way to be content yet actively involved in the world?
I’m not quite sure what you’re saying. You seem to be on to something, given Epictetus’s principle of contentment through self-control some tensions do seem to arise when Epictetus’ philosophy is extended into the public and political sphere, however, perhaps you could be more specific about exactly how and why you see these tensions occurring. Perhaps Epictetus is proposing that pursuing power and riches often entails making choices that are contradictory to remaining virtuous and personally contented, however, this does not mean that an individual cannot be involved in government and be a stoic.
Your make several good points here and it’s very good that you attempt to present Epictetus’ response to your objection. It does seem that without any experience of pain happiness would have no meaning, however, you seem to be giving Epictetus a rather extreme interpretation. Perhaps Epictetus is not envisioning a life without pain, but rather a life in which both pain and happiness are experienced in controlled or "buffered" moderation. Furthermore maybe you could expand on or be more specific in regards to why impermanence detracts from the "strength of love"? Also does not Epictetus explicitly state that those who attempt to gain greatness (in the sense of power and riches) will fail at gaining contentment and stoic virtue?
I agree with your idea that "if one is to abandon commitment to dreams of success and the desire to hold onto those one loves," one may, "compromise something essential to identity." However, I interpreted Epictetus' ideals of freedom from material desires to be more directed at actual materialistic values and possessions used primarily to convey one's success to others, as opposed to freedom from love and one's personal desire to succeed. Additionally, you make a strong point in suggesting that "devotion to loved ones" is an essential component of one's identity, yet I think that Epictetus warns more of cultivating a dependency upon a loved one, rather than of love itself.
''Enchiridion, Feb 2:'' <<tiddler DateForm with: 2/02>>
|So what was there in the wax that was so distinctly grasped? Certainly none of the aspects that I reached by means of the senses. For whatever came under the senses of taste, smell, sight, touch or hearing has now changed; and yet the wax remains. (Descartes, //Meditations on First Philosophy//, p. 21)|\n|But I need to realize that the perception of the wax is neither a seeing, nor a touching, nor an imagining. Nor has it ever been, even though it previously seemed so; rather it is an inspection on the part of the mind alone. (Descartes, //Meditations on First Philosophy//, p. 22)|\nDescartes' wax model argues that people come to know things through the intellect rather than the senses. He illustrates that the senses can show us physical characteristics of wax in the solid and molten states, but that they cannot inform us that the two states of wax are the same item. Solely the intellect can make sense of what we perceive. The senses just tell us a bunch of jumbled information. Are these entities really so distant? Descartes might suggest that certain things depend on the senses while others do not. But there would not be a good argument without the basis of fact gathered by the senses. Likewise, without intellect, reasoning about perceived objects would not come about. \n
I think that "Enchiridion" is in many ways to be interpreted. Epictetus describes a general "code of conduct" that in its nature is impossible for it to be applied in the same way for all people. Avoiding the work's literal meaning allows the reader to see article #11 as stating that one must seperate the act of something being taken away from its personal value. We can cherish and value certain things and people, however they are subject to expire and leave us. I feel that Epictetus suggests for us to not waste time with the fear of living without something or wallow in the loss of something or someone, but rather acknowledge its role in your life at the present.
|So what was there in the wax that was so distinctly grasped? Certainly none of the aspects that I reached by means of the senses. For whatever came under the senses of taste, smell, sight, touch or hearing has now changed; and yet the wax remains. (Descartes, "Mediation on First Philosophy," p 21)|\n|But I need to realize that the perception of the wax is neither a seeing, nor a touching, nor an imagining. Nor has it ever been, even though it previously seemed so; rather it is an inspection on the part of the mind alone. (Descartes, "Mediation on First Philosophy," p 22)|\nDescartes attributes sensory explanations to objects by divorcing physical perceptions from mental comprehension, thereby downplaying the cognitive relationship between the two. He offers that we recognize a ball of wax based on the physical sensations that it suggests, while I believe that our understanding is achieved only when accompanied by the necessary logical rationalization. The senses are essential in recognizing an object, but the link between physical and mental cognition is central. Different states of an object's existence appeal to different senses, yet the object is still ultimately unchanged. The thought processes involved in recognizing the existence of a being based on the senses and then connecting that to the mental recognition are what I consider the fundamental aspect of our understanding of existence.
|I fall back on my own accord into my old opinions, and dread being awakened, lest the toilsome wakefullness which follows upon a peaceful rest must be spent thenceforward not in the light but among the inextricable shadows of the difficulties now brought forward. (Descartes, 23)|\nWhile truth may be reached through enlightenment, at some point, one must take the risk of investing faith in the unknown. This leap is hard to make for fear of being deceived, which Descartes equates to imperfection. Those on the quest for truth would question Descartes' reasoning, but his retort would be that they are just building onto what is already known by inquiring about something that they personally perceived, and perception is deceiving. But how can one learn if everything every thing fundamental is doubted? It is unclear whether truth or deception is worse. Fear of deception and the intrinsic desire to go through life in search of absolute certainty leaves one in a state of continual doubt.
|Several years have now passed since I first realized how numerous were the false opinions that in my youth I had taken to be true, and thus how doubtful were all those that I had subsequently built upon them. And thus realized that once in my life I had to raze everything to the ground and begin again from the original foundations, if I wanted to establish anything firm and lasting in the sciences. (Descartes, Meditations on First Philosophy p.13)|\n|...what about when I considered something very simple and easy in the areas of arithmetic or geometry, for example that two plus three make five...I did decide later on that I must doubt these things, but that was only because it occurred to me that some God could perhaps have given me a nature such that I might be deceived even about matters that seemed most evident. (Descartes, Meditations on First Philosophy p.36)|\n\nDescartes' method of using ultimate skepticism to derive a solid, underlying reality, seems to be inherently flawed; if one doubts all that is doubtable, including arithmetic (entailing logic), then one has no means to move beyond doubt. Descartes might respond by referring to his method of confirming his existence (that his act of thinking proves that he exists) through doubting all that is not indubitable. However, even this conclusion involves a logical progression, a necessary connection between action and subject, between thought and thinker. Consequently, Descartes has failed to doubt all that is doubtable, specifically, logic and reason. Yet, Descartes might respond that although numbers cannot be completely ascertained, pure logic is an inherent process of the mind equivalent to thinking, and thus cannot be doubted. \n
I wholeheartedly agree with you that what make us individuals are those aspects of our character that are out of our control. I also believe, however, that Epictetus is not necessarily opposed to our ability to choose what we like, but he advocates our choosing morally whether or not to act on those desires, thereby living a "good" or "evil" life.
I think you've picked out among the most troubling passages in this reading. I, too, object to the life philosophy presented in the passages you quoted, as they seem to suggest that we should live life itself as mere patrons of a hotel. It would seem that Epictetus would have us treat our experiences as a mere waiting room within which we are to sit, indifferently reading a magazine, living a life without vulnerability-- in short, not a life. While I, who have had a similar reaction to the reading that you had, might read this commentary without objection, I would imagine that a proponent of Stoicism might not be convinced. Stoics represent a significantly disparate, even diametrically opposed, view of a worthy life and to simply assert that they present "a worthless life" that "denies the soul [sic] purpose of existing" wouldn't likely be a sufficient objection for them. I understand this error, as I have previously been guilty of it-- one assumes one's point to be self-evident, but the very existence of Stoicism suggests otherwise. Clearly to Stoics, regarding family as transitory and one's love for it as contingent on their mortality is perfectly rational. In other words, your commentary expresses a fundamentally opposed perspective, but doesn't do much toward explaining the rationale behind the perspective. 120 words is doubtless a major obstacle towards this end, though, and you have a semester to better develop this ability.
|"But because being deceived and being mistaken appear to be a certain imperfection, the less powerful they take the author of my origin to be, the more probably it will be that I am so imperfect that I am always deceived."(p 16)|\nDescartes hypothesizes that because he is aware of his thought process, he can determine that "he" as a subject exists; however, he also acknowledges the possibility that a deity implanted within him a gross misconception of reality. In conceding this possible manipulation, he undermines his conclusion that this fictional world resembles his current perceived reality. Descartes cannot conclude that he "knows" he exists because he has no basis to comprehend something so foreign and potentially different from his present perception. To this, he would most likely respond that no matter the form the consciousness took, the general existence of self-perception means that somewhere, someone or something was generating that thought and he was thus somehow part of it and existed.
Recent versions of Safari routinely "hang" on this site if any item uses //curly quotes// (the kind Microsoft Word likes to make by default) or //curly apostrophes// within table box formatting.\n!\nIf you're using Safari, please beware of this limitation. \n!\nFor the sake of those who have no other browser, please avoid curly quotes if possible.
I agree with your comment that, if Epictetus is arguing that we, as human beings, should completely disregard anything which is not in our direct control, that this is a stereotypical philosophic thought: an idea that is virtually flawless in theory but which cannot be practically applied to the fallible reality of humankind. However, I believe that when Epictetus states "be prepared to say that it is nothing to you," he is not actually saying that it should have no emotional impact whatsoever, but rather, that we should be able to disengage to the point that we are not violently effected by the volatility of our emotions. This is, I think, what Epictetus’ ultimate concerns truly center around: the idea that we should not be slave to anything-- our emotions, desires, nor the physical realm. Essentially, that we live lives of accountability and should not be ruled by our hearts, but by our intellect. This reading should not be seen as a philosophical hypothesis, but rather as Buddhist-like guidelines for what we, as fallible human beings, should strive to attain through rigorous restraint and acquired self-moderation.
I like how you expanded on the text, and drew your own conclusions. I would agree with you that it is ultimately fear of the unknown and the desire for certainty that lead to unhappiness. I disagree with you in that these doubts can be resolved. Descartes makes it very clear that there is only really one certainty that a person can have; that they exist. Beyond that, it is very difficult to remove these doubts with a skeptical mind.
I agree that there cannot be a complete distinction between the mind and the senses. Thinking is most definitely a defining characteristic of existing, but it is not enough to create a tangible life. Perhaps the life Descartes defines is not tangible, but I believe existence necessitates feelings, both physically and mentally.
|"...when the will turns away from the unchangeable and common good toward its own private good, or toward external or inferior things, it sins" (Augustine, p.25).|\n|"What is evil is the turning of the will away from the unchangeable good and toward changeable goods. And since this turning is not coerced, but voluntary, its justly punished with misery" (Augustine, p.25).|\n|"...I deny that a soul ought to be blamed when this movement pulls it away from the unchangeable good toward changeable goods, if this movement is so much a part of its nature that it is moved by necessity" (Evodius, p.27).|\nAugustine and Evodius discuss the turn one makes, by their own free will, from a life that is rightly lived to one that is not. Evodius argues that if free will is a creation of God, then the turn towards evil that one makes is thereby a creation of God as well, and is not the fault of the person who had the unfortunate fate of lacking enough discipline to avoid desire, physical pleasure, and material goods. Considering Augustine's argument of will, I believe Evodius raises a reasonable objection. The opportunity God creates to either live rightly or sin is enough to give credibility to Edovius' point of a natural tendency, or at least excuse, for turning one's will.
If God gave people free will but will inevitably punish those who use it to sin, what use is the ability to sin other than to reinforce that we should use our free will to seek out the unchanging good? What is the use of having a choice to either do good and be rewarded or do evil and be forced to think that it would have been smarter to do good? I suppose Augustine would argue that the ability to sin makes a pious action even more respected and validates the need to give punishment or reward. He could also argue that sin is not some intangible action, many sins result in directly destructive events and while it is not the people’s duty to judge one another it is implicitly visible either to the person or the public when a sin has been committed.
<<forEachTiddler \n where \n 'tiddler.tags.contains("comments") && tiddler.modifier.contains("bbozorgnia") && tiddler.tags.contains("onlyAdmin")'\n>>\n\n<<forEachTiddler \n where \n 'tiddler.tags.contains("comments") && tiddler.modifier.contains("bbozorgnia") && ! tiddler.tags.contains("onlyAdmin")'\n>>\n\n
|"If the movement of the will by which it turns this way or that were not voluntary and under its own control, a person would not deserve praise for turning to higher things or blame for turning to lower things." (Augustine 29)|\n|"Whatever God has foreknown will happen, and that he foreknows our sins in such a way that our wills remain free and are within our power..." (Augustine 33)|\n|"If human beings are good things, and they cannot do right unless they so will, then they ought to have a free will, without which they cannot do right." (Augustine 20)|\nWhile God or whoever we believe is the highest being, may foresee our destiny, virtually every action that we take in life is through our own individual free will. Every human being has the ability to change their destiny, even if they believe that it is out of their control.We can either sin or commit acts of kindness, but if mistakes are not made in the process, then it is impossible for an individual to learn from their mistake and find serenity within themselves and move on to a life of good deeds. Some live immoral lives and while "it ought to be the case that no one could use the will to sin," (Augustine 21) ultimately the gift of free will means that there is always a choice. "God gave us free choice in order to enable us to act rightly." (Augustine 22)
You bring up a good point, and by realizing that Descartes has never established a real truth, all his observations seem to lose their credit. By questioning the nearly unquestionable (his imagination), Descartes seems to halt at a dead end.
|The very fact that anyone who usesfree will to sin is divinely punishedshows that free will was given to enable human beings to live rightly..."(St. Augustine "On Free Choice of the Will" p. 20|\nSt. Augustine throughout this passage tries to explain to Evodius that God has really given man a will of his own. He makes the distinction between foreknowledge, which he says God must possess, and the idea that God controls our actions. A loving God would have to grant us the ability to choose to follow Him(or Her) or to not, allowing us to willingly accept and return that love. The age old question still remains, however; If God is all-knowing, why do bad things happen in the world?
Outside of academic philosophy, many people puzzle over the concept of free will -- is there some special kind of original and unique capacity to choose that human beings have, something that makes us different from other organisms and complex machines?\n!\nOne large body of philosophical work focuses on whether meaningful choice requires free will in a metaphysical sense (one which defies laws of nature, including laws of psychology), and another large body of philosophical work concerns the ''value'' of free will, if it necessarily involves the ability to do things that are not governed by any understandable pattern or principle.
''Augustine, Feb 9 (tagged {{{2/09}}}):'' <<tiddler DateForm with: 2/09>>
|But even when we find good things in the body that we can use wrongly, we do not say that they ought not to have been given to the body...so why should it be surprising that there are also good things in the soul that we can use wrongly?-Augustine pg. 22|\nAugustine makes a faulty analogy in comparing free will to the bodily faculties. Following his logic, both the will and one's hand, for example, are equivalently "good" as vehicles for just action, although they can be employed to sinful ends. But a hand cannot be used wrongly without a willful choice directing it. Free will is not a tool, however, but rather the very origin of choice, both good and bad. Despite his unconvincing analogy, Augustine ultimately concludes that all right and wrong action does stem from the will. This seeming discrepancy between analogy and conclusion brings to light the function of analogies in argumentation: they may serve an explanatory role, but do not prove the argument.
|If human beings are good things, and they cannot do right unless they so will, then they ought to have a free will, without which they cannot do right.|\n|The fact that human beings could not live rightly without it [free will] was sufficient reason for God to give it.|\nAugustine claims that one's possession of free will allows one to do right and wrong. He holds that sin and/or good cannot be created by a person who does not exercise free will. The notion that one cannot do right without voluntarily initiating it seems inaccurate. Does not a rich man who accidentally drops one of his many loaves of bread near a starving vagabond do at least some small measure of good? Augustine might counter by stating that while the incidence was beneficial to the vagabond, it does not constitute righteousness on the rich man's account for he did not consciously commit to the action.
|"Socrates:...if, acting under the advice of those who have no understanding, we destroy that which is imporoved by health and deteriorated by disease, would life be worth having?...Crito: Yes." (Plato, "Crito")|\nSocrates asserts that it is wrong to act under advice that contradicts the opinion of those who have "understanding." Accused of acts which he does not believe to be immoral transgressions, Socrates' acquiescence to the court's unjust ruling seems to contradict his initial claim, since the court is part of those mistrusted masses that lack understanding of true justice. However, in asserting the greater justice of law that thwarts chaos, perhaps Socrates believes that acting against what he knows to be an unjust ruling is not as vital as preserving law and its concomitant authority and their ability to bring peace and order to society. Yet, clearly, acquiescence to unjust laws breeds injustice and validates authority's arbitrary use of power.
I agree that "the notion of misconception is only actualized through the counterbalance of accurate perception,"(well put) but I think that Descartes would maintain that even if he is unable to ever reach true understanding of the world around him, the fact of his searching for understanding is enough to prove at least that he exists.
|"A geometrician has learned to perform the most difficult demonstrations and calculations, as a monkey has learned to take his little hat off and on, and to mount his tame dog."|\n|"The soul is therefore but an empty word, of which no one has any idea, and which an enlightened man should only use to signify the part in us that thinks."|\nMettrie reduces humans to complex machines, suggesting that the soul is a fabrication of these mechanisms. Descartes, however, whom Mettrie himself criticizes, would argue that in order for Mettrie to form these ideas, his mind must first exist to do the forming. Mettrie parallels the human brain performing intricate calculations to a monkey's simpler brain performing basic tasks, and his argument is compelling. But if Mettrie is correct, and humans indeed are only elaborate machines, I believe that most people would choose to remain uninformed and blissfully ignorant. Otherwise, once it is known that free will, identity, desire, and all feeling is operated by a mechanic device, existence would lapse into a hopeless misery.
It's interesting that you say"solipsism is wrong," because indeed it does feel inherently wrong. But is that because is it fundamentally unfounded, or is it merely because there is something so unsettling about the concept that it forces us to leave the idea to science fiction accounts and convince ourselves that such a thing could not, would not, happen to us?
If I understand you correctly, you believe it seems foolish to compare current oppinions and understandings with those held in the distant past becuase they will undoubtedly be greatly changed by the accumulation of knowledge. Descartes was not only challenging complicated notions he held, (such as the example of flight you gave) but such basic concepts as the reliability of the senses and anything that seemed obvious and reasonable. While it is common to look back on misunderstandings of complex phenomena with completely changed perceptions, most humans never challenge so-called obvious oppinions they've held their entire lives, such as whether or not the body exists, the way Descartes did.
|When you do become happy, it will be in accordance with your will, not against your will. Simply because God foreknows your future happiness ... it does not follow that you will be happy against your will.|\nThe question of whether or not the feeling of happiness is against one's will seems irrelevant to me, because if God knew that the happiness was going to happen, then it doesn't matter what we perceive our will to be, because by definition the foreknowledge of all events disproves the existence of a free will. The omniscience of God is different from the predictions of a scientist, in that it is definite and absolute in a timeless sense, to the point that other options simply do not exist. The totality and idealistic infallibility of such knowledge would be so absolute as to form a logical enough basis to disprove the existence of any other options, and thus of choice. I don't feel that Augustine did enough to confront this innate paradox head on, but rather based his whole argument on the belief that god foresees that we will use our will to make certain things happen, so our will must exist because god sees it. But those who don't share this belief have nothing to supersede the reasoning that foreknowledge defies free will, and are therefore left to believe that such omniscience cannot exist in conjunction with free will.\n
How does foreknowledge of all events disprove the existence of free will? Knowledge is passive. From mechanics, I can have perfect knowledge of the trajectory of a projectile, yet it is not I nor my knowledge that makes the projectile move just so. Similarly, if Allah is all-knowing, ze can know all the choices that we will make. Yet unless Allah decides to take a hand in changing our decision, mere 'knowing' does not necessitate nor potentiate our decision. Perhaps a better question to ask about free will is this: are my choices causally determined by who I am, the sum of my experiences, and what I am going through, or can I choose differently?
While I agree with your standpoint on this issue, that evil exists to draw attention to good, I am rather confused about your meaning when you use the word sin. Is sin and evil the same thing? Is death an evil or a sin? In what way does the existence of sin prove that "it is good to be good"? Can you prove that bad things happen to people who sin?
I agree that you have a point: you cannot blame the cat for killing the mouse, it is its nature. However, does this apply to humans? The contention that desire, physical pleasures, material goods, and lack of discipline wield such influence on our decisions that we sometimes cannot choose to conflict with them would mean that, in effect, we do not have free will. Your use of 'fate' implies that all has been predetermined by God, and that she might not be so omnibenevolent after all. That said, we return to the question of free will, can humans choose to do other than what is in their nature?
So your position is that whether or not Mettrie is correct, his position is so abhorrent that we should stick our hands in our ears and go "nah nah nah I can't hear you". I can respect that, I suspect that it is not an uncommon opinion at all. Yet, for argument's sake, lets assume for the moment that we find positive proof that we are only elaborate biological machines. Does that invalidate everything you have ever stood for? Will your awareness of your own existence be any less? All your emotions, dreams, and desires, would not those feelings still be as real to you then as they are to you now? Would humanity then throw away its ideals and civilization revert to barbarism? I say no.\n\nSo what if deep under the shell of my awareness my every thought and decision is determined by the sum of my experiences, external influences, biological predispositions, and whatnot? The thinking, feeling, doubting, loving awareness that I am now will not so easily change its nature.
Nice summary. You stated that serenity can only be found through the making of mistakes, unfortunately I do not clearly see how the two are related. Perhaps you might clarify.
You raised a good point, and suggested a plausible resolution. Holding the opinion that unintended kindness ought not be attributed to the individual does imply, however, that we cannot be held responsible for unintended crimes. Might I suggest you consider if it is possible to be only partially responsible for something? Furthermore, if Allah is to be thanked for the unintended goodness, who do we hold responsible for unintended evil?
I agree that free will is not a tool wielded like the hand. However, we seem to disagree on a few points. St Augustine stated that both the will and one's hands are good, not that they are equivalently good. Nowhere in the text did he state that free will and the hands share an equal capacity for good. Indeed, as he values the soul more than the body (pg. 22), Augustine arguably places a higher value on free will than the hands. Also, Evodius probably meant that when doing justice, which by definition is good, it is impossible to obtain from it an evil result. For to do good is to do justice, and to do evil is to do injustice. In that sense, it is impossible to use justice wickedly. The choice between justice and injustice you speak of is an application of free will.
You raise a good point about the link between physical and mental cognition, indeed it appears hard to have one without the other. However I have some trouble understanding the rest, in your first quote I believe Descartes states that the wax is still wax despite changes in its physical characteristic, and goes on in your second quote to opine that it is the mind alone that 'recognizes' the wax. How is that you hold the opinion that Descartes believed that an object is defined solely by those sensations it offers and changes the nature of its existence when it undergoes physical change? As for your last assertion, I understand you to mean that it is fallacious to think that 'bodies' constantly change the nature of its existence. Why?
''Mettrie & d'Holbach, Feb 14 (tagged {{{2/14}}}):'' <<tiddler DateForm with: 2/14>>
Your critique pulls nicely from the different angles of logic Augustine presents in this piece. The second quote you chose demonstrates a compromise that allows for an omnipotent, omnibenevolent, and omniscient God to exist in a world where evil also exists. However, I agree with Eric in that I do not fully understand the sentence about mistakes and serenity.
I’m not sure I understand your objection to Augustine’s analogy, for can it not be the case that the human faculty of choice, that is, freewill is also a tool necessary for the accomplishment of good? Much in the same way that I cannot slap many a high-five without a hand, I cannot do any good, or in fact evil, without choice, for both high fives and moral action entail the involvement of a pertinent hand or freewill. I think the point Augustine is trying to make is that just because a certain human ability can potentially be used for evil ends does not make that ability inherently evil. I’m not sure I understand your objection to the analogy if this is the end it is trying to accomplish. For the second part of you mini-essay, I’m a little lost. I’m not sure what argument you’re referring to and what objection your raising, perhaps you could be a little more clear... sorry for my denseness.
I think you may be misunderstanding Augustine’s point in the first quote. Augustine is saying something like, " well if the eye is good, even though you can live rightly without it, then doesn’t freewill have to be good since you can’t live rightly without it?" Also, I think for Augustine the idea of "properly functioning" and "morally just" are related in regards to the will, that is, the proper function of a freewill is to enable human beings to live in a morally just manner. In the same way that the proper function of an eye is to see, the proper function of freewill is to be exercised for the accomplishment of good. You seem to be on to something with the second part of your micro-essay. However, how can one "live both rightly and badly" without freewill. For if we don’t have a choice in what we do how can we be responsible for our actions. Can a bullet be accused of murder? However it does seem that perhaps freewill can have an amoral or "morally neutral nature", your making a very intriguing point here, it would be great if you could elaborate on it.
Hmm.... Yes, but what of it? You seem to be summarizing some of Augustine's ideas without saying anything for yourself. Do you agree with Augustine completely? Avoid just summarizing the ideas you read, look for points you don't agree with or ideas that seem objectionable in one way or another. For example, how can we have freewill if God has complete foresight of our actions? Since God is the creator, and from the very beginning of creation God necessarily knew who was going to do evil and who was to do good, doesn’t that mean that in a way God decided our destinies for us? Also you seem to bring in ideas that don’t seem particularly philosophically relevant, for example the fact that every human is born with a "pure soul" or individual's finding serenity. Perhaps I'm just not getting it at all.
It is true that in Augustine’s universe, it is ultimately in our best interest to utilize freewill for good than for evil. More importantly for Augustine, however, God did not give human beings freewill in order for them to able to sin, but rather for human beings to be able to do good. Freewill, that is, the choice between good and evil is necessary because in order for any action to be properly subject to moral judgment, a free choice is necessary. If rain drops save a man who is dying of thirst, do we say that the rain drops have done good? No because the rain simply does what the rain does, since rain has no choice it cannot be subject to moral judgment.
The point you bring up is very astute and intriguing, can actions be dubbed good or evil without the involvement of conscious choice? Does one have to know the nature of one’s actions in order to be morally responsible for them? Perhaps one idea that can help us out is to consider action and intention as distinct but related entities. That is, every action involves the action itself and the intention behind it. In regards the potential response you propose for Augustine, how would Augustine respond to the idea that God can’t be held responsible for the action since the person made the decision to commit the action, even though they were unaware of its moral nature at the time? For example, if a person throws a penny off the empire state building and that penny kills someone, is God responsible?
|Nor will I ever get out of the habit of assenting to [ong-standing opinions] and believing in them, so long as I take them to be exactly what they are, namely, in some respects doubtful, as has just now been shown, but nevertheless highly probable, so that it is much more consonant with reason to believe them than to deny them. (Section 22)|\n|...that there really is a world, that men have bodies, and the like (things which no one of sound mind has ever seriously doubted)... (Section 16)|\nIn presenting solipsism as highly improbable or practically impossible, Descartes may be overlooking a Pandora's Box he opens by throwing into doubt not only one's perceptions specifically but the reliability of perception in general. Once one acknowledges one's perceptions as mere effects of an indeterminate cause, using one's perspective as a gauge of objective reality becomes problematic. Sure solipsism and its variations *feel* wrong, but that very feeling is being used here to affirm its own reliability as a gauge of reality.\nIf we are to step outside the realm of perception to attempt to determine its cause, it appears that we have entered a vacuum: our perspective is too narrow to infallibly perceive its own cause. As Sartre observed, we can't transcend subjectivity here.\n!\nPost-Script: This is probably an uncharacteristic way of responding to feedback on a commentary, but it appears to be the best way. I revised my commentary, but while I agree that grounding my arguments more in the text is something I definitely need to do more in the future, I would like to defend my interpretation of the text here. While it is clear that Descartes took pains to keep all of his perceptions and opinions in a state of doubt, it is my impression that Descartes considered solipsism (or any conception of an objective external world being fundamentally misrepresented by our perceptions) to be a remote possibility, if he considered it at all (beyond a mere means in this exercise of rational rigor). It is also my impression that Descartes' other meditations are commonly regarded as unsatisfying and insufficient proof of existence of what the 2nd meditation established. However, the assumption that is often maintained regardless, echoed by Descartes, is that even if we can't *prove* anything beyond our own minds, it is still highly probable that one's subjective experience is grounded in objectivity when observing the outside world. It is this weighing of probabilities for want of proof that I am trying to call into question. Although Descartes, for the sake of his exercise in rigorous doubt, suspends his belief in the external world, he indicates that he thinks it sound to consider this belief "highly probable"�. I'm saying that once perception itself is doubted, a "Pandora's box" is opened in that so many alternative conceptions of objective reality emerge as possibilities, and one has no scale by which to weigh probabilities and declare the apparent conception of reality most probable -- it would appear that any conceivable (or inconceivable) notion of reality is equally possible in that our conventional methods of weighing probability (intuition, sensation, etc.) are themselves being subjected to doubt regarding their utility to gauge objective reality (and consequently weigh possibilities objectively).
''Descartes, Feb. 7:'' <<tiddler DateForm with: 2/07>>
Early on, it seems when you refer to "Descartes' point" you mean his argument (not a single point but the drawing of a conclusion based on premises) that all of his opinions must be doubted because he has found that he had false opinions in his youth. Yet his premise is not only that he had false opinions (like thinking of flight as magic) and thus should question his beliefs now, but also that many of his current beliefs were //built upon// earlier beliefs, like buildings on shaky foundations.\n!\nI sense that your central insight here is that perhaps this "building" metaphor for the relation of some beliefs to others is not a good metaphor -- perhaps you would suggest that often newer beliefs simply replace earlier ones? This is certainly an intriguing idea. Considering this line of thought in light of Descartes' overall project, I would encourage you to ask: Would recognizing this possibility would have saved Descartes from the spectre of radical doubt that he faced?\n* Writing notes: a couple of times here, you reach for a word or phrase that's //almost// what you want, but not quite. For example:\n**"an unchanging self hitherto by continuous principles" seems to be a phrase with a word left out. \n** To define of redefine something is to specify its meaning, yet what Descartes is doing is not //redefining// his opinions, but //re-evaluating// his beliefs (perhaps in the process he redefines "knowledge", so that knowledge no longer means whatever seems obvious to him, but instead means only what passes the test of radical skeptical doubt.)\n** Is what Descartes is doing "comparing" what he believes now with what he did in the past? It seems he's arguing that what he believes now has been built on his earlier beliefs. I think this is the idea that you're challenging. Still, the issue seems not to be about ''comparison''...\n** Your title would need to be ''An Ever Changing Self''.
What you offer here is something like a reflective gloss on the text, with some rhetorical flair. Your work here shows that the text inspired you to make various connections among ideas in the text, and it emphasizes charitable interpretation, which is one important ingredient in philosophical reading. However, for the sake of philosophical writing, I'd encourage you to adopt an additional angle of approach. As you read, imagine where a reader might not be persuaded by Descartes. Try to discern where an intelligent reader might disagree with his conclusions, or find his claims in need of clarification. If you can raise an objection to his argument, then you can go on to consider how Descartes might reply. This sort of back-and-forth between critical reading and charitable reading is the core of the commentary skill I'm encouraging us all to develop this semester.\n* As far as writing goes, you lose clarity a bit with the sentence about "Fear of deception AND intrinsic desire... OR the absence of certainty". There are multiple ways to read a sentence strung together with mixed ''and''s and ''or''s. The sentence (if you keep it) could be restructured for clarity.
You bring up some intriguing themes here, although the focus seems somewhat scattered -- perhaps because you were not yet sure what to make of the reading and how the parts connected? (In that case, leaving enough time to consult with a TA so that you're confident you're reading clearly //before// writing might help.\n!\nIn the process of writing, if you stop to read what you've written -- as if with new eyes -- you may recognize places where what you've said isn't quite what you meant. For example, does Descartes' have an "explanation of dreams"? (He uses the idea of dreams to explain something else -- namely, why he does not feel confident that he can trust his common-sense experiences.) Does he worry that "if we dream unconsciously, how can we exist?" He wants to argue that if we can dream ''false'' things, then we are less confident about what we seem to know. Yet being asleep for him does not undermine his confidence in the existence of the mind. Do you think it should?\n!\nI'm not sure of what to make of your fourth sentence, including "the act of perceiving what we know is the truth when we are conscious, while unconscious...". I suspect you may have a very interesting idea here, but I'm not following it. I'm also not sure whether you are at that point summarizing Descartes, or adding a critical reflection of your own.\n* You use an argument indicator (thus) in your second sentence that seems not to work. From the mere fact that Descartes "discusses" the notion of truth, it doesn't seem to //follow// that the perception of truth supports a certain claim. Your writing can make clear that one claim Descartes makes supports another claim (by the end of that sentence you do get to show how one claim is supposed to support another, but this can't be what you're referring to earlier in the sentence with "thus").\n* I fixed your formatting, and added the tag "commentary" so that your work would show up properly and be able to accept peer feedback.
Your work here has the strength of focusing right in on one problematic argument and articulating an objection. You might be right that Descartes commits a mistake, but it's not a good idea to announce it confidently without taking the time to cross-examine. As usual, my suggestion will be that you should try to leave room to anticipate a likely reply. How do you think Descartes might answer your worry?\n!\nIn fact, the symbolic representation here, while a valiant attempt, is not quite right. On the level of formal symbolization, X and Y don't work as independent propositions. You need a more complex quantificational structure to allow {{{Y}}} to refer to the "//that// something" that's mentioned in your {{{X}}}. Further, it turns out that logical claims about the objects of certainty and perception actually resist formalization in a very stubborn way. \n!\nAt any rate, we can get at your point on the informal level. //Does// Descartes merely "jump" from the specific claim to the general? Well, he claims that he is certain of these two things:\n(1) P provides sufficient reason to believe Q.\n(2) The only possible //explanation for// P being sufficient for Q lies in the reliability of the "light of nature" by which clarity and distinctness are appreciated.\n!\nHe thus justifies his confidence in this "light of nature" by which clarity and distinctness are appreciated. Now, further objections might well be raised. Yet I suspect that you are really likely to find fault with even claim (1) if you doubt the general claim. After all, if the general claim is dubious (that the light of nature is reliable), then it's unclear what would justify (1). No?
/***\n!Sections in this Tiddler:\n*Generic rules\n**Links styles\n**Link Exceptions\n*Header\n*Main menu\n*Sidebar\n**Sidebar options\n**Sidebar tabs\n*Message area\n*Popup\n*Tabs\n*Tiddler display\n**Viewer\n**Editor\n*Misc. rules\n!Generic Rules /%==============================================%/\n***/\n/*{{{*/\nbody {\n font-size: .75em;\n font-family: arial,helvetica;\n position: relative;\n margin: 0;\n padding: 0;\n}\n\nh1,h2,h3,h4,h5 {\n font-weight: bold;\n text-decoration: none;\n padding-left: 0.4em;\n}\n\nh1 {font-size: 1.35em;}\nh2 {font-size: 1.35em;}\nh3 {font-size: 1.1em;}\nh4 {font-size: 1em;}\nh5 {font-size: .9em;}\n\nhr {\n height: 1px;\n}\n\na{\n text-decoration: none;\n}\n\nol { list-style-type: decimal }\nol ol { list-style-type: lower-alpha }\nol ol ol { list-style-type: lower-roman }\nol ol ol ol { list-style-type: decimal }\nol ol ol ol ol { list-style-type: lower-alpha }\nol ol ol ol ol ol { list-style-type: lower-roman }\nol ol ol ol ol ol ol { list-style-type: decimal }\n/*}}}*/\n/***\n''General Link Styles'' /%-----------------------------------------------------------------------------%/\n***/\n/*{{{*/\n.externalLink {\n text-decoration: underline;\n}\n\n.tiddlyLinkExisting {\n font-weight: bold;\n}\n\n.tiddlyLinkNonExisting {\n font-style: italic;\n}\n\n/* the 'a' is required for IE, otherwise it renders the whole tiddler a bold */\na.tiddlyLinkNonExisting.shadow {\n font-weight: bold;\n}\n/*}}}*/\n/***\n''Exceptions to common link styles'' /%------------------------------------------------------------------%/\n***/\n/*{{{*/\n\n#mainMenu .tiddlyLinkExisting, \n#mainMenu .tiddlyLinkNonExisting,\n#sidebarTabs .tiddlyLinkExisting,\n#sidebarTabs .tiddlyLinkNonExisting,\n#siteTitle .tiddlyLinkExisting,\n#siteTitle .tiddlyLinkNonExisting{\n font-weight: normal;\n font-style: normal;\n}\n\n/*}}}*/\n/***\n!Header /%==================================================%/\n***/\n/*{{{*/\n\n.header {\n position: relative;\n}\n\n.header a:hover {\n background: transparent;\n}\n\n.headerShadow {\n position: relative;\n padding: 2.5em 0em 1em 18em;\n left: -1px;\n top: -1px;\n}\n\n.headerForeground {\n position: absolute;\n padding: 2.5em 0em 1em 18em;\n left: 0px;\n top: 0px;\n}\n\n.siteTitle {\n font-size: 2em;\n}\n\n.siteSubtitle {\n font-size: 1.5em;\n}\n\n/*}}}*/\n/***\n!Main menu /%==================================================%/\n***/\n/*{{{*/\n#mainMenu {\n position: absolute;\n left: 0;\n width: 10em;\n text-align: right;\n line-height: 1.6em;\n padding: 1.5em 0.5em 0.5em 0.5em;\n font-size: 1.1em;\n}\n\n/*}}}*/\n/***\n!Sidebar rules /%==================================================%/\n***/\n/*{{{*/\n#sidebar {\n position: absolute;\n right: 3px;\n width: 16em;\n font-size: .9em;\n}\n/*}}}*/\n/***\n''Sidebar options'' /%----------------------------------------------------------------------------------%/\n***/\n/*{{{*/\n#sidebarOptions {\n padding-top: 0.3em;\n}\n\n#sidebarOptions a {\n margin: 0em 0.2em;\n padding: 0.2em 0.3em;\n display: block;\n}\n\n#sidebarOptions input {\n margin: 0.4em 0.5em;\n}\n\n#sidebarOptions .sliderPanel {\n margin-left: 1em;\n padding: 0.5em;\n font-size: .85em;\n}\n\n#sidebarOptions .sliderPanel a {\n font-weight: bold;\n display: inline;\n padding: 0;\n}\n\n#sidebarOptions .sliderPanel input {\n margin: 0 0 .3em 0;\n}\n/*}}}*/\n/***\n''Sidebar tabs'' /%-------------------------------------------------------------------------------------%/\n***/\n/*{{{*/\n\n#sidebarTabs .tabContents {\n width: 15em;\n overflow: hidden;\n}\n\n/*}}}*/\n/***\n!Message area /%==================================================%/\n***/\n/*{{{*/\n#messageArea {\n padding: 0.5em;\n}\n\n.messageToolbar {\ndisplay: block;\ntext-align: right;\n}\n\n#messageArea a{\n text-decoration: underline;\n}\n/*}}}*/\n/***\n!Popup /%==================================================%/\n***/\n/*{{{*/\n.popup {\n font-size: .9em;\n padding: 0.2em;\n list-style: none;\n margin: 0;\n}\n\n.popup hr {\n display: block;\n height: 1px;\n width: auto;\n padding: 0;\n margin: 0.2em 0em;\n}\n\n.popup li.disabled {\n padding: 0.2em;\n}\n\n.popup li a{\n display: block;\n padding: 0.2em;\n}\n/*}}}*/\n/***\n!Tabs /%==================================================%/\n***/\n/*{{{*/\n.tabset {\n padding: 1em 0em 0em 0.5em;\n}\n\n.tab {\n margin: 0em 0em 0em 0.25em;\n padding: 2px;\n}\n\n.tabContents {\n padding: 0.5em;\n}\n\n.tabContents ul, .tabContents ol {\n margin: 0;\n padding: 0;\n}\n\n.tabContents li {\n list-style: none;\n}\n\n.tabContents li.listLink {\n margin-left: .75em;\n}\n/*}}}*/\n/***\n!Tiddler display rules /%==================================================%/\n***/\n/*{{{*/\n#displayArea {\n margin: 1em 17em 0em 15em;\n}\n\n\n.toolbar {\n text-align: right;\n font-size: .9em;\n visibility: hidden;\n}\n\n.selected .toolbar {\n visibility: visible;\n}\n\n.tiddler {\n padding: 1em 1em .5em 1em;\n}\n\n.missing .viewer,.missing .title {\n font-style: italic;\n}\n\n.title {\n font-size: 1.8em;\n font-weight: bold;\n}\n\n.missing .subtitle {\n display: none;\n}\n\n.subtitle {\n margin-left: 1.5em; font-size: .8em;\n}\n\n/* I'm not a fan of how button looks in tiddlers... */\n.tiddler .button {\n padding: 0.2em 0.4em;\n}\n\n.tagging {\nmargin: 0.5em 0.5em 0.5em 0;\nfloat: left;\ndisplay: none;\n}\n\n.isTag .tagging {\ndisplay: block;\n}\n\n.tagged {\nmargin: 0.5em;\nfloat: right;\n}\n\n.tagging, .tagged {\nfont-size: 0.75em;\npadding: 0.2em;\n}\n\n.tagging ul, .tagged ul {\nlist-style: none;margin: 0.25em;\npadding: 0;\n}\n\n.tagClear {\nclear: both;\n}\n\n.footer {\n font-size: .9em;\n}\n\n.footer li {\ndisplay: inline;\n}\n/***\n''The viewer is where the tiddler content is displayed'' /%------------------------------------------------%/\n***/\n/*{{{*/\n.viewer {\n line-height: 1.4em;\n padding-top: 0.5em;\n}\n\n.viewer .button {\n margin: 0em 0.25em;\n padding: 0em 0.25em;\n}\n\n.viewer blockquote {\n line-height: 1.5em;\n padding-left: 0.8em;\n margin-left: 2.5em;\n}\n\n.viewer ul, .viewer ol{\n margin-left: 0.5em;\n padding-left: 1.5em;\n}\n\n.viewer table {\n border-collapse: collapse;\n margin: 0.8em 1.0em;\n}\n\n.viewer th, .viewer td, .viewer tr,.viewer caption{\n padding: 3px;\n}\n\n.viewer pre {\n padding: 0.5em;\n margin-left: 0.5em;\n font-size: 1.2em;\n line-height: 1.4em;\n overflow: auto;\n}\n\n.viewer code {\n font-size: 1.2em;\n line-height: 1.4em;\n}\n/*}}}*/\n/***\n''The editor replaces the viewer in the tiddler'' /%------------------------------------------------%/\n***/\n/*{{{*/\n.editor {\nfont-size: 1.1em; line-height: 120%;\n}\n\n.editor input, .editor textarea {\n display: block;\n width: 100%;\n font: inherit;\n}\n\n.editorFooter {\n padding: 0.25em 0em;\n font-size: .9em;\n}\n\n.editorFooter .button {\npadding-top: 0px; padding-bottom: 0px;}\n\n.fieldsetFix {border: 0;\npadding: 0;\nmargin: 1px 0px 1px 0px;\n}\n/*}}}*/\n/***\n!Misc rules /%==================================================%/\n***/\n/*{{{*/\n.sparkline {\n line-height: 1em;\n}\n\n.sparktick {\n outline: 0;\n}\n\n.zoomer {\n font-size: 1.1em;\n position: absolute;\n padding: 1em;\n}\n\n.cascade {\n font-size: 1.1em;\n position: absolute;\n overflow: hidden;\n}\n/*}}}*/#ZiddlyFormats,#ZiddlyPowered{margin:5px}
Your commentary here focuses right in on a problematic aspect of Descartes' reasoning, and pushes an objection fairly persuasively. I would encourage you to take a reflective look, after writing, and see what might be said on Descartes' behalf, in the name of charitable interpretation. It strikes me that there are several "faces" to your objection here, and some are more powerful than others. For example, Descartes might argue that "logic and reason" are specifically //not// doubtable -- he tries but //fails// to doubt them. Logic as such may have an even more privileged status than the arithmetic and geometry that he doubts earlier. This privilege may itself be worth challenging, but it would make sense of Descartes' multiple assertions. \n!\nI do suspect, however, that aspects of your objection here will survive beyond the first exchange of replies from Descartes. In particular, the "obvious" connection between action and agent -- something that Descartes seems to pick up as if it were a matter of logic, deserves scrutiny. Might Descartes literally be right that //he could not// doubt such things (namely, the notion of a "substance" beneath all appearances and changes, whether in the case of wax or in the case of mind)? One line of thought we migth pursue here is that people may well be //differently able// to doubt such things! Of course, this would salvage the integrity of his personal meditations at the cost of undermining the "firm and lasting foundations for the sciences", which presumably are not to depend on the idiosyncrasies of what we can and cannot manage to doubt as individuals!
You do well at reconstructing Descartes' position through the first several sentences here. Next, you remark on a point of disagreement with Descartes, showing a point for critical discussion.\n!\nAs it stands, your objection ("the intellect and the senses... are not as separate as Descartes sees them") comes out as a flatly contrary assertion. //Why// should we think they're not so separate? I think your last sentence is intended to support this claim -- and yet what the last sentence shows is that the intellect //depends on// the senses when it comes to our conception of material things. It seems Descartes can agree that we wouldn't have a concept of wax without the senses, and yet there's no difficulty for him in maintaining that the intellect is //distinct from// the senses, and that the unified concept of wax as such can be grasped only by the intellect and not by the senses. Can A be distinct from B despite depending on B for certain things?\n!\nIn general, when you present and objection, it's a good strategy to leave a bit of room to consider a possible reply (even if you're not entirely convinced by it). In this case, Descartes might suggest that while //certain// ideas depend on the senses, still others may not. Logical and mathematical ideas, for example, (such as concepts of negative number, //i//, infinity, or zero) may be present to the intellect but not to the senses. While some philosophers will indeed argue that no idea can occur to us except as they enter through the senses, this claim is at least a difficult and complex one to defend...
I believe you may think there's more disagreement than there really is between your ideas and Descartes' here. Notice that for Descartes, the word "thinks" (the best our translation can do for the latin "cogito" //covers// all sorts of mental experience: \n|A thing that thinks. What is that? A thing that doubts, understands, affirms, denies, wills, refuses, and that also imagines and senses. (p. 20)|\nDescartes can agree that experiencing certain sensory things is as much a proof of one's existence as is asking oneself an intellectual question. Whether one's sensation is //accurate// (or really is "physical") is of course open to doubt. But if one has a sensation, then ''one'' is around to have it, and thus exists. Are there other dimensions of your concern here that remain, once this broad concept of "thinking" is taken into account?\n* Point of writing clarity: you speak about what would "justify my existence" and what "justifies [Descartes'] existence". It's likely you mean to speak of what justifies //belief that// you, or Descartes, exists. To justify someone's existence is to show that someone's life is worthwhile or deserving. Clearly, the theme in this text is about justifying beliefs about existence, rather than "justifying people's existence" directly, no?\n* Writing note: you've misspelled //existence// in your title.
It's clear that you're taking a critical stance toward Descartes, and the themes you discuss are worthwhile. So far, however, the commentary seems either to misunderstand Descartes or to set off on an independent direction of asserting things without trying to keep Descartes in the conversation. \n!\nHere's what seems to be a misunderstanding: You claim Descartes "ues sensory explanations to classify objects" -- yet it's not clear that he's doing anything like //classifying objects// according to the senses -- where did you get that impression? On that basis, you believe you're asserting something "contrary" by saying that "an object is not defined solely by those sensations that it offers". Yet the second excerpt you included above shows Descartes agreeing with that very claim: it is "inspection on the part of the mind" (and not the senses) that yields the concept of "the wax itself", beyond all the sensory notions of it.\n!\nThe last bit seems to set off on a different issue, though I'm again not sure that you're recognizing Descartes' position correctly. Descartes claims that even if things undergo changes, our ability to think there //is// a //thing// there, beneath all the changes, shows that our concept of a thing is of something //unchanged// despite appearances. \n* Language point: especially in the context of philosophy, a fallacy is a bad pattern of reasoning. A "question" then, is not potentially fallacious, though an argument might be.
Let's imagine how Descartes might respond (as it's always a good idea to reflect on your objection in light of how the author could reply): \nHas he asserted that he can verify what is and isn't true //without experiencing reality//? He granted that an "evil genius" might have deceived him about the things that seemed most certain to him in the past, particularly about what we might call "the external world". Yet Descartes does not claim that //past// misconceptions about reality prevent him from having any //true// conception of reality in the present, so long as he makes sure that his conception in the present does not depend on bad assumptions (such as the assumption that his senses are accurate, or the assumption that there is no evil demon).\n!\nIt seems we can read Descartes "cogito ergo sum" argument as revealing that there //is// an aspect of reality that he's in touch with (namely the reality of his own mind), and whose vivid presence serves as a yardstick for all other appearances, in just the way you seem to be suggesting. Thus, Descartes would mostly agree: he'd insist one certainly //can// "conceive of what one hasn't yet experienced" (such as dragons), the //basic ingredients// of our experience (sensations, concepts, feelings) are beyond doubt... or so he argues. Do you still find a point of disagreement, then? (If so, see if you can articulate it //and// imagine Descartes' potential reply!)
Hmm. It seems to me that you've read your excerpts out of context. The second excerpt here is of course from the Preface, and though it shows Descartes distancing himself from solipsism, this is on the basis of arguments late in the meditations that we have not yet read, and the //main point// of that section of the preface is to say that we could build up to such confidence //only through// knowing our own minds. Thus, one central launching-point for solipsism -- the idea that I know myself more certainly than I know anything else -- remains a cornerstone of Descartes' view.\nNow the //first// excerpt here is also a sentence that occurs between disclaimers. Descartes is trying to //resist// this impulse to "reasonableness". So, looking at the passage in context, I'm just not sure why you would claim here that Descartes is "ignoring the Pandora's Box". \nClearly you have a robust impulse to take Descartes' themes seriously and to speculate about them in your own ways. In the process of reading and writing commentaries, though, I'd suggest that you slow down and focus on one section of argument within the text and evaluate it in context before getting into high gear. Ultmitately, such focus on detail will help you in your ambition to articulate your own ideas more clearly.
I like your example about the rich man dropping the bread. It makes your argument very easy to understand. In the reading Augustine talks about humans doing good and doing bad, but does every action fit under one of these two categories? Is there a separate catagory for accidents? Are accidents that a person doesn't think about considered free will? If God did not grant humans free will, would there still be human accidents or would all of those "mistakes" be attributed to God's doing?
I agree with you that it seems that a primary reason for the existence of sin is as a "reiteration of the righteous part of free will." After all, much of the world, including righteousness, is relative; without sin, there would be no counterbalance to accentuate the goodness of goodness. However, I am not sure that I see how the ability to sin "reinforce[s] that we should use our free will to seek out the unchanging good[.]" Ability to sin alone, it seems to me, does not serve as a persuasive agent in either direction. Perhaps what you mean is that the punishment of sin serves to reinforce good. If this is the case, a slight clarification is all you need.
|The human body is a watch, a large watch constructed with such skill and ingenuity... (Mettrie, Man a Machine, 5)|\n|...the soul is but a principle of motion or a material and sensible part of the brain, which can be regarded, without fear of error, as the mainspring of the whole machine, having a visible influence on all the parts. (Mettrie, Man, a Machine, 5)|\nMettrie argues that humans are machines with mechanical parts working together to function. This is a very scientific view of the human form that examines the physical pieces of the system and attributes thought, judgment, and feelings to components of the brain. While these complex emotions do distinguish humans from other beings, I am not sure they come solely from the brain. For the brain can process information and spit out ideas, but there must be something else in us that connects all of these ideas to elicit motivation and emotion. Mettrie might say that the physical body is what creates these responses, but is there another aspect of this machine that influences the physical responses of the body?
|The soul is therefore but an empty word, of which no one has any idea, and which an enlightened man should only use to signify the part in us that thinks (Mettrie, 3).|\nHumans can distinguish right from wrong, an ability that machines are incapable of. However, Mettrie would argue that this does not mean that we are not machines, for judgment and emotion stem from experiential and biological influences, so they are processes by which we as machines make decisions. But, we must be more than machines, for we can feel and choose. But what proportion of this perception of control comes from our soul compared to our environment? Maybe we cannot control our will, an ability that seems to determine how machine-like we are, and all of our choices are already made for us through cause and effect. Without freewill, maybe Mettrie was right to analogize us with machines.
I too believe that St. Augustine differentiates between the "good" in free will and in one's hand, however I also agree with your statement regarding "willful" choices directing both good and evil actions. In terms of Evodius's "unchangeable truth," justice is inherently good and when one utilizes free will to act justly, he or she recognizes this choice and understands that evil ends are impossible with just means.
Please use this form to check [[commentaries|submitting commentaries]] for length. Not including excerpted passage, length should not exceed 120 words. (This helps to make sure that we can read one another's contributions without getting bogged down in long posts.) \n<html>\n<form>\n<textarea cols=70 rows=6 name=x></textarea>\n<br>\n<input type=button value="Count Words" OnClick ="CountWords(this.form.x,\ntrue, true);">\n</form>\n<p>\n<font face="arial, helvetica" size"-4">Free JavaScript provided by <a\nhref="http://javascriptsource.com">The JavaScript Source</a></font>\n</html>\n<script>\nwindow.CountWords = function(this_field, show_word_count, show_char_count) {\nif (show_word_count == null) {\nshow_word_count = true;\n}\nif (show_char_count == null) {\nshow_char_count = false;\n}\nvar char_count = this_field.value.length;\nvar fullStr = this_field.value + " ";\nvar initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;\nvar left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");\nvar non_alphanumerics_rExp = /[^A-Za-z0-9]+/gi;\nvar cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");\nvar splitString = cleanedStr.split(" ");\nvar word_count = splitString.length -1;\nif (fullStr.length <2) {\nword_count = 0;\n}\nif (word_count == 1) {\nvar wordOrWords = " word";\n}\nelse {\nvar wordOrWords = " words";\n}\nif (char_count == 1) {\nvar charOrChars = " character";\n} else {\nvar charOrChars = " characters";\n}\nif (show_word_count & show_char_count) {\nalert ("Word Count:\sn" + " " + word_count + wordOrWords + "\sn" + " " + char_count + charOrChars);\n}\nelse {\nif (show_word_count) {\nalert ("Word Count: " + word_count + wordOrWords);\n}\nelse {\nif (show_char_count) {\nalert ("Character Count: " + char_count + charOrChars);\n }\n }\n}\nreturn word_count;\n}</script>
|That man should have free-agency, it were needful that he should be able to will or choose without motives; or, that he could prevent motives coercing his will.? (2, d'Holbach)|\n|If at this moment it is announced to him, the water he so ardently desires is poisoned, he will, notwithstanding his vehement thirst, abstain from drinking it; and it, therefore, been falsely concluded that he is a free agent. (1, d'Holbach)|\nD'Holbach argues that the concept of free will is a false notion. We do not make choices free from outside forces, which produce motives and the only reason one makes choices are because of motives. Therefore, one can see the logic behind d'Holbach's argument. Though will is controlled by motives, motives are not completely controlled by outside forces. If will was completely controlled by outside forces then everyone that have very similar outside forces will behave very similar but in reality that is not true. Alone outside forces do not affect us but only the perceptions of the forces. Will is free in the since that our own unique perceptions are what give us motives based off outside forces.\n\n
|In short, the actions of man are never free; they are always the necessary consequence of his temperament, of the received ideas, of the notions, either true or false, which he has formed to himself of happiness: of his opinions, strengthened by example, forfeited by education, consolidated by daily experience. (d'Holbach, System of Man's Free Agency; p. 4)|\n|[Man] is not the architect of his own conformation; this he holds from Nature, he has no controul over his own ideas, or over the modification of his brain; these are due to causes, that, in despite of himself, very frequently without his knowledge, unceasingly act upon him; he is not the master of not loving that which he finds amiable; of not coveting that which appears to him desirable; he is not capable of refusing to deliberate, when he is uncertain of the effects certain objects will produce upon him; he cannot avoid choosing that which he believes will be most advantageous to him. (d'Holbach, System of Man's Free Agency; p. 8)|\nD'Holbach asserts that men do not have free will because they do not have the ability to control their preferences or their inclinations. He also claims that our efforts at 'self conservation' keep us from making any decision from which we would not directly benefit. In response to this I am forced to ask: "what else would it mean to possess free will if we were not able to choose options in our best interest?" I hardly see our choosing the most beneficial actions as proof that we do not have free will-- if we had the choice, why would we act any other way? D'Holbach seems to see 'self-conservation' as getting in the way of our making free decisions, yet these tactics serve as evidence that we do in fact have power over the choices we make.
|...motive is always either the immediate or ultimate advantage he finds or thinks he finds in the action to which he is persuaded...(d'Holbach, System of Man's Free Agency, pg 2)|\n|...by essence man tends to conserve himself, to render his existence happy... (d'Holbach, System of Man's Free Agency, pg 6)|\nd'Holbach elucidates that since man's actions can always be rooted to self-preservation, man is no more than a machine guided purely by necessity, and thus his life is essentially predetermined. However, man is capable of rationally acting out of his favor, a power that is incompatible with the abilities of a machine. d'Holbach would contend that a man who acts in such ways does so as necessarily as any man commits any ordinary act; yet man does in fact possess the capacity to choose, which clearly distinguishes him from the purely mechanical and undermines any predetermination of his life, for certainly it is impossible for destiny to control man when he is able to control himself.
I agree that free will is not merely a tool by which good or evil can operate; however, when one uses his free will to make a poor decision, he ultimately makes the willful choice to do so. I too didn't agree with Evodius's statement that justice can never be used wrongly. Yet Justice is defined as fairness or rightness, especially in the way people are treated or decisions are made; in this light, it is true that one cannot choose to be Just and commit a sin.
|To be a machine, to feel, to think, to know how to distinguish good from bad, as well as blue from yellow, in a word, to be born with an intelligence and a sure moral instinct, and to be but an animal, are therefore characters which are no more contradictory, than to be an ape or a parrot and to be able to give oneself pleasure.... (Julien Offray de La Mettrie, "Man, a Machine", p.3)|\n|Education, then, is only necessity shown to children: legislation is necessity shown to the members of the body politic: morals is the necessity of the relations subsisting between men, shown to reasonable beings.... (Paul Henri Thiry Baron d'Holbach, "Of the System of Man's Free Agency", p.7)|\n|What is the object of morals, if it be not to show man that his interest exacts he should suppress the momentary ebullition of his passions, with a view to promote a more certain happiness, a more lasting well-being, than can possibly result from the gratification of his transitory desires? (Paul Henri Thiry Baron d'Holbach, "Of the System of Man's Free Agency", p.7)|\nMettrie claims that there is no contradiction between a deterministic view of life and being able to lead a moral life. If we are machines acting out a program, and free will nothing but an illusion, how can we be held responsible for our actions? d'Holbach's concept of motives provides a solution. By rewarding 'right' behavior and punishing 'wrong', we set up motives to bring order to life. Society subscribes to, and enforces, the convention of a moral code of personal responsibility. The mutual cooperation thus fostered pays off in the long run, as suggested by the [[Iterated Prisoner's Dilemma|http://en.wikipedia.org/wiki/Prisoner's_dilemma#The_iterated_prisoner.27s_dilemma]]. The deterministic claims of Mettrie and d'Holbach are therefore consistent with a moral view of life.
|It is pretended he [man] is a free agent, or that independent of the causes by which he is moved, he determines his own will; regulates his own condition. (Paul Henri Thiry Baron d'Holbach, "Of the System of Man's Free Agency" p.1)|\n|Action always being the effect of his will once determined, as his will cannot be determined but by motive, which is not in his own power, it follows that he is never the master of the determination of his own peculiar will; that consequently he never acts as a free agent. (Paul Henri Thiry Baron d'Holbach, "Of the System of Man's Free Agency" p.2)|\n|In nature, where every thing is connected by one common bond, there exists no effect without a cause. (Paul Henri Thiry Baron d'Holbach, "Of the System of Man's Free Agency" p.8)|\nThe popular conception of free will, successfully refuted by d'Holbach, is the ability to choose independently of uncontrollable environmental and internal (genetic) factors. However, d'Holbach's denunciation of this extreme conception is also too radical, since he then claims that all choices are determined by uncontrollable causes. Obviously, it is not conceivable to remove one from contextual elements -- the attempt would produce a cipher, a nonentity. Yet, a person must be more than a powerless reactive object, more than just a pen acted upon by gravity, since a person can be aware of causal forces that influence hir. Awareness can then allow one to act on hir own choices, to choose alternatives. Still, d'Holbach might respond that awareness is simply another causal force pushing an individual toward a particular choice.
|The soul is therefore but an empty word, of which no one has any idea, and which an enlightened man should only use to signify the part in us that thinks. (de la Mettrie, Man, a Machine)|\n|Wherefore the soul is but a principle of motion or a material and sensible part of the brain, which can be regarded, without fear of error, as the mainspring of the whole machine, having a visible influence on all the parts. The soul seems even to have been made for the brain, so that all other parts of the system are but a kind of emanation from the brain. (de la Mettrie, Man, a Machine)|\nMettrie argues that the concept of a soul is essentially moot because humans are simply intricately wrought biological machines. I think that Mettrie over-simplifies the concept of the soul when he attributes it solely to "the part in us that thinks"; rather, he should define more precisely what he means by this term. Were it argued that the electrical input one generates from hir environment was processed uniquely yet mechanically through the brain, and it was that distinctive yet biologically mechanical interaction of signals that yielded our exceptional manifestations of personality, I would readily agree with Mettrie. However, as he oversimplifies the individuality of the human machine, thus undervaluing the "soul" I shirk to agree with his philosophy.
You raise a good point. If an option is in our best interest, does it mean that it is necessary that we choose it? Or do we choose it from free will? Which happened first, the chicken or the egg? If we choose it from free will, however, it would also mean that we can choose in the opposite direction. Can we choose an option that is detrimental to our interests? Surely we can! So free will exists!\n!\nBut wait, d'Holbach might say we only choose options against our self interest when there is some greater motive at work, as in a mother sacrificing for her child. We are still choosing the best option from our value judgement, which d'Holbach maintains is determined by all the etc stuff. So... can we ever choose other than what we think is best?
While I appreciate your view that it is because we possess emotion and judgment that we are not machines, I find I have to disagree with your argument. Humans can, sometimes, distinguish between right from wrong. Yet we judge right and wrong based on values, morals, and our unique view of life. All of which, d'Holbach would contend, is shaped by the environment, our past experiences and influences, biological predispositions, and whatnot. We feel emotions, yet what emotion we feel is shaped by influences external and internal, how strongly we feel is biology. Emotion, judgment, and even reason are then the processes by which the machine that is man arrives at a decision.
You have surely struck at the heart of Mettrie's arguments, for he does indeed seem to have neglected any mention of emotions, spirituality, and the rest of the things that you mentioned. Of course, with so much taken out from the text we are reading, perhaps it got lost somewhere among the excised portions. For now, let's give him the benefit of doubt (Tee hee).\n\nd'Holbach, however, does have more to say on this subject. The 'motivation to live' would fit right into d'Holbach's arguments, and I can imagine him claiming that there are influences external and internal that determine emotions, thoughts and judgment. Our emotions, thoughts, and judgments then become processes by which the machine that is man operates, i.e. the software.
I appreciate your confidence in your position. Do I read you right in saying that you agree that we do not have free will? Since it is impossible to make choices free from motives, therefore it is impossible that man has free will. Also, the term 'initially flawed' implies that while d'Holbach might have made a mistake, he was right in the end.... Furthermore, d'Holbach might extend your last idea with the following:\nYour will is powered by your motives. Because your motives, and all the other external and internal influences, dictate to you which choice is the best choice, that will be the choice that your will wills. Therefore, while you do have a will to do the willing, it is not free will.
I agree with you most heartily that it would be arrogant to assume a biological disconnect between humans and animals. However, what are these 'compiled characteristics' that set each person apart? Could you articulate them for me, so that I may decide for myself whether I agree with your use of the term 'soul' more than de la Mettrie.
You raise a tricky point about human nature and free will, and I think it merits a lot more thought. However, d'Holbach might respond to your first question by stating that 'we do not have any choice in whether to be guided by necessity nor our own natures, and that is why we do not have free will'. Unfortunately, I do not understand your second question here well enough to offer any insight.
I believe that you are dead-on with your interpretation of Augustine's philosophy regarding the relationships between free will, good and sin, and think that yes, the ability to enact sin is the only way in which one can know to enact good. Without consciously making the distinction between that which is good and that which is not, one simply has mindless action. The creation of the distinction was to know and evaluate the good and the sin and begin living life conscientiously, being aware of the choice and the following consequences.\nYour commentary also generated other questions for me. So, if God is promising humankind a reward for acting well and punishment for acting poorly, does that not invalidate the authenticity of an action's genuineness? Are doing good and sinning evaluated simply on the acts themselves or rather on the intentions and motives behind those actions? If one does good only because ze desires a reward or fears punishment, doesn't that invalidate the integrity of hir action? Can you truly do good if it is simply for selfish purposes? These are not questions that you needed to address, obviously, but they would be interesting to explore, nonetheless.
I would for potential clarity point to a subtle distinction between "doing right" and expedience. While the phrase "do right" in the first quotation is ambiguous and you validly point out its ambiguity, it appears that Augustine would distinguish "right" from "expedient". It would certainly be expedient if the rich man dropped the loaf of bread, but righteousness connotes a conscious agency-- one must commit to righteousness rather than merely stumble upon it.
|It is the great complication of motion in man, it is the variety of his action, it is the multiplicity of causes that move him, whether simultaneously or in continual succession, that persuades him he is a free agent: if all his motions were simple, if the causes that move him did not confound themselves with each other, if they were distinct, if his machine was less complicated, he would perceive that all his actions were necessary, because he would be enabled to recur instantly to the cause that made him act. (p. 5, d'Holbach)|\n|At length human vanity accommodated itself to an hypothesis which, unquestionable, appears to distinguish man from all other physical beings by assigning to him the special privilege of a total independence of all other causes. (p. 1, d'Holbach)|\nAs the intricate, subtle, and sometimes-irrational functioning of the human mind shrouds the path from cause to effect into obscurity, it becomes increasingly tempting to replace the idea of mental machinery behind decision-making with the amorphous concept of "free will". Purely-spontaneous, lawless whimsy acts as a medium between motive and action, the public consciousness seems to suggest.\nOur will either arises from exterior causes or nothingness -- arising as prima causa. Just as we were compelled into existence by external events, so, too, was our will. It arose as part of our existence which in turn was formed entirely from without. So how could the will render itself "free" from the factors that formed it? Or could the will be disparate from the events causing our existence?
Paul-Henry Thiry (Baron [[d'Holbach|http://plato.stanford.edu/entries/holbach/#1]]) (1723-1789) participated in the blossoming of the French Enlightenment, and articulated a materialist and determinist account of human action. His [[System of Nature|http://homepages.paradise.net.nz/freethought/holbach/system/0syscontents.htm]] (1770) is the most central and widely read of his works.
I definitely agree with your argument that d'Holbach denies us of having free will because I was very back and forth with the point he was trying to make, during class. However, I think that d'Holbach would respond to your argument (and mine as well) with the statement that he made in the beginning of his piece: [Man's life is a line that Nature commands him to describe upon the surface of the earth: without his ever being able to swerve from it even for an instant. He is born without his own consent] I also am interested to see where you were going with the question that you asked at the end of your commentary because I'm now left wondering if God is what is truly holding us back from 'acting to our advantage' as you have stated.
Our TA, [[Behdad|bbozorgnia]], holds office hours in the ''Davenport Campus Center'' Mondays and Wednesdays. Drop by between ''8pm and 9:30pm'' to discuss the readings, weekly assignments, and expectations for the course.
''Eureka!'' I've discovered the source of Safari's problems with our site. It seems to "choke" when ''curly quotes'' and ''apostrophes'' (the ones that look different for starting and ending a quote, which Microsoft Word loves to "fix" for us) appear within table-box formatting. Since many people were pasting in excerpts within boxes (as invited to do!), and including quote marks at either end (which wasn't necessary, but was a common choice), this situation was happening frequently.\n!\nIf you know how to turn the "smart quotes" feature off (Tools Menu —> AutoFormat —> AutoFormat As You Type) in Word, it will result in text that's more internet friendly, not only for this site, but for email as well (where curly quotes often get mangled into strange characters.)\n!\nOf course, in the meantime, I'm agitating for a fix among people who can address both how the site's basic code works, and how Safari has trouble with something that shouldn't be such a problem.\n!\nAt any rate, you should continue to follow guidelines for [[titles and tags]], which should never use funky characters because of how they often end up confounding the handling of text between servers, databases, and end-users.
Please log in (see link at upper right) using your email tag and your individual password (as emailed to you). Once you are logged in, you will see a list of class members here:\n<<tiddler LogInConfirm>>\n<<tiddler [[seminar participants]]>>
• [[Compose a commentary|submitting commentaries]] on the reading (proofread and check word count), for Tuesday or Thursday, according to the <<tag signup>>.\n• Make a [[peer comment]] on at least one submission from a previous class\n• [[Revise|revise]] commentaries by your "off day" a week later. For example, a commentary turned in on Jan 31 needs to be revised in response to peer/TA/Professor feedback by Feb 9. (Exception: if you have //not// gotten any feedback from professor or TA at least a day before the revision is normally due, you have an automatic extension for a week.)
|But these efforts are all in vain; and whatever capricious and irregular actions we may perform; as the desire showing our liberty is the sole motive of our actions; we can never free oursevles from the bonds of necessity (p. 64).|\n|Actions are by their very nature temporary and perishing; and where they proceed not from some cause in the characters and disposition of the person, who perform'd them, they infix themselves upon him, and can neither redound to his honour, if good, nor infamy, if evil (p.66).|\n\nHume points to necessity as the underlying premise for all action and behavior. He says one cannot be blamed for their actions because they are not in the control of the person to whom they belong. Humans are unified by common characteristics present regardless of cultural or social station, but the differences are what create a personal identity in each person. Perhaps the necessity Hume describes can be attributed simply to human consciousness and nothing further. If it is true that there is a degree of necessity in each person, then this degree forms the basis of one's identity. Necessity is what causes people to act the way they do. A person needs to act, so they will do just that. \n\n\n \n\n\n
(formally called "A Ever Changing self")\n|Several years have now passed since I first realized how numerous were the false opinions that in my youth I had taken to be true, and thus how doubtful were all those that in my youth I had subsequently built upon them. (p.13)|\n|At last I will apply myself earnestly and unreservedly to this general demolition of my opinions. (p.13)|\nDescartes re-evaluates his opinions because he believes that in light of new realizations his old opinions were misguided and must be reconsidered. Descartes' argument only holds true if he believes in an unchanging self hitherto in a fixed mental state by continuous principles and the only change is in the perception of these principles. In reality, the principles in which we hold opinions on constantly change. Descartes mistakenly finds fault in some of his earlier beliefs. It was not that he wrongly thought he had trustworthy senses, when now he is unsure, but rather he changed his definition of trustworthy senses from senses that showed what he perceived, to what happened according to some omniscient being.
I agree with your first assertion that man's ability to deviate from the path of self preservation for some greater purpose is something that seperates him from a machine. Your next statement, however, that it is not "advantageous for one to ...risk one's life to save others," is somewhat unclear. Advantageous to whom, and in what ways? Along your same line of thought, d'Holbach does not offer a sufficient explanation for the phenomenon of large groups of people dying for a cause in which they believe. Yet these assertions do not offer a contradiction to d'Holbach's claim that our paths are predetermined, just to the idea that we are comparable to machines.
The following items have not been tagged and/or titled properly:\n* [[ignorance is bliss]]\n* [[rheinemann's untitled post (please don't leave as New Tiddler)]]\nOther loose ends:\n* something mistakenly entitled """[[jehrenhalt]]""" (If you put the brackets INTO the title, then brackets can no longer help us //refer to// things by putting their titles in brackets.)\n* Comment that got its labels removed, so got "stranded" from the thing it was about: [[kosaekwapong 2006-02-14 13:38:52]]\n//If you are the owner of such a contribution to the site, please fix! Thanks!//
Since this course meets the [[Philosophy Department's|http://www.wesleyan.edu/phil/]] introductory expectations for competence in informal reasoning, we will often dicuss key reasoning terms and associated skills. Please make sure to be prepared for quizzes (three during the course of the semester) to confirm these skills, and visit [[Behdad's office hours]], or mine, if you have questions about this aspect of the course.\n!\n@@Answers to quizzes so far: \n* [[Hume diagram on liberty and necessity]]\n* [[Chisholm argument]]
You make an interesting assertion, saying that there is little difference between human nature and free will. They definietly do have a relationship, but maybe instead of them 'being the same thing', perhaps human nature affects the choices one has because of free will? d'Holbach's reference to God, certainly adds to his arguement, but I would say it makes it a bit stronger? If we do not have free will, but "are guided by necessity", could the necessity possibly be God's influence?
|Every object is determin'd by an absolute fate to a certain degree and direction of its motion, and can no more depart from that precise line, in which it moves, than it can convert itself into an angel, or spirit, or any superior substance. (Hume 58)|\n|Actions are by their very nature temporary and perishing...the action itself may be blameable; it may be contrary to all the rules of morality and religion: But the person is not responsible for it...tis impossible he can, upon its account, become the object of punishment or vengeance. (Hume 66)|\nHume discusses the underlying consistency of necessity and free will and argues that because we have predetermined destinies, we should not be deemed responsible for our actions. I believe that we are the creators of our own future and we have the ability to change the outcome of what is seen as the inevitable. Therefore, the actions themselves should not be at fault as Hume states, but we, as individuals need to take responsibility whether or not our actions are based on desire or necessity because we are in control of the actions we make.
|It will be equally easy to prove, and from the same arguments, that liberty, according to that definition above mentioned, in which all men agree, is also essential to morality, and that no human actions, where it is wanting, are susceptible of any moral qualities, or can be the objects either of approbation or dislike. For as actions are objects of our moral sentiment, so far only as they are indications of the internal character, passions and affections; it is impossible that they can give rise either to praise or blame, where they proceed not from these principles but are derived altogether from external violence. (pg 83) |\nBasically, what Hume is saying in the aforestated paragraph is that one cannot blame or praise another individual for that individual's actions. The actions themselves are not the ones to blame or praise, because they are not triggered by internal morals, but in fact learned from the external environment. I have a problem with this. Actions, although sometimes impulsive and not coming from within, are generally, triggered by an individual's passions, and these passions are responsible for the actions. Consequently, the actions are to blame. If one commits a crime, it is due to an internal inflammation of emotions, and not simply because his environment forced him to do so. This crime must then, give rise to blame.
I agree that the institution of a moral code brings order to life. The question of who should be blamed for our constant indiscretion if we do not have complete control over our will is irrelevant if any social order is to exist. Being that a God, at least in many religions, is purely ideal it makes sense that people who physically inhabit the material world will be punished for crimes in that world. In this way society joins mind and body for the purpose of responsibility.
|The very fact that anyone who uses free will to sin is divinely punished shows that free will was given to enable human beings to live rightly..."(St. Augustine "On Free Choice of the Will" p. 20|\nSt. Augustine throughout this passage tries to explain to Evodius that God has really given man a will of his own. He makes the point that God must have foreknowledge of, but not necessarily control, our actions. God would have to grant us the choice to follow Him or not; to willingly accept and return that love. The question still remains; if God is all-knowing, why do bad things happen? In reply, St. Augustine may say it is the free will of men (and natural forces) that causes "bad" things to happen. The doers of these bad acts are to be punished by God. Thus, if we do have free will, we can and will be held responsible for actions
|"Our idea, therefore, of necessity and causation arises entirely from the uniformity, observable in the operations of nature; where...the mind is determined by custom to infer the one from the appearance of the other," (70).|\n|"From the observation of several parallel instances, philosophersform a maxim, that the connexion between all causes and effects is equally necessary, and that its seeming uncertainty in some instances proceeds from the secret opposition of contrary causes," (73).|\nIf "secret opposition" exists, as Hume states, then his argument that uniformity is "observable" is weakened. "Secret" implies that these causes are not seen. The notion of uniformity includes not only outcomes, but their causes as well. To know that uniformity of outcome will exist, one must be able to see every cause. These hidden causes could produce unexpected outcomes, but their expectability is unknown because causes are not observable and cannot be habitually linked to specific outcomes. His central argument of necessity and causation is thus undermined, as the first quotation states that these ideas "arise entirely from the uniformity; observable in the operations of nature..." \n
I would agree with you as well...not all of our actions can be boiled down to necessity. To combat this point, I think d'Holbach would say that outside forces and conditioning throughout an individual's life, have influenced them in such a way so that they think they are not acting out of necessity, and being spontaneous, whereas it could be just the opposite.
I do