<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected{color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}
	
.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity:60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0em 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0em;}
.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0em; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em 0.2em 0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0em;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0em 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0em 1em;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0em 0.25em; padding:0em 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<!--}}}-->
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These InterfaceOptions for customising TiddlyWiki are saved in your browser

Your username for signing your edits. Write it as a WikiWord (eg JoeBloggs)

<<option txtUserName>>
<<option chkSaveBackups>> SaveBackups
<<option chkAutoSave>> AutoSave
<<option chkRegExpSearch>> RegExpSearch
<<option chkCaseSensitiveSearch>> CaseSensitiveSearch
<<option chkAnimate>> EnableAnimations

----
Also see AdvancedOptions
<<importTiddlers>>
@@color:#FF9966;''When'':@@ ''Thurs Aug 14''
@@color:#FF9966;''Where'':@@ My hizzouse
@@color:#FF9966;''Time'':@@ 6pm

Fight Club @ 6pm, Movie @ 7pm. Fight without a mouth guard at your own risk. Movie is Doomsday.
@@color:#FF9966;''When'':@@ ''unknown''
@@color:#FF9966;''Where'':@@ Tinsel Town
@@color:#FF9966;''Time'':@@ Show starts @ 7:45

@@color:#FF9966;''Committed'':@@

We'll be catching Pineapple Express this week. All ye who are committed, message me. 
@@color:#FF9966;''When'':@@ ''Friday, September 19th''
@@color:#FF9966;''Where:''@@ Mondavi Center (UC Davis), 1:30hr drive from Chico
@@color:#FF9966;''Tickets:''@@ $65 ea.
@@color:#FF9966;''Show Start:''@@ Doors Open: 7pm, Show Start: 8pm
@@color:#FF9966;''Opening:''@@ TBA
@@color:#FF9966;''Good Seats?:''@@ Yes! Currently, there are tickets for Orchestra Terrence Center (check out seating chart be
@@color:#FF9966;''Seating Chart:''@@[[Seating Chart|http://www.mondaviarts.org/tickets/seating_charts/seating_num_jkhall_orch.swf]]

@@color:#FF9966;''Committed:''@@ ~JohnH, Paul, Melinda
@@color:#FF9966;''Tickets Bought:''@@ @@color:Red;''No''@@

@@color:Red;''!!!NOTE:'' I WILL NOT BUY TICKETS UNTIL MONEY IS IN HAND. The longer it takes to get ticket cash in my wallet, the farther back our seats are!@@

Lewis Black is on a new tour called "Let them Eat Cake". I have no idea where the tour title came from, but Lewis Black is probably my favorite comedian of all time so he can call his tours whatever he wants to. Time off work for isn't necessary for anyone save for anyone on a night shift, but day-shift may need to leave a little earlier (off work by 4pm please, so we can be out the door before 5pm). 
This folder will be started and finished sometime in Fall '08
If you'd like to contact me to point out mistakes, offer help, or need help, feel free to send me a message to 

nexusx6 at gmail dot com
No Events or Plans
[[Awesome Terminal Commands]]
This section is most for quick references or tips/tricks on mathematical concepts.

