101 Groovy Goals for 1001 Days August 26, 2007 - May 23, 2010
Life 101
Background: #dcc\nForeground: #000\nPrimaryPale: #8aa\nPrimaryLight: #18a\nPrimaryMid: #043\nPrimaryDark: #122\nSecondaryPale: #ffc\nSecondaryLight: #fed\nSecondaryMid: #db4\nSecondaryDark: #841\nTertiaryPale: #eee\nTertiaryLight: #ccc\nTertiaryMid: #333\nTertiaryDark: #666\nError: #f88\n\nmemo:\nlink color = primary mid\nheaders = primary pale\nside menu = tertiary pale\nside menu headers = tertiary mid
/***\n|''Name:''|ForEachTiddlerPlugin|\n|''Version:''|1.0.8 (2007-04-12)|\n|''Source:''|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin|\n|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|\n|''Licence:''|[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]|\n|''Copyright:''|© 2005-2007 [[abego Software|http://www.abego-software.de]]|\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.8 (2007-04-12)\n** Adapted to latest TiddlyWiki 2.2 Beta importTiddlyWiki API (introduced with changeset 2004). TiddlyWiki 2.2 Beta builds prior to changeset 2004 are no longer supported (but TiddlyWiki 2.1 and earlier, of cause)\n* v1.0.7 (2007-03-28)\n** Also support "pre" formatted TiddlyWikis (introduced with TW 2.2) (when using "in" clause to work on external tiddlers)\n* v1.0.6 (2006-09-16)\n** Context provides "viewerTiddler", i.e. the tiddler used to view the macro. Most times this is equal to the "inTiddler", but when using the "tiddler" macro both may be different.\n** Support "begin", "end" and "none" expressions in "write" action\n* v1.0.5 (2006-02-05)\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\nif (!window.abego) window.abego = {};\n\nversion.extensions.ForEachTiddlerPlugin = {\n major: 1, minor: 0, revision: 8, \n date: new Date(2007,3,12), \n source: "http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin",\n licence: "[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]",\n copyright: "Copyright (c) abego Software GmbH, 2005-2007 (www.abego-software.de)"\n};\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 = {\n major: 1, minor: 0, revision: 8, date: new Date(2007,3,12), 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\nabego.parseNamedParameter = function(name, parameter, i) {\n var beginExpression = null;\n if ((i < parameter.length) && parameter[i] == name) {\n i++;\n if (i >= parameter.length) {\n throw "Missing text behind '%0'".format([name]);\n }\n \n return config.macros.forEachTiddler.paramEncode(parameter[i]);\n }\n return null;\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 "begin" option\n var beginExpression = abego.parseNamedParameter("begin", parameter, p);\n if (beginExpression !== null) \n p += 2;\n var endExpression = abego.parseNamedParameter("end", parameter, p);\n if (endExpression !== null) \n p += 2;\n var noneExpression = abego.parseNamedParameter("none", parameter, p);\n if (noneExpression !== null) \n p += 2;\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 if (count > 0 && beginExpression)\n text += config.macros.forEachTiddler.getEvalTiddlerFunction(beginExpression, context)(undefined, context, count, undefined);\n \n for (var i = 0; i < count; i++) {\n var tiddler = tiddlers[i];\n text += func(tiddler, context, count, i);\n }\n \n if (count > 0 && endExpression)\n text += config.macros.forEachTiddler.getEvalTiddlerFunction(endExpression, context)(undefined, context, count, undefined);\n\n if (count == 0 && noneExpression) \n text += config.macros.forEachTiddler.getEvalTiddlerFunction(noneExpression, context)(undefined, context, count, undefined);\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, // the tiddler containing the <<forEachTiddler ...>> macro call.\n viewerTiddler : config.macros.forEachTiddler.getContainingTiddler(placeParam) // the tiddler showing the forEachTiddler result\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 var tiddlyWiki = new TiddlyWiki();\n\n // Starting with TW 2.2 there is a helper function to import the tiddlers\n if (tiddlyWiki.importTiddlyWiki) {\n if (!tiddlyWiki.importTiddlyWiki(content))\n throw "File '"+path+"' is not a TiddlyWiki.";\n tiddlyWiki.dirty = false;\n return tiddlyWiki;\n }\n \n // The legacy code, for TW < 2.2\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 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***/\n\n
I am currently border-line in terms of my BMI index, so dropping it a few points would put me out of the danger zone.\n\n//Oct 07// 1 point down...\n//Sep 08// at 24 - 1 point to go!
<<forEachTiddler\n where\n 'tiddler.tags.contains("vitality")'\n >>
[[Vitality]]\n[[Love Connections]]\n[[Creative Career]]\nFun-n-Adventure\n[[Enjoy Art/Culture]]\n[[Wealth]]\n[[Learn]]\n[[Habits]]\n\n[[Full List]]\n\n[[In Progress]]\n\n[[Close To Completion]]\n\n[[Completed - Victories!]]\n\n
[[What Is This Place?]]\n[[How Far Have I Gotten?]]
<<forEachTiddler\n where\n 'tiddler.tags.contains("connect")'\n >>
I enjoy my connections with my older nephews and niece, but want to feel more connected with the younger kids, including my cousin's kids. My goal is to visit each of them at least twice.\n\n//December 29, 2007//\nHad a fun visit with my oldest nephews and niece this month. On Christmas, spoke with my youngest niece on the phone! Told her I'd see her in 2008...\n\n//April 2008//\nVisited my half-brother, wife and their 3 boys.\n\n//August 2008//\nVisited my nephew, took a road trip with my niece and saw my brother and his daughter. \n\n//Dec 2008//\nVisited my cousin and her 3 children.
Those who know me will not be surprised that I jumped ALL over this meme that's running around the web:\n<<<\n//The Mission:// Complete [[101 preset tasks in a period of 1001 days|http://triplux.com/dayzero/default.asp?view=masterlist]]. \n\n//The Criteria://\nTasks must be specific (ie. no ambiguity in the wording) with a result that is either measurable or clearly defined. Tasks must also be realistic and stretching (ie. represent some amount of work on my part).\n\n//Why 1001 Days?//\nMany people have created lists in the past - frequently simple goals such as New Year's resolutions. The key to beating procrastination is to set a deadline that is realistic. 1001 Days (about 2.75 years) is a better period of time than a year, because it allows you several seasons to complete the tasks, which is better for organising and timing some tasks such as overseas trips or outdoor activities.\n<<<\n\nClick on any of the categories to the left and you'll get a list of all the goals for that category.\nClick on any of the goals to learn more about where I'm and what I'm up to for that item.\nClick on "Timeline" to the right to see which goals I've updated recently.\n\n''When will my 1001 days be up?''\nMay 23, 2010 - you can see how many days are left [[here|http://www.timeanddate.com/counters/customcounter.html?month=5&day=23&year=2010&hour=23&min=59&sec=59&p0=250]]\n\n''Want to leave me a comment, cheer me on, or ask me a question?'' \n[[Go ahead!|http://www.pozvibes.com/101in1001/comments]]\n\n\nBy the way, if you've never seen this type of page before, it's called a TiddlyWiki! You can learn more and download the basic file [[here|http://www.tiddlywiki.com]]. You can double click on the text of any goal to play around with editing a tiddler, but don't worry, your changes won't be saved.
/***\n|''Name:''|IntelliTaggerPlugin|\n|''Version:''|1.0.2 (2007-07-25)|\n|''Type:''|plugin|\n|''Source:''|http://tiddlywiki.abego-software.de/#IntelliTaggerPlugin|\n|''Author:''|Udo Borkowski (ub [at] abego-software [dot] de)|\n|''Documentation:''|[[IntelliTaggerPlugin Documentation]]|\n|''~SourceCode:''|[[IntelliTaggerPlugin SourceCode]]|\n|''Licence:''|[[BSD open source license (abego Software)]]|\n|''~CoreVersion:''|2.0.8|\n|''Browser:''|Firefox 1.5.0.2 or better|\n***/\n/***\n!Version History\n* 1.0.2 (2007-07-25): \n** Feature: "Return" key may be used to accept first tag suggestion (beside "Alt-1")\n** Bugfix: Keyboard shortcuts (Alt+3 etc.) shifted\n* 1.0.1 (2007-05-18): Improvement: Speedup when using TiddlyWikis with many tags\n* 1.0.0 (2006-04-26): Initial release\n\n***/\n// /%\nif(!version.extensions.IntelliTaggerPlugin){if(!window.abego){window.abego={};}if(!abego.internal){abego.internal={};}abego.alertAndThrow=function(s){alert(s);throw s;};if(version.major<2){abego.alertAndThrow("Use TiddlyWiki 2.0.8 or better to run the IntelliTagger Plugin.");}version.extensions.IntelliTaggerPlugin={major:1,minor:0,revision:2,date:new Date(2007,6,25),type:"plugin",source:"http://tiddlywiki.abego-software.de/#IntelliTaggerPlugin",documentation:"[[IntelliTaggerPlugin Documentation]]",sourcecode:"[[IntelliTaggerPlugin SourceCode]]",author:"Udo Borkowski (ub [at] abego-software [dot] de)",licence:"[[BSD open source license (abego Software)]]",tiddlywiki:"Version 2.0.8 or better",browser:"Firefox 1.5.0.2 or better"};abego.createEllipsis=function(_2){var e=createTiddlyElement(_2,"span");e.innerHTML="…";};abego.isPopupOpen=function(_4){return _4&&_4.parentNode==document.body;};abego.openAsPopup=function(_5){if(_5.parentNode!=document.body){document.body.appendChild(_5);}};abego.closePopup=function(_6){if(abego.isPopupOpen(_6)){document.body.removeChild(_6);}};abego.getWindowRect=function(){return {left:findScrollX(),top:findScrollY(),height:findWindowHeight(),width:findWindowWidth()};};abego.moveElement=function(_7,_8,_9){_7.style.left=_8+"px";_7.style.top=_9+"px";};abego.centerOnWindow=function(_a){if(_a.style.position!="absolute"){throw "abego.centerOnWindow: element must have absolute position";}var _b=abego.getWindowRect();abego.moveElement(_a,_b.left+(_b.width-_a.offsetWidth)/2,_b.top+(_b.height-_a.offsetHeight)/2);};abego.isDescendantOrSelf=function(_c,e){while(e){if(_c==e){return true;}e=e.parentNode;}return false;};abego.toSet=function(_e){var _f={};for(var i=0;i<_e.length;i++){_f[_e[i]]=true;}return _f;};abego.filterStrings=function(_11,_12,_13){var _14=[];for(var i=0;i<_11.length&&(_13===undefined||_14.length<_13);i++){var s=_11[i];if(s.match(_12)){_14.push(s);}}return _14;};abego.arraysAreEqual=function(a,b){if(!a){return !b;}if(!b){return false;}var n=a.length;if(n!=b.length){return false;}for(var i=0;i<n;i++){if(a[i]!=b[i]){return false;}}return true;};abego.moveBelowAndClip=function(_1b,_1c){if(!_1c){return;}var _1d=findPosX(_1c);var _1e=findPosY(_1c);var _1f=_1c.offsetHeight;var _20=_1d;var _21=_1e+_1f;var _22=findWindowWidth();if(_22<_1b.offsetWidth){_1b.style.width=(_22-100)+"px";}var _23=_1b.offsetWidth;if(_20+_23>_22){_20=_22-_23-30;}if(_20<0){_20=0;}_1b.style.left=_20+"px";_1b.style.top=_21+"px";_1b.style.display="block";};abego.compareStrings=function(a,b){return (a==b)?0:(a<b)?-1:1;};abego.sortIgnoreCase=function(arr){var _27=[];var n=arr.length;for(var i=0;i<n;i++){var s=arr[i];_27.push([s.toString().toLowerCase(),s]);}_27.sort(function(a,b){return (a[0]==b[0])?0:(a[0]<b[0])?-1:1;});for(i=0;i<n;i++){arr[i]=_27[i][1];}};abego.getTiddlerField=function(_2d,_2e,_2f){var _30=document.getElementById(_2d.idPrefix+_2e);var e=null;if(_30!=null){var _32=_30.getElementsByTagName("*");for(var t=0;t<_32.length;t++){var c=_32[t];if(c.tagName.toLowerCase()=="input"||c.tagName.toLowerCase()=="textarea"){if(!e){e=c;}if(c.getAttribute("edit")==_2f){e=c;}}}}return e;};abego.setRange=function(_35,_36,end){if(_35.setSelectionRange){_35.setSelectionRange(_36,end);var max=0+_35.scrollHeight;var len=_35.textLength;var top=max*_36/len,bot=max*end/len;_35.scrollTop=Math.min(top,(bot+top-_35.clientHeight)/2);}else{if(_35.createTextRange!=undefined){var _3b=_35.createTextRange();_3b.collapse();_3b.moveEnd("character",end);_3b.moveStart("character",_36);_3b.select();}else{_35.select();}}};abego.internal.TagManager=function(){var _3c=null;var _3d=function(){if(_3c){return;}_3c={};store.forEachTiddler(function(_3e,_3f){for(var i=0;i<_3f.tags.length;i++){var tag=_3f.tags[i];var _42=_3c[tag];if(!_42){_42=_3c[tag]={count:0,tiddlers:{}};}_42.tiddlers[_3f.title]=true;_42.count+=1;}});};var _43=TiddlyWiki.prototype.saveTiddler;TiddlyWiki.prototype.saveTiddler=function(_44,_45,_46,_47,_48,_49){var _4a=this.fetchTiddler(_44);var _4b=_4a?_4a.tags:[];var _4c=(typeof _49=="string")?_49.readBracketedList():_49;_43.apply(this,arguments);if(!abego.arraysAreEqual(_4b,_4c)){abego.internal.getTagManager().reset();}};var _4d=TiddlyWiki.prototype.removeTiddler;TiddlyWiki.prototype.removeTiddler=function(_4e){var _4f=this.fetchTiddler(_4e);var _50=_4f&&_4f.tags.length>0;_4d.apply(this,arguments);if(_50){abego.internal.getTagManager().reset();}};this.reset=function(){_3c=null;};this.getTiddlersWithTag=function(tag){_3d();var _52=_3c[tag];return _52?_52.tiddlers:null;};this.getAllTags=function(_53){_3d();var _54=[];for(var i in _3c){_54.push(i);}for(i=0;_53&&i<_53.length;i++){_54.pushUnique(_53[i],true);}abego.sortIgnoreCase(_54);return _54;};this.getTagInfos=function(){_3d();var _56=[];for(var _57 in _3c){_56.push([_57,_3c[_57]]);}return _56;};var _58=function(a,b){var a1=a[1];var b1=b[1];var d=b[1].count-a[1].count;return d!=0?d:abego.compareStrings(a[0].toLowerCase(),b[0].toLowerCase());};this.getSortedTagInfos=function(){_3d();var _5e=this.getTagInfos();_5e.sort(_58);return _5e;};this.getPartnerRankedTags=function(_5f){var _60={};for(var i=0;i<_5f.length;i++){var _62=this.getTiddlersWithTag(_5f[i]);for(var _63 in _62){var _64=store.getTiddler(_63);if(!(_64 instanceof Tiddler)){continue;}for(var j=0;j<_64.tags.length;j++){var tag=_64.tags[j];var c=_60[tag];_60[tag]=c?c+1:1;}}}var _68=abego.toSet(_5f);var _69=[];for(var n in _60){if(!_68[n]){_69.push(n);}}_69.sort(function(a,b){var d=_60[b]-_60[a];return d!=0?d:abego.compareStrings(a.toLowerCase(),b.toLowerCase());});return _69;};};abego.internal.getTagManager=function(){if(!abego.internal.gTagManager){abego.internal.gTagManager=new abego.internal.TagManager();}return abego.internal.gTagManager;};(function(){var _6e=2;var _6f=1;var _70=30;var _71;var _72;var _73;var _74;var _75;var _76;if(!abego.IntelliTagger){abego.IntelliTagger={};}var _77=function(){return _72;};var _78=function(tag){return _75[tag];};var _7a=function(s){var i=s.lastIndexOf(" ");return (i>=0)?s.substr(0,i):"";};var _7d=function(_7e){var s=_7e.value;var len=s.length;return (len>0&&s[len-1]!=" ");};var _81=function(_82){var s=_82.value;var len=s.length;if(len>0&&s[len-1]!=" "){_82.value+=" ";}};var _85=function(tag,_87,_88){if(_7d(_87)){_87.value=_7a(_87.value);}story.setTiddlerTag(_88.title,tag,0);_81(_87);abego.IntelliTagger.assistTagging(_87,_88);};var _89=function(n){if(_76&&_76.length>n){return _76[n];}return (_74&&_74.length>n)?_74[n]:null;};var _8b=function(n,_8d,_8e){var _8f=_89(n);if(_8f){_85(_8f,_8d,_8e);}};var _90=function(_91){var pos=_91.value.lastIndexOf(" ");var _93=(pos>=0)?_91.value.substr(++pos,_91.value.length):_91.value;return new RegExp(_93.escapeRegExp(),"i");};var _94=function(_95,_96){var _97=0;for(var i=0;i<_95.length;i++){if(_96[_95[i]]){_97++;}}return _97;};var _99=function(_9a,_9b,_9c){var _9d=1;var c=_9a[_9b];for(var i=_9b+1;i<_9a.length;i++){if(_9a[i][1].count==c){if(_9a[i][0].match(_9c)){_9d++;}}else{break;}}return _9d;};var _a0=function(_a1,_a2){var _a3=abego.internal.getTagManager().getSortedTagInfos();var _a4=[];var _a5=0;for(var i=0;i<_a3.length;i++){var c=_a3[i][1].count;if(c!=_a5){if(_a2&&(_a4.length+_99(_a3,i,_a1)>_a2)){break;}_a5=c;}if(c==1){break;}var s=_a3[i][0];if(s.match(_a1)){_a4.push(s);}}return _a4;};var _a9=function(_aa,_ab){return abego.filterStrings(abego.internal.getTagManager().getAllTags(_ab),_aa);};var _ac=function(){if(!_71){return;}var _ad=store.getTiddlerText("IntelliTaggerMainTemplate");if(!_ad){_ad="<b>Tiddler IntelliTaggerMainTemplate not found</b>";}_71.innerHTML=_ad;applyHtmlMacros(_71,null);refreshElements(_71,null);};var _ae=function(e){if(!e){var e=window.event;}var tag=this.getAttribute("tag");if(_73){_73.call(this,tag,e);}return false;};var _b2=function(_b3){createTiddlyElement(_b3,"span",null,"tagSeparator"," | ");};var _b4=function(_b5,_b6,_b7,_b8,_b9){if(!_b6){return;}var _ba=_b8?abego.toSet(_b8):{};var n=_b6.length;var c=0;for(var i=0;i<n;i++){var tag=_b6[i];if(_ba[tag]){continue;}if(c>0){_b2(_b5);}if(_b9&&c>=_b9){abego.createEllipsis(_b5);break;}c++;var _bf="";var _c0=_b5;if(_b7<10){_c0=createTiddlyElement(_b5,"span",null,"numberedSuggestion");_b7++;var key=_b7<10?""+(_b7):"0";createTiddlyElement(_c0,"span",null,"suggestionNumber",key+") ");var _c2=_b7==1?"Return or ":"";_bf=" (Shortcut: lt-%0)".format([key,_c2]);}var _c3=config.views.wikified.tag.tooltip.format([tag]);var _c4=(_78(tag)?"Remove tag '%0'%1":"Add tag '%0'%1").format([tag,_bf]);var _c5="%0; Shift-Click: %1".format([_c4,_c3]);var btn=createTiddlyButton(_c0,tag,_c5,_ae,_78(tag)?"currentTag":null);btn.setAttribute("tag",tag);}};var _c7=function(){if(_71){window.scrollTo(0,ensureVisible(_71));}if(_77()){window.scrollTo(0,ensureVisible(_77()));}};var _c8=function(e){if(!e){var e=window.event;}if(!_71){return;}var _cb=resolveTarget(e);if(_cb==_77()){return;}if(abego.isDescendantOrSelf(_71,_cb)){return;}abego.IntelliTagger.close();};addEvent(document,"click",_c8);var _cc=Story.prototype.gatherSaveFields;Story.prototype.gatherSaveFields=function(e,_ce){_cc.apply(this,arguments);var _cf=_ce.tags;if(_cf){_ce.tags=_cf.trim();}};var _d0=function(_d1){story.focusTiddler(_d1,"tags");var _d2=abego.getTiddlerField(story,_d1,"tags");if(_d2){var len=_d2.value.length;abego.setRange(_d2,len,len);window.scrollTo(0,ensureVisible(_d2));}};var _d4=config.macros.edit.handler;config.macros.edit.handler=function(_d5,_d6,_d7,_d8,_d9,_da){_d4.apply(this,arguments);var _db=_d7[0];if((_da instanceof Tiddler)&&_db=="tags"){var _dc=_d5.lastChild;_dc.onfocus=function(e){abego.IntelliTagger.assistTagging(_dc,_da);setTimeout(function(){_d0(_da.title);},100);};_dc.onkeyup=function(e){if(!e){var e=window.event;}if(e.altKey&&!e.ctrlKey&&!e.metaKey&&(e.keyCode>=48&&e.keyCode<=57)){_8b(e.keyCode==48?9:e.keyCode-49,_dc,_da);}else{if(e.ctrlKey&&e.keyCode==32){_8b(0,_dc,_da);}}if(!e.ctrlKey&&(e.keyCode==13||e.keyCode==10)){_8b(0,_dc,_da);}setTimeout(function(){abego.IntelliTagger.assistTagging(_dc,_da);},100);return false;};_81(_dc);}};var _e0=function(e){if(!e){var e=window.event;}var _e3=resolveTarget(e);var _e4=_e3.getAttribute("tiddler");if(_e4){story.displayTiddler(_e3,_e4,"IntelliTaggerEditTagsTemplate",false);_d0(_e4);}return false;};var _e5=config.macros.tags.handler;config.macros.tags.handler=function(_e6,_e7,_e8,_e9,_ea,_eb){_e5.apply(this,arguments);abego.IntelliTagger.createEditTagsButton(_eb,createTiddlyElement(_e6.lastChild,"li"));};var _ec=function(){if(_71&&_72&&!abego.isDescendantOrSelf(document,_72)){abego.IntelliTagger.close();}};setInterval(_ec,100);abego.IntelliTagger.displayTagSuggestions=function(_ed,_ee,_ef,_f0,_f1){_74=_ed;_75=abego.toSet(_ee);_76=_ef;_72=_f0;_73=_f1;if(!_71){_71=createTiddlyElement(document.body,"div",null,"intelliTaggerSuggestions");_71.style.position="absolute";}_ac();abego.openAsPopup(_71);if(_77()){var w=_77().offsetWidth;if(_71.offsetWidth<w){_71.style.width=(w-2*(_6e+_6f))+"px";}abego.moveBelowAndClip(_71,_77());}else{abego.centerOnWindow(_71);}_c7();};abego.IntelliTagger.assistTagging=function(_f3,_f4){var _f5=_90(_f3);var s=_f3.value;if(_7d(_f3)){s=_7a(s);}var _f7=s.readBracketedList();var _f8=_f7.length>0?abego.filterStrings(abego.internal.getTagManager().getPartnerRankedTags(_f7),_f5,_70):_a0(_f5,_70);abego.IntelliTagger.displayTagSuggestions(_a9(_f5,_f7),_f7,_f8,_f3,function(tag,e){if(e.shiftKey){onClickTag.call(this,e);}else{_85(tag,_f3,_f4);}});};abego.IntelliTagger.close=function(){abego.closePopup(_71);_71=null;return false;};abego.IntelliTagger.createEditTagsButton=function(_fb,_fc,_fd,_fe,_ff,id,_101){if(!_fd){_fd="[edit]";}if(!_fe){_fe="Edit the tags";}if(!_ff){_ff="editTags";}var _102=createTiddlyButton(_fc,_fd,_fe,_e0,_ff,id,_101);_102.setAttribute("tiddler",(_fb instanceof Tiddler)?_fb.title:String(_fb));return _102;};abego.IntelliTagger.getSuggestionTagsMaxCount=function(){return 100;};config.macros.intelliTagger={label:"intelliTagger",handler:function(_103,_104,_105,_106,_107,_108){var _109=_107.parseParams("list",null,true);var _10a=_109[0]["action"];for(var i=0;_10a&&i<_10a.length;i++){var _10c=_10a[i];var _10d=config.macros.intelliTagger.subhandlers[_10c];if(!_10d){abego.alertAndThrow("Unsupported action '%0'".format([_10c]));}_10d(_103,_104,_105,_106,_107,_108);}},subhandlers:{showTags:function(_10e,_10f,_110,_111,_112,_113){_b4(_10e,_74,_76?_76.length:0,_76,abego.IntelliTagger.getSuggestionTagsMaxCount());},showFavorites:function(_114,_115,_116,_117,_118,_119){_b4(_114,_76,0);},closeButton:function(_11a,_11b,_11c,_11d,_11e,_11f){var _120=createTiddlyButton(_11a,"close","Close the suggestions",abego.IntelliTagger.close);},version:function(_121){var t="IntelliTagger %0.%1.%2".format([version.extensions.IntelliTaggerPlugin.major,version.extensions.IntelliTaggerPlugin.minor,version.extensions.IntelliTaggerPlugin.revision]);var e=createTiddlyElement(_121,"a");e.setAttribute("href","http://tiddlywiki.abego-software.de/#IntelliTaggerPlugin");e.innerHTML="<font color=\s"black\s" face=\s"Arial, Helvetica, sans-serif\s">"+t+"<font>";},copyright:function(_124){var e=createTiddlyElement(_124,"a");e.setAttribute("href","http://tiddlywiki.abego-software.de");e.innerHTML="<font color=\s"black\s" face=\s"Arial, Helvetica, sans-serif\s">© 2006-2007 <b><font color=\s"red\s">abego</font></b> Software<font>";}}};})();config.shadowTiddlers["IntelliTaggerStyleSheet"]="/***\sn"+"!~IntelliTagger Stylesheet\sn"+"***/\sn"+"/*{{{*/\sn"+".intelliTaggerSuggestions {\sn"+"\stposition: absolute;\sn"+"\stwidth: 600px;\sn"+"\sn"+"\stpadding: 2px;\sn"+"\stlist-style: none;\sn"+"\stmargin: 0;\sn"+"\sn"+"\stbackground: #eeeeee;\sn"+"\stborder: 1px solid DarkGray;\sn"+"}\sn"+"\sn"+".intelliTaggerSuggestions .currentTag {\sn"+"\stfont-weight: bold;\sn"+"}\sn"+"\sn"+".intelliTaggerSuggestions .suggestionNumber {\sn"+"\stcolor: #808080;\sn"+"}\sn"+"\sn"+".intelliTaggerSuggestions .numberedSuggestion{\sn"+"\stwhite-space: nowrap;\sn"+"}\sn"+"\sn"+".intelliTaggerSuggestions .intelliTaggerFooter {\sn"+"\stmargin-top: 4px;\sn"+"\stborder-top-width: thin;\sn"+"\stborder-top-style: solid;\sn"+"\stborder-top-color: #999999;\sn"+"}\sn"+".intelliTaggerSuggestions .favorites {\sn"+"\stborder-bottom-width: thin;\sn"+"\stborder-bottom-style: solid;\sn"+"\stborder-bottom-color: #999999;\sn"+"\stpadding-bottom: 2px;\sn"+"}\sn"+"\sn"+".intelliTaggerSuggestions .normalTags {\sn"+"\stpadding-top: 2px;\sn"+"}\sn"+"\sn"+".intelliTaggerSuggestions .intelliTaggerFooter .button {\sn"+"\stfont-size: 10px;\sn"+"\sn"+"\stpadding-left: 0.3em;\sn"+"\stpadding-right: 0.3em;\sn"+"}\sn"+"\sn"+"/*}}}*/\sn";config.shadowTiddlers["IntelliTaggerMainTemplate"]="<!--\sn"+"{{{\sn"+"-->\sn"+"<div class=\s"favorites\s" macro=\s"intelliTagger action: showFavorites\s"></div>\sn"+"<div class=\s"normalTags\s" macro=\s"intelliTagger action: showTags\s"></div>\sn"+"<!-- The Footer (with the Navigation) ============================================ -->\sn"+"<table class=\s"intelliTaggerFooter\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\st<span macro=\s"intelliTagger action: closeButton\s"></span>\sn"+"\st</td>\sn"+"\st<td align=\s"right\s">\sn"+"\st\st<span macro=\s"intelliTagger action: version\s"></span>, <span macro=\s"intelliTagger action: copyright \s"></span>\sn"+"\st</td>\sn"+" </tr>\sn"+"</tbody></table>\sn"+"<!--\sn"+"}}}\sn"+"-->\sn";config.shadowTiddlers["IntelliTaggerEditTagsTemplate"]="<!--\sn"+"{{{\sn"+"-->\sn"+"<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler'></div>\sn"+"<div class='title' macro='view title'></div>\sn"+"<div class='tagged' macro='tags'></div>\sn"+"<div class='viewer' macro='view text wikified'></div>\sn"+"<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler'></div>\sn"+"<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>\sn"+"<!--\sn"+"}}}\sn"+"-->\sn";config.shadowTiddlers["BSD open source license (abego Software)"]="See [[Licence|http://tiddlywiki.abego-software.de/#[[BSD open source license]]]].";config.shadowTiddlers["IntelliTaggerPlugin Documentation"]="[[Documentation on abego Software website|http://tiddlywiki.abego-software.de/doc/IntelliTagger.pdf]].";config.shadowTiddlers["IntelliTaggerPlugin SourceCode"]="[[Plugin source code on abego Software website|http://tiddlywiki.abego-software.de/archive/IntelliTaggerPlugin/Plugin-IntelliTagger-src.1.0.2.js]]\sn";(function(){var _126=restart;restart=function(){setStylesheet(store.getTiddlerText("IntelliTaggerStyleSheet"),"IntelliTaggerStyleSheet");_126.apply(this,arguments);};})();}\n// %/\n
Maybe in Cancun 2009??\n\n[[ON Triathlons '08|http://www.trisportcanada.com/raceschedule.php]]
Leave a message!
I have meditated in the past, and KNOW it really helps me, but I really need to make it a daily habit to help relieve stress build-up (and just be calmer and more focused in general).\n\n//Aug 26, 2007// Investigated a few possibilities. Downloaded instructions and a guided track from the web, used it for first time (20 min)\n\n//Sep 10, 2007// Have missed only a few sessions of 15 minutes x twice a day, and already feel a huge difference in my stress levels\n\n//Sep 22// Getting very close to making this a daily habit - just have to remember to set aside time for it, even if I'm not feeling stressed out that day.\n\n//March 2008// Can't call this "done" as I still have days where I don't make the time, but I can say it's definitely a life habit, one that I miss when I don't do it
<<forEachTiddler\n where\n 'tiddler.tags.contains("connect")'\n >><<forEachTiddler\n where\n 'tiddler.tags.contains("vitality")'\n >><<forEachTiddler\n where\n 'tiddler.tags.contains("habit")'\n >><<forEachTiddler\n where\n 'tiddler.tags.contains("fun")'\n >><<forEachTiddler\n where\n 'tiddler.tags.contains("culture")'\n >><<forEachTiddler\n where\n 'tiddler.tags.contains("wealth")'\n >><<forEachTiddler\n where\n 'tiddler.tags.contains("create")'\n >>
<<forEachTiddler\n where\n 'tiddler.tags.contains("habit")'\n >>
<<forEachTiddler\n where\n 'tiddler.tags.contains("create")'\n >>
<<forEachTiddler\n where\n 'tiddler.tags.contains("fun")'\n >>
<<forEachTiddler\n where\n 'tiddler.tags.contains("culture")'\n >>
As you can see, these are as much about sharing my success as making money. To me, that is true wealth - to be able to use my resources to enjoy my life //and// help others.\n\n<<forEachTiddler\n where\n 'tiddler.tags.contains("wealth")'\n >>
<<forEachTiddler\n where\n 'tiddler.tags.contains("complete")'\n >>
= sugar one meal/month\n\nThis is going to be a challenge! My body chemistry does much better with no sugar in it, but it's everywhere!!
//Sep 08// Have gone 100% vegan as of one month ago!\n\n\n\n//Sep 07//\nI've been vegetarian for about 15 years now (! Hard to believe !) but have definitely relied on dairy and eggs as a major source of protein.\n\nEating in, I think I can get creative with grains and beans and lentils, and have already started buying new kinds and looking up recipes. (mmm adzuki beans!)\n\nBut eating out is more of a challenge, especially as my body chemistry works best with protein at each meal. So I'll probably start carting around nuts and dried soybeans to throw on salads...\n\nThe other thing is I don't want to over-rely on soy, as it is very processed and genetically-modified, and there have been a few studies that show you can have too much of it! So I'd like to keep soy to be the main protein for only about 1 meal a day.\n\n90% vegan works out to about 2 fish/egg/dairy meals per week\n\n
= once in a meal or snack every 10 days
= one meal/week\n\n//Oct 6// I never buy white flour, so this is usually from eating out. I think I'm only averaging 1-2 servings a week but will start monitoring to check!
Make sure I do the dishes after dinner. Wake up to a clean sink!
At least! Putting in 35 spots for 33 months.\n\n( S N J F M M A - - - - - - - - - - - - - - - - - - - - - - - - - - )
Writing, Editing, Producing, Business Planning or other creating - one hour or more a day\n\n
At least 5 times/week\n\n//Oct 26//\nI'm gonna call this complete unless I fall off the wagon. Now that I'm taking lessons, I'm definitely practicing 5 or more times a week.\n\n//Oct 6//\nPracticed 6/7 days this week\n\n//Sep 30//\nPracticed daily Sun-Sat!\n\n//Sep 22//\nJust bought a full size touch-sensitive, weighted-key digital keyboard and stand to replace my old 61-key model resting on a chair and box. Better sound, better set-up = much more appealing to practice!\n\n\n
Give out at least 15 cheers/week at [[43 things|http://www.43things.com]]\n\n
My Toronto niece is 4 now, but by next spring she'll be ready to take in the One True Sport.\n\nMay 25, 2008 - Blue Jays vs Royals. Blue Jays win for my niece's first game!
My sister and I usually talk a couple of times a week, so //in addition// to her!\n\nLog:\n\nSep 16
//Sep 07//\nI've cleared through my old "Reply To" folders (about 100 emails), and am cleaning up some other miscellaneous email folders. My inbox contains only a couple of reminder emails, and my "reply to" folder contains items less than 7 days old.\n\n//March 08//\nI've rededicated to [[Zero Inbox|http://www.43folders.com/izero]] - what a thrill to have empty inbox and reply to folders!
Letters, cards, postcards, care packages, unexpected presents...\n\nLet's aim for twice a month!\n\nBetter invest in some stamps!\n\n//Sep 07// - sent 1 packet\n
- Bike Across Iowa\n- AIDS ride (LA-SF?)\n- other fundraiser
//October 21 2008//\n\nDONE! \n\nGot a beautiful maple leaf approximately over my heart to commemorate 10 years of living in Canada.
How cool would THAT be??\n\n//Dec 28//\nRemembering how depressing I find zoos, after reading some descriptions, I decided against doing this at the swimming pool venues on Oahu. Will find a reputable boat wildlife tour company on my next visit (or to another potential locale) that offers the potential opportunity of swimming in the wild (but obviously no guarantee).\n\n//Oct 27//\nLooks like I can do this in Hawaii in December!!
Done! Spent 5 days on Oahu and saw 5 gorgeous sunsets over the water (and one beautiful sunrise over Diamond Head crater). We saw probably 75% of the island's beaches. Our favourite was near the tip of the West Coast. \n\nWe also had the opportunity to see sea turtles, and I spotted a few fish in the clear clear water! Next time I will for sure go snorkeling!\n\nThe trip was beautiful and awe-inspiring, despite the traffic. I can't wait to return to visit the other less-populated islands!
December 2007!
2008 Olympics?
//December 2008 - June 2009// Procured tickets to 6 events!
I have many overseas trips I'd love to take, but there's so much to see closer to home!\n\nAs of Aug '07, I've never been to:\n*PEI\n*Newfoundland and Labrador\n*Nunavut\n*Northwest Territories\n*Yukon
Type the text for 'New Tiddler'
August 2010 will be my 10th wedding anniversary - so the deadline on this list is a good marker to get the party/baseball tour planned, and Invite Friends & Family to join us.
Beyond mutual funds...
I did it once, I can do it again...\n\n//Oct 1, 2007//\nGot a statement from one credit card company with the magic words "credit" under "amount due"! 1 down, 2 to go.\n\n//May 2008//\nPaid off credit card #2 - only Line of Credit to go!\n\n\n//Oct 2008//\nArg, did get to zero, but unfortunately, have had very limited income the last several months so will have to re-start this when making money again!
I tithe 10% of my income, so increasing my income = increasing what I can give\n\n- at least 10% of this will go to my [[alma mater|http://www.oberlin.edu]]
//November 2007//\nStarted this month at:\nhttp://www.canadianfeedthechildren.ca/
U of T: http://www.music.utoronto.ca/events/calendar.htm\nTSO: http://www.tso.ca/season/ticket/calendar.cfm\nRCM: http://www.rcmusic.ca\n\n\n1/31/08 - TSO - Berlioz Symphonie Fantastique + Brahms Concerto for Violin & Cello
Type the text for 'New Tiddler'
Dec 16, 2007 - Love - Mirage Theatre, Las Vegas\nDec 18, 2007 - Blue Man Group - Venetian, Las Vegas\nDec 19, 2007 - O - Bellagio, Las Vegas\n\nJan 26, 2008 - Romance - Mametfest, Gas Station Theatre, Winnipeg\nFeb 16, 2008 - Houdini - Segal Theatre, Montreal \nFeb 17, 2008 - Jesus Christ, Superstar - Place des Arts, Montreal\nDec 17, 2008 - Zumanity - New York Theatre, Las Vegas\nDec 18, 2008 - Love - Mirage Theatre, Las Vegas\n\nApril 2009 - The Boys in the Photograph - MTC, Winnipeg
Type the text for 'New Tiddler'
Use [[this|http://www.listsofbests.com/list/13990]] as a starting place
Complete these lists:\n[[Rock and Roll Hall of Fame's 500 Songs That Shaped Rock and Roll|http://www.listsofbests.com/list/37752]] (53% complete)\n[[Rolling Stone's "500 Greatest Songs of All Time"|http://www.listsofbests.com/list/12197]] (75% complete)\n[[Q Magazine's "100 Greatest Albums Ever (2006 Readers Poll)"|http://www.listsofbests.com/list/13644]] (36% complete)\n[[The Observer's "50 Albums That Changed Music"|http://www.listsofbests.com/list/10275]] (26% complete)\n[[Melody Maker All Time Top 100 Albums|http://www.listsofbests.com/list/37]] (19% complete)\n\nYou can check your own progress and track mine [[here|http://www.listsofbests.com/person/odyssia]].
That would be:\n\nSt. Louis (saw game in old park)\n"New Comisky" - Chicago\n\nAtlanta (saw an Olympic game there)\nTropicana - St. Petersburg\n\nHouston\nPhoenix\n\nDodger Stadium - LA\nAngel Stadium - Anaheim\nSan Diego\n\nDONE\nPittsburgh - April, 2008\nPhiladelphia's new stadium (went to the Vet for a double-header once...) - May, 2008\nNationals Park - Washington, DC - May, 2008\nCincinnatti - July 2008\nDetroit - July 2008\nDolphin Stadium - Miami - April 2009
Finish watching:\n[[Academy Awards "Best Picture"|http://www.listsofbests.com/list/26]] \n(Aug '07: 31 to go; Jan '08: 24 to go; Sep '08: 21 to go; June '09: 15 to go; Oct '09: 11 to go)\n\n[[AFI's 100 Years...100 Movies (1997 Edition)|http://www.listsofbests.com/list/22]] \n(Aug '07: 22 to go; Oct '07: 21 to go)\n//Jan '08 Arg, it's now the 2007 version - back to 24 to go!//\n//Feb '08 - but I watched some, so it's back to 21 to go!//\n//Oct '08 - working hard on this one - only 16 to go//\n//Jun '09 - 10 to go//\n\n\nGet to 50% on this list:\n[[The New York Times "Best 1,000 Movies Ever Made"|http://www.listsofbests.com/list/653]] \n(Aug '07: at 36%; Oct '07: at 37%; Jan '08: at 38%; Oct '08: 40%; Feb '09: 41%; Jun '09: 42%; Oct '09: 43%)\n\nGet to 40% on this list:\n[[They Shoot Pictures Don't They? The 1,000 Greatest Films|http://www.listsofbests.com/list/591]] \n(Aug '07: 24%; Jan '08 - list has been rejigged, so back to 23%; Oct '08: 25%; Feb '09: 27%; Jun '09: 28%; Oct '09: 29%)\n\nPresumably covering a lot of:\n[[Total Film's "The Greatest Directors Ever" list|http://www.totalfilm.com/features/the_greatest_directors_ever_-_part_1]]\n\nYou can track my progress [[here|http://www.listsofbests.com/person/odyssia]].
[[Academy Awards for Best Original Screenplay|http://www.listsofbests.com/list/30129]]\n(Feb '08 - 34 to go, but have seen all the '08 nominees, so the # won't go up!\nOct '08 - plowing through - 22 to go\nJun '09 - 19 to go\nOct '09 - 12 to go)\n\nDONE:\n[[WGA's 101 Greatest Screenplays|http://www.listsofbests.com/list/3190]]\n(Feb '08 - 10 to go; Oct '08 - 6 to go; Jan '09 - 4 to go; Jun '09 - 1 to go)\n
//Sep 22// - Emailed around for lessons this week\n\n//Oct 6// Have a teacher who told me to go ahead and buy my Grade 5 book, which I did!
Watch All Seasons of:\n\nSix Feet Under (at season 4/5)\nAlias (at season 5/6)\nThe Sopranos\nDeadwood\nArrested Development\nRescue Me\nThe Wire\nBuffy the Vampire Slayer\nQueer as Folk (UK)\nQueer as Folk (US) - at season 2/5\nFirefly\nWest Wing\nCoupling (UK)
Complete these lists:\n[[MLA's 30 Books Every Adult Should Read Before They Die|http://www.listsofbests.com/list/2321]] (2 books to go)\n\n[[BBC's The Big Read|http://www.listsofbests.com/list/60]] \n(Aug '07: 38 to go; Oct '07: 33; Jan '08: 28 to go, Apr '08: 21 to go, Oct '08: 19; Oct '09: 17)\n\nGet to 55% on this list:\n[["Recommended Reading List for the Well Educated Adult"|http://www.listsofbests.com/list/2366]] \n(July '07: at 37% of 306 books; Oct '08: 41%; Oct '09: 42%)\n\n You can chart my progress [[here|http://www.listsofbests.com/person/odyssia]]
\n\n//Oct 07// Getting on-the-job training as an assoc. producer of a travel show!\n\n//Sep 08// Applied for NSI Features First as Producer\n\n//Oct 08// Will be taking part in a [[3-week training with Deluxe|http://www.wift.com/mentorships_08_deluxeproducersinternship_winner.html]]\n\n//Dec 08 - Nov 08// Will be taking part in NSI Features First as Producer\n\n
Possibly:\n- NSI's Feature's First program\n- Hire a screenwriting coach\n
For a total of 6 in the next 1001 days\n\n//Sep '07//\nGot good feedback from my screenwriting group this week on ITW - plenty to chew on to do a rewrite!\n\n//Oct 08//\nCo-writing with another writer - fun!
\n//Feb 2007// Field produced an episode of the show I'm associate producing
Type the text for 'New Tiddler'
Which would necessitate learning how!
//Dec 28, 2007//\nHad a pre-snorkeling adventure at a beach on Oahu, where I wore my contacts under my swim goggles and could finally see the ocean life around me as I swam. Saw a school of ground-sniffing fish with a couple of other species hanging out with them (my fish name knowledge = nill!). Also saw what was maybe a dead coral reef. Definitely whetted my appetite to go snorkeling on my next opportunity!
Type the text for 'New Tiddler'
//July 2007//\nYES! Mission accomplished! And it was as beautiful as I could ever hope! Loved the every-day architecture of private residences, and the large architecture like the Louvre. Want to return and wander the streets and parks for another week or two!\n\n//Dec 28, 2007//\nWe stayed at the Paris hotel in Las Vegas, and I had the highly entertaining experience of looking up at the "Eiffel Tower" while swimming solo in the giant pool (my solitude was due possibly to it being mid December and about 45 degrees out). \n\nNot sure my trip to Paris will offer a similar opportunity. Unless in the Seine?
Quebec\nScandinavia\nIceland?
8 January 1935 = 75th birthday!
Cuz it rhymes with Pollywood!\n\nGreat Smoky Mountains National Park is nearby - a chance to do some [[camping|Go camping 3 times a year]]
\n//Oct '08// This original was "go camping" but I realized it was more about being out in the woods/mountains and hiking/canoing.\n\nThis summer, I stayed in cabins in CO and ON, and went hiking and canoeing.
Type the text for 'New Tiddler'
I know a smidgeon...
//July 2009//\nYes! We spent 3 days in Dublin, and got to the water, though we didn't travel into the hills. Would definitely want to return to see more green hills and castles!
Vienna for Mardi Gras!\nRome
So I never have to ask around, and can take off anytime!
-Wild women tours
Habitat for Humanity \nAmerican Friends Service Committee\nor the like
The OC (finished S1 - S4)\nDawson's Creek (finished S1, watching S2)\nFootballer's Wives (tried - not as fun as I'd hoped...)
P.G. Wodehouse's classics a guaranteed pick-me-up, as is the ITV series.\n\nStory/Novel list:\n\n //My Man Jeeves// (1919) — Four stories in a book of eight, all four reprinted in Carry on, Jeeves:\n o ("Leave It to Jeeves", was reprinted in Carry on, Jeeves as "The Artistic Career of Corky")\n o ("Jeeves and the Unbidden Guest", was reprinted in Carry on, Jeeves)\n o ("Jeeves and the Hard-boiled Egg", was reprinted in Carry on, Jeeves)\n o ("The Aunt and the Sluggard", was reprinted in Carry on, Jeeves)\n\n //The Inimitable Jeeves// (1923) — Originally a semi-novel with eighteen chapters, it is normally published as eleven short stories:\n o "Jeeves Exerts the Old Cerebellum" with "No Wedding Bells for Bingo" (together "Jeeves in the Springtime")\n o "Aunt Agatha Speaks Her Mind" with "Pearls Mean Tears" (together "Aunt Agatha Takes the Count")\n o "The Pride of the Woosters Is Wounded" with "The Hero's Reward" (together "Scoring Off Jeeves")\n o "Introducing Claude and Eustace" with "Sir Roderick Comes to Lunch" (together "Sir Roderick Comes to Lunch")\n o "A Letter of Introduction" with "Startling Dressiness of a Lift Attendant" (together "Jeeves and the Chump Cyril")\n o "Comrade Bingo" with "Bingo Has a Bad Goodwood" (together "Comrade Bingo")\n o "The Great Sermon Handicap"\n o "The Purity of the Turf"\n o "The Metropolitan Touch"\n o "The Delayed Exit of Claude and Eustace"\n o "Bingo and the Little Woman" with "All's Well" (together "Bingo and the Little Woman")\n\n //Carry on, Jeeves// (1925) — Ten stories:\n o "Jeeves Takes Charge" – Recounts the first meeting of Jeeves and Bertie\n o "The Artistic Career of Corky", a rewrite of "Leave It to Jeeves", originally published in My Man Jeeves\n o "Jeeves and the Unbidden Guest", originally published in My Man Jeeves\n o "Jeeves and the Hard-boiled Egg", originally published in My Man Jeeves\n o "The Aunt and the Sluggard", originally published in My Man Jeeves\n o "The Rummy Affair of Old Biffy"\n o "Without the Option"\n o "Fixing It for Freddie", a rewrite of a Reggie Pepper story, "Helping Freddie", originally published in My Man Jeeves\n o "Clustering Round Young Bingo"\n o "Bertie Changes His Mind" — The only story in the canon narrated by Jeeves\n\n //Very Good, Jeeves// (1930) — Eleven stories:\n o "Jeeves and the Impending Doom"\n o "The Inferiority Complex of Old Sippy"\n o "Jeeves and the Yule-tide Spirit" (US title: Jeeves and the Yuletide Spirit)\n o "Jeeves and the Song of Songs"\n o "Episode of the Dog McIntosh" (US title: Jeeves and the Dog McIntosh)\n o "The Spot of Art" (US title: Jeeves and the Spot of Art)\n o "Jeeves and the Kid Clementina"\n o "The Love That Purifies" (US title: Jeeves and the Love That Purifies)\n o "Jeeves and the Old School Chum"\n o "The Indian Summer of an Uncle"\n o "The Ordeal of Young Tuppy" (US title: Tuppy Changes His Mind)\n\n //Right Ho, Jeeves// (1934) (US title: Brinkley Manor)\n //The Code of the Woosters// (1938)\n //Joy in the Morning// (1946) (US title: Jeeves in the Morning)\n //The Mating Season// (1949)\n //Ring for Jeeves// (1953) — Only novel without Bertie, adapting the play //Come On, Jeeves//\n //Jeeves and the Feudal Spirit// (1954) (US title: Bertie Wooster Sees It Through)\n //A Few Quick Ones// (1959) — One short story in a book of ten\n o "Jeeves Makes an Omelette", a rewrite of a Reggie Pepper story originally published in //My Man Jeeves//\n\n //Jeeves in the Offing// (1960) (US title: How Right You Are, Jeeves)\n //Stiff Upper Lip, Jeeves// (1963)\n //Plum Pie// (1966) — One short story in a book of nine\n o "Jeeves and the Greasy Bird"\n\n //Much Obliged, Jeeves// (1971) (US title: Jeeves and the Tie That Binds)\n //Aunts Aren't Gentlemen// (1974) (US title: The Cat-nappers)\n\n\n''READ''\n\n //Thank You, Jeeves// (1934) — The first full-length Jeeves novel\n //Extricating Young Gussie// - The first appearances of Jeeves and Bertie\n\n''ITV Series''\nTo Watch:\n101, 102, 103, 104, 105\n201, 202, 204, 205\n303, 304, \n401, 402, 403, 404, 405, 406\n\nWatched:\n203, 206\n301, 302, 305, 306\n\n
text
Saw them twice - July 2008 - fantastic!
Completed - saw concert Oct 23 in Toronto's Sony Centre!\n\nWell worth doing. One of the great things was finding out how prolific she's been in the last 10 years and listening to her more recent work.\n\nShe was a fantastic performer and show-woman. Would definitely go see her again - and try to sit closer (though my seat at this show wasn't bad at all).
Type the text for 'New Tiddler'
[img[quinzy|http://upload.wikimedia.org/wikipedia/commons/e/e8/Quinzy.jpg]]
Type the text for 'New Tiddler'
//Sep 2009// Went to TIFF '09 on an Industry pass - amazing time!\n\nWould definitely like to go to [[another awesome festival|http://www.variety.com/index.asp?layout=cannes2007&jump=features&id=2662&articleid=VR1117971644&query=unmissable+film+fests]]\n\n//Sep 2008// - Saw 24 films at TIFF including a gala presentation, and that was only on a half-pass! \n
Type the text for 'New Tiddler'
Rave Review\nThey Came at Night\nTBD projects
\n//May 2008//\nPosting every week day at: \n[[Poz Vibes|http://www.pozvibes.com]]
I've dabbled over the years but with a few months' effort, could be fluent and go stay on people's couches and go to the [[conference|Go to the Esperanto World Conference]]
And a piano that's better than my current Casio...\n\n//Sep 22// Just bought a new keyboard! See [[Practice Piano]]. And sent out emails to look for a teacher.\n\n//Oct 1// Sorted through possibilities. Have first lesson tomorrow with promising candidate. If all goes well, will call this one complete!\n\n//Oct 6// Love my teacher already, so this is a go!
In preparation for my [[trip|Visit Japan]]\n\n//Sep 22// - Sent out emails this week, trying out a teacher next week
\n//March '08//\nAfter my trip to Montreal, I want to do this more than ever!\n\nI've joined up at [[Sharedtalk|http://www.sharedtalk.com]], where you can exchange language practice with penpals. Haven't yet tried audio!\n\nI'm investigating Alliance Francaise, etc. Maybe an immersion course this summer?\n
So I can go to S. America, Mexico, and watch television shows in Spanish!
Talk to at least one friend a week by phone. (besides my best friend E, who I talk to like every other day)\n\nOct 07 (x - - -)
Rave Review is complete and ready to send out!\n\n//Sep 22//\nWorking with an editor - sat down and looked at it together, now I'll go through his notes, make some modifications myself then hand it over\n\n//Oct 6//\nHave handed it over and will sit down with him this week to see where it's at
For a workspace for me, and a place to hang out with my honey!\n\n//May 2008// - starting to look at places to move into in the next few months...\n\n//Aug 2008// - found a great place!
Reach out to people I haven't heard from in a while via FaceBook or email.\n\nTwitter is helping too!
Jeez, I hope my math is right - I want to lift about 10 times as much as I can now, which is ridiculously low. I'm talking about 2 specific machines at the gym where I currently can lift only 5 pounds (in reps of 12x3)! If I can lift 50, I would feel like an amazon!\n\nCan do 5 push ups - get to 50!
I had one once - it was fun!\nhttp://weekinthelife.blogspot.com
Some ideas in mind...
Near the END of the 1001 days!
Type the text for 'New Tiddler'
<<forEachTiddler\n where\n 'tiddler.tags.contains("learn")'\n >>
<<forEachTiddler\n where\n 'tiddler.tags.contains("close")'\n >>
<<forEachTiddler\n where\n 'tiddler.tags.contains("complete")'\n >>
Like most wikis, TiddlyWiki supports a range of simplified character formatting:\n| !To get | !Type this |h\n| ''Bold'' | {{{''Bold''}}} |\n| --Strikethrough-- | {{{--Strikethrough--}}} |\n| __Underline__ | {{{__Underline__}}} (that's two underline characters) |\n| //Italic// | {{{//Italic//}}} |\n| Superscript: 2^^3^^=8 | {{{2^^3^^=8}}} |\n| Subscript: a~~ij~~ = -a~~ji~~ | {{{a~~ij~~ = -a~~ji~~}}} |\n| @@highlight@@ | {{{@@highlight@@}}} |\n<<<\nThe highlight can also accept CSS syntax to directly style the text:\n@@color:green;green coloured@@\n@@background-color:#ff0000;color:#ffffff;red coloured@@\n@@text-shadow:black 3px 3px 8px;font-size:18pt;display:block;margin:1em 1em 1em 1em;border:1px solid black;Access any CSS style@@\n<<<\n\n//For backwards compatibility, the following highlight syntax is also accepted://\n{{{\n@@bgcolor(#ff0000):color(#ffffff):red coloured@@\n}}}\n@@bgcolor(#ff0000):color(#ffffff):red coloured@@
At the 500th day (January 8, 2009), I have fully completed 16 items from the list:\n * Go 90% vegan\n * Daily Creative Career Focus Time\n * Practice Piano\n * Take my niece to a baseball game\n * Get a tattoo\n * Visit Hawaii\n * Sponsor a child/family\n * See Coldplay perform\n * See Tori Amos perform\n * Find a Piano teacher\n * Finish editing my most recent short\n * Move into an apartment with more room\n * Go to see theatre at least 3 times a year\n * Get more training as a producer\n * Visit my nieces & nephews\n * Initiate 3 e-messages a week\n\n\nThere are some items that I accomplished, but then "fell off the wagon" and would like to get back to again:\n * Be debt free\n * BMI < 23\n * Go 95% white-flour free\n * Meditate Daily\n * Blog at Least three times a week\n * Monthly Massage\n * Cheer Others On\n\nThere are several items that are in progress:\n * Get more training as a screenwriter\n * Study screenwriting by completing these lists\n * See any ball parks I haven't yet\n * Watch these guilty pleasures\n * Study grade 5 and 6 piano\n * Produce my own television show\n * Complete these lists to study the history of Rock and Roll\n * Go to the symphony at least 4x/year\n * Read a Bunch of Dang Good Books\n * Study the history of country music\n * Study these 12 great shows that kicked off the millinium\n * Continue studying the history of cinema with these lists\n * Read & Watch Compleat Jeeves & Wooster\n * Donate at least $20,000 to organizations I believe in\n\nBy assigning 50% or 33% to the ones in-progress/working on, I estimate I'm about 28% done with this list. Better get cracking, especially on travel!
June 15 2009 - Great performance!
<<forEachTiddler\n where\n 'tiddler.tags.contains("inprogress")'\n >>