*[[Algebra]]
**The base of nearly all math, having a mastery of algebra is absolutely required to be able to work with higher maths.
*[[Trigonometry]]
**Trig is a math that deals predominantly with angles. Trig is amazingly useful as it deals with many real life situations.
*[[Calculus]]
**The study of change and advanced geometry
This section will be started in Fall '09, and completed in '10
!!Physics
*[[NewtonsLawOfCooling
*GalileosLawOfGravity
*DisplacementOfABody
*AverageVelocityOfABody
*ABodysSpeedAndAccelerationAtEndPoints
*[[Hooke'sLaw]]
**Involves amount of energy required to stretch springs and rubber bands
!!~Astro-Physics
*Relativity
**[[General Relativity]]
**[[Special Relativity]]


!!Quantum Mechanics
*String Theory
**[[What's a String?]]
*[[Installing Code::Blocks IDE]] - Ubuntu 8.10
** Code::Blocks is a free, open source IDE used mainly for C++

*[[Using getline(cin, var) in While loop]]

*[[Turning Letters into Numbers]]

*[[Using subster() to extract characters from string]]
*[[Link and Resize Images]]
*[[Change Font/Color/Size]]
*[[Event Template]]
*[[Tables]]
*[[Ignore Markup]]
*[[Accentuated Text/Code Boxes]]
!!!Terminal
*[[Awesome Terminal Commands]]
!!!~PulseAudio
*[[Connection Refused]]
*Setting Up Pulse Audio
!!Wine
*[[Patching Wine]]
!Hello!
Hello! Welcome to my TiddlyWiki. Its very odd name aside, I have found this form of 'micro wiki' to be an absolutely great way to store and relay information-and far better at doing so than a blog. As such, this wiki will be replacing my blog entirely.

If you are looking for my ~HowTo on fixing ~PulseAudio's "[[Connection Refused]]" error, you can find it at that link or under the @Ubuntu menu

!!Installing jsMath font plugin's
If you don't want to see the error message above, and get better looking fonts in any part of this wiki where fonts are displayed follow the instructions here: InstallingTexLiveFonts

!!Classmates
If you would like to add to the wiki in any of the science categories, by all means please do! That area was intently designed to house class notes. Bug me during class for a user name and password. If you  would like to upload content, but don't know how to format text in with wiki codes, don't worry about it; upload your content and I will format it later.
{{{
@@display: block;border: 1px solid black;background:#F0E68C; Example
*example
@@ 
}}}
@@display: block;border: 1px solid black;background:#F0E68C; Example
*example
@@ 
*Dealing with Imaginary Numbers
**[[Negative Square Roots]]

*VertexOfAParabola
**A parabola's highest or lowest point is it's vertex. Knowing its' vertex will give you the range of the function.

*LogarithmicProperties
**Logarithmic Properties and identities. These shortcuts can help make dealing with and understanding logs much easier.
A sector is an arc of a circle measured in radians or degrees. Say you wanted to find the area inside a 45&deg; angle in a circle whose radius was 5 meters.

__''Equation''__ 
@@display: block;border: 1px dashed blue;background:#FFFFFF;$Area = \frac{1}{2}*r^2\theta(radians)$
@@or
@@display: block;border: 1px dashed blue;background:#FFFFFF;$Area = \frac{1}{2}*r^2(\frac{\theta}{360}) (degrees)$@@
-----
''Example''
Using the example above:
@@font-size:10pt;''1/2(5)(&pi;/4) = 9.8174 meters''@@
or
@@font-size:10pt;''1/2(5)(45&deg;/360) = 9.8174 meters''@@
Say you wanted to find the average rate of change in a function when you know two x values.

__''Eample''__
Find the rate of change in this function:
@@display: block;border: 1px dashed blue;background:#FFFFFF;$f(x)=3x^3+3\ \ \ \ \ \ \ \ x-values:[2,4]$
@@

substite the function and values in the form of $\frac{x_2-x_1}{y_2-y_1}$

@@display: block;border: 1px dashed blue;background:#FFFFFF;$${\Delta y\over \Delta x} = \frac{f(x_2)-f(x_1)}{x_2-x_1}$$
$$=\frac{(3(4)^3+3)-3(2)^3+3)}{4-2}$$
$$=\frac{195-51}{2}$$
$$=84$$
@@
The average rate of change is 84
The Average Velocity of a Body 
|!Command   |!Effect|
|xkill|Turns the mouse into crossbones or an X. Anything clicked on afterwards is instantly killed|
|"""sudo du -h|grep G|grep -v K"""|Lists all files on the computer that are over 1gb. Great for seeing whats taking up the most space|
|sudo apt-get install moo|See for yourself :p|
|whereis [program]|Ever tried to figure out just where the hell a program you installed from apt-get went? The command is especially useful for locating bin files that arn't where they should be. ''Example:'' whereis wine|
|"""lsof | grep /media"""|Shows what process' are using mounted media. Useful if you need to eject a usb drive, but can't because 'something' is using it|
|sudo mount -o loop ~/Desktop/filename.iso /media/iso|You can mount any .iso file with this command. It mounts a file called //filename.iso// to a folder named //iso// in /media/. Filename and folder to mount at can be changed|
|sudo umount /media/iso|Used to unmount a filesystem at any point.|
|sudo lshw >hardware.txt|A very cool command that will print out all info about your computer into a txt file in your home directory. This shows an amazing amount of information|
*DerivativeShortcuts
**Much needed shortcuts to taking derivatives of functions

*AverageRateOfChangeInAFunction

*TangentLine

*HorizontalTangents

*MarginalCost

*InflectionPoints
**LocalExtremaInInflectionPoints

*MaxVolumeOfRectangularBox

*CrossSectionsOfASolid
{{{
@@color:#FFFFFF;''TEXT'':@@
@@font-size:SIZEpt;''TEXT''@@
}}}
This section will be written in Fall of '08. It will be a compilation comprised mostly of notes taken during chemistry courses
@@font-size:10pt;''Please note, this is for (K)Ubuntu 8.04. I appears that this might no longer be necessary in 8.10.'' @@

This is a how-to/tips to getting ~PulseAudio working in Kubuntu 8.04.

I, like a lot of people, had issues with ~PulseAudio (PA) in our new flavor of Ubuntu. Though I had sound, I could not get the Volume Manger which allows you to adjust the volume of specific streams to work. My error specifically was a general "Connection Refused" so, here's what I did.
The following step may not be necessary, I have isolated the problem, but only after I followed the instructions here. If you want to try to get PA working without making the configuration edit or downloads in the following post, got to Step2, but imo, I suggest following the link first. YMMV.

Step 1:
<html><a href="http://ubuntuforums.org/showthread.php?t=776739&highlight=pulse+connection+refused"> The (almost) Perfect Pulse Audio Setup</a></html>
This link leads you to a Ubuntu Forums post. I highly suggest downloading the packages listed here. One note: the How-to talks about editing /etc/asound.conf - this file didn't exist for me, but I found out its ok to just go ahead and create it.

Step 2:
This is one of those rare times when you have restart your computer in Linux, and I mean your whole system.. not just your GUI. Go ahead and do so, and once you're logged back in before you play any sound or music open up a console session and type in

@@display: block;border:1px dashed black;background:#F0E68C;\$ pulseaudio -D
@@
PA should restart, and voilà, you should be able to start the Volume Manger and control your streams no problem. Lastly, to make the command "pulseaudio -D" run at start up, every start up, we're going to write a script.

Open up terminal and:
@@display: block;border:1px dashed black;background:#F0E68C;\$ nano pulseaudio.sh
@@
then put this into the text file:
@@display: block;border:1px dashed black;background:#F0E68C;#!/bin/bash
pulseaudio -D
@@
Press CTRL+X to save in nano and quit.
Now you have to give the file execute permissions
@@display: block;border:1px dashed black;background:#F0E68C;\$ chmod +x pulseaudio.sh
@@

Finally, we're going to move the script to rc.local where it'll be run at boot time
@@display: block;border:1px dashed black;background:#F0E68C;\$ mv pulseaudio.sh /etc/rc.local/
@@

That should be all you need to do. Thanks to the anonymous poster on my old blog for the rc.local tip.
With the equation of a solid, you can find the area of the solid with different cross sections.

''__Equation__:'' ${x\over25}+{y\over36}=1$
First, solve for y to get the distance of the object.
$${x^2\over25}+{y^2\over36}=1$$
$$y=\sqrt{36-36x^2\over25}$$
$$y=\sqrt{{36\over25}(25-x^2)}$$
$$y={6\over5}\sqrt{25-x^2}$$

That is the value of the radius of the object. Because the radius of an object is half of its distance (and we want the distance of the object) multiply y by 2 to get the distance.

$$D={1\over2}y={6\over5}\sqrt{25-x^2}$$
$$D={12\over5}\sqrt{25-x^2}$$

Now that we have D, we can solve the cross section of a solid using different shapes by applying the formulas for finding that cross sections area.

For example, do find the cross section of a solid using circles, apply the rule for finding a circles area$(\pi r^2$ to D

$$A(x)=\pi({D\over2})^2$$
$$A(x)={36\pi\over25}(25-x^2)$$

The area of a square is base times height, which in a perfect sqaure is the equivlent of base x base or base^2 (ie, x^2)

$$A(x)=D^2$$
$$A(x)={72\over25}(25-x^2)$$
[[@WelcomeToTheWiki]]
[[@Events/Plans]]
Displacement is a vector quantity and is a measurement of how far an object has moved from point A to point B on a straight line ignoring the path it took to get to point B.
<html><a><img src="http://img.sparknotes.com/content/testprep/bookimgs/sat2/physics/0011/pathAB.gif"></a></html>

''__Formulas Used__''
@@display: block;border: 1px dashed blue;background:#FFFFF;$$\Delta s = f(t+\Delta t)-f(t)$$
@@

''__Example__:'' __A body moves on a line such that its' position is $s=f(t)=t^2-4t+3$ on the interval $1<t<4$. What is its' displacement.__

First find $\Delta t$
@@display: block;border: 1px dashed blue;background:#FFFFF;
1+$\Delta t = 5$
$\Delta t = 4$
@@

Now plug the information you have into the equation for $\Delta s$

@@display: block;border: 1px dashed blue;background:#FFFFFF;$$\Delta s = ((1+4)^2-4(1+4)+3) - ((1)^2-4(1)+3)$$
$$=8-0$$
$$\Delta s = 8$$
@@

This example and its equations are also used in AverageVelocityOfABody and ABodysSpeedAndAccelerationAtEndPoints
 config.macros.EnumeratePlugin = {
	counter: {},
	formats: {},
	refreshTiddler: Story.prototype.refreshTiddler
};

Story.prototype.refreshTiddler = function(title,template,force){
	config.macros.EnumeratePlugin.counter = {};
	config.macros.EnumeratePlugin.formats = {};
	var tiddler = config.macros.EnumeratePlugin.refreshTiddler .apply(this,arguments);
	return tiddler;
}

config.formatters.push({
	name: "numberedBoxes",
	match: "\\n?\\?{3}",
	terminator: "\\s*\\={3}\\n?",
	lookahead: "\\n?\\?{3}\\((.+?)\\)(\\{(.*?)\\})?\\s*",
	format: "§ #",
	handler: function(w){
		lookaheadRegExp=new RegExp(this.lookahead,"mg");
		lookaheadRegExp.lastIndex=w.matchStart;
		var lookaheadMatch=lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index==w.matchStart){
			var env=lookaheadMatch[1];
			var label = (lookaheadMatch[3]) ? lookaheadMatch[3] : this.format;
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
 			if(!config.macros.EnumeratePlugin.counter[env]){
				config.macros.EnumeratePlugin.counter[env]=0;
				config.macros.EnumeratePlugin.formats[env] = label;
			} else if(label==this.format)  {label = config.macros.EnumeratePlugin.formats[env];}
			if(label.indexOf("#")>-1){
				var reset = label.match(/\#\((\d+)\)/);
				if(reset) {
					config.macros.EnumeratePlugin.counter[env]=reset[1];
					number = reset[1];
				} else {
					var number=++config.macros.EnumeratePlugin.counter[env];
				}
				var parents = label.match(/\#\(([a-zA-Z_]+)\)/g);
				var parent;
				if(parents) for(var i=0; i<parents.length; i++) {
					parent = parents[i].match(/\#\(([a-zA-Z_]+)\)/)[1];
					label = label.replace(parents[i], (config.macros.EnumeratePlugin.counter[parent]) ? config.macros.EnumeratePlugin.counter[parent]: "");
				}
				label = label.replace(/#(\(\d+\))?/,number);
			}
			label = label.replace(/§/,env);
			var p=createTiddlyElement(w.output,"div",null,env);
			var header=createTiddlyElement(p,"div",null,env+"Header",label);
			w.subWikify(p,this.terminator);
		}
	}
});
.TestHeader{
background: none;
border: none;
color: green;
margin: 0 0 0.25em 0;
padding: 0;
font-family: arial;
font-size: 1.5em;
font-weight: bold;
width: 100%;
}
Type the text for 'EnumerateSytleSheet'
{{{
@@color:#FF9966;''When'':@@ ''info''
@@color:#FF9966;''Where'':@@
@@color:#FF9966;''Time'':@@

Info
}}}
Hooke's Law essentially boils down to this

''__Equation__:''
$F=kx$

This describes the relationship of Force is equal to energy constant times distance stretched from the equilibrium point. Lastly, the units of measurement for each variable is:

''F'': Newtons
''k'': Newtons per meteer
''x'': Meters

''__Example__:''
It takes 4 Newtons to stretch a spring 8 cm, what is the constant k?
$$4N=k(.08m)$$
$${4\over.08}{N\over m} =k$$
$${50}{N\over m}=k$$


''__Example__:''
It takes 1500 Joules of energy to move a stretch a spring from 1 meter to 5 meters. Whats the springs' constant k?
a = The difference between the initial length and the natural length
b = The difference between the stretched length and the natural length

$$W={\int_0^4}{kxdx}$$
$$W={\int_0^4}{1\over2}*{kx^2}$$
$$1500J={\int_0^4}{1\over2}*{kx^2}$$
$$1500=k(x)^2\vert{4\brack 0}$$
$$1500=16k$$
$${1500\over16}=k$$
$${375\over2} N*M =k$$
''__Example:__'' __Find the horizontal tangent for $y=7x^2+7x+7$__

First, take the derivative of the function. If if use the DerivativeShortcuts shortcut, you can easily see that the f'(x) for this function is

@@display: block;border: 1px dashed blue;background:#FFFFFF;$f'(x) = 14x + 7$
@@

Now to solve for the horizontal tangent, remember that the slope of a horizontal tangent is 0

@@display: block;border: 1px dashed blue;background:#FFFFFF;$$14x + 7 = 0$$
$$14x = -7$$
$$x = \frac{-7}{14}$$
$$x = -\frac{1}{2}$$
@@
To get the y, as usual just plug x back into the original function

@@display: block;border: 1px dashed blue;background:#FFFFFF;$$f(x) = 7(-\frac{1}{2})^2 + 7(\frac{1}{2}) - 7$$
$$f(x) = \frac{7}{4} - \frac{14}{4} - \frac{28}{4}$$
$$y = -\frac{35}{4}$$
@@
The horizontal tangent is on $(-\frac{1}{2}, -\frac{35}{4})$
Putting three double quotes on both ends of a string will tell wiki to ignore any formating in that string.
eg.
{{{
"""No Formating"""
}}}

Typing three open brackets, a new line, and three closed brackets will create a special box where no formatting is applied.
eg.
{{{
In this box no formatting is applied
}}}
inflection point, or point of inflection (or inflexion) is a point on a curve at which the curvature changes sign. The curve changes from being concave upwards (positive curvature) to concave downwards (negative curvature), or vice versa. If one imagines driving a vehicle along the curve, it is a point at which the steering-wheel is momentarily "straight", being turned from left to right or vice versa.

<html><a href="http://en.wikipedia.org/wiki/Inflection_point">
<img src="http://upload.wikimedia.org/wikipedia/commons/3/36/X_cubed_rotated_plot.gif"/></a></html>

__''How to find an inflection point''__
''Equation:'' $y = {x^3\over3} - x^2 - 15x$

First, find the second derivative of the function.
$$y' = x2 - 2x - 15$$
$$y'' = 2x - 2$$
Then solve the second derivative for 0
$$0 = 2x - 2$$
$$ 2 = 2x\over2$$
$$x=1$$
Now plug x back into the original equation.
$$y={(1)^3\over3} - (1)^2 - 15$$
$$y={1\over3}-1-15$$
$$y={1\over3}-16*{3\over3}$$
$$y={1\over3}-{48\over3}$$
$$y={47\over3}$$
Thus, the point of inflection is
$$(1, {47\over3})$$
Copy and paste this into terminal

@@display: block;border:1px dashed black;background:#F0E68C;\$ sudo apt-get install libcodeblocks0 libwxsmithlib0 libwxsmithlib0-dev codeblocks codeblocks-dev codeblocks-contrib codeblocks-dbg xterm build-essential
@@
Copy and paste this in to install jsMath and ~TexLive fonts.

@@display: block;border: 1px solid black;background:#F0E68C; sudo apt-get install texlive-fonts-extra texlive-fonts-recommended
@@ 
*Owner of the wiki
*nexusx6 at gmail dot com
{{{
<html><a href="URL LINK">
<img src="URL SOURCE"style="width:WIDTHpx;/></a></html>
}}}
/***
|''Name:''|LoadRemoteFileThroughProxy (previous LoadRemoteFileHijack)|
|''Description:''|When the TiddlyWiki file is located on the web (view over http) the content of [[SiteProxy]] tiddler is added in front of the file url. If [[SiteProxy]] does not exist "/proxy/" is added. |
|''Version:''|1.1.0|
|''Date:''|mar 17, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#LoadRemoteFileHijack|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
***/
//{{{
version.extensions.LoadRemoteFileThroughProxy = {
 major: 1, minor: 1, revision: 0, 
 date: new Date("mar 17, 2007"), 
 source: "http://tiddlywiki.bidix.info/#LoadRemoteFileThroughProxy"};

if (!window.bidix) window.bidix = {}; // bidix namespace
if (!bidix.core) bidix.core = {};

bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
{
 if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){ 
 url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
 }
 return bidix.core.loadRemoteFile(url,callback,params);
}
//}}}
This continues on from InflectionPoints.
To recap:
@@display: block;border: 1px dashed blue;background:#FFFFFF;
''Equation:'' $y = {x^3\over3} - x^2 - 15x$

''First Derivative:''$y' = x^2 - 2x - 15$

''Second Derivative:''$y'' = 2x - 2$
@@
To find any local extrema in an equation with inflection points, take the first derivative and solve for zero.
$$y' = x^2 - 2x - 15 = 0$$
$$(x+3)(x-5)=0$$

The local extrema for this equation are at @@$x=5, -3$@@

The Second Derivative Test for Local Extrema basically says this:
If f'(c) = 0 and """f''(c) < 0""", than there is a local maximum there.
if f'(c) = 0 and """f''(c) > 0,""" than there is a local minimum there.
If both the first and second derivatives = 0 at c, than the test fails.

Since we already know where c = 0 for the first derivative (thats what just did at the top), we plug those numbers into the second derivative and see what we get.
@@display: block;border: 1px dashed blue;background:#FFFFFF;$$y'' = 2(5) - 2$$
$$y'' = 8$$
@@
"""f''(c)>0,""" so we have a local @@minimum at x=5@@
@@display: block;border: 1px dashed blue;background:#FFFFFF;$$y'' = 2(-3) - 2$$
$$y'' = -8$$
@@
"""f''(c)<0,""" so we have a local @@maximum at x=-3@@

Now that we know where they are max and minimum, lets find their coordinates. Plug c back into the original equation and solve.
@@display: block;border: 1px dashed blue;background:#FFFFFF;$$y = {(5)^3\over3} - (5)^2 - 15(5)$$
$$y = {125\over3} - 25 - 75$$
$$y = {125\over3} - {300\over3}$$
$$y = {175\over3}$$
@@
!!!Properties
|@@font-size:12pt;1. Product Rule:@@|@@font-size:11pt;$log_b(xy) = log_bx + log_by$@@|
|@@font-size:12pt;2. Quotient Rule:@@|@@font-size:11pt;$log_b(\frac{x}{y}) = log_bx - log_by$@@|
|@@font-size:12pt;3. Power Rule:@@|@@font-size:11pt;$log_bx^n = nlog_bx$@@|
|@@font-size:12pt;4. Reciprocal Rule:@@|@@font-size:11pt;$log\frac{1}{x} = -logx$@@|

!!!Change of Base
@@font-size:11pt;$log_ax = \frac{lnx}{lna}$@@
[[@WelcomeToTheWiki]]
@@color:#FFFFFF;''Linux''@@
[[@LinuxInGeneral]]
[[@Ubuntu]]
@@color:#FFFFFF;''Science''@@
[[@Mathematics]]
[[@Physics]]
[[@Chemistry]]
[[@Programming]]
@@color:#FFFFFF;''Misc''@@
[[@Tiddler HowTo's]]
[[@ToDo]]
[[@Events/Plans]]
[[@Contact Me]]
Suppose the cost of producing x amount of toasters is 

$c(x)=800+40x-0.2x^2$

What is the marginal cost of 40 are produced?

The key here is to take the derivative of the function ''before'' plugging 40 into x

NOTE: There should be a decimal were you see 02 and 04. It should read 0.2 and 0.4

$$c(x)=800+40x- .2x^2$$
$$c'(x)=40-0.4x$$
$$c'(40)=40-.04(40)$$
$$24$$
!Laws and Identities
This section is for quick references and short cuts in math
[[Algebra]]
[[Trigonometry]]
[[Calculus]]
Say you have a cardboard and you wanted to make a rectangular box with the maximum amount of volume using the cardboard you have. 

If the cardboard was 39 inches by 21 inches, what the largest volume box you could make?

We need to find the length, width, and height to get the max volume. Since there are two sides you can call length, and two sides you can call width, start with this equation
$$V=x(l-2x)(w-2x)$$
Plug in known variables:
$$V=x(21-2x)(39-2x)$$
Factor:
$$V=(2x^2-21x)(2x-39)$$
$$V=4x^3-120x^2+819x$$
Take the derivative of the function:
$$V=12x^2-240x+819$$
Equate it to zero and solve. To do this we have to use the quadratic formula
$$-(-240)\pm\sqrt-240^2-4(12)(819)\over2(12)$$
$$240\pm\sqrt5600-39312\over24$$
$$240\pm\sqrt18288\over24$$
$$240\pm135.23\over24$$
$$x=4.36,15.63$$

Check the values to make sure that they don't give a negitive answer for a side. For example, the value 15.63 can be discarded because $$(21-2(15.63))$$ returns a negative number, and we can't have negative perimeters.

So x=4.36

The second derivative of function V returns a negative sign at 4.36, which means it is a maximum.

Lastly, plug x into the functions that represent the sides of the box to get all of the dimensions.
$$(21-2(4.36))= 12.28$$
$$(39-2(4.36))=30.28$$

And there we go, the dimensions are 4.36 x 12.28 x 30.28 

The volume, of course, is the dimensions multiplied out.
a+bi form of $\sqrt{-144}$

Solve:
@@display: block;border: 1px dashed blue;background:#FFFFFF;
$\sqrt{-144}$
   = 
$\sqrt{-1(144)}$
   =
$\sqrt{144} * \sqrt{-1}$
   =
''12//i//''
@@
The full a+bi form of this solution would be 0+12i since a = 0

Remember that $(\sqrt{-1})$  is represented as the letter $i$. What should be done to solve equations like the one above is to isolate the real number from the imaginary and take the square root of the real.
A~~0~~(t) = T~~O~~-(&Delta;T-T~~0~~)e^^-k^^t
<div id='header'>
<div id='titleLine'>
<span id='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span id='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='sidebar'>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div><div id="licensePanel">
<a rel="license" href="http://shared.snapgrid.com/gtd_tiddlywiki.html#RevisionHistory" target="_new">GTDTW Version <span macro="version"></span></a>
<a rel="license" href="http://www.tiddlywiki.com" target="_new">
TiddlyWiki is published by Jeremy Ruston at Osmosoft under a BSD open source license</a>
<a rel="license" href="http://snapgrid.com" target="_new">GTD TiddlyWiki is a modification by Nathan Bowers at Snapgrid under the same license terms.</a>
<a rel="license" href="http://davidco.com" target="_new">"Getting Things Done" is &#169; David Allen at Davidco. Davidco has no affiliation with TiddlyWiki or GTD TiddlyWiki.</a></div></div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
	coreVersion: '2.2.0 (Beta 5)'
};

config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");

merge(config.macros.option.types, {
	'pas': {
		elementType: "input",
		valueField: "value",
		eventName: "onkeyup",
		className: "pasOptionInput",
		typeValue: config.macros.option.passwordInputType,
		create: function(place,type,opt,className,desc) {
			// password field
			config.macros.option.genericCreate(place,'pas',opt,className,desc);
			// checkbox linked with this password "save this password on this computer"
			config.macros.option.genericCreate(place,'chk','chk'+opt,className,desc);			
			// text savePasswordCheckboxLabel
			place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
		},
		onChange: config.macros.option.genericOnChange
	}
});

merge(config.optionHandlers['chk'], {
	get: function(name) {
		// is there an option linked with this chk ?
		var opt = name.substr(3);
		if (config.options[opt]) 
			saveOptionCookie(opt);
		return config.options[name] ? "true" : "false";
	}
});

merge(config.optionHandlers, {
	'pas': {
 		get: function(name) {
			if (config.options["chk"+name]) {
				return encodeCookie(config.options[name].toString());
			} else {
				return "";
			}
		},
		set: function(name,value) {config.options[name] = decodeCookie(value);}
	}
});

// need to reload options to load passwordOptions
loadOptionsCookie();

/*
if (!config.options['pasPassword'])
	config.options['pasPassword'] = '';

merge(config.optionsDesc,{
		pasPassword: "Test password"
	});
*/
//}}}
These instructions are for patching Wine using the source file - not the CVS.

Download the source .tar file from Wine, and extract it anywhere (ie. /home/[user])

* cd (source folder)

* patch -p1 < (file name ie.punkbuster.diff or whatever you saved it as)

*./configure

* make depend && make

* sudo su -c "make install"

* sudo checkinstall

If you're not using Debain based distro's, you can drop "sudo"

The checkinstall step probably won't work because you probably don't have the program. Its not terribly important, I myself have never used it, and thus you're most likely fine without it. If you do want to try it thought, you can get it in Ubuntu with

sudo apt-get install checkinstall
!Astro Physics
*String Theory
!Physics Equations
A "Life's Note's" wiki!
John's Wiki
/***
!GTD Style
http://tiddlystyles.com/#theme:GTD

[[EnumerateSytleSheet]]

!Generic rules /%==================================================================== %/
***/
/*{{{*/
body {
 background: #464646 url('http://shared.snapgrid.com/images/tiddlywiki/bodygradient.png') repeat-x top fixed;
 color: #000;
 font: .82em/1.25em "Bitstream Vera Sans", Verdana, Helvetica, Arial, sans-serif;
/*"Lucida Sans Unicode", "Lucida Grande","Trebuchet MS", */
}

/*}}}*/
/***
!Header rules /%====================================================================== %/
***/
/*{{{*/
#contentWrapper
{
 margin: 0 auto;
width: 59em;
position: relative;
}

#header
{
 color: #fff;
 padding: 1.5em 1em .6em 0;
}

#siteTitle {

 font-size: 2.3em;
 margin: 0;
}

#siteSubtitle {
 font-size: 1em;
 padding-left: .8em;;
}

#titleLine{
 background: transparent;
 padding: 0;
}

#titleLine a {
 color: #cf6;
}

#titleLine a:hover {
 background: transparent;
}
/*}}}*/
/***
!Sidebar rules /%====================================================================== %/
***/
/*{{{*/
#sidebar{
 left: 0;
width: 18em;
 margin: .9em .9em 0 0;
 color: #000;
 background: transparent;
}
/*}}}*/
/***
!Main menu rules /%=================================================================== %/
***/
/*{{{*/
#mainMenu{
 position: static;
 width: auto;

 background: #600;
 border-right: 3px solid #500;
padding: 0;
 text-align: left;
 font-size: 1em;
}

#mainMenu h1{
 padding: 5px;
 margin: 0;
 font-size: 1em;
 font-weight: bold;
 background: transparent;
 color: #fff;
}

#mainMenu ul{
 padding: 0;
 margin: 0;
 list-style: none;
}

#mainMenu h1 a,
#mainMenu li a,
#mainMenu li a.button{
 display: block;
 padding: 0 5px 0 10px;
border: 0;
 border-bottom: 1px solid #500;
 border-top: 1px solid #900;
margin: 0;
}

#mainMenu a,
#mainMenu a.button{
 height: 22px;
height: 1.83em;
 line-height: 22px;
 color: #fff;
 background: #700;
margin-left: 1em;
}

#mainMenu a:hover,
#mainMenu a.button:hover {
 background: #b00;
 color: #fff;
}
/*}}}*/
/***
!Sidebar options rules /%============================================================ %/
***/
/*{{{*/
#sidebarOptions {
 background: #eeb;
 border-right: 3px solid #bb8;
 color: #B4C675;
 padding: .5em 0;
}

#sidebarOptions a {
 color: #700;
 margin: .2em .8em;
 padding: 0;
 border: 0;
}

#sidebarOptions a:hover, #sidebarOptions a:active {
 color: #fff;
 background: #700;
 border: 0;
}

#sidebarOptions input{
 margin: 2px 10px;
 border: 1px inset #333;
padding: 0;
}

#sidebarOptions .sliderPanel {
 background: #fff;
 color: #000;
 padding: 5px 10px;
 font-size: .9em;
}

#sidebarOptions .sliderPanel a{
 font-weight: normal;
 margin: 0;
}

#sidebarOptions .sliderPanel a:link,#sidebarOptions .sliderPanel a:visited {
 color: #700;
}

#sidebarOptions .sliderPanel a:hover,#sidebarOptions .sliderPanel a:active {
 color: #fff;
 background: #700;
}
/*}}}*/
/***
!Sidebar tabs rules /%===================================================================== %/
***/
/*{{{*/
#sidebarTabs {
 background: transparent;
 border-right: 3px solid #740;
 border-bottom: 3px solid #520;
 border: 0;
 padding: 0;
}

#contentWrapper #sidebarTabs a,
#contentWrapper #displayArea .tabContents a{
 color: #fff;
}

#contentWrapper #sidebarTabs a:hover,
#contentWrapper #displayArea .tabContents a:hover {
 background: #000;
 color: #fff;
}

#contentWrapper #sidebarTabs a:active,
#contentWrapper #displayArea .tabContents a:active{
 color: #000;
}



#contentWrapper .tabSelected {
 background: #960;
}

#contentWrapper .tabUnselected{
 background: #660;
}

#contentWrapper #sidebar .tabset{
 background: #eeb;
 border-right: 3px solid #bb8;
 padding: 0 0 0 .75em;
}

#contentWrapper .tabContents{
font-size: .95em;
background: #960;
border:0;
 border-right: 3px solid #740;
 border-bottom: 3px solid #520;
 padding: .75em;
}

#contentWrapper .tabContents{
 width: auto;
}

#contentWrapper #sidebarTabs .tabContents .tabset,
#contentWrapper .tabContents .tabset{
 border: 0;
 padding: 0;
 background: transparent;
}

#contentWrapper .tabContents .tabSelected,
#contentWrapper .tabContents .tabContents {
 background: #700;
 border: 0;
}

#contentWrapper .tabContents .tabUnselected {
 background: #440;
}

#contentWrapper .tabset a {
 color: #fff;
 padding: .2em .7em;
 margin: 0 .17em 0 0;
 height: 2em;
position: static;
}

#contentWrapper .tabset a:hover {
 background: #000;
 color: #fff;
}

#contentWrapper .tabset a:active {
 color: #000;
}

#contentWrapper .tabContents ul{
 margin: 0;
 padding: 0;
 list-style: none;
}

#contentWrapper .tabContents .tabContents ul{
 color: #eeb;
}

.tabContents ul a,
.tabContents ul .button{
 color: #fff;
 display: block;
 padding: .1em 0 .1em .7em;
 background: transparent;
 border: 0;
}

.tabContents ul a:hover {
 color: #fff;
 background: #000;
}
/*}}}*/
/***
!License panel rules /%==================================================================== %/
***/
/*{{{*/
#licensePanel {
 padding: 0px 1em;
 font-size: .9em;
}

#licensePanel a {
 color: #960;
 display: block;
 margin-top: .9em;
}

#licensePanel a:hover {
 color: #fff;
 background: transparent;
}
/*}}}*/
/***
!Popup rules /%================================================================= %/
***/
/*{{{*/
.popup {
 font-size: .8em;
 padding: 0em;
 background: #333;
 border: 1px solid #000;
}

.popup hr {
 margin: 1px 0 0 0;
 visibility: hidden;
}

.popup li.disabled {
 color: #666;
}

.popup li a,
.popup li a:visited{
 color: #000;
 border: .1em outset #cf6;
 background: #cf6;
}

.popup li a:hover {
border: .1em outset #cf6;
 background: #ef9;
 color: #000;
}
/*}}}*/
/***
!Message area rules /%================================================================= %/
***/
/*{{{*/
#messageArea{
 font-size: .9em;
 padding: .4em;
 background: #FFE72F;
 border-right: .25em solid #da1;
 border-bottom: .25em solid #a80;

position: fixed;
 top: 10px;
 right: 10px;
 color: #000;
}

#contentWrapper #messageArea a{
 color: #00e;
 text-decoration: none;
}

#contentWrapper #messageArea a:hover{
 color: #00e;
 text-decoration: underline;
 background: transparent;
}

#contentWrapper #messageArea .messageToolbar a.button{
 border: 1px solid #da1;
}

#contentWrapper #messageArea .messageToolbar a.button:hover{
 color: #00e;
 text-decoration: none;
 border: 1px solid #000;
 background: #fff;
}



/*}}}*/
/***
!Tiddler display rules /%================================================================== %/
***/
/*{{{*/
#displayArea {
 width: 39.75em;
 margin: 0 0 0 17em;
}

.tiddler {
 margin: 0 0 .9em 0;
 padding: 0 1em;
 border-right: .25em solid #aaa;
 border-bottom: .25em solid #555;
 background: #fff;
}

.title {
 font-size: 1.5em;
 font-weight: bold;
 color: #900;
}

.toolbar {
 font-size: .8em;
 padding: .5em 0;
}

.toolbar .button{
 padding: .1em .3em;
 color: #000;

 border: .1em outset #cf6;
 background: #cf6;
margin: .1em;
}

.toolbar .button:hover {
 background: #ef9;
 color: #000;
}

.toolbar .button:active {
 background: #ff0;
}

/*}}}*/
/***
!Viewer rules /% ------------------------------------------------------------------------------------------ %/
***/
/*{{{*/
.viewer {
 line-height: 125%;
 font-family: serif;
 font-size: 12pt;
}
.viewer {
 line-height: 1.4em;
 font-size: 1em;
}

.viewer a:link, .viewer a:visited {
 color: #15b;
}

.viewer a:hover {
 color: #fff;
 background: #000;
}

.viewer .button{
 background: transparent;
 border-top: 1px solid #eee;
 border-left: 1px solid #eee;
 border-bottom: 1px solid #000;
 border-right: 1px solid #000;
}

.viewer .button:hover{
 background: #eee;
 color: #000;
}

.viewer .button:active{
 background: #ccc;
 border-bottom: 1px solid #eee;
 border-right: 1px solid #eee;
 border-top: 1px solid #111;
 border-left: 1px solid #111;
}


.viewer blockquote {
 border-left: 3px solid #777;
 margin: .3em;
 padding: .3em;
}

.viewer pre{
 background: #fefefe;
 border: 1px solid #f1f1f1;
}

.viewer pre, .viewer code{
 color: #000;
}

.viewer ul {
 padding-left: 30px;
}

.viewer ol {
 padding-left: 30px;
}
.viewer pre { font-size:1.4em; line-height:1.4em; color:#009;background:#ffd; }

ul{
list-style-type: asquare;
}
ol{ 
 list-style-type: decimal;
}

ol ol{ 
 list-style-type: lower-alpha;
}

ol ol ol{ 
 list-style-type: lower-roman;
}

.viewer ul, .viewer ol, .viewer p {
 margin: .0;
}

.viewer li {
 margin: .2em 0;
}

h1,h2,h3,h4,h5,h6 {
 color: #000;
 font-weight: bold;
 background: #eee;
 padding: 2px 10px;
 margin: 5px 0;
}

.viewer h1 {font-size: 1.3em;}
.viewer h2 {font-size: 1.2em;}
.viewer h3 {font-size: 1.1em;}
.viewer h4 {font-size: 1em;}
.viewer h5 { font-size: .9em;}
.viewer h6 { font-size: .8em;}

.viewer table {
 border: 2px solid #303030;
 font-size: 11px;
 margin: 10px 0;
}

.viewer th, .viewer thead td{
 color: #000;
 background: #eee;
 border: 1px solid #aaa;
 padding: 0 3px;
}

.viewer td {
 border: 1px solid #aaa;
 padding: 0 3px;
}

.viewer caption {
 padding: 3px;
}

.viewer hr {
 border: none;
 border-top: dotted 1px #777;
 height: 1px;
 color: #777;
 margin: 7px 0;
}

.viewer
{
 margin: .5em 0 0 0;
 padding: .5em 0;
 border-top: 1px solid #ccc;
}

.highlight {
 color: #000;
 background: #ffe72f;
}
/*}}}*/
/***
!Editor rules /% ----------------------------------------------------------------------------------------- %/
***/
/*{{{*/
.editor {
 font-size: .8em;
 color: #402C74;
 padding: .3em 0;
}

.editor input, .editor textarea {
 font: 1.1em/130% "Andale Mono", "Monaco", "Lucida Console", "Courier New", monospace;
 margin: 0;
 border: 1px inset #333;
 padding: 2px 0;
}

.editor textarea {
 height: 42em;
 width: 100%;
}

input:focus, textarea:focus
{
 background: #ffe;
 border: 1px solid #000;
}
.footer
{
 padding: .5em 0;
 margin: .5em 0;
 border-top: 1px solid #ddd;
 color: #555;
 text-align: center; 
}
/*}}}*/
/***
!IE Display hacks /% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%/
***/
/*{{{*/
body{
 _text-align: center;
}

#contentWrapper
{
/* _width: 770px; CSS UNDERSCORE HACK FOR PROPER WIN/IE DISPLAY */
 _text-align: left; /* CSS UNDERSCORE HACK FOR PROPER WIN/IE DISPLAY */ 
}

#messageArea{
 _position: absolute;
}
/*}}}*/
/***
!Borderless Tables /% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%/
***/
/*{{{*/
.borderlessL, .borderlessL table, .borderlessL td, .borderlessL tr, .borderlessL th, .borderlessL tbody { border:0 !important; margin:0 !important; padding:2px !important; td.vertical-align:top !important;margin-left: 0 !important; margin-right: auto !important;}
/*}}}*/
|!Header(s)|>|
|Box1|Box2|
To get the tangent of a line when you have $x$ and $y$ coordinates, you must first find the derivative of the function. Once the derivative is found, the $x$ coordinate is plugged into the derivative to find the slope $m$ of the tangent line. Lastly, using point-slop intercept form and plunging $x$ and $y$ in for $y_1$ and $x_1$ you can solve to find the tangent line.

''__Formulas Used__''
@@display: block;border: 1px dashed blue;background:#FFFFFF;
$f(x+h)-f(x)\over h$
$y-y_1=m(x-x_1)$
@@

''__Example__:'' Find the line tangent to 3-4x**2 on the point (-2,-13)
Using DerivativeShortcuts we can quickly see that the derivative of the given function is 
@@display: block;border: 1px dashed blue;background:#FFFFFF;$$f'(x)=-8x$$@@
Now we can find the slope m for the tangent line. Plug x into the derivative:
@@display: block;border: 1px dashed blue;background:#FFFFFF;$$f'(-2) = -8(-2)$$
$$m = 16$$
@@
Now that we have m, we can use point-slope form to find the tangent line, filling $x_1$ and $y_1$ in with the given coordinates
@@display: block;border: 1px dashed blue;background:#FFFFFF;$$y-y_1 = 16(x-x_1)$$
$$y-(-13)=16(x-(-2))$$
$$y+13=16x+32$$
$$y=16x+19$$
@@

y=16x+19 is the equation for the tangent line of function and coordinates.
!!!!Mnemonic
''S''ome ''O''old ''H''ippy ''C''ame ''A''round ''H''ere ''T''riping ''O''n ''A''cid
This mnemonic  has been the single best way I've found to memorize the basic identities of the functions. Example: Some Old Hippy = Sine: Opposite/Hypotenuse. Came Around Here =  Cos: Adjacent/Hypotenuse 
!!!!Basic Identities
|text-align:center;!Basic Identities|>|>|
|sin&theta;= opp/hyp|cos&theta;=adj/hyp|tan&theta;=opp/adj|
|csc&theta;=hyp/opp|sec&theta;=hyp/adj|cot&theta;=adj/opp|
|>|>|''opp''=opposite, ''hyp''=hypotenuse, ''adj''=adjacent|
!!!!Pythagorean Identities
|!Pythagorean Identities|
|sin^^2^^&theta; + cos^^2^^&theta;=1|
|tan^^2^^&theta; + 1= sec^^2^^&theta;|
|cot^^2^^&theta; + 1= csc^^2^^&theta;|
*The Basics
**[[Trigonometric Identities]]
**[[Unit Circle and Exact Values]]

**[[Area of a Sector]]
/***
Description: Contains the stuff you need to use Tiddlyspot
Note, you also need UploadPlugin, PasswordOptionPlugin and LoadRemoteFileThroughProxy
from http://tiddlywiki.bidix.info for a complete working Tiddlyspot site.
***/
//{{{

// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'digamma-chi';

// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)
window.showBackstage = true; // show backstage too

// disable autosave in d3
if (window.location.protocol != "file:")
	config.options.chkGTDLazyAutoSave = false;

// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
	SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
	SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
	OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
	DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[WelcomeToTiddlyspot]] ");
	MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");
}

// create some shadow tiddler content
merge(config.shadowTiddlers,{

'WelcomeToTiddlyspot':[
 "This document is a ~TiddlyWiki from tiddlyspot.com.  A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below.  Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
 "<<tiddler TspotControls>>",
 "See also GettingStarted.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick.  You can make changes and save them locally without being connected to the Internet.  When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]].  Also visit [[TiddlyWiki.org|http://tiddlywiki.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help.  If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site.  Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."
].join("\n"),

'TspotControls':[
 "| tiddlyspot password:|<<option pasUploadPassword>>|",
 "| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<br>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
 "| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[blog|http://tiddlyspot.blogspot.com/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"
].join("\n"),

'TspotSidebar':[
 "<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"
].join("\n"),

'TspotOptions':[
 "tiddlyspot password:",
 "<<option pasUploadPassword>>",
 ""
].join("\n")

});
//}}}
C++ can change any single character into its equivalent ASCII Decimal value with just simple @@color:blue;''int''@@ and @@color:blue;''char''@@ variables.

To change a character into an int value

@@display: block;border: 1px dashed blue;background:#FFFFCC;int ascii = char('A');
@@

This would assign ''ascii'' the value of 65. You can do this with string array's as well:

@@display: block;border: 1px dashed blue;background:#FFFFCC;;int ascii = char(string[i]);
@@

Where //i// is any number. This is especially useful in ''for loops'' when you want to convert a whole string into ascii decimal values. 
!Tips/Tricks
!Trouble Shooting
*PulseAudio
**A solution to the "connection refused" error present among many users.
|text-align:center;!Exact Values|>|>|>|
|&theta;|sin&theta;|cos&theta;|tan&theta;|
|\[\frac{\pi}{6}=30\]|\[\frac{1}{2}\]|\[\frac{\sqrt{3}}{2}\]|\[\frac{1}{\sqrt{3}}\]|
|\[\frac{\pi}{4}=45\]|\[\frac{2}{2}\]|\[\frac{2}{2}\]|1|
|\[\frac{\pi}{3}=60\]|\[\frac{\sqrt{3}}{2}\]|\[\frac{1}{2}\]|$\sqrt{3}$|
|\[\frac{\pi}{2}=90\]|1|0|$\infty$|

''The Unit circle'' is a circle who's //radius is 1//. It is __unit less__, as in, not "1 inch" or "1 centimeter", simply 1. This is because the values of any of the trigonometric identities will always be the same in any circle who's radius is "1 anything"

<html><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Unit_circle_angles.svg/720px-Unit_circle_angles.svg.png"style="width:500px;/></html>
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 22/04/2009 11:13:56 | JonH | [[/|http://digamma-chi.tiddlyspot.com/]] | [[store.php|http://digamma-chi.tiddlyspot.com/store.php]] | . | [[index.html | http://digamma-chi.tiddlyspot.com/index.html]] |  | ok |
| 22/04/2009 19:21:16 | JonH | [[/|http://digamma-chi.tiddlyspot.com/]] | [[store.php|http://digamma-chi.tiddlyspot.com/store.php]] | . | [[index.html | http://digamma-chi.tiddlyspot.com/index.html]] |  |
| 24/04/2009 20:38:15 | JonH | [[/|http://digamma-chi.tiddlyspot.com/]] | [[store.php|http://digamma-chi.tiddlyspot.com/store.php]] | . | [[index.html | http://digamma-chi.tiddlyspot.com/index.html]] |  |
| 24/05/2009 16:33:56 | JonH | [[/|http://digamma-chi.tiddlyspot.com/]] | [[store.php|http://digamma-chi.tiddlyspot.com/store.php]] | . | [[index.html | http://digamma-chi.tiddlyspot.com/index.html]] |  |
| 24/05/2009 19:33:29 | JonH | [[/|http://digamma-chi.tiddlyspot.com/]] | [[store.php|http://digamma-chi.tiddlyspot.com/store.php]] | . | [[index.html | http://digamma-chi.tiddlyspot.com/index.html]] |  |
| 27/05/2009 00:08:19 | JonH | [[/|http://digamma-chi.tiddlyspot.com/]] | [[store.php|http://digamma-chi.tiddlyspot.com/store.php]] | . | [[index.html | http://digamma-chi.tiddlyspot.com/index.html]] |  |
| 29/05/2009 01:10:37 | JonH | [[/|http://digamma-chi.tiddlyspot.com/]] | [[store.php|http://digamma-chi.tiddlyspot.com/store.php]] | . | [[index.html | http://digamma-chi.tiddlyspot.com/index.html]] |  | failed |
| 29/05/2009 01:10:58 | JonH | [[/|http://digamma-chi.tiddlyspot.com/]] | [[store.php|http://digamma-chi.tiddlyspot.com/store.php]] | . | [[index.html | http://digamma-chi.tiddlyspot.com/index.html]] |  |
| 13/06/2009 12:21:28 | YourName | [[/|http://digamma-chi.tiddlyspot.com/]] | [[store.php|http://digamma-chi.tiddlyspot.com/store.php]] | . | [[index.html | http://digamma-chi.tiddlyspot.com/index.html]] |  |
| 28/07/2009 19:40:39 | JonH | [[/|http://digamma-chi.tiddlyspot.com/]] | [[store.php|http://digamma-chi.tiddlyspot.com/store.php]] | . | [[index.html | http://digamma-chi.tiddlyspot.com/index.html]] |  |
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.3|
|''Date:''|Feb 24, 2008|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 3,
	date: new Date("Feb 24, 2008"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0'
};

//
// Environment
//

if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false;	// true to activate both in Plugin and UploadService
	
//
// Upload Macro
//

config.macros.upload = {
// default values
	defaultBackupDir: '',	//no backup
	defaultStoreScript: "store.php",
	defaultToFilename: "index.html",
	defaultUploadDir: ".",
	authenticateUser: true	// UploadService Authenticate User
};
	
config.macros.upload.label = {
	promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
	promptParamMacro: "Save and Upload this TiddlyWiki in %0",
	saveLabel: "save to web", 
	saveToDisk: "save to disk",
	uploadLabel: "upload"	
};

config.macros.upload.messages = {
	noStoreUrl: "No store URL in parmeters or options",
	usernameOrPasswordMissing: "Username or password missing"
};

config.macros.upload.handler = function(place,macroName,params) {
	if (readOnly)
		return;
	var label;
	if (document.location.toString().substr(0,4) == "http") 
		label = this.label.saveLabel;
	else
		label = this.label.uploadLabel;
	var prompt;
	if (params[0]) {
		prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0], 
			(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
	} else {
		prompt = this.label.promptOption;
	}
	createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);
};

config.macros.upload.action = function(params)
{
		// for missing macro parameter set value from options
		if (!params) params = {};
		var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
		var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
		var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
		var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
		var username = params[4] ? params[4] : config.options.txtUploadUserName;
		var password = config.options.pasUploadPassword; // for security reason no password as macro parameter	
		// for still missing parameter set default value
		if ((!storeUrl) && (document.location.toString().substr(0,4) == "http")) 
			storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
		if (storeUrl.substr(0,4) != "http")
			storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
		if (!toFilename)
			toFilename = bidix.basename(window.location.toString());
		if (!toFilename)
			toFilename = config.macros.upload.defaultToFilename;
		if (!uploadDir)
			uploadDir = config.macros.upload.defaultUploadDir;
		if (!backupDir)
			backupDir = config.macros.upload.defaultBackupDir;
		// report error if still missing
		if (!storeUrl) {
			alert(config.macros.upload.messages.noStoreUrl);
			clearMessage();
			return false;
		}
		if (config.macros.upload.authenticateUser && (!username || !password)) {
			alert(config.macros.upload.messages.usernameOrPasswordMissing);
			clearMessage();
			return false;
		}
		bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password); 
		return false; 
};

config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir) 
{
	if (!storeUrl)
		return null;
		var dest = bidix.dirname(storeUrl);
		if (uploadDir && uploadDir != '.')
			dest = dest + '/' + uploadDir;
		dest = dest + '/' + toFilename;
	return dest;
};

//
// uploadOptions Macro
//

config.macros.uploadOptions = {
	handler: function(place,macroName,params) {
		var wizard = new Wizard();
		wizard.createWizard(place,this.wizardTitle);
		wizard.addStep(this.step1Title,this.step1Html);
		var markList = wizard.getElement("markList");
		var listWrapper = document.createElement("div");
		markList.parentNode.insertBefore(listWrapper,markList);
		wizard.setValue("listWrapper",listWrapper);
		this.refreshOptions(listWrapper,false);
		var uploadCaption;
		if (document.location.toString().substr(0,4) == "http") 
			uploadCaption = config.macros.upload.label.saveLabel;
		else
			uploadCaption = config.macros.upload.label.uploadLabel;
		
		wizard.setButtons([
				{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption, 
					onClick: config.macros.upload.action},
				{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
				
			]);
	},
	options: [
		"txtUploadUserName",
		"pasUploadPassword",
		"txtUploadStoreUrl",
		"txtUploadDir",
		"txtUploadFilename",
		"txtUploadBackupDir",
		"chkUploadLog",
		"txtUploadLogMaxLine"		
	],
	refreshOptions: function(listWrapper) {
		var opts = [];
		for(i=0; i<this.options.length; i++) {
			var opt = {};
			opts.push();
			opt.option = "";
			n = this.options[i];
			opt.name = n;
			opt.lowlight = !config.optionsDesc[n];
			opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
			opts.push(opt);
		}
		var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
		for(n=0; n<opts.length; n++) {
			var type = opts[n].name.substr(0,3);
			var h = config.macros.option.types[type];
			if (h && h.create) {
				h.create(opts[n].colElements['option'],type,opts[n].name,opts[n].name,"no");
			}
		}
		
	},
	onCancel: function(e)
	{
		backstage.switchTab(null);
		return false;
	},
	
	wizardTitle: "Upload with options",
	step1Title: "These options are saved in cookies in your browser",
	step1Html: "<input type='hidden' name='markList'></input><br>",
	cancelButton: "Cancel",
	cancelButtonPrompt: "Cancel prompt",
	listViewTemplate: {
		columns: [
			{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 
			]}
};

//
// upload functions
//

if (!bidix.upload) bidix.upload = {};

if (!bidix.upload.messages) bidix.upload.messages = {
	//from saving
	invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
	backupSaved: "Backup saved",
	backupFailed: "Failed to upload backup file",
	rssSaved: "RSS feed uploaded",
	rssFailed: "Failed to upload RSS feed file",
	emptySaved: "Empty template uploaded",
	emptyFailed: "Failed to upload empty template file",
	mainSaved: "Main TiddlyWiki file uploaded",
	mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
	//specific upload
	loadOriginalHttpPostError: "Can't get original file",
	aboutToSaveOnHttpPost: 'About to upload on %0 ...',
	storePhpNotFound: "The store script '%0' was not found."
};

bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
{
	var callback = function(status,uploadParams,original,url,xhr) {
		if (!status) {
			displayMessage(bidix.upload.messages.loadOriginalHttpPostError);
			return;
		}
		if (bidix.debugMode) 
			alert(original.substr(0,500)+"\n...");
		// Locate the storeArea div's 
		var posDiv = locateStoreArea(original);
		if((posDiv[0] == -1) || (posDiv[1] == -1)) {
			alert(config.messages.invalidFileError.format([localPath]));
			return;
		}
		bidix.upload.uploadRss(uploadParams,original,posDiv);
	};
	
	if(onlyIfDirty && !store.isDirty())
		return;
	clearMessage();
	// save on localdisk ?
	if (document.location.toString().substr(0,4) == "file") {
		var path = document.location.toString();
		var localPath = getLocalPath(path);
		saveChanges();
	}
	// get original
	var uploadParams = new Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
	var originalPath = document.location.toString();
	// If url is a directory : add index.html
	if (originalPath.charAt(originalPath.length-1) == "/")
		originalPath = originalPath + "index.html";
	var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
	var log = new bidix.UploadLog();
	log.startUpload(storeUrl, dest, uploadDir,  backupDir);
	displayMessage(bidix.upload.messages.aboutToSaveOnHttpPost.format([dest]));
	if (bidix.debugMode) 
		alert("about to execute Http - GET on "+originalPath);
	var r = doHttp("GET",originalPath,null,null,username,password,callback,uploadParams,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

bidix.upload.uploadRss = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		if(status) {
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.rssSaved,bidix.dirname(url)+'/'+destfile);
			bidix.upload.uploadMain(params[0],params[1],params[2]);
		} else {
			displayMessage(bidix.upload.messages.rssFailed);			
		}
	};
	// do uploadRss
	if(config.options.chkGenerateAnRssFeed) {
		var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
		var rssUploadParams = new Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
		var rssString = generateRss();
		// no UnicodeToUTF8 conversion needed when location is "file" !!!
		if (document.location.toString().substr(0,4) != "file")
			rssString = convertUnicodeToUTF8(rssString);	
		bidix.upload.httpUpload(rssUploadParams,rssString,callback,Array(uploadParams,original,posDiv));
	} else {
		bidix.upload.uploadMain(uploadParams,original,posDiv);
	}
};

bidix.upload.uploadMain = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		var log = new bidix.UploadLog();
		if(status) {
			// if backupDir specified
			if ((params[3]) && (responseText.indexOf("backupfile:") > -1))  {
				var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
				displayMessage(bidix.upload.messages.backupSaved,bidix.dirname(url)+'/'+backupfile);
			}
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.mainSaved,bidix.dirname(url)+'/'+destfile);
			store.setDirty(false);
			log.endUpload("ok");
		} else {
			alert(bidix.upload.messages.mainFailed);
			displayMessage(bidix.upload.messages.mainFailed);
			log.endUpload("failed");			
		}
	};
	// do uploadMain
	var revised = bidix.upload.updateOriginal(original,posDiv);
	bidix.upload.httpUpload(uploadParams,revised,callback,uploadParams);
};

bidix.upload.httpUpload = function(uploadParams,data,callback,params)
{
	var localCallback = function(status,params,responseText,url,xhr) {
		url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
		if (xhr.status == 404)
			alert(bidix.upload.messages.storePhpNotFound.format([url]));
		if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
			alert(responseText);
			if (responseText.indexOf("Debug mode") >= 0 )
				responseText = responseText.substring(responseText.indexOf("\n\n")+2);
		} else if (responseText.charAt(0) != '0') 
			alert(responseText);
		if (responseText.charAt(0) != '0')
			status = null;
		callback(status,params,responseText,url,xhr);
	};
	// do httpUpload
	var boundary = "---------------------------"+"AaB03x";	
	var uploadFormName = "UploadPlugin";
	// compose headers data
	var sheader = "";
	sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
	sheader += uploadFormName +"\"\r\n\r\n";
	sheader += "backupDir="+uploadParams[3] +
				";user=" + uploadParams[4] +
				";password=" + uploadParams[5] +
				";uploaddir=" + uploadParams[2];
	if (bidix.debugMode)
		sheader += ";debug=1";
	sheader += ";;\r\n"; 
	sheader += "\r\n" + "--" + boundary + "\r\n";
	sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
	sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
	sheader += "Content-Length: " + data.length + "\r\n\r\n";
	// compose trailer data
	var strailer = new String();
	strailer = "\r\n--" + boundary + "--\r\n";
	data = sheader + data + strailer;
	if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
	var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; ;charset=UTF-8; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
{
	if (!posDiv)
		posDiv = locateStoreArea(original);
	if((posDiv[0] == -1) || (posDiv[1] == -1)) {
		alert(config.messages.invalidFileError.format([localPath]));
		return;
	}
	var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
				store.allTiddlersAsHtml() + "\n" +
				original.substr(posDiv[1]);
	var newSiteTitle = getPageTitle().htmlEncode();
	revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
	revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
	revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
	revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
	revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
	return revised;
};

//
// UploadLog
// 
// config.options.chkUploadLog :
//		false : no logging
//		true : logging
// config.options.txtUploadLogMaxLine :
//		-1 : no limit
//      0 :  no Log lines but UploadLog is still in place
//		n :  the last n lines are only kept
//		NaN : no limit (-1)

bidix.UploadLog = function() {
	if (!config.options.chkUploadLog) 
		return; // this.tiddler = null
	this.tiddler = store.getTiddler("UploadLog");
	if (!this.tiddler) {
		this.tiddler = new Tiddler();
		this.tiddler.title = "UploadLog";
		this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
		this.tiddler.created = new Date();
		this.tiddler.modifier = config.options.txtUserName;
		this.tiddler.modified = new Date();
		store.addTiddler(this.tiddler);
	}
	return this;
};

bidix.UploadLog.prototype.addText = function(text) {
	if (!this.tiddler)
		return;
	// retrieve maxLine when we need it
	var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
	if (isNaN(maxLine))
		maxLine = -1;
	// add text
	if (maxLine != 0) 
		this.tiddler.text = this.tiddler.text + text;
	// Trunck to maxLine
	if (maxLine >= 0) {
		var textArray = this.tiddler.text.split('\n');
		if (textArray.length > maxLine + 1)
			textArray.splice(1,textArray.length-1-maxLine);
			this.tiddler.text = textArray.join('\n');		
	}
	// update tiddler fields
	this.tiddler.modifier = config.options.txtUserName;
	this.tiddler.modified = new Date();
	store.addTiddler(this.tiddler);
	// refresh and notifiy for immediate update
	story.refreshTiddler(this.tiddler.title);
	store.notify(this.tiddler.title, true);
};

bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir,  backupDir) {
	if (!this.tiddler)
		return;
	var now = new Date();
	var text = "\n| ";
	var filename = bidix.basename(document.location.toString());
	if (!filename) filename = '/';
	text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
	text += config.options.txtUserName + " | ";
	text += "[["+filename+"|"+location + "]] |";
	text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
	text += uploadDir + " | ";
	text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
	text += backupDir + " |";
	this.addText(text);
};

bidix.UploadLog.prototype.endUpload = function(status) {
	if (!this.tiddler)
		return;
	this.addText(" "+status+" |");
};

//
// Utilities
// 

bidix.checkPlugin = function(plugin, major, minor, revision) {
	var ext = version.extensions[plugin];
	if (!
		(ext  && 
			((ext.major > major) || 
			((ext.major == major) && (ext.minor > minor))  ||
			((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
			// write error in PluginManager
			if (pluginInfo)
				pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
			eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"
	}
};

bidix.dirname = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(0, lastpos);
	} else {
		return filePath.substring(0, filePath.lastIndexOf("\\"));
	}
};

bidix.basename = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("#")) != -1) 
		filePath = filePath.substring(0, lastpos);
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(lastpos + 1);
	} else
		return filePath.substring(filePath.lastIndexOf("\\")+1);
};

bidix.initOption = function(name,value) {
	if (!config.options[name])
		config.options[name] = value;
};

//
// Initializations
//

// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);

// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");

//optionsDesc
merge(config.optionsDesc,{
	txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
	txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
	txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
	txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
	txtUploadUserName: "Upload Username",
	pasUploadPassword: "Upload Password",
	chkUploadLog: "do Logging in UploadLog (default: true)",
	txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"
});

// Options Initializations
bidix.initOption('txtUploadStoreUrl','');
bidix.initOption('txtUploadFilename','');
bidix.initOption('txtUploadDir','');
bidix.initOption('txtUploadBackupDir','');
bidix.initOption('txtUploadUserName','');
bidix.initOption('pasUploadPassword','');
bidix.initOption('chkUploadLog',true);
bidix.initOption('txtUploadLogMaxLine','10');


// Backstage
merge(config.tasks,{
	uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});
config.backstageTasks.push("uploadOptions");


//}}}
@@display: block;border: 1px dashed blue;background:#FFFFCC; while (getline(cin,var) && var.empty()) {
        cout << "(a message to user about not using blank lines)"
        }
@@

Very useful line of code keeps the program clean by wrapping all the lines of code to keep users from entering nothing into a field down to essentially 2 lines of code. 

!!!Python Equivalence
@@display: block;border: 1px dashed blue;background:#FFFFCC;while (raw_input("User Prompt") == ""):
     print "(a message to user about not using blank lines)"
@@

Unlike in Python, one cannot pull a character out of a string using an index (such as string[4] for the 5th char in that string) and ''keep that character as a string type'' as can be done in Python. What I mean is that if you attempt to do something like this

__''Example:''__
@@display: block;border: 1px dashed blue;background:#FFFFCC;string first_letter;
color:blue;string message "This is an example";

first_letter = message[0];
@@
The C++ will yell at you, because you cannot assign a "character", to a string. For the program above to work it would have to look like this:

__''Example 2:''__
@@display: block;border: 1px dashed blue;background:#FFFFCC;char first_letter;
string message "This is an example";

first_letter = message[0];
@@
Note that I had to change the variable ''first_letter'' to @@color:blue;''char''@@. This can be very annoying, as you cannot concatenate char and string types together. This begs the question "How can I pull a character out of a string, and keep that variable a string type?" There are two ways. 

The first way involes changing the operator. Although one cannot //assign// a @@color:blue;''char''@@ to a @@color:blue;''string''@@, you can //append// it like so:

__''Example 3:''__
@@display: block;border: 1px dashed blue;background:#FFFFCC;string first_letter;
string message "This is an example";

first_letter += message[0];
@@
Note the ''+='' operator. I personally feel that this is a little sloppy and prefer using substr() instead:

__''Example 4:''__
@@display: block;border: 1px dashed blue;background:#FFFFCC;#include <string>

string first_letter;
string message "This is an example";

first_letter = message.substr(0,1);
@@ 

substr() works by pulling out a "sub string" of a string. In Example 4 I told it to pull out all the characters starting for position "0" and go "1" position away from 0. Again, the second number in substr() means //how far// to read, ''not'' what position to stop. Note that to use substr() you must ''#include <string>''
Formula:
@@font-size:13pt;
$(\frac{-b}{2a},P(\frac{-b}{2a}))$
@@

!!!Example
Find the vertex of $f(x)=x^2+4x+5$
@@display: block;border: 1px dashed black;background:#F0E68C; a=1 b=4

$\frac{-b}{2a}=\frac{1}{2(4)}=\frac{1}{8}$
@@
Therefore, @@font-size:12pt;$x = \frac{1}{8}$@@

To get the y-coordinate, substitute x back into the function
@@display: block;border: 1px dashed black;background:#F0E68C;
$P(\frac{1}{8})=(\frac{1}{8})^2+4(\frac{1}{8})+5$
@@

Solved, @@font-size:12pt;$y = 5.15$@@

The vertex for this parabola then would be,

@@font-size:13pt;$(\frac{1}{8}, 5.15)$@@
//{{{
// AJAX code adapted from http://timmorgan.org/mini
// This is already loaded by ziddlywiki...
if(typeof(window["ajax"]) == "undefined") {
  ajax = {
      x: function(){try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(e){return new XMLHttpRequest()}}},
      gets: function(url){var x=ajax.x();x.open('GET',url,false);x.send(null);return x.responseText}
  }
}

// Load jsMath
jsMath = {
  Setup: {inited: 1},          // don't run jsMath.Setup.Body() yet
  Autoload: {root: new String(document.location).replace(/[^\/]*$/,'jsMath/')}  // URL to jsMath directory, change if necessary
};
var jsMathstr;
try {
  jsMathstr = ajax.gets(jsMath.Autoload.root+"jsMath.js");
} catch(e) {
  alert("jsMath was not found: you must place the 'jsMath' directory in the same place as this file.  "
       +"The error was:\n"+e.name+": "+e.message);
  throw(e);  // abort eval
}
try {
  window.eval(jsMathstr);
} catch(e) {
  alert("jsMath failed to load.  The error was:\n"+e.name + ": " + e.message + " on line " + e.lineNumber);
}
jsMath.Setup.inited=0;  //  allow jsMath.Setup.Body() to run again

// Define wikifers for latex
config.formatterHelpers.mathFormatHelper = function(w) {
    var e = document.createElement(this.element);
    e.className = this.className;
    var endRegExp = new RegExp(this.terminator, "mg");
    endRegExp.lastIndex = w.matchStart+w.matchLength;
    var matched = endRegExp.exec(w.source);
    if(matched) {
        var txt = w.source.substr(w.matchStart+w.matchLength, 
            matched.index-w.matchStart-w.matchLength);
        if(this.keepdelim) {
          txt = w.source.substr(w.matchStart, matched.index+matched[0].length-w.matchStart);
        }
        e.appendChild(document.createTextNode(txt));
        w.output.appendChild(e);
        w.nextMatch = endRegExp.lastIndex;
    }
}

config.formatters.push({
  name: "displayMath1",
  match: "\\\$\\\$",
  terminator: "\\\$\\\$\\n?", // 2.0 compatability
  termRegExp: "\\\$\\\$\\n?",
  element: "div",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

config.formatters.push({
  name: "inlineMath1",
  match: "\\\$", 
  terminator: "\\\$", // 2.0 compatability
  termRegExp: "\\\$",
  element: "span",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

var backslashformatters = new Array(0);

backslashformatters.push({
  name: "inlineMath2",
  match: "\\\\\\\(",
  terminator: "\\\\\\\)", // 2.0 compatability
  termRegExp: "\\\\\\\)",
  element: "span",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

backslashformatters.push({
  name: "displayMath2",
  match: "\\\\\\\[",
  terminator: "\\\\\\\]\\n?", // 2.0 compatability
  termRegExp: "\\\\\\\]\\n?",
  element: "div",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

backslashformatters.push({
  name: "displayMath3",
  match: "\\\\begin\\{equation\\}",
  terminator: "\\\\end\\{equation\\}\\n?", // 2.0 compatability
  termRegExp: "\\\\end\\{equation\\}\\n?",
  element: "div",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

// These can be nested.  e.g. \begin{equation} \begin{array}{ccc} \begin{array}{ccc} ...
backslashformatters.push({
  name: "displayMath4",
  match: "\\\\begin\\{eqnarray\\}",
  terminator: "\\\\end\\{eqnarray\\}\\n?", // 2.0 compatability
  termRegExp: "\\\\end\\{eqnarray\\}\\n?",
  element: "div",
  className: "math",
  keepdelim: true,
  handler: config.formatterHelpers.mathFormatHelper
});

// The escape must come between backslash formatters and regular ones.
// So any latex-like \commands must be added to the beginning of
// backslashformatters here.
backslashformatters.push({
    name: "escape",
    match: "\\\\.",
    handler: function(w) {
        w.output.appendChild(document.createTextNode(w.source.substr(w.matchStart+1,1)));
        w.nextMatch = w.matchStart+2;
    }
});

config.formatters=backslashformatters.concat(config.formatters);

window.wikify = function(source,output,highlightRegExp,tiddler)
{
    if(source && source != "") {
        if(version.major == 2 && version.minor > 0) {
            var wikifier = new Wikifier(source,getParser(tiddler),highlightRegExp,tiddler);
            wikifier.subWikifyUnterm(output);
        } else {
            var wikifier = new Wikifier(source,formatter,highlightRegExp,tiddler);
            wikifier.subWikify(output,null);
        }
        jsMath.ProcessBeforeShowing();
    }
}

//}}}
<<note cool>>
//{{{
// a one liner...
config.macros.note = { handler: function(place,name,params) { wikify("|bgcolor:#F0E68C;@@font-size:9pt;"+ params[0] + "@@|", place); } };
//}}}